diff --git a/Cargo.lock b/Cargo.lock index b712c4f8d24..77be7b054ed 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 4 [[package]] name = "adler2" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "aho-corasick" @@ -23,12 +23,6 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - [[package]] name = "android_system_properties" version = "0.1.5" @@ -40,9 +34,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.19" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933" +checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" dependencies = [ "anstyle", "anstyle-parse", @@ -70,22 +64,22 @@ dependencies = [ [[package]] name = "anstyle-query" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9" +checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "anstyle-wincon" -version = "3.0.9" +version = "3.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882" +checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -127,9 +121,9 @@ dependencies = [ [[package]] name = "atomic" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d818003e740b63afc82337e3160717f4f63078720a810b7b903e70a5d1d2994" +checksum = "a89cbf775b137e9b968e67227ef7f775587cde3fd31b0d8599dbd0f598a48340" dependencies = [ "bytemuck", ] @@ -154,9 +148,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.1" +version = "2.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" +checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" [[package]] name = "borsh" @@ -169,15 +163,15 @@ dependencies = [ [[package]] name = "boxcar" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c4925bc979b677330a8c7fe7a8c94af2dbb4a2d37b4a20a80d884400f46baa" +checksum = "36f64beae40a84da1b4b26ff2761a5b895c12adc41dc25aaee1c4f2bbfe97a6e" [[package]] name = "bstr" -version = "1.11.3" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0" +checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" dependencies = [ "memchr", "serde", @@ -191,15 +185,15 @@ checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "bytemuck" -version = "1.21.0" +version = "1.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" +checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" [[package]] name = "camino" -version = "1.1.10" +version = "1.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0da45bc31171d8d6960122e222a67740df867c1dd53b4d51caa297084c185cab" +checksum = "dd0b03af37dad7a14518b7691d81acb0f8222604ad3d1b02f6b4bed5188c0cd5" dependencies = [ "serde", ] @@ -246,10 +240,11 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.29" +version = "1.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c1599538de2394445747c8cf7935946e3cc27e9625f889d979bfb2aaf569362" +checksum = "65193589c6404eb80b450d618eaf9a2cafaaafd57ecce47370519ef674a7bd44" dependencies = [ + "find-msvc-tools", "jobserver", "libc", "shlex", @@ -257,9 +252,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" +checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" [[package]] name = "cfg_aliases" @@ -297,7 +292,7 @@ version = "0.103.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90a37d2ab99352b4caca135061e7b4ac67024b648c28ed0b787feec4bea4caed" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "chalk-derive 0.103.0", ] @@ -307,7 +302,7 @@ version = "0.104.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7047a516de16226cd17344d41a319d0ea1064bf9e60bd612ab341ab4a34bbfa8" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "chalk-derive 0.104.0", ] @@ -333,7 +328,7 @@ dependencies = [ "chalk-derive 0.103.0", "chalk-ir 0.103.0", "ena", - "indexmap 2.10.0", + "indexmap 2.11.1", "itertools 0.12.1", "petgraph", "rustc-hash 1.1.0", @@ -342,24 +337,23 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.41" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" +checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ - "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "serde", "wasm-bindgen", - "windows-link", + "windows-link 0.2.0", ] [[package]] name = "clap" -version = "4.5.44" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c1f056bae57e3e54c3375c41ff79619ddd13460a17d7438712bd0d83fda4ff8" +checksum = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931" dependencies = [ "clap_builder", "clap_derive", @@ -367,9 +361,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.44" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3e7f4214277f3c7aa526a59dd3fbe306a370daee1f8b7b8c987069cd8e888a8" +checksum = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6" dependencies = [ "anstream", "anstyle", @@ -379,9 +373,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.41" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491" +checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c" dependencies = [ "heck", "proc-macro2", @@ -505,15 +499,15 @@ checksum = "7704b5fdd17b18ae31c4c1da5a2e0305a2bf17b5249300a9ee9ed7b72114c636" [[package]] name = "cov-mark" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0570650661aa447e7335f1d5e4f499d8e58796e617bedc9267d971e51c8b49d4" +checksum = "3f1d92727879fb4f24cec33a35e3bff74035541326cbc12ad44ba8886d1927b0" [[package]] name = "crc32fast" -version = "1.4.2" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" dependencies = [ "cfg-if", ] @@ -612,9 +606,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.4.0" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" +checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc" dependencies = [ "powerfmt", "serde", @@ -645,9 +639,9 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "dyn-clone" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "either" @@ -661,7 +655,7 @@ version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5" dependencies = [ - "log 0.4.27", + "log 0.4.28", ] [[package]] @@ -759,16 +753,10 @@ dependencies = [ ] [[package]] -name = "filetime" -version = "0.2.25" +name = "find-msvc-tools" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" -dependencies = [ - "cfg-if", - "libc", - "libredox", - "windows-sys 0.59.0", -] +checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d" [[package]] name = "fixedbitset" @@ -778,9 +766,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.1.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" +checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" dependencies = [ "crc32fast", "miniz_oxide", @@ -800,9 +788,9 @@ checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" [[package]] name = "form_urlencoded" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] @@ -840,7 +828,7 @@ dependencies = [ "cfg-if", "libc", "r-efi", - "wasi 0.14.2+wasi-0.2.4", + "wasi 0.14.5+wasi-0.2.4", ] [[package]] @@ -851,15 +839,15 @@ checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "globset" -version = "0.4.15" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15f1ce686646e7f1e19bf7d5533fe443a45dbfb990e00629110797578b42fb19" +checksum = "54a1028dfc5f5df5da8a56a73e6c153c9a9708ec57232470703592a3f18e49f5" dependencies = [ "aho-corasick", "bstr", - "log 0.4.27", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", + "log 0.4.28", + "regex-automata", + "regex-syntax", ] [[package]] @@ -876,9 +864,9 @@ checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" [[package]] name = "hashbrown" -version = "0.15.4" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "allocator-api2", "equivalent", @@ -891,7 +879,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" dependencies = [ - "hashbrown 0.15.4", + "hashbrown 0.15.5", ] [[package]] @@ -931,7 +919,7 @@ dependencies = [ "core-foundation-sys", "iana-time-zone-haiku", "js-sys", - "log 0.4.27", + "log 0.4.28", "wasm-bindgen", "windows-core", ] @@ -1039,9 +1027,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", @@ -1071,12 +1059,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.10.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" +checksum = "206a8042aec68fa4a62e8d3f7aa4ceb508177d9324faf261e1959e495b7a1921" dependencies = [ "equivalent", - "hashbrown 0.15.4", + "hashbrown 0.15.5", "serde", ] @@ -1092,7 +1080,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "inotify-sys", "libc", ] @@ -1147,10 +1135,11 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jobserver" -version = "0.1.32" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ + "getrandom", "libc", ] @@ -1162,9 +1151,9 @@ checksum = "a037eddb7d28de1d0fc42411f501b53b75838d313908078d6698d064f3029b24" [[package]] name = "js-sys" -version = "0.3.77" +version = "0.3.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738" dependencies = [ "once_cell", "wasm-bindgen", @@ -1204,20 +1193,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.174" +version = "0.2.175" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" - -[[package]] -name = "libredox" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638" -dependencies = [ - "bitflags 2.9.1", - "libc", - "redox_syscall", -] +checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" [[package]] name = "line-index" @@ -1251,22 +1229,22 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" dependencies = [ - "log 0.4.27", + "log 0.4.28", ] [[package]] name = "log" -version = "0.4.27" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" [[package]] name = "matchers" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" dependencies = [ - "regex-automata 0.1.10", + "regex-automata", ] [[package]] @@ -1286,9 +1264,9 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.8.5" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", ] @@ -1300,18 +1278,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ "libc", - "log 0.4.27", + "log 0.4.28", "wasi 0.11.1+wasi-snapshot-preview1", "windows-sys 0.59.0", ] [[package]] name = "miow" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "359f76430b20a79f9e20e115b3428614e654f04fab314482fc0fda0ebd3c6044" +checksum = "536bfad37a309d62069485248eeaba1e8d9853aaf951caaeaed0585a95346f08" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.61.0", ] [[package]] @@ -1332,21 +1310,20 @@ checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" [[package]] name = "notify" -version = "8.0.0" +version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fee8403b3d66ac7b26aee6e40a897d85dc5ce26f44da36b8b73e987cc52e943" +checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" dependencies = [ - "bitflags 2.9.1", - "filetime", + "bitflags 2.9.4", "fsevent-sys", "inotify", "kqueue", "libc", - "log 0.4.27", + "log 0.4.28", "mio", "notify-types", "walkdir", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -1357,12 +1334,11 @@ checksum = "5e0826a989adedc2a244799e823aece04662b66609d96af8dff7ac6df9a8925d" [[package]] name = "nu-ansi-term" -version = "0.46.0" +version = "0.50.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" dependencies = [ - "overload", - "winapi", + "windows-sys 0.52.0", ] [[package]] @@ -1419,19 +1395,13 @@ dependencies = [ [[package]] name = "os_str_bytes" -version = "7.0.0" +version = "7.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ac44c994af577c799b1b4bd80dc214701e349873ad894d6cdf96f4f7526e0b9" +checksum = "63eceb7b5d757011a87d08eb2123db15d87fb0c281f65d101ce30a1e96c3ad5c" dependencies = [ "memchr", ] -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - [[package]] name = "papaya" version = "0.2.3" @@ -1490,9 +1460,9 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "perf-event" @@ -1520,7 +1490,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.10.0", + "indexmap 2.11.1", ] [[package]] @@ -1543,9 +1513,9 @@ checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" [[package]] name = "potential_utf" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" dependencies = [ "zerovec", ] @@ -1567,9 +1537,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.97" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d61789d7719defeb74ea5fe81f2fdfdbd28a803847077cecce2ff14e1472f6f1" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" dependencies = [ "unicode-ident", ] @@ -1608,7 +1578,7 @@ version = "0.123.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f18c877575c259d127072e9bfc41d985202262fb4d6bfdae3d1252147c2562c2" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "ra-ap-rustc_hashes", "ra-ap-rustc_index", "tracing", @@ -1691,12 +1661,12 @@ dependencies = [ [[package]] name = "ra_ap_base_db" -version = "0.0.300" +version = "0.0.301" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47cac371778785196064f1a347fbbac0aafb1053786f17378bb138be59e57fc2" +checksum = "e876bb2c3e52a8d4e6684526a2d4e81f9d028b939ee4dc5dc775fe10deb44d59" dependencies = [ "dashmap", - "indexmap 2.10.0", + "indexmap 2.11.1", "la-arena", "ra_ap_cfg", "ra_ap_intern", @@ -1714,9 +1684,9 @@ dependencies = [ [[package]] name = "ra_ap_cfg" -version = "0.0.300" +version = "0.0.301" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6789ed14467e6625bef45b29555844d0168d8af1bea9edb0f1d44f0a9b69f398" +checksum = "3a0b56eb4536ce6d2431932c4d337aeeaf7bb22c9249b38cbe80677b5881228f" dependencies = [ "ra_ap_intern", "ra_ap_tt", @@ -1726,19 +1696,19 @@ dependencies = [ [[package]] name = "ra_ap_edition" -version = "0.0.300" +version = "0.0.301" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "637b74c692dc9d9b44394f8c0f91c063e1b6223c6e54f4ee89c943db2f2ee26e" +checksum = "1bdc6cbe42c63ca78611bae82bfc8db24864f33dccc813697c5fde43a0907285" [[package]] name = "ra_ap_hir" -version = "0.0.300" +version = "0.0.301" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a94c69a3830f0b6fbc36c1d098fcc9430f63c8d47ee6f93e3d6810c3bf440296" +checksum = "ebffdc134eccabc17209d7760cfff7fd12ed18ab6e21188c5e084b97aa38504c" dependencies = [ "arrayvec", "either", - "indexmap 2.10.0", + "indexmap 2.11.1", "itertools 0.14.0", "ra_ap_base_db", "ra_ap_cfg", @@ -1758,17 +1728,17 @@ dependencies = [ [[package]] name = "ra_ap_hir_def" -version = "0.0.300" +version = "0.0.301" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d94fcf7743db2f4f7e2c2911563847eb8efe2b7fb9fa430c107f0ac05962254" +checksum = "81d2337ef59550392d42aa997aa1105a3d6d1c2b3a583c777786bc4a0a074fd5" dependencies = [ "arrayvec", - "bitflags 2.9.1", + "bitflags 2.9.4", "cov-mark", "drop_bomb", "either", "fst", - "indexmap 2.10.0", + "indexmap 2.11.1", "itertools 0.14.0", "la-arena", "ra-ap-rustc_abi", @@ -1796,9 +1766,9 @@ dependencies = [ [[package]] name = "ra_ap_hir_expand" -version = "0.0.300" +version = "0.0.301" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67ea3f6a0ba0c1e8b63f4a41bc596c07aeb2db2f99b67fa077820cfb5fce58bd" +checksum = "97cf8ececb2743a819d8299a408e17f164dd1a1004d65936b3d5493b55330326" dependencies = [ "cov-mark", "either", @@ -1824,12 +1794,12 @@ dependencies = [ [[package]] name = "ra_ap_hir_ty" -version = "0.0.300" +version = "0.0.301" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eccf6c291a88892e59e7591e081da8b9158f8c0b1ed9cb9b73d02d29a0d3d6d9" +checksum = "bc004e1099ba766a61500c27d34eb5cd336430d0a89a9620315a90d7a202a73a" dependencies = [ "arrayvec", - "bitflags 2.9.1", + "bitflags 2.9.4", "chalk-derive 0.103.0", "chalk-ir 0.103.0", "chalk-recursive", @@ -1837,7 +1807,7 @@ dependencies = [ "cov-mark", "either", "ena", - "indexmap 2.10.0", + "indexmap 2.11.1", "itertools 0.14.0", "la-arena", "oorandom", @@ -1865,17 +1835,17 @@ dependencies = [ [[package]] name = "ra_ap_ide_db" -version = "0.0.300" +version = "0.0.301" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bbbc97cc9837f91100711b65fb0d8ce9d7ed8da0dc418e08678d973d53da6a3" +checksum = "d2acb572d6dbeb1c96d0339890ba91298b8f5f0ab22648da4ee2b4ab77dbc3fe" dependencies = [ "arrayvec", - "bitflags 2.9.1", + "bitflags 2.9.4", "cov-mark", "crossbeam-channel", "either", "fst", - "indexmap 2.10.0", + "indexmap 2.11.1", "itertools 0.14.0", "line-index", "memchr", @@ -1899,9 +1869,9 @@ dependencies = [ [[package]] name = "ra_ap_intern" -version = "0.0.300" +version = "0.0.301" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f4785a674a41f9f52414fb7f19ab9a1d6886cad572e68721a883b0b85c256b" +checksum = "14586c2c4781b69fdd0c505972d9bff8c162a8740537a3ee506faff686d9a20d" dependencies = [ "dashmap", "hashbrown 0.14.5", @@ -1911,9 +1881,9 @@ dependencies = [ [[package]] name = "ra_ap_load-cargo" -version = "0.0.300" +version = "0.0.301" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3be9990782fd2c2d90b67e2e0b4a86e7412ec8a0719950d9a68292924e85691" +checksum = "50ce5546b3e3414507ab4d12348d0a28748062e33a1448895c68466d0b015503" dependencies = [ "anyhow", "crossbeam-channel", @@ -1932,9 +1902,9 @@ dependencies = [ [[package]] name = "ra_ap_mbe" -version = "0.0.300" +version = "0.0.301" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b713f4d927f9d86391f66237019b8e5dbcad4ddbbe37c91c2e21adca258b9aa" +checksum = "67333c6405797cb64aafb994b9a179157b30beeda2352e203e800be2b184a22d" dependencies = [ "arrayvec", "cov-mark", @@ -1951,9 +1921,9 @@ dependencies = [ [[package]] name = "ra_ap_parser" -version = "0.0.300" +version = "0.0.301" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d3fb8a5891c1c1d6fba5e58caa86b88f831990c878e361c54c1c1ff44ca8401" +checksum = "3a3b92b8b147c0826b83e70ad44e3c98e94201fc93e1f09396c43b4d7958c22a" dependencies = [ "drop_bomb", "ra-ap-rustc_lexer 0.123.0", @@ -1964,20 +1934,20 @@ dependencies = [ [[package]] name = "ra_ap_paths" -version = "0.0.300" +version = "0.0.301" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ccd5cfd0dae89ab2c70c4e5aa646f64bb8b5591622477342863c23a5f32dabc" +checksum = "d4991f3d57fac0def7822bebfeb159c8d7b58c824bf82044b765c54f2c0971e2" dependencies = [ "camino", ] [[package]] name = "ra_ap_proc_macro_api" -version = "0.0.300" +version = "0.0.301" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dae43c707bfb78f1b841ffb3731cc7876550463306c3b3986c20abd31033e7a2" +checksum = "45db9e2df587d56f0738afa89fb2c100ff7c1e9cbe49e07f6a8b62342832211b" dependencies = [ - "indexmap 2.10.0", + "indexmap 2.11.1", "ra_ap_intern", "ra_ap_paths", "ra_ap_span", @@ -1992,9 +1962,9 @@ dependencies = [ [[package]] name = "ra_ap_profile" -version = "0.0.300" +version = "0.0.301" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a7b93ca94cf0821e8bcac6bf8464cc94d7b3cbe63ffb74946a58ad03991fae" +checksum = "19981637b8ee4160e228c815a7fef3944b5c0555d6af41a931be92d68978bc6c" dependencies = [ "cfg-if", "libc", @@ -2004,9 +1974,9 @@ dependencies = [ [[package]] name = "ra_ap_project_model" -version = "0.0.300" +version = "0.0.301" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0751b9433a0dd49c6ae58c9572faf9557d2b53818370d72112b3adeaae5eabc4" +checksum = "5bda0769fd6ca949fdd5917acb68ddc2c143745614ddd94ef38b376838611cf8" dependencies = [ "anyhow", "cargo_metadata", @@ -2031,9 +2001,9 @@ dependencies = [ [[package]] name = "ra_ap_query-group-macro" -version = "0.0.300" +version = "0.0.301" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a82732eb8f5dc592d1d8d9bee23c1d66532e39293f02e23c7a546b60b35072b" +checksum = "5f182a4b05f004eabaa83250a5de7ea3a13a92c88f3cbe98bfa1880cd9fbce0a" dependencies = [ "proc-macro2", "quote", @@ -2042,9 +2012,9 @@ dependencies = [ [[package]] name = "ra_ap_span" -version = "0.0.300" +version = "0.0.301" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c498ddf2d71705dcef9fb142269c0027c959a5eb17c435eea5466af7c3b9c47c" +checksum = "ca6f9fa2de07f5cccf431674b90e82c1fe1ea2339db3b3869eec44d135de09a4" dependencies = [ "hashbrown 0.14.5", "la-arena", @@ -2058,9 +2028,9 @@ dependencies = [ [[package]] name = "ra_ap_stdx" -version = "0.0.300" +version = "0.0.301" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26ade567b0d692c7efd4ceb921cdbe182beca0b5af9a5cf05c07cf0e14db512a" +checksum = "aa770adb32896fcba934b464ac3bd179163ba2b0766e275eed5b4e262e08492b" dependencies = [ "crossbeam-channel", "crossbeam-utils", @@ -2074,9 +2044,9 @@ dependencies = [ [[package]] name = "ra_ap_syntax" -version = "0.0.300" +version = "0.0.301" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dba62d25b0296eb095d9db77e56d096417a89db4f4de1956add0d472ebcaf922" +checksum = "6e9e1393281ad5c635239d353ed3cfbf28c8d0af03d0c61a3b24b31d1143b17f" dependencies = [ "either", "itertools 0.14.0", @@ -2092,9 +2062,9 @@ dependencies = [ [[package]] name = "ra_ap_syntax-bridge" -version = "0.0.300" +version = "0.0.301" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "664466f2e824e285b671366f81128aa4a91b501fedbf7956a6bfb1f13d8b0b39" +checksum = "684e6ff1008ee5340335888f0453d94bb38950f110059a51f1818c7f6a56a807" dependencies = [ "ra_ap_intern", "ra_ap_parser", @@ -2107,9 +2077,9 @@ dependencies = [ [[package]] name = "ra_ap_toolchain" -version = "0.0.300" +version = "0.0.301" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ef82cfc5eb8f9d4a3be9876ce019b78fbfdb8ff4f7e4dee9e384d65122096ab" +checksum = "61969c5f72af03a9837e077c2d939d87a5c863623725c461777c352664a3bb03" dependencies = [ "camino", "home", @@ -2117,9 +2087,9 @@ dependencies = [ [[package]] name = "ra_ap_tt" -version = "0.0.300" +version = "0.0.301" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc858f5208f0d00f8638d14ab5ffab5d1bc79ad7fe1db5c5e0d478b9a02155c" +checksum = "fb87c7b35572c18a580ea811e970b94875fad5ac7cfa8644266a59081044f959" dependencies = [ "arrayvec", "ra-ap-rustc_lexer 0.123.0", @@ -2130,13 +2100,13 @@ dependencies = [ [[package]] name = "ra_ap_vfs" -version = "0.0.300" +version = "0.0.301" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e065b27829f5281d2ffc41de72551a0e4c4f49a9989ba7721676f414100c8af2" +checksum = "6c174d6b9b7a7f54687df7e00c3e75ed6f082a7943a9afb1d54f33c0c12773de" dependencies = [ "crossbeam-channel", "fst", - "indexmap 2.10.0", + "indexmap 2.11.1", "nohash-hasher", "ra_ap_paths", "ra_ap_stdx", @@ -2146,9 +2116,9 @@ dependencies = [ [[package]] name = "ra_ap_vfs-notify" -version = "0.0.300" +version = "0.0.301" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3c795e86c9b5fcdbb99145e401a0d6348ed471ac96f1b7de151c0abe07a5af" +checksum = "04f6fce8d47c7ce9b8f2cd0e5a55f8fc4878d6043e61f46cde4391d3a5c6086f" dependencies = [ "crossbeam-channel", "notify", @@ -2192,9 +2162,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" dependencies = [ "either", "rayon-core", @@ -2202,9 +2172,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.1" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" dependencies = [ "crossbeam-deque", "crossbeam-utils", @@ -2212,11 +2182,11 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.13" +version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6" +checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", ] [[package]] @@ -2241,47 +2211,32 @@ dependencies = [ [[package]] name = "regex" -version = "1.11.1" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", + "regex-automata", + "regex-syntax", ] [[package]] name = "regex-automata" -version = "0.1.10" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", -] - -[[package]] -name = "regex-automata" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.5", + "regex-syntax", ] [[package]] name = "regex-syntax" -version = "0.6.29" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - -[[package]] -name = "regex-syntax" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" [[package]] name = "rowan" @@ -2334,15 +2289,15 @@ version = "0.2.3+llvm-462a31f5a5ab" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "486c2179b4796f65bfe2ee33679acf0927ac83ecf583ad6c91c3b4570911b9ad" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "smallvec", ] [[package]] name = "rustversion" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" @@ -2359,9 +2314,9 @@ dependencies = [ "boxcar", "crossbeam-queue", "crossbeam-utils", - "hashbrown 0.15.4", + "hashbrown 0.15.5", "hashlink", - "indexmap 2.10.0", + "indexmap 2.11.1", "intrusive-collections", "papaya", "parking_lot", @@ -2468,9 +2423,9 @@ dependencies = [ [[package]] name = "serde-untagged" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "299d9c19d7d466db4ab10addd5703e4c615dec2a5a16dbbafe191045e87ee66e" +checksum = "34836a629bcbc6f1afdf0907a744870039b1e14c0561cb26094fa683b158eff3" dependencies = [ "erased-serde", "serde", @@ -2500,10 +2455,11 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.142" +version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "030fedb782600dcbd6f02d479bf0d817ac3bb40d644745b769d6a96bc3afc5a7" +checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" dependencies = [ + "indexmap 2.11.1", "itoa", "memchr", "ryu", @@ -2538,7 +2494,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.10.0", + "indexmap 2.11.1", "schemars 0.9.0", "schemars 1.0.4", "serde", @@ -2566,7 +2522,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.10.0", + "indexmap 2.11.1", "itoa", "ryu", "serde", @@ -2624,9 +2580,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "syn" -version = "2.0.104" +version = "2.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" dependencies = [ "proc-macro2", "quote", @@ -2664,18 +2620,18 @@ checksum = "144f754d318415ac792f9d69fc87abbbfc043ce2ef041c60f16ad828f638717d" [[package]] name = "thiserror" -version = "2.0.12" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" dependencies = [ "proc-macro2", "quote", @@ -2684,22 +2640,20 @@ dependencies = [ [[package]] name = "thread_local" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" dependencies = [ "cfg-if", - "once_cell", ] [[package]] name = "time" -version = "0.3.41" +version = "0.3.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" +checksum = "83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031" dependencies = [ "deranged", - "itoa", "num-conv", "powerfmt", "serde", @@ -2709,15 +2663,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" +checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" [[package]] name = "time-macros" -version = "0.2.22" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" +checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" dependencies = [ "num-conv", "time-core", @@ -2751,7 +2705,7 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75129e1dc5000bfbaa9fee9d1b21f974f9fbad9daec557a521ee6e080825f6e8" dependencies = [ - "indexmap 2.10.0", + "indexmap 2.11.1", "serde", "serde_spanned 1.0.0", "toml_datetime 0.7.0", @@ -2784,7 +2738,7 @@ version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.10.0", + "indexmap 2.11.1", "serde", "serde_spanned 0.6.9", "toml_datetime 0.6.11", @@ -2862,21 +2816,21 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" dependencies = [ - "log 0.4.27", + "log 0.4.28", "once_cell", "tracing-core", ] [[package]] name = "tracing-subscriber" -version = "0.3.19" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" dependencies = [ "matchers", "nu-ansi-term", "once_cell", - "regex", + "regex-automata", "sharded-slab", "smallvec", "thread_local", @@ -2887,13 +2841,14 @@ dependencies = [ [[package]] name = "tree-sitter" -version = "0.24.6" +version = "0.25.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f2434c86ba59ed15af56039cc5bf1acf8ba76ce301e32ef08827388ef285ec5" +checksum = "ccd2a058a86cfece0bf96f7cce1021efef9c8ed0e892ab74639173e5ed7a34fa" dependencies = [ "cc", "regex", - "regex-syntax 0.8.5", + "regex-syntax", + "serde_json", "streaming-iterator", "tree-sitter-language", ] @@ -2920,9 +2875,9 @@ dependencies = [ [[package]] name = "tree-sitter-language" -version = "0.1.3" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c199356c799a8945965bb5f2c55b2ad9d9aa7c4b4f6e587fe9dea0bc715e5f9c" +checksum = "c4013970217383f67b18aef68f6fb2e8d409bc5755227092d32efb0422ba24b8" [[package]] name = "tree-sitter-ql" @@ -2983,9 +2938,9 @@ checksum = "a3e5df347f0bf3ec1d670aad6ca5c6a1859cd9ea61d2113125794654ccced68f" [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" [[package]] name = "unicode-properties" @@ -3007,13 +2962,14 @@ checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" [[package]] name = "url" -version = "2.5.4" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", "idna", "percent-encoding", + "serde", ] [[package]] @@ -3058,33 +3014,43 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" -version = "0.14.2+wasi-0.2.4" +version = "0.14.5+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +checksum = "a4494f6290a82f5fe584817a676a34b9d6763e8d9d18204009fb31dceca98fd4" dependencies = [ - "wit-bindgen-rt", + "wasip2", +] + +[[package]] +name = "wasip2" +version = "1.0.0+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03fa2761397e5bd52002cd7e73110c71af2109aca4e521a9f40473fe685b0a24" +dependencies = [ + "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", + "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +checksum = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb" dependencies = [ "bumpalo", - "log 0.4.27", + "log 0.4.28", "proc-macro2", "quote", "syn", @@ -3093,9 +3059,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3103,9 +3069,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa" dependencies = [ "proc-macro2", "quote", @@ -3116,44 +3082,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1" dependencies = [ "unicode-ident", ] -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - [[package]] name = "winapi-util" -version = "0.1.9" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.0", ] -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - [[package]] name = "windows-core" version = "0.61.2" @@ -3162,7 +3106,7 @@ checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ "windows-implement", "windows-interface", - "windows-link", + "windows-link 0.1.3", "windows-result", "windows-strings", ] @@ -3195,13 +3139,19 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" +[[package]] +name = "windows-link" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" + [[package]] name = "windows-result" version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -3210,16 +3160,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", + "windows-link 0.1.3", ] [[package]] @@ -3246,22 +3187,16 @@ version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.53.2", + "windows-targets 0.53.3", ] [[package]] -name = "windows-targets" -version = "0.48.5" +name = "windows-sys" +version = "0.61.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", + "windows-link 0.2.0", ] [[package]] @@ -3282,10 +3217,11 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.2" +version = "0.53.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" +checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" dependencies = [ + "windows-link 0.1.3", "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", "windows_i686_gnu 0.53.0", @@ -3296,12 +3232,6 @@ dependencies = [ "windows_x86_64_msvc 0.53.0", ] -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" @@ -3314,12 +3244,6 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" @@ -3332,12 +3256,6 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -3362,12 +3280,6 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - [[package]] name = "windows_i686_msvc" version = "0.52.6" @@ -3380,12 +3292,6 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" @@ -3398,12 +3304,6 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" @@ -3416,12 +3316,6 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - [[package]] name = "windows_x86_64_msvc" version = "0.52.6" @@ -3436,21 +3330,18 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" -version = "0.7.11" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74c7b26e3480b707944fc872477815d29a8e429d2f93a1ce000f5fa84a15cbcd" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" dependencies = [ "memchr", ] [[package]] -name = "wit-bindgen-rt" -version = "0.39.0" +name = "wit-bindgen" +version = "0.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" -dependencies = [ - "bitflags 2.9.1", -] +checksum = "5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36" [[package]] name = "writeable" @@ -3490,18 +3381,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.26" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.26" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ "proc-macro2", "quote", @@ -3542,9 +3433,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.2" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" +checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" dependencies = [ "yoke", "zerofrom", @@ -3582,9 +3473,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.15+zstd.1.5.7" +version = "2.0.16+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" +checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" dependencies = [ "cc", "pkg-config", diff --git a/MODULE.bazel b/MODULE.bazel index c2dc258aaac..9d09fc99722 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -89,8 +89,8 @@ use_repo( "vendor_py__cc-1.2.14", "vendor_py__clap-4.5.30", "vendor_py__regex-1.11.1", - "vendor_py__tree-sitter-0.20.4", - "vendor_py__tree-sitter-graph-0.7.0", + "vendor_py__tree-sitter-0.24.7", + "vendor_py__tree-sitter-graph-0.12.0", ) # deps for ruby+rust @@ -101,50 +101,50 @@ use_repo( "vendor_ts__anyhow-1.0.99", "vendor_ts__argfile-0.2.1", "vendor_ts__chalk-ir-0.104.0", - "vendor_ts__chrono-0.4.41", - "vendor_ts__clap-4.5.44", + "vendor_ts__chrono-0.4.42", + "vendor_ts__clap-4.5.47", "vendor_ts__dunce-1.0.5", "vendor_ts__either-1.15.0", "vendor_ts__encoding-0.2.33", "vendor_ts__figment-0.10.19", - "vendor_ts__flate2-1.1.0", + "vendor_ts__flate2-1.1.2", "vendor_ts__glob-0.3.3", - "vendor_ts__globset-0.4.15", + "vendor_ts__globset-0.4.16", "vendor_ts__itertools-0.14.0", "vendor_ts__lazy_static-1.5.0", "vendor_ts__mustache-0.9.0", "vendor_ts__num-traits-0.2.19", "vendor_ts__num_cpus-1.17.0", - "vendor_ts__proc-macro2-1.0.97", + "vendor_ts__proc-macro2-1.0.101", "vendor_ts__quote-1.0.40", - "vendor_ts__ra_ap_base_db-0.0.300", - "vendor_ts__ra_ap_cfg-0.0.300", - "vendor_ts__ra_ap_hir-0.0.300", - "vendor_ts__ra_ap_hir_def-0.0.300", - "vendor_ts__ra_ap_hir_expand-0.0.300", - "vendor_ts__ra_ap_hir_ty-0.0.300", - "vendor_ts__ra_ap_ide_db-0.0.300", - "vendor_ts__ra_ap_intern-0.0.300", - "vendor_ts__ra_ap_load-cargo-0.0.300", - "vendor_ts__ra_ap_parser-0.0.300", - "vendor_ts__ra_ap_paths-0.0.300", - "vendor_ts__ra_ap_project_model-0.0.300", - "vendor_ts__ra_ap_span-0.0.300", - "vendor_ts__ra_ap_stdx-0.0.300", - "vendor_ts__ra_ap_syntax-0.0.300", - "vendor_ts__ra_ap_vfs-0.0.300", + "vendor_ts__ra_ap_base_db-0.0.301", + "vendor_ts__ra_ap_cfg-0.0.301", + "vendor_ts__ra_ap_hir-0.0.301", + "vendor_ts__ra_ap_hir_def-0.0.301", + "vendor_ts__ra_ap_hir_expand-0.0.301", + "vendor_ts__ra_ap_hir_ty-0.0.301", + "vendor_ts__ra_ap_ide_db-0.0.301", + "vendor_ts__ra_ap_intern-0.0.301", + "vendor_ts__ra_ap_load-cargo-0.0.301", + "vendor_ts__ra_ap_parser-0.0.301", + "vendor_ts__ra_ap_paths-0.0.301", + "vendor_ts__ra_ap_project_model-0.0.301", + "vendor_ts__ra_ap_span-0.0.301", + "vendor_ts__ra_ap_stdx-0.0.301", + "vendor_ts__ra_ap_syntax-0.0.301", + "vendor_ts__ra_ap_vfs-0.0.301", "vendor_ts__rand-0.9.2", - "vendor_ts__rayon-1.10.0", - "vendor_ts__regex-1.11.1", + "vendor_ts__rayon-1.11.0", + "vendor_ts__regex-1.11.2", "vendor_ts__serde-1.0.219", - "vendor_ts__serde_json-1.0.142", + "vendor_ts__serde_json-1.0.143", "vendor_ts__serde_with-3.14.0", - "vendor_ts__syn-2.0.104", + "vendor_ts__syn-2.0.106", "vendor_ts__toml-0.9.5", "vendor_ts__tracing-0.1.41", "vendor_ts__tracing-flame-0.2.0", - "vendor_ts__tracing-subscriber-0.3.19", - "vendor_ts__tree-sitter-0.24.6", + "vendor_ts__tracing-subscriber-0.3.20", + "vendor_ts__tree-sitter-0.25.9", "vendor_ts__tree-sitter-embedded-template-0.23.2", "vendor_ts__tree-sitter-json-0.24.8", "vendor_ts__tree-sitter-ql-0.23.1", diff --git a/actions/ql/lib/CHANGELOG.md b/actions/ql/lib/CHANGELOG.md index 5009104e9af..60f6a45ea94 100644 --- a/actions/ql/lib/CHANGELOG.md +++ b/actions/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.4.17 + +No user-facing changes. + ## 0.4.16 No user-facing changes. diff --git a/actions/ql/lib/change-notes/released/0.4.17.md b/actions/ql/lib/change-notes/released/0.4.17.md new file mode 100644 index 00000000000..30a27b84b73 --- /dev/null +++ b/actions/ql/lib/change-notes/released/0.4.17.md @@ -0,0 +1,3 @@ +## 0.4.17 + +No user-facing changes. diff --git a/actions/ql/lib/codeql-pack.release.yml b/actions/ql/lib/codeql-pack.release.yml index 0664e01a1dd..d5b31a0cac9 100644 --- a/actions/ql/lib/codeql-pack.release.yml +++ b/actions/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.4.16 +lastReleaseVersion: 0.4.17 diff --git a/actions/ql/lib/qlpack.yml b/actions/ql/lib/qlpack.yml index 311ef4d5ef6..266007af096 100644 --- a/actions/ql/lib/qlpack.yml +++ b/actions/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-all -version: 0.4.17-dev +version: 0.4.18-dev library: true warnOnImplicitThis: true dependencies: diff --git a/actions/ql/src/CHANGELOG.md b/actions/ql/src/CHANGELOG.md index 265e67e6a89..78b4591c521 100644 --- a/actions/ql/src/CHANGELOG.md +++ b/actions/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.6.9 + +### Minor Analysis Improvements + +* Actions analysis now reports file coverage information on the CodeQL status page. + ## 0.6.8 No user-facing changes. diff --git a/actions/ql/src/change-notes/2025-09-05-file-coverage.md b/actions/ql/src/change-notes/released/0.6.9.md similarity index 66% rename from actions/ql/src/change-notes/2025-09-05-file-coverage.md rename to actions/ql/src/change-notes/released/0.6.9.md index 27f02614647..fd1d956946b 100644 --- a/actions/ql/src/change-notes/2025-09-05-file-coverage.md +++ b/actions/ql/src/change-notes/released/0.6.9.md @@ -1,4 +1,5 @@ ---- -category: minorAnalysis ---- +## 0.6.9 + +### Minor Analysis Improvements + * Actions analysis now reports file coverage information on the CodeQL status page. diff --git a/actions/ql/src/codeql-pack.release.yml b/actions/ql/src/codeql-pack.release.yml index cad7cba6ce3..f03da398190 100644 --- a/actions/ql/src/codeql-pack.release.yml +++ b/actions/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.6.8 +lastReleaseVersion: 0.6.9 diff --git a/actions/ql/src/qlpack.yml b/actions/ql/src/qlpack.yml index 4eae56a5c13..e4a69c7cd61 100644 --- a/actions/ql/src/qlpack.yml +++ b/actions/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-queries -version: 0.6.9-dev +version: 0.6.10-dev library: false warnOnImplicitThis: true groups: [actions, queries] diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index 705432b565d..cfe24937b74 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -1,3 +1,13 @@ +## 5.6.0 + +### Deprecated APIs + +* The predicate `getAContructorCall` in the class `SslContextClass` has been deprecated. Use `getAConstructorCall` instead. + +### New Features + +* Added predicates `getTransitiveNumberOfVlaDimensionStmts`, `getTransitiveVlaDimensionStmt`, and `getParentVlaDecl` to `VlaDeclStmt` for handling `VlaDeclStmt`s whose base type is defined in terms of another `VlaDeclStmt` via a `typedef`. + ## 5.5.0 ### New Features diff --git a/cpp/ql/lib/change-notes/2025-09-03-rename-api.md b/cpp/ql/lib/change-notes/2025-09-03-rename-api.md deleted file mode 100644 index 23c9fa3c046..00000000000 --- a/cpp/ql/lib/change-notes/2025-09-03-rename-api.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: deprecated ---- -* The predicate `getAContructorCall` in the class `SslContextClass` has been deprecated. Use `getAConstructorCall` instead. diff --git a/cpp/ql/lib/change-notes/2025-09-02-vla.md b/cpp/ql/lib/change-notes/released/5.6.0.md similarity index 57% rename from cpp/ql/lib/change-notes/2025-09-02-vla.md rename to cpp/ql/lib/change-notes/released/5.6.0.md index 0f945b565a6..a21fadb3bf3 100644 --- a/cpp/ql/lib/change-notes/2025-09-02-vla.md +++ b/cpp/ql/lib/change-notes/released/5.6.0.md @@ -1,4 +1,9 @@ ---- -category: feature ---- +## 5.6.0 + +### Deprecated APIs + +* The predicate `getAContructorCall` in the class `SslContextClass` has been deprecated. Use `getAConstructorCall` instead. + +### New Features + * Added predicates `getTransitiveNumberOfVlaDimensionStmts`, `getTransitiveVlaDimensionStmt`, and `getParentVlaDecl` to `VlaDeclStmt` for handling `VlaDeclStmt`s whose base type is defined in terms of another `VlaDeclStmt` via a `typedef`. diff --git a/cpp/ql/lib/codeql-pack.release.yml b/cpp/ql/lib/codeql-pack.release.yml index 4b8cf9533c1..df73323b21f 100644 --- a/cpp/ql/lib/codeql-pack.release.yml +++ b/cpp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.5.0 +lastReleaseVersion: 5.6.0 diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 2b9af14a4b3..63500a12a2f 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 5.5.1-dev +version: 5.6.1-dev groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/CHANGELOG.md b/cpp/ql/src/CHANGELOG.md index eb805dc1af6..0cafbd23191 100644 --- a/cpp/ql/src/CHANGELOG.md +++ b/cpp/ql/src/CHANGELOG.md @@ -1,3 +1,15 @@ +## 1.5.0 + +### Major Analysis Improvements + +* The queries `cpp/wrong-type-format-argument`, `cpp/comparison-with-wider-type`, `cpp/integer-multiplication-cast-to-long`, `cpp/implicit-function-declaration` and `cpp/suspicious-add-sizeof` have had their precisions reduced from `high` to `medium`. They will also now give alerts for projects built with `build-mode: none`. +* The queries `cpp/wrong-type-format-argument`, `cpp/comparison-with-wider-type`, `cpp/integer-multiplication-cast-to-long` and `cpp/suspicious-add-sizeof` are no longer included in the `code-scanning` suite. + +### Bug Fixes + +* The predicate `occurenceCount` in the file module `MagicConstants` has been deprecated. Use `occurrenceCount` instead. +* The predicate `additionalAdditionOrSubstractionCheckForLeapYear` in the file module `LeapYear` has been deprecated. Use `additionalAdditionOrSubtractionCheckForLeapYear` instead. + ## 1.4.7 ### Bug Fixes diff --git a/cpp/ql/src/Security/CWE/CWE-120/UnboundedWrite.ql b/cpp/ql/src/Security/CWE/CWE-120/UnboundedWrite.ql index 2cce72bc2ae..ff9bc59b716 100644 --- a/cpp/ql/src/Security/CWE/CWE-120/UnboundedWrite.ql +++ b/cpp/ql/src/Security/CWE/CWE-120/UnboundedWrite.ql @@ -109,7 +109,7 @@ predicate lessThanOrEqual(IRGuardCondition g, Expr e, boolean branch) { g.comparesEq(left, _, _, true, branch) | interestingLessThanOrEqual(left) and - left.getDef().getUnconvertedResultExpression() = e + left.getDef().getConvertedResultExpression() = e ) } diff --git a/cpp/ql/src/change-notes/2025-09-03-rename-api.md b/cpp/ql/src/change-notes/2025-09-03-rename-api.md deleted file mode 100644 index 5fd788ef76f..00000000000 --- a/cpp/ql/src/change-notes/2025-09-03-rename-api.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: fix ---- -* The predicate `occurenceCount` in the file module `MagicConstants` has been deprecated. Use `occurrenceCount` instead. -* The predicate `additionalAdditionOrSubstractionCheckForLeapYear` in the file module `LeapYear` has been deprecated. Use `additionalAdditionOrSubtractionCheckForLeapYear` instead. diff --git a/cpp/ql/src/change-notes/2025-09-11-queries-demoted.md b/cpp/ql/src/change-notes/released/1.5.0.md similarity index 59% rename from cpp/ql/src/change-notes/2025-09-11-queries-demoted.md rename to cpp/ql/src/change-notes/released/1.5.0.md index 7150c08206b..383825331ff 100644 --- a/cpp/ql/src/change-notes/2025-09-11-queries-demoted.md +++ b/cpp/ql/src/change-notes/released/1.5.0.md @@ -1,5 +1,11 @@ ---- -category: majorAnalysis ---- +## 1.5.0 + +### Major Analysis Improvements + * The queries `cpp/wrong-type-format-argument`, `cpp/comparison-with-wider-type`, `cpp/integer-multiplication-cast-to-long`, `cpp/implicit-function-declaration` and `cpp/suspicious-add-sizeof` have had their precisions reduced from `high` to `medium`. They will also now give alerts for projects built with `build-mode: none`. * The queries `cpp/wrong-type-format-argument`, `cpp/comparison-with-wider-type`, `cpp/integer-multiplication-cast-to-long` and `cpp/suspicious-add-sizeof` are no longer included in the `code-scanning` suite. + +### Bug Fixes + +* The predicate `occurenceCount` in the file module `MagicConstants` has been deprecated. Use `occurrenceCount` instead. +* The predicate `additionalAdditionOrSubstractionCheckForLeapYear` in the file module `LeapYear` has been deprecated. Use `additionalAdditionOrSubtractionCheckForLeapYear` instead. diff --git a/cpp/ql/src/codeql-pack.release.yml b/cpp/ql/src/codeql-pack.release.yml index 163362bd632..639f80c4341 100644 --- a/cpp/ql/src/codeql-pack.release.yml +++ b/cpp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.4.7 +lastReleaseVersion: 1.5.0 diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 18637c336b9..8b6b27302cc 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 1.4.8-dev +version: 1.5.1-dev groups: - cpp - queries diff --git a/cpp/ql/test/library-tests/dataflow/dataflow-tests/dataflow-consistency.expected b/cpp/ql/test/library-tests/dataflow/dataflow-tests/dataflow-consistency.expected index cb25f1a21e3..ff41f299f9c 100644 --- a/cpp/ql/test/library-tests/dataflow/dataflow-tests/dataflow-consistency.expected +++ b/cpp/ql/test/library-tests/dataflow/dataflow-tests/dataflow-consistency.expected @@ -50,37 +50,21 @@ argHasPostUpdate postWithInFlow | BarrierGuard.cpp:49:6:49:6 | x [post update] | PostUpdateNode should not be the target of local flow. | | BarrierGuard.cpp:60:7:60:7 | x [post update] | PostUpdateNode should not be the target of local flow. | -| clang.cpp:22:9:22:20 | sourceArray1 [inner post update] | PostUpdateNode should not be the target of local flow. | -| clang.cpp:23:18:23:29 | sourceArray1 [inner post update] | PostUpdateNode should not be the target of local flow. | | clang.cpp:29:22:29:23 | m1 [post update] | PostUpdateNode should not be the target of local flow. | -| clang.cpp:51:3:51:12 | stackArray [inner post update] | PostUpdateNode should not be the target of local flow. | | clang.cpp:51:3:51:15 | access to array [post update] | PostUpdateNode should not be the target of local flow. | | dispatch.cpp:60:3:60:14 | globalBottom [post update] | PostUpdateNode should not be the target of local flow. | | dispatch.cpp:61:3:61:14 | globalMiddle [post update] | PostUpdateNode should not be the target of local flow. | -| dispatch.cpp:78:24:78:37 | call to allocateBottom [inner post update] | PostUpdateNode should not be the target of local flow. | | dispatch.cpp:148:5:148:5 | f [post update] | PostUpdateNode should not be the target of local flow. | | dispatch.cpp:168:8:168:8 | f [post update] | PostUpdateNode should not be the target of local flow. | | example.c:24:9:24:9 | x [post update] | PostUpdateNode should not be the target of local flow. | | example.c:24:20:24:20 | y [post update] | PostUpdateNode should not be the target of local flow. | | example.c:26:9:26:9 | x [post update] | PostUpdateNode should not be the target of local flow. | -| example.c:26:19:26:24 | coords [inner post update] | PostUpdateNode should not be the target of local flow. | -| example.c:28:23:28:25 | pos [inner post update] | PostUpdateNode should not be the target of local flow. | | flowOut.cpp:5:5:5:12 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| flowOut.cpp:5:6:5:12 | toTaint [inner post update] | PostUpdateNode should not be the target of local flow. | | flowOut.cpp:8:5:8:12 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| flowOut.cpp:8:6:8:12 | toTaint [inner post update] | PostUpdateNode should not be the target of local flow. | -| flowOut.cpp:18:17:18:17 | x [inner post update] | PostUpdateNode should not be the target of local flow. | -| flowOut.cpp:30:12:30:12 | x [inner post update] | PostUpdateNode should not be the target of local flow. | -| flowOut.cpp:37:5:37:6 | p2 [inner post update] | PostUpdateNode should not be the target of local flow. | | flowOut.cpp:37:5:37:9 | access to array [post update] | PostUpdateNode should not be the target of local flow. | -| flowOut.cpp:84:3:84:7 | call to deref [inner post update] | PostUpdateNode should not be the target of local flow. | | flowOut.cpp:84:3:84:14 | access to array [post update] | PostUpdateNode should not be the target of local flow. | -| flowOut.cpp:84:10:84:10 | p [inner post update] | PostUpdateNode should not be the target of local flow. | | flowOut.cpp:90:3:90:4 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| flowOut.cpp:90:4:90:4 | q [inner post update] | PostUpdateNode should not be the target of local flow. | -| flowOut.cpp:101:14:101:14 | p [inner post update] | PostUpdateNode should not be the target of local flow. | | flowOut.cpp:168:3:168:10 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| flowOut.cpp:168:4:168:10 | toTaint [inner post update] | PostUpdateNode should not be the target of local flow. | | globals.cpp:13:5:13:19 | flowTestGlobal1 [post update] | PostUpdateNode should not be the target of local flow. | | globals.cpp:23:5:23:19 | flowTestGlobal2 [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:23:3:23:14 | v [post update] | PostUpdateNode should not be the target of local flow. | @@ -106,57 +90,30 @@ postWithInFlow | ref.cpp:109:9:109:11 | val [post update] | PostUpdateNode should not be the target of local flow. | | ref.cpp:113:11:113:13 | val [post update] | PostUpdateNode should not be the target of local flow. | | ref.cpp:115:11:115:13 | val [post update] | PostUpdateNode should not be the target of local flow. | -| self_parameter_flow.cpp:3:4:3:5 | ps [inner post update] | PostUpdateNode should not be the target of local flow. | -| self_parameter_flow.cpp:8:9:8:9 | s [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:91:3:91:9 | source1 [post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:115:3:115:6 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:115:4:115:6 | out [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:120:3:120:6 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:120:4:120:6 | out [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:125:3:125:6 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:125:4:125:6 | out [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:333:5:333:13 | globalVar [post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:347:5:347:13 | globalVar [post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:359:5:359:9 | field [post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:373:5:373:9 | field [post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:384:10:384:13 | ref arg & ... | PostUpdateNode should not be the target of local flow. | -| test.cpp:384:11:384:13 | tmp [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:391:10:391:13 | ref arg & ... | PostUpdateNode should not be the target of local flow. | -| test.cpp:391:11:391:13 | tmp [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:400:10:400:13 | ref arg & ... | PostUpdateNode should not be the target of local flow. | -| test.cpp:400:11:400:13 | tmp [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:407:10:407:13 | ref arg & ... | PostUpdateNode should not be the target of local flow. | -| test.cpp:407:11:407:13 | tmp [inner post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:423:21:423:25 | local [inner post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:441:19:441:23 | local [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:472:3:472:4 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:472:4:472:4 | p [inner post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:477:22:477:22 | x [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:506:3:506:4 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:506:4:506:4 | p [inner post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:512:35:512:35 | x [inner post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:519:3:519:12 | stackArray [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:519:3:519:15 | access to array [post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:520:3:520:12 | stackArray [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:520:3:520:15 | access to array [post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:526:3:526:4 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:526:4:526:4 | e [inner post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:531:40:531:40 | e [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:537:5:537:6 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:537:6:537:6 | p [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:542:5:542:6 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:542:6:542:6 | p [inner post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:548:25:548:25 | x [inner post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:552:25:552:25 | y [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:562:5:562:13 | globalInt [post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:576:5:576:13 | globalInt [post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:589:19:589:19 | x [inner post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:596:3:596:4 | xs [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:596:3:596:7 | access to array [post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:602:3:602:3 | p [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:602:3:602:7 | access to array [post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:608:3:608:4 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:608:4:608:4 | p [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:639:3:639:3 | x [post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:646:3:646:3 | x [post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:652:3:652:3 | x [post update] | PostUpdateNode should not be the target of local flow. | @@ -167,40 +124,23 @@ postWithInFlow | test.cpp:681:3:681:3 | s [post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:689:3:689:3 | s [post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:690:3:690:3 | s [post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:694:4:694:6 | buf [inner post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:704:23:704:25 | buf [inner post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:715:25:715:25 | c [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:728:3:728:4 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:728:4:728:4 | p [inner post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:734:41:734:41 | x [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:808:5:808:21 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:808:6:808:21 | global_indirect1 [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:832:5:832:17 | global_direct [post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:931:5:931:18 | global_pointer [post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:932:5:932:19 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:932:6:932:19 | global_pointer [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:1045:9:1045:11 | ref arg buf | PostUpdateNode should not be the target of local flow. | | test.cpp:1066:5:1066:5 | i [post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:1069:5:1069:5 | i [post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:1087:5:1087:11 | content [post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:1088:9:1088:9 | a [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:1092:5:1092:7 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:1092:6:1092:7 | pp [inner post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:1098:53:1098:53 | p [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:1108:3:1108:4 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:1108:4:1108:4 | p [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:1109:3:1109:4 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:1109:4:1109:4 | p [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:1138:3:1138:13 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:1138:5:1138:8 | data [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:1139:3:1139:7 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:1139:4:1139:7 | data [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:1153:5:1153:6 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:1153:6:1153:6 | p [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:1165:5:1165:6 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:1165:6:1165:6 | p [inner post update] | PostUpdateNode should not be the target of local flow. | | test.cpp:1195:5:1195:6 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| test.cpp:1195:6:1195:6 | p [inner post update] | PostUpdateNode should not be the target of local flow. | viableImplInCallContextTooLarge uniqueParameterNodeAtPosition uniqueParameterNodePosition diff --git a/cpp/ql/test/library-tests/dataflow/fields/dataflow-consistency.expected b/cpp/ql/test/library-tests/dataflow/fields/dataflow-consistency.expected index 88dd9751f27..4021dbc492a 100644 --- a/cpp/ql/test/library-tests/dataflow/fields/dataflow-consistency.expected +++ b/cpp/ql/test/library-tests/dataflow/fields/dataflow-consistency.expected @@ -48,8 +48,6 @@ argHasPostUpdate postWithInFlow | A.cpp:25:13:25:13 | c [post update] | PostUpdateNode should not be the target of local flow. | | A.cpp:27:28:27:28 | c [post update] | PostUpdateNode should not be the target of local flow. | -| A.cpp:42:11:42:12 | cc [inner post update] | PostUpdateNode should not be the target of local flow. | -| A.cpp:43:11:43:12 | ct [inner post update] | PostUpdateNode should not be the target of local flow. | | A.cpp:100:9:100:9 | a [post update] | PostUpdateNode should not be the target of local flow. | | A.cpp:142:10:142:10 | c [post update] | PostUpdateNode should not be the target of local flow. | | A.cpp:143:13:143:13 | b [post update] | PostUpdateNode should not be the target of local flow. | @@ -67,11 +65,9 @@ postWithInFlow | D.cpp:44:19:44:22 | elem [post update] | PostUpdateNode should not be the target of local flow. | | D.cpp:57:5:57:12 | boxfield [post update] | PostUpdateNode should not be the target of local flow. | | D.cpp:58:20:58:23 | elem [post update] | PostUpdateNode should not be the target of local flow. | -| E.cpp:33:19:33:19 | p [inner post update] | PostUpdateNode should not be the target of local flow. | | aliasing.cpp:9:6:9:7 | m1 [post update] | PostUpdateNode should not be the target of local flow. | | aliasing.cpp:13:5:13:6 | m1 [post update] | PostUpdateNode should not be the target of local flow. | | aliasing.cpp:17:5:17:6 | m1 [post update] | PostUpdateNode should not be the target of local flow. | -| aliasing.cpp:25:18:25:19 | s1 [inner post update] | PostUpdateNode should not be the target of local flow. | | aliasing.cpp:37:8:37:9 | m1 [post update] | PostUpdateNode should not be the target of local flow. | | aliasing.cpp:42:6:42:7 | m1 [post update] | PostUpdateNode should not be the target of local flow. | | aliasing.cpp:49:9:49:10 | m1 [post update] | PostUpdateNode should not be the target of local flow. | @@ -83,70 +79,31 @@ postWithInFlow | aliasing.cpp:92:7:92:8 | m1 [post update] | PostUpdateNode should not be the target of local flow. | | aliasing.cpp:98:5:98:6 | m1 [post update] | PostUpdateNode should not be the target of local flow. | | aliasing.cpp:106:3:106:5 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| aliasing.cpp:106:4:106:5 | pa [inner post update] | PostUpdateNode should not be the target of local flow. | -| aliasing.cpp:111:18:111:19 | m1 [inner post update] | PostUpdateNode should not be the target of local flow. | -| aliasing.cpp:126:15:126:16 | xs [inner post update] | PostUpdateNode should not be the target of local flow. | -| aliasing.cpp:136:16:136:17 | xs [inner post update] | PostUpdateNode should not be the target of local flow. | -| aliasing.cpp:147:16:147:16 | s [inner post update] | PostUpdateNode should not be the target of local flow. | -| aliasing.cpp:147:21:147:22 | m1 [inner post update] | PostUpdateNode should not be the target of local flow. | -| aliasing.cpp:175:21:175:22 | m1 [inner post update] | PostUpdateNode should not be the target of local flow. | -| aliasing.cpp:181:21:181:22 | m1 [inner post update] | PostUpdateNode should not be the target of local flow. | -| aliasing.cpp:187:21:187:22 | m1 [inner post update] | PostUpdateNode should not be the target of local flow. | -| aliasing.cpp:194:21:194:22 | m1 [inner post update] | PostUpdateNode should not be the target of local flow. | -| aliasing.cpp:200:23:200:24 | m1 [inner post update] | PostUpdateNode should not be the target of local flow. | -| aliasing.cpp:205:23:205:24 | m1 [inner post update] | PostUpdateNode should not be the target of local flow. | | aliasing.cpp:215:14:215:15 | m1 [post update] | PostUpdateNode should not be the target of local flow. | | aliasing.cpp:223:17:223:18 | m1 [post update] | PostUpdateNode should not be the target of local flow. | | aliasing.cpp:234:19:234:20 | m1 [post update] | PostUpdateNode should not be the target of local flow. | | aliasing.cpp:242:22:242:23 | m1 [post update] | PostUpdateNode should not be the target of local flow. | | aliasing.cpp:252:5:252:31 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| aliasing.cpp:252:28:252:31 | data [inner post update] | PostUpdateNode should not be the target of local flow. | | aliasing.cpp:262:5:262:29 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| aliasing.cpp:262:26:262:29 | data [inner post update] | PostUpdateNode should not be the target of local flow. | -| arrays.cpp:6:3:6:5 | arr [inner post update] | PostUpdateNode should not be the target of local flow. | | arrays.cpp:6:3:6:8 | access to array [post update] | PostUpdateNode should not be the target of local flow. | | arrays.cpp:15:3:15:10 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| arrays.cpp:15:5:15:7 | arr [inner post update] | PostUpdateNode should not be the target of local flow. | -| arrays.cpp:36:12:36:14 | arr [inner post update] | PostUpdateNode should not be the target of local flow. | | arrays.cpp:36:19:36:22 | data [post update] | PostUpdateNode should not be the target of local flow. | -| arrays.cpp:37:17:37:19 | arr [inner post update] | PostUpdateNode should not be the target of local flow. | -| arrays.cpp:38:17:38:19 | arr [inner post update] | PostUpdateNode should not be the target of local flow. | -| arrays.cpp:42:15:42:17 | arr [inner post update] | PostUpdateNode should not be the target of local flow. | | arrays.cpp:42:22:42:25 | data [post update] | PostUpdateNode should not be the target of local flow. | -| arrays.cpp:43:20:43:22 | arr [inner post update] | PostUpdateNode should not be the target of local flow. | -| arrays.cpp:44:20:44:22 | arr [inner post update] | PostUpdateNode should not be the target of local flow. | -| arrays.cpp:48:15:48:17 | ptr [inner post update] | PostUpdateNode should not be the target of local flow. | | arrays.cpp:48:22:48:25 | data [post update] | PostUpdateNode should not be the target of local flow. | -| arrays.cpp:49:20:49:22 | ptr [inner post update] | PostUpdateNode should not be the target of local flow. | -| arrays.cpp:50:20:50:22 | ptr [inner post update] | PostUpdateNode should not be the target of local flow. | | by_reference.cpp:12:8:12:8 | a [post update] | PostUpdateNode should not be the target of local flow. | | by_reference.cpp:16:11:16:11 | a [post update] | PostUpdateNode should not be the target of local flow. | -| by_reference.cpp:68:18:68:18 | s [inner post update] | PostUpdateNode should not be the target of local flow. | | by_reference.cpp:84:10:84:10 | a [post update] | PostUpdateNode should not be the target of local flow. | | by_reference.cpp:88:9:88:9 | a [post update] | PostUpdateNode should not be the target of local flow. | | by_reference.cpp:92:3:92:5 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| by_reference.cpp:92:4:92:5 | pa [inner post update] | PostUpdateNode should not be the target of local flow. | | by_reference.cpp:96:3:96:4 | pa [post update] | PostUpdateNode should not be the target of local flow. | -| by_reference.cpp:102:28:102:39 | inner_nested [inner post update] | PostUpdateNode should not be the target of local flow. | -| by_reference.cpp:104:22:104:22 | a [inner post update] | PostUpdateNode should not be the target of local flow. | -| by_reference.cpp:106:30:106:41 | inner_nested [inner post update] | PostUpdateNode should not be the target of local flow. | -| by_reference.cpp:108:24:108:24 | a [inner post update] | PostUpdateNode should not be the target of local flow. | -| by_reference.cpp:123:28:123:36 | inner_ptr [inner post update] | PostUpdateNode should not be the target of local flow. | -| by_reference.cpp:127:30:127:38 | inner_ptr [inner post update] | PostUpdateNode should not be the target of local flow. | | clearning.cpp:19:3:19:6 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| clearning.cpp:19:6:19:6 | x [inner post update] | PostUpdateNode should not be the target of local flow. | | clearning.cpp:32:3:32:6 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| clearning.cpp:32:6:32:6 | x [inner post update] | PostUpdateNode should not be the target of local flow. | | clearning.cpp:39:3:39:6 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| clearning.cpp:39:6:39:6 | x [inner post update] | PostUpdateNode should not be the target of local flow. | | clearning.cpp:40:5:40:5 | x [post update] | PostUpdateNode should not be the target of local flow. | | clearning.cpp:47:5:47:5 | x [post update] | PostUpdateNode should not be the target of local flow. | | clearning.cpp:53:3:53:6 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| clearning.cpp:53:6:53:6 | x [inner post update] | PostUpdateNode should not be the target of local flow. | | clearning.cpp:75:2:75:10 | access to array [post update] | PostUpdateNode should not be the target of local flow. | -| clearning.cpp:75:4:75:6 | val [inner post update] | PostUpdateNode should not be the target of local flow. | | clearning.cpp:82:2:82:9 | access to array [post update] | PostUpdateNode should not be the target of local flow. | -| clearning.cpp:82:4:82:6 | val [inner post update] | PostUpdateNode should not be the target of local flow. | | clearning.cpp:83:7:83:9 | val [post update] | PostUpdateNode should not be the target of local flow. | | clearning.cpp:97:4:97:6 | val [post update] | PostUpdateNode should not be the target of local flow. | | clearning.cpp:124:4:124:6 | val [post update] | PostUpdateNode should not be the target of local flow. | @@ -162,7 +119,6 @@ postWithInFlow | complex.cpp:11:22:11:23 | a_ [post update] | PostUpdateNode should not be the target of local flow. | | complex.cpp:12:22:12:23 | b_ [post update] | PostUpdateNode should not be the target of local flow. | | conflated.cpp:10:3:10:7 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| conflated.cpp:10:7:10:7 | p [inner post update] | PostUpdateNode should not be the target of local flow. | | conflated.cpp:29:7:29:7 | x [post update] | PostUpdateNode should not be the target of local flow. | | conflated.cpp:36:7:36:7 | x [post update] | PostUpdateNode should not be the target of local flow. | | conflated.cpp:53:7:53:10 | next [post update] | PostUpdateNode should not be the target of local flow. | @@ -174,19 +130,11 @@ postWithInFlow | qualifiers.cpp:12:56:12:56 | a [post update] | PostUpdateNode should not be the target of local flow. | | qualifiers.cpp:13:57:13:57 | a [post update] | PostUpdateNode should not be the target of local flow. | | qualifiers.cpp:22:23:22:23 | a [post update] | PostUpdateNode should not be the target of local flow. | -| qualifiers.cpp:37:26:37:33 | call to getInner [inner post update] | PostUpdateNode should not be the target of local flow. | -| qualifiers.cpp:42:13:42:20 | call to getInner [inner post update] | PostUpdateNode should not be the target of local flow. | | qualifiers.cpp:42:25:42:25 | a [post update] | PostUpdateNode should not be the target of local flow. | -| qualifiers.cpp:47:7:47:11 | outer [inner post update] | PostUpdateNode should not be the target of local flow. | | qualifiers.cpp:47:27:47:27 | a [post update] | PostUpdateNode should not be the target of local flow. | -| realistic.cpp:49:13:49:15 | bar [inner post update] | PostUpdateNode should not be the target of local flow. | | realistic.cpp:49:20:49:22 | baz [post update] | PostUpdateNode should not be the target of local flow. | -| realistic.cpp:53:13:53:15 | bar [inner post update] | PostUpdateNode should not be the target of local flow. | | realistic.cpp:53:35:53:43 | bufferLen [post update] | PostUpdateNode should not be the target of local flow. | -| realistic.cpp:54:20:54:22 | bar [inner post update] | PostUpdateNode should not be the target of local flow. | | realistic.cpp:60:16:60:18 | ref arg dst | PostUpdateNode should not be the target of local flow. | -| realistic.cpp:61:25:61:27 | bar [inner post update] | PostUpdateNode should not be the target of local flow. | -| realistic.cpp:65:25:65:27 | bar [inner post update] | PostUpdateNode should not be the target of local flow. | | simple.cpp:20:24:20:25 | a_ [post update] | PostUpdateNode should not be the target of local flow. | | simple.cpp:21:24:21:25 | b_ [post update] | PostUpdateNode should not be the target of local flow. | | simple.cpp:65:7:65:7 | i [post update] | PostUpdateNode should not be the target of local flow. | @@ -194,9 +142,6 @@ postWithInFlow | simple.cpp:92:7:92:7 | i [post update] | PostUpdateNode should not be the target of local flow. | | simple.cpp:118:7:118:7 | i [post update] | PostUpdateNode should not be the target of local flow. | | simple.cpp:124:5:124:6 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| simple.cpp:124:6:124:6 | p [inner post update] | PostUpdateNode should not be the target of local flow. | -| struct_init.c:24:11:24:12 | ab [inner post update] | PostUpdateNode should not be the target of local flow. | -| struct_init.c:36:17:36:24 | nestedAB [inner post update] | PostUpdateNode should not be the target of local flow. | viableImplInCallContextTooLarge uniqueParameterNodeAtPosition uniqueParameterNodePosition diff --git a/cpp/ql/test/library-tests/dataflow/models-as-data/consistency.expected b/cpp/ql/test/library-tests/dataflow/models-as-data/consistency.expected index 49b1f021f07..c89f4455bc5 100644 --- a/cpp/ql/test/library-tests/dataflow/models-as-data/consistency.expected +++ b/cpp/ql/test/library-tests/dataflow/models-as-data/consistency.expected @@ -18,7 +18,6 @@ postIsInSameCallable reverseRead argHasPostUpdate postWithInFlow -| tests.cpp:436:6:436:25 | [summary] to write: Argument[1] in madCallArg0WithValue | PostUpdateNode should not be the target of local flow. | viableImplInCallContextTooLarge uniqueParameterNodeAtPosition uniqueParameterNodePosition diff --git a/cpp/ql/test/library-tests/syntax-zoo/dataflow-consistency.expected b/cpp/ql/test/library-tests/syntax-zoo/dataflow-consistency.expected index b516aa0ce87..76adedb8f05 100644 --- a/cpp/ql/test/library-tests/syntax-zoo/dataflow-consistency.expected +++ b/cpp/ql/test/library-tests/syntax-zoo/dataflow-consistency.expected @@ -48,21 +48,10 @@ argHasPostUpdate | ir.cpp:623:5:623:5 | r | ArgumentNode is missing PostUpdateNode. | | ir.cpp:625:5:625:5 | s | ArgumentNode is missing PostUpdateNode. | postWithInFlow -| VacuousDestructorCall.cpp:10:22:10:22 | i [inner post update] | PostUpdateNode should not be the target of local flow. | | allocators.cpp:4:18:4:20 | m_x [post update] | PostUpdateNode should not be the target of local flow. | | allocators.cpp:4:24:4:26 | m_y [post update] | PostUpdateNode should not be the target of local flow. | | assignexpr.cpp:11:4:11:4 | i [post update] | PostUpdateNode should not be the target of local flow. | -| builtin.c:34:23:34:31 | staticint [inner post update] | PostUpdateNode should not be the target of local flow. | -| builtin.c:39:37:39:45 | carry_out [inner post update] | PostUpdateNode should not be the target of local flow. | -| builtin.c:43:41:43:49 | staticint [inner post update] | PostUpdateNode should not be the target of local flow. | -| builtin.c:51:30:51:38 | staticint [inner post update] | PostUpdateNode should not be the target of local flow. | -| builtin.c:54:29:54:38 | atomic_int [inner post update] | PostUpdateNode should not be the target of local flow. | | condition_decls.cpp:3:5:3:9 | m_ptr [post update] | PostUpdateNode should not be the target of local flow. | -| condition_decls.cpp:17:11:17:15 | m_ptr [inner post update] | PostUpdateNode should not be the target of local flow. | -| condition_decls.cpp:20:11:20:15 | m_ptr [inner post update] | PostUpdateNode should not be the target of local flow. | -| condition_decls.cpp:28:11:28:15 | m_ptr [inner post update] | PostUpdateNode should not be the target of local flow. | -| condition_decls.cpp:31:11:31:15 | m_ptr [inner post update] | PostUpdateNode should not be the target of local flow. | -| condition_decls.cpp:34:9:34:13 | m_ptr [inner post update] | PostUpdateNode should not be the target of local flow. | | conditional_destructors.cpp:6:13:6:15 | val [post update] | PostUpdateNode should not be the target of local flow. | | conditional_destructors.cpp:18:13:18:15 | val [post update] | PostUpdateNode should not be the target of local flow. | | cpp11.cpp:7:7:7:8 | el [post update] | PostUpdateNode should not be the target of local flow. | @@ -70,26 +59,16 @@ postWithInFlow | cpp11.cpp:82:11:82:14 | call to Val | PostUpdateNode should not be the target of local flow. | | cpp11.cpp:82:45:82:48 | call to Val | PostUpdateNode should not be the target of local flow. | | cpp11.cpp:82:51:82:51 | call to Val | PostUpdateNode should not be the target of local flow. | -| ir.cpp:177:5:177:5 | p [inner post update] | PostUpdateNode should not be the target of local flow. | | ir.cpp:177:5:177:8 | access to array [post update] | PostUpdateNode should not be the target of local flow. | | ir.cpp:178:5:178:8 | access to array [post update] | PostUpdateNode should not be the target of local flow. | -| ir.cpp:178:7:178:7 | p [inner post update] | PostUpdateNode should not be the target of local flow. | -| ir.cpp:183:5:183:5 | a [inner post update] | PostUpdateNode should not be the target of local flow. | | ir.cpp:183:5:183:8 | access to array [post update] | PostUpdateNode should not be the target of local flow. | | ir.cpp:184:5:184:8 | access to array [post update] | PostUpdateNode should not be the target of local flow. | -| ir.cpp:184:7:184:7 | a [inner post update] | PostUpdateNode should not be the target of local flow. | | ir.cpp:342:5:342:6 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| ir.cpp:342:6:342:6 | p [inner post update] | PostUpdateNode should not be the target of local flow. | | ir.cpp:428:8:428:8 | x [post update] | PostUpdateNode should not be the target of local flow. | | ir.cpp:429:8:429:8 | y [post update] | PostUpdateNode should not be the target of local flow. | | ir.cpp:644:15:644:17 | m_a [post update] | PostUpdateNode should not be the target of local flow. | -| ir.cpp:645:11:645:14 | this [inner post update] | PostUpdateNode should not be the target of local flow. | | ir.cpp:645:17:645:19 | m_a [post update] | PostUpdateNode should not be the target of local flow. | | ir.cpp:646:9:646:11 | m_a [post update] | PostUpdateNode should not be the target of local flow. | -| ir.cpp:655:11:655:14 | this [inner post update] | PostUpdateNode should not be the target of local flow. | -| ir.cpp:747:8:747:8 | base_s [inner post update] | PostUpdateNode should not be the target of local flow. | -| ir.cpp:756:8:756:8 | middle_s [inner post update] | PostUpdateNode should not be the target of local flow. | -| ir.cpp:765:8:765:8 | derived_s [inner post update] | PostUpdateNode should not be the target of local flow. | | ir.cpp:811:7:811:13 | call to Base | PostUpdateNode should not be the target of local flow. | | ir.cpp:812:7:812:26 | call to Base | PostUpdateNode should not be the target of local flow. | | ir.cpp:825:7:825:13 | call to Base | PostUpdateNode should not be the target of local flow. | @@ -97,7 +76,6 @@ postWithInFlow | misc.c:130:7:130:7 | i [post update] | PostUpdateNode should not be the target of local flow. | | misc.c:131:9:131:9 | i [post update] | PostUpdateNode should not be the target of local flow. | | misc.c:220:3:220:5 | * ... [post update] | PostUpdateNode should not be the target of local flow. | -| misc.c:220:4:220:5 | sp [inner post update] | PostUpdateNode should not be the target of local flow. | | static_init_templates.cpp:3:2:3:4 | ref [post update] | PostUpdateNode should not be the target of local flow. | | static_init_templates.cpp:21:2:21:4 | val [post update] | PostUpdateNode should not be the target of local flow. | | try_catch.cpp:7:8:7:8 | call to exception | PostUpdateNode should not be the target of local flow. | diff --git a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md index 7f3f4d43683..41b8b166a6c 100644 --- a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.48 + +No user-facing changes. + ## 1.7.47 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.48.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.48.md new file mode 100644 index 00000000000..5f90b4d6419 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.48.md @@ -0,0 +1,3 @@ +## 1.7.48 + +No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml index 21f0fc0de3c..f5fe8023097 100644 --- a/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml +++ b/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.7.47 +lastReleaseVersion: 1.7.48 diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index 826e53b7681..bc2dd9a229c 100644 --- a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-all -version: 1.7.48-dev +version: 1.7.49-dev groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md index 7f3f4d43683..41b8b166a6c 100644 --- a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.48 + +No user-facing changes. + ## 1.7.47 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.48.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.48.md new file mode 100644 index 00000000000..5f90b4d6419 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.48.md @@ -0,0 +1,3 @@ +## 1.7.48 + +No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml index 21f0fc0de3c..f5fe8023097 100644 --- a/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml +++ b/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.7.47 +lastReleaseVersion: 1.7.48 diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index 468bd64cbd0..82cad1a6472 100644 --- a/csharp/ql/campaigns/Solorigate/src/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-queries -version: 1.7.48-dev +version: 1.7.49-dev groups: - csharp - solorigate diff --git a/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality-extended.qls.expected b/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality-extended.qls.expected index 53810418624..fdc5e6eae9d 100644 --- a/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality-extended.qls.expected +++ b/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality-extended.qls.expected @@ -1,20 +1,39 @@ ql/csharp/ql/src/API Abuse/CallToGCCollect.ql ql/csharp/ql/src/API Abuse/CallToObsoleteMethod.ql +ql/csharp/ql/src/API Abuse/ClassDoesNotImplementEquals.ql ql/csharp/ql/src/API Abuse/ClassImplementsICloneable.ql +ql/csharp/ql/src/API Abuse/DisposeNotCalledOnException.ql ql/csharp/ql/src/API Abuse/FormatInvalid.ql +ql/csharp/ql/src/API Abuse/InconsistentEqualsGetHashCode.ql +ql/csharp/ql/src/API Abuse/IncorrectCompareToSignature.ql +ql/csharp/ql/src/API Abuse/IncorrectEqualsSignature.ql ql/csharp/ql/src/API Abuse/NoDisposeCallOnLocalIDisposable.ql +ql/csharp/ql/src/API Abuse/NonOverridingMethod.ql ql/csharp/ql/src/API Abuse/NullArgumentToEquals.ql ql/csharp/ql/src/ASP/BlockCodeResponseWrite.ql +ql/csharp/ql/src/ASP/SplitControlStructure.ql ql/csharp/ql/src/Bad Practices/CallsUnmanagedCode.ql ql/csharp/ql/src/Bad Practices/CatchOfNullReferenceException.ql +ql/csharp/ql/src/Bad Practices/Comments/CommentedOutCode.ql +ql/csharp/ql/src/Bad Practices/Comments/TodoComments.ql ql/csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql ql/csharp/ql/src/Bad Practices/Declarations/LocalScopeVariableShadowsMember.ql +ql/csharp/ql/src/Bad Practices/Declarations/NoConstantsOnly.ql ql/csharp/ql/src/Bad Practices/EmptyCatchBlock.ql +ql/csharp/ql/src/Bad Practices/ErroneousClassCompare.ql +ql/csharp/ql/src/Bad Practices/Implementation Hiding/AbstractToConcreteCollection.ql ql/csharp/ql/src/Bad Practices/Implementation Hiding/ExposeRepresentation.ql +ql/csharp/ql/src/Bad Practices/Implementation Hiding/StaticArray.ql +ql/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingMethodNames.ql +ql/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingOverridesNames.ql +ql/csharp/ql/src/Bad Practices/Naming Conventions/ControlNamePrefixes.ql +ql/csharp/ql/src/Bad Practices/Naming Conventions/DefaultControlNames.ql ql/csharp/ql/src/Bad Practices/Naming Conventions/FieldMasksSuperField.ql ql/csharp/ql/src/Bad Practices/Naming Conventions/SameNameAsSuper.ql ql/csharp/ql/src/Bad Practices/PathCombine.ql ql/csharp/ql/src/Bad Practices/UnmanagedCodeCheck.ql +ql/csharp/ql/src/Bad Practices/UseOfSystemOutputStream.ql +ql/csharp/ql/src/Bad Practices/VirtualCallInConstructorOrDestructor.ql ql/csharp/ql/src/CSI/CompareIdenticalValues.ql ql/csharp/ql/src/CSI/NullAlways.ql ql/csharp/ql/src/CSI/NullMaybe.ql @@ -22,8 +41,10 @@ ql/csharp/ql/src/Concurrency/FutileSyncOnField.ql ql/csharp/ql/src/Concurrency/LockOrder.ql ql/csharp/ql/src/Concurrency/LockThis.ql ql/csharp/ql/src/Concurrency/LockedWait.ql +ql/csharp/ql/src/Concurrency/SynchSetUnsynchGet.ql +ql/csharp/ql/src/Concurrency/UnsafeLazyInitialization.ql +ql/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql ql/csharp/ql/src/Dead Code/DeadStoreOfLocal.ql -ql/csharp/ql/src/Documentation/XmldocMissingSummary.ql ql/csharp/ql/src/Language Abuse/CastThisToTypeParameter.ql ql/csharp/ql/src/Language Abuse/CatchOfGenericException.ql ql/csharp/ql/src/Language Abuse/DubiousDowncastOfThis.ql @@ -35,27 +56,42 @@ ql/csharp/ql/src/Language Abuse/NestedIf.ql ql/csharp/ql/src/Language Abuse/RethrowException.ql ql/csharp/ql/src/Language Abuse/SimplifyBoolExpr.ql ql/csharp/ql/src/Language Abuse/UnusedPropertyValue.ql +ql/csharp/ql/src/Language Abuse/UselessCastToSelf.ql +ql/csharp/ql/src/Language Abuse/UselessIsBeforeAs.ql +ql/csharp/ql/src/Language Abuse/UselessNullCoalescingExpression.ql +ql/csharp/ql/src/Language Abuse/UselessTypeTest.ql +ql/csharp/ql/src/Language Abuse/UselessUpcast.ql ql/csharp/ql/src/Likely Bugs/Collections/ContainerLengthCmpOffByOne.ql ql/csharp/ql/src/Likely Bugs/Collections/ContainerSizeCmpZero.ql ql/csharp/ql/src/Likely Bugs/Collections/ReadOnlyContainer.ql ql/csharp/ql/src/Likely Bugs/Collections/WriteOnlyContainer.ql ql/csharp/ql/src/Likely Bugs/ConstantComparison.ql ql/csharp/ql/src/Likely Bugs/DangerousNonShortCircuitLogic.ql +ql/csharp/ql/src/Likely Bugs/Dynamic/BadDynamicCall.ql ql/csharp/ql/src/Likely Bugs/EqualityCheckOnFloats.ql ql/csharp/ql/src/Likely Bugs/EqualsArray.ql +ql/csharp/ql/src/Likely Bugs/EqualsUsesAs.ql +ql/csharp/ql/src/Likely Bugs/EqualsUsesIs.ql ql/csharp/ql/src/Likely Bugs/HashedButNoHash.ql ql/csharp/ql/src/Likely Bugs/ImpossibleArrayCast.ql ql/csharp/ql/src/Likely Bugs/IncomparableEquals.ql +ql/csharp/ql/src/Likely Bugs/InconsistentCompareTo.ql +ql/csharp/ql/src/Likely Bugs/LeapYear/UnsafeYearConstruction.ql +ql/csharp/ql/src/Likely Bugs/MishandlingJapaneseEra.ql ql/csharp/ql/src/Likely Bugs/NestedLoopsSameVariable.ql +ql/csharp/ql/src/Likely Bugs/ObjectComparison.ql ql/csharp/ql/src/Likely Bugs/PossibleLossOfPrecision.ql ql/csharp/ql/src/Likely Bugs/RecursiveEquals.ql +ql/csharp/ql/src/Likely Bugs/RecursiveOperatorEquals.ql ql/csharp/ql/src/Likely Bugs/ReferenceEqualsOnValueTypes.ql ql/csharp/ql/src/Likely Bugs/SelfAssignment.ql ql/csharp/ql/src/Likely Bugs/Statements/EmptyBlock.ql ql/csharp/ql/src/Likely Bugs/Statements/EmptyLockStatement.ql +ql/csharp/ql/src/Likely Bugs/Statements/UseBraces.ql ql/csharp/ql/src/Likely Bugs/StaticFieldWrittenByInstance.ql ql/csharp/ql/src/Likely Bugs/StringBuilderCharInit.ql ql/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql +ql/csharp/ql/src/Linq/BadMultipleIteration.ql ql/csharp/ql/src/Linq/MissedAllOpportunity.ql ql/csharp/ql/src/Linq/MissedCastOpportunity.ql ql/csharp/ql/src/Linq/MissedOfTypeOpportunity.ql @@ -68,5 +104,6 @@ ql/csharp/ql/src/Performance/UseTryGetValue.ql ql/csharp/ql/src/Useless code/DefaultToString.ql ql/csharp/ql/src/Useless code/FutileConditional.ql ql/csharp/ql/src/Useless code/IntGetHashCode.ql +ql/csharp/ql/src/Useless code/PointlessForwardingMethod.ql ql/csharp/ql/src/Useless code/RedundantToStringCall.ql ql/csharp/ql/src/Useless code/UnusedLabel.ql diff --git a/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality.qls.expected b/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality.qls.expected index 53810418624..6694cc8461b 100644 --- a/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality.qls.expected +++ b/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality.qls.expected @@ -23,7 +23,6 @@ ql/csharp/ql/src/Concurrency/LockOrder.ql ql/csharp/ql/src/Concurrency/LockThis.ql ql/csharp/ql/src/Concurrency/LockedWait.ql ql/csharp/ql/src/Dead Code/DeadStoreOfLocal.ql -ql/csharp/ql/src/Documentation/XmldocMissingSummary.ql ql/csharp/ql/src/Language Abuse/CastThisToTypeParameter.ql ql/csharp/ql/src/Language Abuse/CatchOfGenericException.ql ql/csharp/ql/src/Language Abuse/DubiousDowncastOfThis.ql diff --git a/csharp/ql/integration-tests/posix/query-suite/not_included_in_qls.expected b/csharp/ql/integration-tests/posix/query-suite/not_included_in_qls.expected index dff6574dddd..4c8d4d42e98 100644 --- a/csharp/ql/integration-tests/posix/query-suite/not_included_in_qls.expected +++ b/csharp/ql/integration-tests/posix/query-suite/not_included_in_qls.expected @@ -1,31 +1,20 @@ ql/csharp/ql/src/API Abuse/MissingDisposeCall.ql ql/csharp/ql/src/API Abuse/MissingDisposeMethod.ql -ql/csharp/ql/src/API Abuse/NonOverridingMethod.ql ql/csharp/ql/src/API Abuse/UncheckedReturnValue.ql ql/csharp/ql/src/ASP/ComplexInlineCode.ql ql/csharp/ql/src/ASP/NonInternationalizedText.ql -ql/csharp/ql/src/ASP/SplitControlStructure.ql ql/csharp/ql/src/AlertSuppression.ql ql/csharp/ql/src/Architecture/Dependencies/MutualDependency.ql ql/csharp/ql/src/Architecture/Refactoring Opportunities/FeatureEnvy.ql -ql/csharp/ql/src/Bad Practices/Comments/CommentedOutCode.ql -ql/csharp/ql/src/Bad Practices/Comments/TodoComments.ql ql/csharp/ql/src/Bad Practices/Declarations/EmptyInterface.ql -ql/csharp/ql/src/Bad Practices/Declarations/NoConstantsOnly.ql -ql/csharp/ql/src/Bad Practices/Implementation Hiding/StaticArray.ql ql/csharp/ql/src/Bad Practices/LeftoverDebugCode.ql ql/csharp/ql/src/Bad Practices/Magic Constants/MagicConstantsNumbers.ql ql/csharp/ql/src/Bad Practices/Magic Constants/MagicConstantsString.ql ql/csharp/ql/src/Bad Practices/Magic Constants/MagicNumbersUseConstant.ql ql/csharp/ql/src/Bad Practices/Magic Constants/MagicStringsUseConstant.ql -ql/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingMethodNames.ql -ql/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingOverridesNames.ql ql/csharp/ql/src/Bad Practices/Naming Conventions/ConstantNaming.ql -ql/csharp/ql/src/Bad Practices/Naming Conventions/ControlNamePrefixes.ql -ql/csharp/ql/src/Bad Practices/Naming Conventions/DefaultControlNames.ql ql/csharp/ql/src/Bad Practices/Naming Conventions/VariableNameTooShort.ql ql/csharp/ql/src/Bad Practices/UseOfHtmlInputHidden.ql -ql/csharp/ql/src/Bad Practices/UseOfSystemOutputStream.ql ql/csharp/ql/src/Configuration/PasswordInConfigurationFile.ql ql/csharp/ql/src/Dead Code/DeadRefTypes.ql ql/csharp/ql/src/Dead Code/NonAssignedFields.ql @@ -39,7 +28,6 @@ ql/csharp/ql/src/Documentation/XmldocMissingParam.ql ql/csharp/ql/src/Documentation/XmldocMissingReturn.ql ql/csharp/ql/src/Documentation/XmldocMissingTypeParam.ql ql/csharp/ql/src/Language Abuse/ForeachCapture.ql -ql/csharp/ql/src/Language Abuse/UselessIsBeforeAs.ql ql/csharp/ql/src/Likely Bugs/BadCheckOdd.ql ql/csharp/ql/src/Likely Bugs/RandomUsedOnce.ql ql/csharp/ql/src/Metrics/Callables/CCyclomaticComplexity.ql @@ -93,7 +81,6 @@ ql/csharp/ql/src/Security Features/CWE-611/UseXmlSecureResolver.ql ql/csharp/ql/src/Security Features/CWE-798/HardcodedConnectionString.ql ql/csharp/ql/src/Security Features/CWE-798/HardcodedCredentials.ql ql/csharp/ql/src/Security Features/CWE-838/InappropriateEncoding.ql -ql/csharp/ql/src/Useless code/PointlessForwardingMethod.ql ql/csharp/ql/src/definitions.ql ql/csharp/ql/src/experimental/CWE-099/TaintedWebClient.ql ql/csharp/ql/src/experimental/CWE-918/RequestForgery.ql diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error/Assemblies.expected b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error/Assemblies.expected index 4b2df5c2e32..539f3992b9e 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error/Assemblies.expected +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error/Assemblies.expected @@ -1 +1 @@ -| test-db/working/missingpackages/newtonsoft.json/13.0.3/lib/net6.0/Newtonsoft.Json.dll:0:0:0:0 | Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed | +| test-db/working/missingpackages/newtonsoft.json/13.0.4/lib/net6.0/Newtonsoft.Json.dll:0:0:0:0 | Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed | diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error/proj/proj.csproj b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error/proj/proj.csproj index b73f743f95c..e16e4f4b6a6 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error/proj/proj.csproj +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error/proj/proj.csproj @@ -11,6 +11,6 @@ - + diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error_timeout/Assemblies.expected b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error_timeout/Assemblies.expected index 4b2df5c2e32..539f3992b9e 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error_timeout/Assemblies.expected +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error_timeout/Assemblies.expected @@ -1 +1 @@ -| test-db/working/missingpackages/newtonsoft.json/13.0.3/lib/net6.0/Newtonsoft.Json.dll:0:0:0:0 | Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed | +| test-db/working/missingpackages/newtonsoft.json/13.0.4/lib/net6.0/Newtonsoft.Json.dll:0:0:0:0 | Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed | diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error_timeout/proj/proj.csproj b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error_timeout/proj/proj.csproj index b73f743f95c..e16e4f4b6a6 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error_timeout/proj/proj.csproj +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error_timeout/proj/proj.csproj @@ -11,6 +11,6 @@ - + diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_fallback/Assemblies.expected b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_fallback/Assemblies.expected index 4b2df5c2e32..539f3992b9e 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_fallback/Assemblies.expected +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_fallback/Assemblies.expected @@ -1 +1 @@ -| test-db/working/missingpackages/newtonsoft.json/13.0.3/lib/net6.0/Newtonsoft.Json.dll:0:0:0:0 | Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed | +| test-db/working/missingpackages/newtonsoft.json/13.0.4/lib/net6.0/Newtonsoft.Json.dll:0:0:0:0 | Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed | diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_fallback/proj/proj.csproj b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_fallback/proj/proj.csproj index b73f743f95c..e16e4f4b6a6 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_fallback/proj/proj.csproj +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_fallback/proj/proj.csproj @@ -11,6 +11,6 @@ - + diff --git a/csharp/ql/lib/CHANGELOG.md b/csharp/ql/lib/CHANGELOG.md index 0aca82e8310..cb639225e7d 100644 --- a/csharp/ql/lib/CHANGELOG.md +++ b/csharp/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.2.4 + +No user-facing changes. + ## 5.2.3 ### Minor Analysis Improvements diff --git a/csharp/ql/lib/change-notes/released/5.2.4.md b/csharp/ql/lib/change-notes/released/5.2.4.md new file mode 100644 index 00000000000..18f54ba122d --- /dev/null +++ b/csharp/ql/lib/change-notes/released/5.2.4.md @@ -0,0 +1,3 @@ +## 5.2.4 + +No user-facing changes. diff --git a/csharp/ql/lib/codeql-pack.release.yml b/csharp/ql/lib/codeql-pack.release.yml index f7fd1ec5b57..fc4dc64578b 100644 --- a/csharp/ql/lib/codeql-pack.release.yml +++ b/csharp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.2.3 +lastReleaseVersion: 5.2.4 diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index d7b4d0f175c..f5795e12558 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 5.2.4-dev +version: 5.2.5-dev groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll index 82ab4b63812..7185e39a45b 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll @@ -273,6 +273,29 @@ module AbstractValues { private import AbstractValues +/** Gets the value resulting from matching `null` against `pat`. */ +private boolean patternMatchesNull(PatternExpr pat) { + pat instanceof NullLiteral and result = true + or + not pat instanceof NullLiteral and + not pat instanceof NotPatternExpr and + not pat instanceof OrPatternExpr and + not pat instanceof AndPatternExpr and + result = false + or + result = patternMatchesNull(pat.(NotPatternExpr).getPattern()).booleanNot() + or + exists(OrPatternExpr ope | pat = ope | + result = + patternMatchesNull(ope.getLeftOperand()).booleanOr(patternMatchesNull(ope.getRightOperand())) + ) + or + exists(AndPatternExpr ape | pat = ape | + result = + patternMatchesNull(ape.getLeftOperand()).booleanAnd(patternMatchesNull(ape.getRightOperand())) + ) +} + pragma[nomagic] private predicate typePattern(PatternMatch pm, TypePatternExpr tpe, Type t) { tpe = pm.getPattern() and @@ -362,8 +385,7 @@ class DereferenceableExpr extends Expr { isNull = branch or // E.g. `x is string` or `x is ""` - not pm.getPattern() instanceof NullLiteral and - branch = true and + branch.booleanNot() = patternMatchesNull(pm.getPattern()) and isNull = false or exists(TypePatternExpr tpe | diff --git a/csharp/ql/src/API Abuse/ClassDoesNotImplementEquals.ql b/csharp/ql/src/API Abuse/ClassDoesNotImplementEquals.ql index 0539cd27a66..dc6ce132c9a 100644 --- a/csharp/ql/src/API Abuse/ClassDoesNotImplementEquals.ql +++ b/csharp/ql/src/API Abuse/ClassDoesNotImplementEquals.ql @@ -7,8 +7,9 @@ * @problem.severity error * @precision medium * @id cs/class-missing-equals - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness */ import csharp diff --git a/csharp/ql/src/API Abuse/DisposeNotCalledOnException.ql b/csharp/ql/src/API Abuse/DisposeNotCalledOnException.ql index 3349ee93251..989d2ecd499 100644 --- a/csharp/ql/src/API Abuse/DisposeNotCalledOnException.ql +++ b/csharp/ql/src/API Abuse/DisposeNotCalledOnException.ql @@ -7,8 +7,10 @@ * @problem.severity warning * @precision medium * @id cs/dispose-not-called-on-throw - * @tags efficiency - * maintainability + * @tags quality + * reliability + * error-handling + * performance * external/cwe/cwe-404 * external/cwe/cwe-459 * external/cwe/cwe-460 diff --git a/csharp/ql/src/API Abuse/InconsistentEqualsGetHashCode.ql b/csharp/ql/src/API Abuse/InconsistentEqualsGetHashCode.ql index 569716b3bc0..6ad43aad3a1 100644 --- a/csharp/ql/src/API Abuse/InconsistentEqualsGetHashCode.ql +++ b/csharp/ql/src/API Abuse/InconsistentEqualsGetHashCode.ql @@ -6,8 +6,9 @@ * @problem.severity warning * @precision medium * @id cs/inconsistent-equals-and-gethashcode - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness * external/cwe/cwe-581 */ diff --git a/csharp/ql/src/API Abuse/IncorrectCompareToSignature.ql b/csharp/ql/src/API Abuse/IncorrectCompareToSignature.ql index 6f6c17566bf..63d947e02c7 100644 --- a/csharp/ql/src/API Abuse/IncorrectCompareToSignature.ql +++ b/csharp/ql/src/API Abuse/IncorrectCompareToSignature.ql @@ -5,8 +5,9 @@ * @problem.severity warning * @precision medium * @id cs/wrong-compareto-signature - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness */ import csharp diff --git a/csharp/ql/src/API Abuse/IncorrectEqualsSignature.ql b/csharp/ql/src/API Abuse/IncorrectEqualsSignature.ql index 7103cae4906..5367b0ac604 100644 --- a/csharp/ql/src/API Abuse/IncorrectEqualsSignature.ql +++ b/csharp/ql/src/API Abuse/IncorrectEqualsSignature.ql @@ -5,8 +5,9 @@ * @problem.severity warning * @precision medium * @id cs/wrong-equals-signature - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness */ import csharp diff --git a/csharp/ql/src/API Abuse/NonOverridingMethod.ql b/csharp/ql/src/API Abuse/NonOverridingMethod.ql index 598ce670d9f..bff2c17b306 100644 --- a/csharp/ql/src/API Abuse/NonOverridingMethod.ql +++ b/csharp/ql/src/API Abuse/NonOverridingMethod.ql @@ -5,9 +5,10 @@ * @problem.severity recommendation * @precision medium * @id cs/nonoverriding-method - * @tags reliability + * @tags quality + * reliability + * correctness * readability - * naming */ import csharp diff --git a/csharp/ql/src/ASP/SplitControlStructure.ql b/csharp/ql/src/ASP/SplitControlStructure.ql index de7d44ccc1e..701433c0560 100644 --- a/csharp/ql/src/ASP/SplitControlStructure.ql +++ b/csharp/ql/src/ASP/SplitControlStructure.ql @@ -5,8 +5,9 @@ * @problem.severity recommendation * @precision medium * @id cs/asp/split-control-structure - * @tags maintainability - * frameworks/asp.net + * @tags quality + * maintainability + * readability */ import semmle.code.asp.AspNet diff --git a/csharp/ql/src/Bad Practices/Comments/CommentedOutCode.ql b/csharp/ql/src/Bad Practices/Comments/CommentedOutCode.ql index c079cc16a2a..9da9e789e0c 100644 --- a/csharp/ql/src/Bad Practices/Comments/CommentedOutCode.ql +++ b/csharp/ql/src/Bad Practices/Comments/CommentedOutCode.ql @@ -5,9 +5,9 @@ * @problem.severity recommendation * @precision medium * @id cs/commented-out-code - * @tags maintainability - * statistical - * non-attributable + * @tags quality + * maintainability + * readability */ import csharp diff --git a/csharp/ql/src/Bad Practices/Comments/TodoComments.ql b/csharp/ql/src/Bad Practices/Comments/TodoComments.ql index 751c064bccf..50104f55eb7 100644 --- a/csharp/ql/src/Bad Practices/Comments/TodoComments.ql +++ b/csharp/ql/src/Bad Practices/Comments/TodoComments.ql @@ -6,7 +6,8 @@ * @problem.severity recommendation * @precision medium * @id cs/todo-comment - * @tags maintainability + * @tags quality + * maintainability * external/cwe/cwe-546 */ diff --git a/csharp/ql/src/Bad Practices/Declarations/NoConstantsOnly.ql b/csharp/ql/src/Bad Practices/Declarations/NoConstantsOnly.ql index 896b7804662..8ae848feaeb 100644 --- a/csharp/ql/src/Bad Practices/Declarations/NoConstantsOnly.ql +++ b/csharp/ql/src/Bad Practices/Declarations/NoConstantsOnly.ql @@ -6,8 +6,9 @@ * @problem.severity recommendation * @precision medium * @id cs/constants-only-interface - * @tags maintainability - * modularity + * @tags quality + * maintainability + * readability */ import csharp diff --git a/csharp/ql/src/Bad Practices/ErroneousClassCompare.ql b/csharp/ql/src/Bad Practices/ErroneousClassCompare.ql index 134d612979b..658484c2ba7 100644 --- a/csharp/ql/src/Bad Practices/ErroneousClassCompare.ql +++ b/csharp/ql/src/Bad Practices/ErroneousClassCompare.ql @@ -5,7 +5,8 @@ * @problem.severity warning * @precision medium * @id cs/class-name-comparison - * @tags reliability + * @tags quality + * reliability * correctness * external/cwe/cwe-486 */ diff --git a/csharp/ql/src/Bad Practices/Implementation Hiding/AbstractToConcreteCollection.ql b/csharp/ql/src/Bad Practices/Implementation Hiding/AbstractToConcreteCollection.ql index 4becd8b58c3..80b108d2736 100644 --- a/csharp/ql/src/Bad Practices/Implementation Hiding/AbstractToConcreteCollection.ql +++ b/csharp/ql/src/Bad Practices/Implementation Hiding/AbstractToConcreteCollection.ql @@ -7,9 +7,9 @@ * @problem.severity warning * @precision medium * @id cs/cast-from-abstract-to-concrete-collection - * @tags reliability - * maintainability - * modularity + * @tags quality + * reliability + * correctness * external/cwe/cwe-485 */ diff --git a/csharp/ql/src/Bad Practices/Implementation Hiding/StaticArray.ql b/csharp/ql/src/Bad Practices/Implementation Hiding/StaticArray.ql index 0d00adb5051..086182b697c 100644 --- a/csharp/ql/src/Bad Practices/Implementation Hiding/StaticArray.ql +++ b/csharp/ql/src/Bad Practices/Implementation Hiding/StaticArray.ql @@ -5,9 +5,9 @@ * @problem.severity recommendation * @precision medium * @id cs/static-array - * @tags reliability - * maintainability - * modularity + * @tags quality + * reliability + * correctness * external/cwe/cwe-582 */ diff --git a/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingMethodNames.ql b/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingMethodNames.ql index 5e3f39d7a87..199647b5f1f 100644 --- a/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingMethodNames.ql +++ b/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingMethodNames.ql @@ -5,9 +5,9 @@ * @problem.severity recommendation * @precision medium * @id cs/confusing-method-name - * @tags maintainability + * @tags quality + * maintainability * readability - * naming */ import csharp diff --git a/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingOverridesNames.ql b/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingOverridesNames.ql index ae085389729..1ef0ccad22a 100644 --- a/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingOverridesNames.ql +++ b/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingOverridesNames.ql @@ -6,9 +6,10 @@ * @problem.severity recommendation * @precision medium * @id cs/confusing-override-name - * @tags reliability + * @tags quality + * maintainability * readability - * naming + * correctness */ import csharp diff --git a/csharp/ql/src/Bad Practices/Naming Conventions/ControlNamePrefixes.ql b/csharp/ql/src/Bad Practices/Naming Conventions/ControlNamePrefixes.ql index 550385d6828..7e80d4334bd 100644 --- a/csharp/ql/src/Bad Practices/Naming Conventions/ControlNamePrefixes.ql +++ b/csharp/ql/src/Bad Practices/Naming Conventions/ControlNamePrefixes.ql @@ -6,7 +6,9 @@ * @problem.severity recommendation * @precision medium * @id cs/web/unprefixed-control-name - * @tags maintainability + * @tags quality + * maintainability + * readability */ import csharp diff --git a/csharp/ql/src/Bad Practices/Naming Conventions/DefaultControlNames.ql b/csharp/ql/src/Bad Practices/Naming Conventions/DefaultControlNames.ql index 92aa5e9e0c2..e12bd2e6af3 100644 --- a/csharp/ql/src/Bad Practices/Naming Conventions/DefaultControlNames.ql +++ b/csharp/ql/src/Bad Practices/Naming Conventions/DefaultControlNames.ql @@ -6,8 +6,9 @@ * @problem.severity recommendation * @precision medium * @id cs/forms/default-control-name - * @tags readability - * naming + * @tags quality + * maintainability + * readability */ import csharp diff --git a/csharp/ql/src/Bad Practices/UseOfSystemOutputStream.ql b/csharp/ql/src/Bad Practices/UseOfSystemOutputStream.ql index a5a9418bb15..b9a45126d3c 100644 --- a/csharp/ql/src/Bad Practices/UseOfSystemOutputStream.ql +++ b/csharp/ql/src/Bad Practices/UseOfSystemOutputStream.ql @@ -5,7 +5,9 @@ * @problem.severity recommendation * @precision medium * @id cs/console-output - * @tags maintainability + * @tags quality + * reliability + * error-handling */ import csharp diff --git a/csharp/ql/src/Bad Practices/VirtualCallInConstructorOrDestructor.ql b/csharp/ql/src/Bad Practices/VirtualCallInConstructorOrDestructor.ql index d754f1a03c5..a29b39d33a1 100644 --- a/csharp/ql/src/Bad Practices/VirtualCallInConstructorOrDestructor.ql +++ b/csharp/ql/src/Bad Practices/VirtualCallInConstructorOrDestructor.ql @@ -6,9 +6,9 @@ * @precision medium * @id cs/virtual-call-in-constructor * @alternate-ids cs/virtual-call-in-constructor-or-destructor - * @tags reliability - * maintainability - * modularity + * @tags quality + * reliability + * correctness */ import csharp diff --git a/csharp/ql/src/CHANGELOG.md b/csharp/ql/src/CHANGELOG.md index e1109181fca..e044a3dbb4f 100644 --- a/csharp/ql/src/CHANGELOG.md +++ b/csharp/ql/src/CHANGELOG.md @@ -1,3 +1,17 @@ +## 1.4.0 + +### Deprecated Queries + +* The query `cs/captured-foreach-variable` has been deprecated as the semantics of capturing a 'foreach' variable and using it outside the loop has been stable since C# version 5. + +### Minor Analysis Improvements + +* The query `cs/call-to-object-tostring` has been improved to remove false positives for enum types. + +### Bug Fixes + +* The message for `csharp/diagnostic/database-quality` has been updated to include detailed database health metrics. Additionally, the threshold for reporting database health issues has been lowered from 95% to 85% (if any metric falls below this percentage). These changes are visible on the tool status page. + ## 1.3.4 No user-facing changes. diff --git a/csharp/ql/src/Concurrency/SynchSetUnsynchGet.ql b/csharp/ql/src/Concurrency/SynchSetUnsynchGet.ql index 9c8bb72708c..569aa1e5366 100644 --- a/csharp/ql/src/Concurrency/SynchSetUnsynchGet.ql +++ b/csharp/ql/src/Concurrency/SynchSetUnsynchGet.ql @@ -6,8 +6,10 @@ * @problem.severity error * @precision medium * @id cs/unsynchronized-getter - * @tags correctness + * @tags quality + * reliability * concurrency + * correctness * external/cwe/cwe-662 */ diff --git a/csharp/ql/src/Concurrency/UnsafeLazyInitialization.ql b/csharp/ql/src/Concurrency/UnsafeLazyInitialization.ql index 97b4fbdba8e..db674d9c5c3 100644 --- a/csharp/ql/src/Concurrency/UnsafeLazyInitialization.ql +++ b/csharp/ql/src/Concurrency/UnsafeLazyInitialization.ql @@ -6,7 +6,8 @@ * @problem.severity error * @precision medium * @id cs/unsafe-double-checked-lock - * @tags correctness + * @tags quality + * reliability * concurrency * external/cwe/cwe-609 */ diff --git a/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql b/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql index 1ce94edee3d..150ae78ae09 100644 --- a/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql +++ b/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql @@ -6,7 +6,9 @@ * @problem.severity error * @precision medium * @id cs/unsynchronized-static-access - * @tags concurrency + * @tags quality + * reliability + * concurrency * external/cwe/cwe-362 * external/cwe/cwe-567 */ diff --git a/csharp/ql/src/Documentation/XmldocExtraParam.ql b/csharp/ql/src/Documentation/XmldocExtraParam.ql index a745edfb6d8..a7ff7eaec70 100644 --- a/csharp/ql/src/Documentation/XmldocExtraParam.ql +++ b/csharp/ql/src/Documentation/XmldocExtraParam.ql @@ -7,6 +7,7 @@ * @precision medium * @id cs/xmldoc/unknown-parameter * @tags maintainability + * readability */ import Documentation diff --git a/csharp/ql/src/Documentation/XmldocExtraTypeParam.ql b/csharp/ql/src/Documentation/XmldocExtraTypeParam.ql index 76c2039920d..60ea1dd5a96 100644 --- a/csharp/ql/src/Documentation/XmldocExtraTypeParam.ql +++ b/csharp/ql/src/Documentation/XmldocExtraTypeParam.ql @@ -7,6 +7,7 @@ * @precision medium * @id cs/xmldoc/unknown-type-parameter * @tags maintainability + * readability */ import Documentation diff --git a/csharp/ql/src/Documentation/XmldocMissing.ql b/csharp/ql/src/Documentation/XmldocMissing.ql index e0e05c4893b..237e5224120 100644 --- a/csharp/ql/src/Documentation/XmldocMissing.ql +++ b/csharp/ql/src/Documentation/XmldocMissing.ql @@ -7,6 +7,7 @@ * @precision medium * @id cs/xmldoc/missing-xmldoc * @tags maintainability + * readability */ import Documentation diff --git a/csharp/ql/src/Documentation/XmldocMissingSummary.ql b/csharp/ql/src/Documentation/XmldocMissingSummary.ql index 43b76d38017..5d7d9c931ad 100644 --- a/csharp/ql/src/Documentation/XmldocMissingSummary.ql +++ b/csharp/ql/src/Documentation/XmldocMissingSummary.ql @@ -5,8 +5,7 @@ * @problem.severity recommendation * @precision high * @id cs/xmldoc/missing-summary - * @tags quality - * maintainability + * @tags maintainability * readability */ diff --git a/csharp/ql/src/Language Abuse/ForeachCapture.ql b/csharp/ql/src/Language Abuse/ForeachCapture.ql index 2f8346817a6..03f1f99a044 100644 --- a/csharp/ql/src/Language Abuse/ForeachCapture.ql +++ b/csharp/ql/src/Language Abuse/ForeachCapture.ql @@ -7,9 +7,8 @@ * @problem.severity recommendation * @precision medium * @id cs/captured-foreach-variable - * @tags portability - * maintainability - * language-features + * @tags reliability + * correctness * external/cwe/cwe-758 */ diff --git a/csharp/ql/src/Language Abuse/UselessCastToSelf.ql b/csharp/ql/src/Language Abuse/UselessCastToSelf.ql index a182009dfc2..d1a08e1db1c 100644 --- a/csharp/ql/src/Language Abuse/UselessCastToSelf.ql +++ b/csharp/ql/src/Language Abuse/UselessCastToSelf.ql @@ -5,8 +5,9 @@ * @problem.severity warning * @precision medium * @id cs/useless-cast-to-self - * @tags maintainability - * language-features + * @tags quality + * maintainability + * useless-code * external/cwe/cwe-561 */ diff --git a/csharp/ql/src/Language Abuse/UselessIsBeforeAs.ql b/csharp/ql/src/Language Abuse/UselessIsBeforeAs.ql index 6a82c40d840..6b6d710bdf0 100644 --- a/csharp/ql/src/Language Abuse/UselessIsBeforeAs.ql +++ b/csharp/ql/src/Language Abuse/UselessIsBeforeAs.ql @@ -5,8 +5,9 @@ * @problem.severity recommendation * @precision medium * @id cs/useless-is-before-as - * @tags maintainability - * language-features + * @tags quality + * maintainability + * useless-code * external/cwe/cwe-561 */ diff --git a/csharp/ql/src/Language Abuse/UselessNullCoalescingExpression.ql b/csharp/ql/src/Language Abuse/UselessNullCoalescingExpression.ql index ec73df23741..7790fc5ba4a 100644 --- a/csharp/ql/src/Language Abuse/UselessNullCoalescingExpression.ql +++ b/csharp/ql/src/Language Abuse/UselessNullCoalescingExpression.ql @@ -6,8 +6,9 @@ * @problem.severity error * @precision medium * @id cs/coalesce-of-identical-expressions - * @tags maintainability - * language-features + * @tags quality + * maintainability + * useless-code * external/cwe/cwe-561 */ diff --git a/csharp/ql/src/Language Abuse/UselessTypeTest.ql b/csharp/ql/src/Language Abuse/UselessTypeTest.ql index 11e7df05047..f89ffbdd637 100644 --- a/csharp/ql/src/Language Abuse/UselessTypeTest.ql +++ b/csharp/ql/src/Language Abuse/UselessTypeTest.ql @@ -5,8 +5,9 @@ * @problem.severity warning * @precision medium * @id cs/useless-type-test - * @tags maintainability - * language-features + * @tags quality + * maintainability + * useless-code * external/cwe/cwe-561 */ diff --git a/csharp/ql/src/Language Abuse/UselessUpcast.ql b/csharp/ql/src/Language Abuse/UselessUpcast.ql index a06dc60cc7a..81ff2cfe253 100644 --- a/csharp/ql/src/Language Abuse/UselessUpcast.ql +++ b/csharp/ql/src/Language Abuse/UselessUpcast.ql @@ -5,8 +5,9 @@ * @problem.severity warning * @precision medium * @id cs/useless-upcast - * @tags maintainability - * language-features + * @tags quality + * maintainability + * useless-code * external/cwe/cwe-561 */ diff --git a/csharp/ql/src/Likely Bugs/Dynamic/BadDynamicCall.ql b/csharp/ql/src/Likely Bugs/Dynamic/BadDynamicCall.ql index 2efac6773f7..75f152b38de 100644 --- a/csharp/ql/src/Likely Bugs/Dynamic/BadDynamicCall.ql +++ b/csharp/ql/src/Likely Bugs/Dynamic/BadDynamicCall.ql @@ -5,9 +5,9 @@ * @problem.severity error * @precision medium * @id cs/invalid-dynamic-call - * @tags reliability + * @tags quality + * reliability * correctness - * logic * external/cwe/cwe-628 */ diff --git a/csharp/ql/src/Likely Bugs/EqualsUsesAs.ql b/csharp/ql/src/Likely Bugs/EqualsUsesAs.ql index 5c11e10c36b..12a0802aa9f 100644 --- a/csharp/ql/src/Likely Bugs/EqualsUsesAs.ql +++ b/csharp/ql/src/Likely Bugs/EqualsUsesAs.ql @@ -5,8 +5,9 @@ * @problem.severity warning * @precision medium * @id cs/equals-uses-as - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness */ import csharp diff --git a/csharp/ql/src/Likely Bugs/EqualsUsesIs.ql b/csharp/ql/src/Likely Bugs/EqualsUsesIs.ql index 775a295a6cb..1c209af4dfb 100644 --- a/csharp/ql/src/Likely Bugs/EqualsUsesIs.ql +++ b/csharp/ql/src/Likely Bugs/EqualsUsesIs.ql @@ -5,8 +5,9 @@ * @problem.severity warning * @precision medium * @id cs/equals-uses-is - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness */ import csharp diff --git a/csharp/ql/src/Likely Bugs/InconsistentCompareTo.ql b/csharp/ql/src/Likely Bugs/InconsistentCompareTo.ql index 2c4e69cb206..5209cf6438b 100644 --- a/csharp/ql/src/Likely Bugs/InconsistentCompareTo.ql +++ b/csharp/ql/src/Likely Bugs/InconsistentCompareTo.ql @@ -5,8 +5,9 @@ * @problem.severity warning * @precision medium * @id cs/inconsistent-compareto-and-equals - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness */ import semmle.code.csharp.frameworks.System diff --git a/csharp/ql/src/Likely Bugs/LeapYear/UnsafeYearConstruction.ql b/csharp/ql/src/Likely Bugs/LeapYear/UnsafeYearConstruction.ql index 8da3a910b0d..72cc9b1908a 100644 --- a/csharp/ql/src/Likely Bugs/LeapYear/UnsafeYearConstruction.ql +++ b/csharp/ql/src/Likely Bugs/LeapYear/UnsafeYearConstruction.ql @@ -5,8 +5,9 @@ * @problem.severity warning * @precision medium * @id cs/unsafe-year-construction - * @tags date-time + * @tags quality * reliability + * correctness */ import csharp diff --git a/csharp/ql/src/Likely Bugs/MishandlingJapaneseEra.ql b/csharp/ql/src/Likely Bugs/MishandlingJapaneseEra.ql index a188fbe1b8e..c8df36bf7bf 100644 --- a/csharp/ql/src/Likely Bugs/MishandlingJapaneseEra.ql +++ b/csharp/ql/src/Likely Bugs/MishandlingJapaneseEra.ql @@ -5,8 +5,9 @@ * @kind problem * @problem.severity warning * @precision medium - * @tags reliability - * date-time + * @tags quality + * reliability + * correctness */ import csharp diff --git a/csharp/ql/src/Likely Bugs/ObjectComparison.ql b/csharp/ql/src/Likely Bugs/ObjectComparison.ql index eec1961fbf5..5479ff69b34 100644 --- a/csharp/ql/src/Likely Bugs/ObjectComparison.ql +++ b/csharp/ql/src/Likely Bugs/ObjectComparison.ql @@ -6,7 +6,8 @@ * @problem.severity warning * @precision medium * @id cs/reference-equality-with-object - * @tags reliability + * @tags quality + * reliability * correctness * external/cwe/cwe-595 */ diff --git a/csharp/ql/src/Likely Bugs/RecursiveOperatorEquals.ql b/csharp/ql/src/Likely Bugs/RecursiveOperatorEquals.ql index fe01683578f..2e4764965c9 100644 --- a/csharp/ql/src/Likely Bugs/RecursiveOperatorEquals.ql +++ b/csharp/ql/src/Likely Bugs/RecursiveOperatorEquals.ql @@ -5,8 +5,9 @@ * @problem.severity error * @precision medium * @id cs/recursive-operator-equals-call - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness */ import csharp diff --git a/csharp/ql/src/Likely Bugs/Statements/UseBraces.ql b/csharp/ql/src/Likely Bugs/Statements/UseBraces.ql index ba64dc1bf94..f639b060ac1 100644 --- a/csharp/ql/src/Likely Bugs/Statements/UseBraces.ql +++ b/csharp/ql/src/Likely Bugs/Statements/UseBraces.ql @@ -6,9 +6,10 @@ * @problem.severity warning * @precision medium * @id cs/misleading-indentation - * @tags changeability + * @tags quality + * maintainability + * readability * correctness - * logic */ import csharp diff --git a/csharp/ql/src/Linq/BadMultipleIteration.ql b/csharp/ql/src/Linq/BadMultipleIteration.ql index e07de273e63..8146bbf167d 100644 --- a/csharp/ql/src/Linq/BadMultipleIteration.ql +++ b/csharp/ql/src/Linq/BadMultipleIteration.ql @@ -5,9 +5,9 @@ * @problem.severity warning * @precision medium * @id cs/linq/inconsistent-enumeration - * @tags reliability - * maintainability - * language-features + * @tags quality + * reliability + * correctness * external/cwe/cwe-834 */ diff --git a/csharp/ql/src/Useless code/DefaultToStringQuery.qll b/csharp/ql/src/Useless code/DefaultToStringQuery.qll index f11b5a9cd32..411ca47b5e6 100644 --- a/csharp/ql/src/Useless code/DefaultToStringQuery.qll +++ b/csharp/ql/src/Useless code/DefaultToStringQuery.qll @@ -47,6 +47,7 @@ private predicate alwaysInvokesToString(ParameterRead pr) { */ predicate alwaysDefaultToString(ValueOrRefType t) { not t instanceof TupleType and + not t instanceof Enum and exists(ToStringMethod m | t.hasMethod(m) | m.getDeclaringType() instanceof SystemObjectClass or m.getDeclaringType() instanceof SystemValueTypeClass diff --git a/csharp/ql/src/Useless code/PointlessForwardingMethod.ql b/csharp/ql/src/Useless code/PointlessForwardingMethod.ql index 723c5b190a5..24a184b3274 100644 --- a/csharp/ql/src/Useless code/PointlessForwardingMethod.ql +++ b/csharp/ql/src/Useless code/PointlessForwardingMethod.ql @@ -5,7 +5,8 @@ * @problem.severity recommendation * @precision medium * @id cs/useless-forwarding-method - * @tags maintainability + * @tags quality + * maintainability * useless-code */ diff --git a/csharp/ql/src/change-notes/2025-09-04-database-diagnostics.md b/csharp/ql/src/change-notes/2025-09-04-database-diagnostics.md deleted file mode 100644 index 8bf63438089..00000000000 --- a/csharp/ql/src/change-notes/2025-09-04-database-diagnostics.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: fix ---- -* The message for `csharp/diagnostic/database-quality` has been updated to include detailed database health metrics. Additionally, the threshold for reporting database health issues has been lowered from 95% to 85% (if any metric falls below this percentage). These changes are visible on the tool status page. diff --git a/csharp/ql/src/change-notes/2025-09-10-deprecate-foreach-capture.md b/csharp/ql/src/change-notes/2025-09-10-deprecate-foreach-capture.md deleted file mode 100644 index 5628e949628..00000000000 --- a/csharp/ql/src/change-notes/2025-09-10-deprecate-foreach-capture.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: deprecated ---- -* The query `cs/captured-foreach-variable` has been deprecated as the semantics of capturing a 'foreach' variable and using it outside the loop has been stable since C# version 5. diff --git a/csharp/ql/src/change-notes/2025-09-16-code-quality-doc-query.md b/csharp/ql/src/change-notes/2025-09-16-code-quality-doc-query.md new file mode 100644 index 00000000000..8972be616b9 --- /dev/null +++ b/csharp/ql/src/change-notes/2025-09-16-code-quality-doc-query.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Remove the query `cs/xmldoc/missing-summary` from the `code-quality` suite (align with other languages). diff --git a/csharp/ql/src/change-notes/2025-09-17-nullguard-pattern.md b/csharp/ql/src/change-notes/2025-09-17-nullguard-pattern.md new file mode 100644 index 00000000000..49b76c25b0b --- /dev/null +++ b/csharp/ql/src/change-notes/2025-09-17-nullguard-pattern.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The modeling of null guards based on complex pattern expressions has been improved, which in turn improves the query `cs/dereferenced-value-may-be-null` by removing false positives. diff --git a/csharp/ql/src/change-notes/released/1.4.0.md b/csharp/ql/src/change-notes/released/1.4.0.md new file mode 100644 index 00000000000..43d887f928a --- /dev/null +++ b/csharp/ql/src/change-notes/released/1.4.0.md @@ -0,0 +1,13 @@ +## 1.4.0 + +### Deprecated Queries + +* The query `cs/captured-foreach-variable` has been deprecated as the semantics of capturing a 'foreach' variable and using it outside the loop has been stable since C# version 5. + +### Minor Analysis Improvements + +* The query `cs/call-to-object-tostring` has been improved to remove false positives for enum types. + +### Bug Fixes + +* The message for `csharp/diagnostic/database-quality` has been updated to include detailed database health metrics. Additionally, the threshold for reporting database health issues has been lowered from 95% to 85% (if any metric falls below this percentage). These changes are visible on the tool status page. diff --git a/csharp/ql/src/codeql-pack.release.yml b/csharp/ql/src/codeql-pack.release.yml index 8263ddf2c8b..b8b2e97d508 100644 --- a/csharp/ql/src/codeql-pack.release.yml +++ b/csharp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.3.4 +lastReleaseVersion: 1.4.0 diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index edb6f9dbe11..724ec4c0097 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 1.3.5-dev +version: 1.4.1-dev groups: - csharp - queries diff --git a/csharp/ql/test/query-tests/Nullness/E.cs b/csharp/ql/test/query-tests/Nullness/E.cs index f8264523b68..ef588699780 100644 --- a/csharp/ql/test/query-tests/Nullness/E.cs +++ b/csharp/ql/test/query-tests/Nullness/E.cs @@ -432,7 +432,7 @@ public class E return @is.Any(); } - static void Ex45(string s) + static void Ex45(string s) // $ Source[cs/dereferenced-value-may-be-null] { if (s is null) { @@ -441,7 +441,7 @@ public class E if (s is not not null) { - s.ToString(); // $ MISSING: Alert[cs/dereferenced-value-is-always-null] + s.ToString(); // $ Alert[cs/dereferenced-value-may-be-null] MISSING: Alert[cs/dereferenced-value-is-always-null] } if (s is not null) @@ -453,6 +453,15 @@ public class E { s.ToString(); // GOOD } + + if (s is not object) + { + s.ToString(); // $ Alert[cs/dereferenced-value-may-be-null] + } + else + { + s.ToString(); // GOOD + } } } diff --git a/csharp/ql/test/query-tests/Nullness/Implications.expected b/csharp/ql/test/query-tests/Nullness/Implications.expected index ec660dd44a4..584b4e3ad1a 100644 --- a/csharp/ql/test/query-tests/Nullness/Implications.expected +++ b/csharp/ql/test/query-tests/Nullness/Implications.expected @@ -1302,9 +1302,10 @@ | E.cs:432:16:432:24 | call to method Any | true | E.cs:432:16:432:18 | access to parameter is | non-empty | | E.cs:437:13:437:21 | ... is ... | false | E.cs:437:13:437:13 | access to parameter s | non-null | | E.cs:437:13:437:21 | ... is ... | true | E.cs:437:13:437:13 | access to parameter s | null | -| E.cs:442:13:442:29 | ... is ... | true | E.cs:442:13:442:13 | access to parameter s | non-null | +| E.cs:442:13:442:29 | ... is ... | false | E.cs:442:13:442:13 | access to parameter s | non-null | | E.cs:447:13:447:25 | ... is ... | true | E.cs:447:13:447:13 | access to parameter s | non-null | | E.cs:452:13:452:23 | ... is ... | true | E.cs:452:13:452:13 | access to parameter s | non-null | +| E.cs:457:13:457:27 | ... is ... | false | E.cs:457:13:457:13 | access to parameter s | non-null | | F.cs:8:9:8:9 | access to local variable o | non-null | F.cs:7:20:7:23 | null | non-null | | F.cs:8:9:8:9 | access to local variable o | null | F.cs:7:20:7:23 | null | null | | F.cs:14:9:14:9 | access to local variable o | non-null | F.cs:13:21:13:24 | null | non-null | diff --git a/csharp/ql/test/query-tests/Nullness/NullCheck.expected b/csharp/ql/test/query-tests/Nullness/NullCheck.expected index 600699b6156..7b4c89a0b21 100644 --- a/csharp/ql/test/query-tests/Nullness/NullCheck.expected +++ b/csharp/ql/test/query-tests/Nullness/NullCheck.expected @@ -300,9 +300,10 @@ | E.cs:429:13:429:22 | access to property HasValue | E.cs:429:13:429:13 | access to parameter i | true | false | | E.cs:437:13:437:21 | ... is ... | E.cs:437:13:437:13 | access to parameter s | false | false | | E.cs:437:13:437:21 | ... is ... | E.cs:437:13:437:13 | access to parameter s | true | true | -| E.cs:442:13:442:29 | ... is ... | E.cs:442:13:442:13 | access to parameter s | true | false | +| E.cs:442:13:442:29 | ... is ... | E.cs:442:13:442:13 | access to parameter s | false | false | | E.cs:447:13:447:25 | ... is ... | E.cs:447:13:447:13 | access to parameter s | true | false | | E.cs:452:13:452:23 | ... is ... | E.cs:452:13:452:13 | access to parameter s | true | false | +| E.cs:457:13:457:27 | ... is ... | E.cs:457:13:457:13 | access to parameter s | false | false | | Forwarding.cs:9:14:9:30 | call to method IsNullOrEmpty | Forwarding.cs:9:14:9:14 | access to local variable s | false | false | | Forwarding.cs:14:13:14:32 | call to method IsNotNullOrEmpty | Forwarding.cs:14:13:14:13 | access to local variable s | true | false | | Forwarding.cs:19:14:19:23 | call to method IsNull | Forwarding.cs:19:14:19:14 | access to local variable s | false | false | diff --git a/csharp/ql/test/query-tests/Nullness/NullMaybe.expected b/csharp/ql/test/query-tests/Nullness/NullMaybe.expected index 876cde548b6..816a8b3b440 100644 --- a/csharp/ql/test/query-tests/Nullness/NullMaybe.expected +++ b/csharp/ql/test/query-tests/Nullness/NullMaybe.expected @@ -83,6 +83,8 @@ | E.cs:417:34:417:34 | access to parameter i | E.cs:417:24:417:40 | SSA capture def(i) | E.cs:417:34:417:34 | access to parameter i | Variable $@ may be null at this access because it has a nullable type. | E.cs:415:27:415:27 | i | i | E.cs:415:27:415:27 | i | this | | E.cs:423:38:423:38 | access to parameter i | E.cs:423:28:423:44 | SSA capture def(i) | E.cs:423:38:423:38 | access to parameter i | Variable $@ may be null at this access because it has a nullable type. | E.cs:420:27:420:27 | i | i | E.cs:420:27:420:27 | i | this | | E.cs:430:39:430:39 | access to parameter i | E.cs:430:29:430:45 | SSA capture def(i) | E.cs:430:39:430:39 | access to parameter i | Variable $@ may be null at this access because it has a nullable type. | E.cs:427:27:427:27 | i | i | E.cs:427:27:427:27 | i | this | +| E.cs:444:13:444:13 | access to parameter s | E.cs:435:29:435:29 | SSA param(s) | E.cs:444:13:444:13 | access to parameter s | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:435:29:435:29 | s | s | E.cs:437:13:437:21 | ... is ... | this | +| E.cs:459:13:459:13 | access to parameter s | E.cs:435:29:435:29 | SSA param(s) | E.cs:459:13:459:13 | access to parameter s | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:435:29:435:29 | s | s | E.cs:437:13:437:21 | ... is ... | this | | GuardedString.cs:35:31:35:31 | access to local variable s | GuardedString.cs:7:16:7:32 | SSA def(s) | GuardedString.cs:35:31:35:31 | access to local variable s | Variable $@ may be null at this access because of $@ assignment. | GuardedString.cs:7:16:7:16 | s | s | GuardedString.cs:7:16:7:32 | String s = ... | this | | NullMaybeBad.cs:7:27:7:27 | access to parameter o | NullMaybeBad.cs:13:17:13:20 | null | NullMaybeBad.cs:7:27:7:27 | access to parameter o | Variable $@ may be null at this access because of $@ null argument. | NullMaybeBad.cs:5:25:5:25 | o | o | NullMaybeBad.cs:13:17:13:20 | null | this | | Params.cs:14:17:14:20 | access to parameter args | Params.cs:20:12:20:15 | null | Params.cs:14:17:14:20 | access to parameter args | Variable $@ may be null at this access because of $@ null argument. | Params.cs:12:36:12:39 | args | args | Params.cs:20:12:20:15 | null | this | @@ -445,7 +447,23 @@ edges | E.cs:423:28:423:44 | SSA capture def(i) | E.cs:423:38:423:38 | access to parameter i | | E.cs:430:29:430:45 | SSA capture def(i) | E.cs:430:39:430:39 | access to parameter i | | E.cs:435:29:435:29 | SSA param(s) | E.cs:437:13:437:21 | [true] ... is ... | +| E.cs:437:13:437:21 | [true] ... is ... | E.cs:438:9:440:9 | {...} | | E.cs:437:13:437:21 | [true] ... is ... | E.cs:439:13:439:13 | access to parameter s | +| E.cs:438:9:440:9 | {...} | E.cs:442:9:445:9 | if (...) ... | +| E.cs:442:9:445:9 | if (...) ... | E.cs:442:22:442:29 | [no-match] not ... | +| E.cs:442:13:442:29 | [true] ... is ... | E.cs:443:9:445:9 | {...} | +| E.cs:442:13:442:29 | [true] ... is ... | E.cs:444:13:444:13 | access to parameter s | +| E.cs:442:18:442:29 | [match] not ... | E.cs:442:13:442:29 | [true] ... is ... | +| E.cs:442:22:442:29 | [no-match] not ... | E.cs:442:18:442:29 | [match] not ... | +| E.cs:443:9:445:9 | {...} | E.cs:447:9:450:9 | if (...) ... | +| E.cs:447:9:450:9 | if (...) ... | E.cs:447:18:447:25 | [no-match] not ... | +| E.cs:447:13:447:25 | [false] ... is ... | E.cs:452:9:455:9 | if (...) ... | +| E.cs:447:18:447:25 | [no-match] not ... | E.cs:447:13:447:25 | [false] ... is ... | +| E.cs:452:9:455:9 | if (...) ... | E.cs:452:13:452:23 | [false] ... is ... | +| E.cs:452:13:452:23 | [false] ... is ... | E.cs:457:9:464:9 | if (...) ... | +| E.cs:457:9:464:9 | if (...) ... | E.cs:457:18:457:27 | [match] not ... | +| E.cs:457:13:457:27 | [true] ... is ... | E.cs:459:13:459:13 | access to parameter s | +| E.cs:457:18:457:27 | [match] not ... | E.cs:457:13:457:27 | [true] ... is ... | | F.cs:7:16:7:23 | SSA def(o) | F.cs:8:9:8:9 | access to local variable o | | Forwarding.cs:7:16:7:23 | SSA def(s) | Forwarding.cs:9:13:9:30 | [false] !... | | Forwarding.cs:9:13:9:30 | [false] !... | Forwarding.cs:14:9:17:9 | if (...) ... | @@ -894,7 +912,23 @@ nodes | E.cs:430:39:430:39 | access to parameter i | | E.cs:435:29:435:29 | SSA param(s) | | E.cs:437:13:437:21 | [true] ... is ... | +| E.cs:438:9:440:9 | {...} | | E.cs:439:13:439:13 | access to parameter s | +| E.cs:442:9:445:9 | if (...) ... | +| E.cs:442:13:442:29 | [true] ... is ... | +| E.cs:442:18:442:29 | [match] not ... | +| E.cs:442:22:442:29 | [no-match] not ... | +| E.cs:443:9:445:9 | {...} | +| E.cs:444:13:444:13 | access to parameter s | +| E.cs:447:9:450:9 | if (...) ... | +| E.cs:447:13:447:25 | [false] ... is ... | +| E.cs:447:18:447:25 | [no-match] not ... | +| E.cs:452:9:455:9 | if (...) ... | +| E.cs:452:13:452:23 | [false] ... is ... | +| E.cs:457:9:464:9 | if (...) ... | +| E.cs:457:13:457:27 | [true] ... is ... | +| E.cs:457:18:457:27 | [match] not ... | +| E.cs:459:13:459:13 | access to parameter s | | F.cs:7:16:7:23 | SSA def(o) | | F.cs:8:9:8:9 | access to local variable o | | Forwarding.cs:7:16:7:23 | SSA def(s) | diff --git a/docs/supported-queries.md b/docs/supported-queries.md index fa4cf1ea5d8..8ff2fb12046 100644 --- a/docs/supported-queries.md +++ b/docs/supported-queries.md @@ -2,8 +2,8 @@ Queries and libraries outside [the `experimental` directories](experimental.md) are _supported_ by GitHub, allowing our users to rely on their continued existence and functionality in the future: -1. Once a query or library has appeared in a stable release, a one-year deprecation period is required before we can remove it. There can be exceptions to this when it's not technically possible to mark it as deprecated. -2. Major changes to supported queries and libraries are always announced in the [change notes for stable releases](../change-notes/). +1. Once a query has appeared in a stable release, a one-year deprecation period is required before we can remove it. +2. Major changes to supported queries and libraries are always announced in the change notes for stable releases. 3. We will do our best to address user reports of false positives or false negatives. Because of these commitments, we set a high bar for accepting new supported queries. The requirements are detailed in the rest of this document. diff --git a/go/ql/consistency-queries/CHANGELOG.md b/go/ql/consistency-queries/CHANGELOG.md index c30f8de8bc9..d5040623557 100644 --- a/go/ql/consistency-queries/CHANGELOG.md +++ b/go/ql/consistency-queries/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.31 + +No user-facing changes. + ## 1.0.30 No user-facing changes. diff --git a/go/ql/consistency-queries/change-notes/released/1.0.31.md b/go/ql/consistency-queries/change-notes/released/1.0.31.md new file mode 100644 index 00000000000..b2642bbb5f8 --- /dev/null +++ b/go/ql/consistency-queries/change-notes/released/1.0.31.md @@ -0,0 +1,3 @@ +## 1.0.31 + +No user-facing changes. diff --git a/go/ql/consistency-queries/codeql-pack.release.yml b/go/ql/consistency-queries/codeql-pack.release.yml index f04640951de..f5bdc98ffc8 100644 --- a/go/ql/consistency-queries/codeql-pack.release.yml +++ b/go/ql/consistency-queries/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.30 +lastReleaseVersion: 1.0.31 diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index 574d10a1752..3a3f60920be 100644 --- a/go/ql/consistency-queries/qlpack.yml +++ b/go/ql/consistency-queries/qlpack.yml @@ -1,5 +1,5 @@ name: codeql-go-consistency-queries -version: 1.0.31-dev +version: 1.0.32-dev groups: - go - queries diff --git a/go/ql/lib/CHANGELOG.md b/go/ql/lib/CHANGELOG.md index e2a12de418a..50d61186f73 100644 --- a/go/ql/lib/CHANGELOG.md +++ b/go/ql/lib/CHANGELOG.md @@ -1,3 +1,10 @@ +## 4.3.4 + +### Minor Analysis Improvements + +* The second argument of the `CreateTemp` function, from the `os` package, is no longer a path-injection sink due to proper sanitization by Go. +* The query "Uncontrolled data used in path expression" (`go/path-injection`) now detects sanitizing a path by adding `os.PathSeparator` or `\` to the beginning. + ## 4.3.3 No user-facing changes. diff --git a/go/ql/lib/change-notes/2025-07-15-path-injection-sanitizers.md b/go/ql/lib/change-notes/released/4.3.4.md similarity index 77% rename from go/ql/lib/change-notes/2025-07-15-path-injection-sanitizers.md rename to go/ql/lib/change-notes/released/4.3.4.md index 004eb973de3..cc1b662d14c 100644 --- a/go/ql/lib/change-notes/2025-07-15-path-injection-sanitizers.md +++ b/go/ql/lib/change-notes/released/4.3.4.md @@ -1,5 +1,6 @@ ---- -category: minorAnalysis ---- +## 4.3.4 + +### Minor Analysis Improvements + * The second argument of the `CreateTemp` function, from the `os` package, is no longer a path-injection sink due to proper sanitization by Go. -* The query "Uncontrolled data used in path expression" (`go/path-injection`) now detects sanitizing a path by adding `os.PathSeparator` or `\` to the beginning. \ No newline at end of file +* The query "Uncontrolled data used in path expression" (`go/path-injection`) now detects sanitizing a path by adding `os.PathSeparator` or `\` to the beginning. diff --git a/go/ql/lib/codeql-pack.release.yml b/go/ql/lib/codeql-pack.release.yml index d7b7294771f..f755e0936a7 100644 --- a/go/ql/lib/codeql-pack.release.yml +++ b/go/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 4.3.3 +lastReleaseVersion: 4.3.4 diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 8c172af1e97..1e8bdd280f7 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 4.3.4-dev +version: 4.3.5-dev groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/CHANGELOG.md b/go/ql/src/CHANGELOG.md index 7ec3a3eab64..c3b9c32ff32 100644 --- a/go/ql/src/CHANGELOG.md +++ b/go/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.4.5 + +No user-facing changes. + ## 1.4.4 No user-facing changes. diff --git a/go/ql/src/change-notes/released/1.4.5.md b/go/ql/src/change-notes/released/1.4.5.md new file mode 100644 index 00000000000..930163bb5ae --- /dev/null +++ b/go/ql/src/change-notes/released/1.4.5.md @@ -0,0 +1,3 @@ +## 1.4.5 + +No user-facing changes. diff --git a/go/ql/src/codeql-pack.release.yml b/go/ql/src/codeql-pack.release.yml index 1dfca6daa3b..a74b6b08d86 100644 --- a/go/ql/src/codeql-pack.release.yml +++ b/go/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.4.4 +lastReleaseVersion: 1.4.5 diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index 6b36ad98c9d..9320b29d8e8 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 1.4.5-dev +version: 1.4.6-dev groups: - go - queries diff --git a/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected b/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected index 852389b950b..cdd6769ab46 100644 --- a/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected +++ b/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected @@ -1,61 +1,117 @@ ql/java/ql/src/Advisory/Declarations/MissingOverrideAnnotation.ql +ql/java/ql/src/Advisory/Declarations/NonFinalImmutableField.ql +ql/java/ql/src/Advisory/Declarations/NonPrivateField.ql ql/java/ql/src/Advisory/Documentation/ImpossibleJavadocThrows.ql ql/java/ql/src/Advisory/Documentation/SpuriousJavadocParam.ql +ql/java/ql/src/Advisory/Java Objects/AvoidCloneMethodAccess.ql +ql/java/ql/src/Advisory/Java Objects/AvoidCloneOverride.ql +ql/java/ql/src/Advisory/Java Objects/AvoidCloneableInterface.ql +ql/java/ql/src/Advisory/Java Objects/AvoidFinalizeOverride.ql +ql/java/ql/src/Advisory/Naming/NamingConventionsConstants.ql +ql/java/ql/src/Advisory/Naming/NamingConventionsMethods.ql +ql/java/ql/src/Advisory/Naming/NamingConventionsPackages.ql +ql/java/ql/src/Advisory/Naming/NamingConventionsRefTypes.ql +ql/java/ql/src/Advisory/Naming/NamingConventionsVariables.ql +ql/java/ql/src/Advisory/Statements/MissingDefaultInSwitch.ql +ql/java/ql/src/Advisory/Statements/OneStatementPerLine.ql +ql/java/ql/src/Advisory/Statements/TerminateIfElseIfWithElse.ql +ql/java/ql/src/Advisory/Types/GenericsConstructor.ql +ql/java/ql/src/Advisory/Types/GenericsReturnType.ql +ql/java/ql/src/Advisory/Types/GenericsVariable.ql ql/java/ql/src/Compatibility/JDK9/JdkInternalAccess.ql ql/java/ql/src/Compatibility/JDK9/UnderscoreIdentifier.ql +ql/java/ql/src/DeadCode/DeadClass.ql +ql/java/ql/src/DeadCode/DeadEnumConstant.ql +ql/java/ql/src/DeadCode/DeadField.ql +ql/java/ql/src/DeadCode/DeadMethod.ql ql/java/ql/src/DeadCode/UselessParameter.ql ql/java/ql/src/Language Abuse/EmptyMethod.ql ql/java/ql/src/Language Abuse/IterableIterator.ql ql/java/ql/src/Language Abuse/LabelInSwitch.ql +ql/java/ql/src/Language Abuse/OverridePackagePrivate.ql +ql/java/ql/src/Language Abuse/TypeVarExtendsFinalType.ql ql/java/ql/src/Language Abuse/TypeVariableHidesType.ql ql/java/ql/src/Language Abuse/UselessNullCheck.ql ql/java/ql/src/Language Abuse/UselessTypeTest.ql ql/java/ql/src/Language Abuse/WrappedIterator.ql +ql/java/ql/src/Likely Bugs/Arithmetic/BadAbsOfRandom.ql ql/java/ql/src/Likely Bugs/Arithmetic/ConstantExpAppearsNonConstant.ql ql/java/ql/src/Likely Bugs/Arithmetic/IntMultToLong.ql ql/java/ql/src/Likely Bugs/Arithmetic/LShiftLargerThanTypeWidth.ql +ql/java/ql/src/Likely Bugs/Arithmetic/MultiplyRemainder.ql +ql/java/ql/src/Likely Bugs/Arithmetic/RandomUsedOnce.ql ql/java/ql/src/Likely Bugs/Arithmetic/WhitespaceContradictsPrecedence.ql +ql/java/ql/src/Likely Bugs/Cloning/MissingCallToSuperClone.ql +ql/java/ql/src/Likely Bugs/Cloning/MissingMethodClone.ql ql/java/ql/src/Likely Bugs/Collections/ArrayIndexOutOfBounds.ql ql/java/ql/src/Likely Bugs/Collections/ContainsTypeMismatch.ql +ql/java/ql/src/Likely Bugs/Collections/IteratorRemoveMayFail.ql ql/java/ql/src/Likely Bugs/Collections/ReadOnlyContainer.ql ql/java/ql/src/Likely Bugs/Collections/RemoveTypeMismatch.ql ql/java/ql/src/Likely Bugs/Collections/WriteOnlyContainer.ql ql/java/ql/src/Likely Bugs/Comparison/CompareIdenticalValues.ql +ql/java/ql/src/Likely Bugs/Comparison/CovariantCompareTo.ql +ql/java/ql/src/Likely Bugs/Comparison/CovariantEquals.ql ql/java/ql/src/Likely Bugs/Comparison/EqualsArray.ql ql/java/ql/src/Likely Bugs/Comparison/HashedButNoHash.ql ql/java/ql/src/Likely Bugs/Comparison/IncomparableEquals.ql +ql/java/ql/src/Likely Bugs/Comparison/InconsistentCompareTo.ql ql/java/ql/src/Likely Bugs/Comparison/InconsistentEqualsHashCode.ql ql/java/ql/src/Likely Bugs/Comparison/MissingInstanceofInEquals.ql ql/java/ql/src/Likely Bugs/Comparison/RefEqBoxed.ql +ql/java/ql/src/Likely Bugs/Comparison/StringComparison.ql ql/java/ql/src/Likely Bugs/Comparison/UselessComparisonTest.ql ql/java/ql/src/Likely Bugs/Comparison/WrongNanComparison.ql +ql/java/ql/src/Likely Bugs/Concurrency/CallsToConditionWait.ql ql/java/ql/src/Likely Bugs/Concurrency/CallsToRunnableRun.ql +ql/java/ql/src/Likely Bugs/Concurrency/DateFormatThreadUnsafe.ql ql/java/ql/src/Likely Bugs/Concurrency/DoubleCheckedLocking.ql ql/java/ql/src/Likely Bugs/Concurrency/DoubleCheckedLockingWithInitRace.ql +ql/java/ql/src/Likely Bugs/Concurrency/FutileSynchOnField.ql ql/java/ql/src/Likely Bugs/Concurrency/NonSynchronizedOverride.ql +ql/java/ql/src/Likely Bugs/Concurrency/NotifyNotNotifyAll.ql ql/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.ql +ql/java/ql/src/Likely Bugs/Concurrency/SleepWithLock.ql +ql/java/ql/src/Likely Bugs/Concurrency/StartInConstructor.ql ql/java/ql/src/Likely Bugs/Concurrency/SynchOnBoxedType.ql ql/java/ql/src/Likely Bugs/Concurrency/SynchSetUnsynchGet.ql +ql/java/ql/src/Likely Bugs/Concurrency/SynchWriteObject.ql +ql/java/ql/src/Likely Bugs/Finalization/NullifiedSuperFinalize.ql +ql/java/ql/src/Likely Bugs/Frameworks/JUnit/BadSuiteMethod.ql ql/java/ql/src/Likely Bugs/Frameworks/JUnit/JUnit5MissingNestedAnnotation.ql +ql/java/ql/src/Likely Bugs/Frameworks/Swing/BadlyOverriddenAdapter.ql ql/java/ql/src/Likely Bugs/Inheritance/NoNonFinalInConstructor.ql ql/java/ql/src/Likely Bugs/Likely Typos/ContainerSizeCmpZero.ql ql/java/ql/src/Likely Bugs/Likely Typos/ContradictoryTypeChecks.ql +ql/java/ql/src/Likely Bugs/Likely Typos/DangerousNonCircuitLogic.ql +ql/java/ql/src/Likely Bugs/Likely Typos/EqualsTypo.ql +ql/java/ql/src/Likely Bugs/Likely Typos/HashCodeTypo.ql ql/java/ql/src/Likely Bugs/Likely Typos/MissingFormatArg.ql ql/java/ql/src/Likely Bugs/Likely Typos/MissingSpaceTypo.ql ql/java/ql/src/Likely Bugs/Likely Typos/SelfAssignment.ql ql/java/ql/src/Likely Bugs/Likely Typos/StringBufferCharInit.ql ql/java/ql/src/Likely Bugs/Likely Typos/SuspiciousDateFormat.ql +ql/java/ql/src/Likely Bugs/Likely Typos/ToStringTypo.ql ql/java/ql/src/Likely Bugs/Likely Typos/UnusedFormatArg.ql ql/java/ql/src/Likely Bugs/Nullness/NullAlways.ql ql/java/ql/src/Likely Bugs/Nullness/NullExprDeref.ql ql/java/ql/src/Likely Bugs/Nullness/NullMaybe.ql +ql/java/ql/src/Likely Bugs/Reflection/AnnotationPresentCheck.ql ql/java/ql/src/Likely Bugs/Resource Leaks/CloseReader.ql ql/java/ql/src/Likely Bugs/Resource Leaks/CloseSql.ql ql/java/ql/src/Likely Bugs/Resource Leaks/CloseWriter.ql +ql/java/ql/src/Likely Bugs/Serialization/IncorrectSerialVersionUID.ql +ql/java/ql/src/Likely Bugs/Serialization/IncorrectSerializableMethods.ql +ql/java/ql/src/Likely Bugs/Serialization/MissingVoidConstructorOnExternalizable.ql +ql/java/ql/src/Likely Bugs/Serialization/MissingVoidConstructorsOnSerializable.ql +ql/java/ql/src/Likely Bugs/Serialization/NonSerializableInnerClass.ql +ql/java/ql/src/Likely Bugs/Serialization/ReadResolveObject.ql ql/java/ql/src/Likely Bugs/Statements/ContinueInFalseLoop.ql +ql/java/ql/src/Likely Bugs/Statements/MissingEnumInSwitch.ql ql/java/ql/src/Likely Bugs/Statements/PartiallyMaskedCatch.ql ql/java/ql/src/Likely Bugs/Statements/UseBraces.ql ql/java/ql/src/Likely Bugs/Termination/ConstantLoopCondition.ql +ql/java/ql/src/Likely Bugs/Termination/SpinOnField.ql ql/java/ql/src/Performance/InefficientEmptyStringTest.ql ql/java/ql/src/Performance/InefficientKeySetIterator.ql ql/java/ql/src/Performance/InefficientOutputStream.ql @@ -64,6 +120,7 @@ ql/java/ql/src/Performance/InnerClassCouldBeStatic.ql ql/java/ql/src/Performance/NewStringString.ql ql/java/ql/src/Performance/StringReplaceAllWithNonRegex.ql ql/java/ql/src/Violations of Best Practice/Boxed Types/BoxedVariable.ql +ql/java/ql/src/Violations of Best Practice/Dead Code/CreatesEmptyZip.ql ql/java/ql/src/Violations of Best Practice/Dead Code/DeadRefTypes.ql ql/java/ql/src/Violations of Best Practice/Dead Code/InterfaceCannotBeImplemented.ql ql/java/ql/src/Violations of Best Practice/Dead Code/UnreadLocal.ql @@ -73,10 +130,12 @@ ql/java/ql/src/Violations of Best Practice/Exception Handling/IgnoreExceptionalR ql/java/ql/src/Violations of Best Practice/Exception Handling/NumberFormatException.ql ql/java/ql/src/Violations of Best Practice/Implementation Hiding/AbstractToConcreteCollection.ql ql/java/ql/src/Violations of Best Practice/Implementation Hiding/ExposeRepresentation.ql +ql/java/ql/src/Violations of Best Practice/Implementation Hiding/GetClassGetResource.ql ql/java/ql/src/Violations of Best Practice/Implementation Hiding/VisibleForTestingAbuse.ql ql/java/ql/src/Violations of Best Practice/Naming Conventions/AmbiguousOuterSuper.ql ql/java/ql/src/Violations of Best Practice/Naming Conventions/ConfusingMethodNames.ql ql/java/ql/src/Violations of Best Practice/Naming Conventions/ConfusingOverloading.ql +ql/java/ql/src/Violations of Best Practice/Naming Conventions/FieldMasksSuperField.ql ql/java/ql/src/Violations of Best Practice/Naming Conventions/LocalShadowsFieldConfusing.ql ql/java/ql/src/Violations of Best Practice/Naming Conventions/SameNameAsSuper.ql ql/java/ql/src/Violations of Best Practice/Records/IgnoredSerializationMembersOfRecordClass.ql @@ -87,4 +146,5 @@ ql/java/ql/src/Violations of Best Practice/Undesirable Calls/CallsToStringToStri ql/java/ql/src/Violations of Best Practice/Undesirable Calls/CallsToSystemExit.ql ql/java/ql/src/Violations of Best Practice/Undesirable Calls/DefaultToString.ql ql/java/ql/src/Violations of Best Practice/Undesirable Calls/DoNotCallFinalize.ql +ql/java/ql/src/Violations of Best Practice/Undesirable Calls/NextFromIterator.ql ql/java/ql/src/Violations of Best Practice/Undesirable Calls/PrintLnArray.ql diff --git a/java/ql/integration-tests/java/query-suite/not_included_in_qls.expected b/java/ql/integration-tests/java/query-suite/not_included_in_qls.expected index 3a1cd4e1adb..d1b6428ae22 100644 --- a/java/ql/integration-tests/java/query-suite/not_included_in_qls.expected +++ b/java/ql/integration-tests/java/query-suite/not_included_in_qls.expected @@ -1,25 +1,8 @@ -ql/java/ql/src/Advisory/Declarations/NonFinalImmutableField.ql -ql/java/ql/src/Advisory/Declarations/NonPrivateField.ql ql/java/ql/src/Advisory/Documentation/MissingJavadocMethods.ql ql/java/ql/src/Advisory/Documentation/MissingJavadocParameters.ql ql/java/ql/src/Advisory/Documentation/MissingJavadocReturnValues.ql ql/java/ql/src/Advisory/Documentation/MissingJavadocThrows.ql ql/java/ql/src/Advisory/Documentation/MissingJavadocTypes.ql -ql/java/ql/src/Advisory/Java Objects/AvoidCloneMethodAccess.ql -ql/java/ql/src/Advisory/Java Objects/AvoidCloneOverride.ql -ql/java/ql/src/Advisory/Java Objects/AvoidCloneableInterface.ql -ql/java/ql/src/Advisory/Java Objects/AvoidFinalizeOverride.ql -ql/java/ql/src/Advisory/Naming/NamingConventionsConstants.ql -ql/java/ql/src/Advisory/Naming/NamingConventionsMethods.ql -ql/java/ql/src/Advisory/Naming/NamingConventionsPackages.ql -ql/java/ql/src/Advisory/Naming/NamingConventionsRefTypes.ql -ql/java/ql/src/Advisory/Naming/NamingConventionsVariables.ql -ql/java/ql/src/Advisory/Statements/MissingDefaultInSwitch.ql -ql/java/ql/src/Advisory/Statements/OneStatementPerLine.ql -ql/java/ql/src/Advisory/Statements/TerminateIfElseIfWithElse.ql -ql/java/ql/src/Advisory/Types/GenericsConstructor.ql -ql/java/ql/src/Advisory/Types/GenericsReturnType.ql -ql/java/ql/src/Advisory/Types/GenericsVariable.ql ql/java/ql/src/AlertSuppression.ql ql/java/ql/src/AlertSuppressionAnnotations.ql ql/java/ql/src/Architecture/Dependencies/MutualDependency.ql @@ -31,10 +14,6 @@ ql/java/ql/src/Architecture/Refactoring Opportunities/HubClasses.ql ql/java/ql/src/Architecture/Refactoring Opportunities/InappropriateIntimacy.ql ql/java/ql/src/Complexity/BlockWithTooManyStatements.ql ql/java/ql/src/Complexity/ComplexCondition.ql -ql/java/ql/src/DeadCode/DeadClass.ql -ql/java/ql/src/DeadCode/DeadEnumConstant.ql -ql/java/ql/src/DeadCode/DeadField.ql -ql/java/ql/src/DeadCode/DeadMethod.ql ql/java/ql/src/DeadCode/FLinesOfDeadCode.ql ql/java/ql/src/Frameworks/JavaEE/EJB/EjbContainerInterference.ql ql/java/ql/src/Frameworks/JavaEE/EJB/EjbFileIO.ql diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index 448b04bdc24..a6b4649e42e 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -1,3 +1,18 @@ +## 7.7.0 + +### New Features + +* The Java extractor and QL libraries now support Java 25. +* Added support for Java 25 compact source files (JEP 512). The new predicate `Class.isImplicit()` identifies classes that are implicitly declared when using compact source files, and the new predicate `CompilationUnit.isCompactSourceFile()` identifies compilation units that contain compact source files. +* Added support for Java 25 module import declarations. +* Add `ModuleImportDeclaration` class. + +### Minor Analysis Improvements + +* Improved support for various assertion libraries, in particular JUnit. This affects the control-flow graph slightly, and in turn affects several queries (mainly quality queries). Most queries should see improved precision (new true positives and fewer false positives), in particular `java/constant-comparison`, `java/index-out-of-bounds`, `java/dereferenced-value-may-be-null`, and `java/useless-null-check`. Some medium precision queries like `java/toctou-race-condition` and `java/unreleased-lock` may see mixed result changes (both slight improvements and slight regressions). +* Added taint flow model for `java.crypto.KDF`. +* Added taint flow model for `java.lang.ScopedValue`. + ## 7.6.1 No user-facing changes. diff --git a/java/ql/lib/change-notes/2025-07-21-module-import-declarations.md b/java/ql/lib/change-notes/2025-07-21-module-import-declarations.md deleted file mode 100644 index 56c7972399a..00000000000 --- a/java/ql/lib/change-notes/2025-07-21-module-import-declarations.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: feature ---- -* Added support for Java 25 module import declarations. -* Add `ModuleImportDeclaration` class. diff --git a/java/ql/lib/change-notes/2025-07-23-compact-source-files.md b/java/ql/lib/change-notes/2025-07-23-compact-source-files.md deleted file mode 100644 index 277ce14398e..00000000000 --- a/java/ql/lib/change-notes/2025-07-23-compact-source-files.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* Added support for Java 25 compact source files (JEP 512). The new predicate `Class.isImplicit()` identifies classes that are implicitly declared when using compact source files, and the new predicate `CompilationUnit.isCompactSourceFile()` identifies compilation units that contain compact source files. diff --git a/java/ql/lib/change-notes/2025-09-02-kdf-api.md b/java/ql/lib/change-notes/2025-09-02-kdf-api.md deleted file mode 100644 index db812e90778..00000000000 --- a/java/ql/lib/change-notes/2025-09-02-kdf-api.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added taint flow model for `java.crypto.KDF`. \ No newline at end of file diff --git a/java/ql/lib/change-notes/2025-09-02-scoped-values.md b/java/ql/lib/change-notes/2025-09-02-scoped-values.md deleted file mode 100644 index 8758d1268f3..00000000000 --- a/java/ql/lib/change-notes/2025-09-02-scoped-values.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added taint flow model for `java.lang.ScopedValue`. \ No newline at end of file diff --git a/java/ql/lib/change-notes/2025-09-11-assertions-cfg.md b/java/ql/lib/change-notes/2025-09-11-assertions-cfg.md deleted file mode 100644 index 34ff19d685e..00000000000 --- a/java/ql/lib/change-notes/2025-09-11-assertions-cfg.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Improved support for various assertion libraries, in particular JUnit. This affects the control-flow graph slightly, and in turn affects several queries (mainly quality queries). Most queries should see improved precision (new true positives and fewer false positives), in particular `java/constant-comparison`, `java/index-out-of-bounds`, `java/dereferenced-value-may-be-null`, and `java/useless-null-check`. Some medium precision queries like `java/toctou-race-condition` and `java/unreleased-lock` may see mixed result changes (both slight improvements and slight regressions). diff --git a/java/ql/lib/change-notes/2025-09-11-support-java-25.md b/java/ql/lib/change-notes/2025-09-11-support-java-25.md deleted file mode 100644 index bcd78fd8fda..00000000000 --- a/java/ql/lib/change-notes/2025-09-11-support-java-25.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* The Java extractor and QL libraries now support Java 25. \ No newline at end of file diff --git a/java/ql/lib/change-notes/released/7.7.0.md b/java/ql/lib/change-notes/released/7.7.0.md new file mode 100644 index 00000000000..f33b45cd74d --- /dev/null +++ b/java/ql/lib/change-notes/released/7.7.0.md @@ -0,0 +1,14 @@ +## 7.7.0 + +### New Features + +* The Java extractor and QL libraries now support Java 25. +* Added support for Java 25 compact source files (JEP 512). The new predicate `Class.isImplicit()` identifies classes that are implicitly declared when using compact source files, and the new predicate `CompilationUnit.isCompactSourceFile()` identifies compilation units that contain compact source files. +* Added support for Java 25 module import declarations. +* Add `ModuleImportDeclaration` class. + +### Minor Analysis Improvements + +* Improved support for various assertion libraries, in particular JUnit. This affects the control-flow graph slightly, and in turn affects several queries (mainly quality queries). Most queries should see improved precision (new true positives and fewer false positives), in particular `java/constant-comparison`, `java/index-out-of-bounds`, `java/dereferenced-value-may-be-null`, and `java/useless-null-check`. Some medium precision queries like `java/toctou-race-condition` and `java/unreleased-lock` may see mixed result changes (both slight improvements and slight regressions). +* Added taint flow model for `java.crypto.KDF`. +* Added taint flow model for `java.lang.ScopedValue`. diff --git a/java/ql/lib/codeql-pack.release.yml b/java/ql/lib/codeql-pack.release.yml index 0e73c833572..5c876a864fc 100644 --- a/java/ql/lib/codeql-pack.release.yml +++ b/java/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 7.6.1 +lastReleaseVersion: 7.7.0 diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 69cadd5a6b0..3009b1b327f 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 7.6.2-dev +version: 7.7.1-dev groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/lib/semmle/code/java/ControlFlowGraph.qll b/java/ql/lib/semmle/code/java/ControlFlowGraph.qll index d98395b49e5..a31101888da 100644 --- a/java/ql/lib/semmle/code/java/ControlFlowGraph.qll +++ b/java/ql/lib/semmle/code/java/ControlFlowGraph.qll @@ -82,6 +82,7 @@ module; */ import java +private import codeql.controlflow.SuccessorType private import codeql.util.Boolean private import Completion private import controlflow.internal.Preconditions @@ -124,6 +125,28 @@ module ControlFlow { result = succ(this, NormalCompletion()) } + /** Gets an immediate successor of this node of a given type, if any. */ + Node getASuccessor(SuccessorType t) { + result = branchSuccessor(this, t.(BooleanSuccessor).getValue()) + or + exists(Completion completion | + result = succ(this, completion) and + not result = branchSuccessor(this, _) + | + completion = NormalCompletion() and t instanceof DirectSuccessor + or + completion = ReturnCompletion() and t instanceof ReturnSuccessor + or + completion = BreakCompletion(_) and t instanceof BreakSuccessor + or + completion = YieldCompletion(_) and t instanceof BreakSuccessor + or + completion = ContinueCompletion(_) and t instanceof ContinueSuccessor + or + completion = ThrowCompletion(_) and t instanceof ExceptionSuccessor + ) + } + /** Gets the basic block that contains this node. */ BasicBlock getBasicBlock() { result.getANode() = this } diff --git a/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll b/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll index b08c59d4630..f214cbbd0b1 100644 --- a/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll +++ b/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll @@ -22,20 +22,8 @@ private module Input implements BB::InputSig { /** Gets the CFG scope in which this node occurs. */ CfgScope nodeGetCfgScope(Node node) { node.getEnclosingCallable() = result } - private Node getASpecificSuccessor(Node node, SuccessorType t) { - node.(ConditionNode).getABranchSuccessor(t.(BooleanSuccessor).getValue()) = result - or - node.getAnExceptionSuccessor() = result and t instanceof ExceptionSuccessor - } - /** Gets an immediate successor of this node. */ - Node nodeGetASuccessor(Node node, SuccessorType t) { - result = getASpecificSuccessor(node, t) - or - node.getASuccessor() = result and - t instanceof DirectSuccessor and - not result = getASpecificSuccessor(node, _) - } + Node nodeGetASuccessor(Node node, SuccessorType t) { result = node.getASuccessor(t) } /** * Holds if `node` represents an entry node to be used when calculating diff --git a/java/ql/lib/semmle/code/java/controlflow/ControlFlow.qll b/java/ql/lib/semmle/code/java/controlflow/ControlFlow.qll new file mode 100644 index 00000000000..3d2a8d7fdd1 --- /dev/null +++ b/java/ql/lib/semmle/code/java/controlflow/ControlFlow.qll @@ -0,0 +1,60 @@ +/** + * Provides an implementation of local (intraprocedural) control flow reachability. + */ +overlay[local?] +module; + +import java +private import codeql.controlflow.ControlFlow +private import semmle.code.java.dataflow.SSA as SSA +private import semmle.code.java.controlflow.Guards as Guards + +private module ControlFlowInput implements InputSig { + private import java as J + + AstNode getEnclosingAstNode(ControlFlowNode node) { node.getAstNode() = result } + + class AstNode = ExprParent; + + AstNode getParent(AstNode node) { + result = node.(Expr).getParent() or + result = node.(Stmt).getParent() + } + + class FinallyBlock extends AstNode { + FinallyBlock() { any(TryStmt try).getFinally() = this } + } + + class Expr = J::Expr; + + class SourceVariable = SSA::SsaSourceVariable; + + class SsaDefinition = SSA::SsaVariable; + + class SsaWriteDefinition extends SsaDefinition instanceof SSA::SsaExplicitUpdate { + Expr getDefinition() { + super.getDefiningExpr().(VariableAssign).getSource() = result or + super.getDefiningExpr().(AssignOp) = result + } + } + + class SsaPhiNode = SSA::SsaPhiNode; + + class SsaUncertainDefinition extends SsaDefinition instanceof SSA::SsaUncertainImplicitUpdate { + SsaDefinition getPriorDefinition() { result = super.getPriorDef() } + } + + class GuardValue = Guards::GuardValue; + + predicate ssaControlsBranchEdge(SsaDefinition def, BasicBlock bb1, BasicBlock bb2, GuardValue v) { + Guards::Guards_v3::ssaControlsBranchEdge(def, bb1, bb2, v) + } + + predicate ssaControls(SsaDefinition def, BasicBlock bb, GuardValue v) { + Guards::Guards_v3::ssaControls(def, bb, v) + } + + import Guards::Guards_v3::InternalUtil +} + +module ControlFlow = Make; diff --git a/java/ql/lib/semmle/code/java/dataflow/IntegerGuards.qll b/java/ql/lib/semmle/code/java/dataflow/IntegerGuards.qll index 042fd5194f2..ea2bce01e15 100644 --- a/java/ql/lib/semmle/code/java/dataflow/IntegerGuards.qll +++ b/java/ql/lib/semmle/code/java/dataflow/IntegerGuards.qll @@ -10,7 +10,7 @@ private import RangeUtils private import RangeAnalysis /** Gets an expression that might have the value `i`. */ -private Expr exprWithIntValue(int i) { +deprecated private Expr exprWithIntValue(int i) { result.(ConstantIntegerExpr).getIntValue() = i or result.(ChooseExpr).getAResultExpr() = exprWithIntValue(i) } @@ -19,11 +19,11 @@ private Expr exprWithIntValue(int i) { * An expression for which the predicate `integerGuard` is relevant. * This includes `VarRead` and `MethodCall`. */ -class IntComparableExpr extends Expr { +deprecated class IntComparableExpr extends Expr { IntComparableExpr() { this instanceof VarRead or this instanceof MethodCall } /** Gets an integer that is directly assigned to the expression in case of a variable; or zero. */ - int relevantInt() { + deprecated int relevantInt() { exists(SsaExplicitUpdate ssa, SsaSourceVariable v | this = v.getAnAccess() and ssa.getSourceVariable() = v and @@ -55,6 +55,9 @@ private predicate comparison(ComparisonExpr comp, boolean branch, Expr e1, Expr * Holds if `guard` evaluating to `branch` ensures that: * `e <= k` when `upper = true` * `e >= k` when `upper = false` + * + * Does _not_ include the constant comparison case where the guard directly + * ensures `e == k`. */ pragma[nomagic] predicate rangeGuard(Expr guard, boolean branch, Expr e, int k, boolean upper) { @@ -62,7 +65,8 @@ predicate rangeGuard(Expr guard, boolean branch, Expr e, int k, boolean upper) { eqtest = guard and eqtest.hasOperands(e, c) and bounded(c, any(ZeroBound zb), k, upper, _) and - branch = eqtest.polarity() + branch = eqtest.polarity() and + not c instanceof ConstantIntegerExpr ) or exists(Expr c, int val, boolean strict, int d | @@ -87,6 +91,30 @@ predicate rangeGuard(Expr guard, boolean branch, Expr e, int k, boolean upper) { } /** + * Gets an expression that directly tests whether a given expression, `e`, is + * non-zero. + */ +Expr nonZeroGuard(Expr e, boolean branch) { + exists(EqualityTest eqtest, boolean polarity, int k | + eqtest = result and + eqtest.hasOperands(e, any(ConstantIntegerExpr c | c.getIntValue() = k)) and + polarity = eqtest.polarity() + | + k = 0 and branch = polarity.booleanNot() + or + k != 0 and branch = polarity + ) + or + exists(int val, boolean upper | rangeGuard(result, branch, e, val, upper) | + upper = true and val < 0 // e <= val < 0 ==> e != 0 + or + upper = false and val > 0 // e >= val > 0 ==> e != 0 + ) +} + +/** + * DEPRECATED. + * * An expression that directly tests whether a given expression is equal to `k` or not. * The set of `k`s is restricted to those that are relevant for the expression or * have a direct comparison with the expression. @@ -95,7 +123,7 @@ predicate rangeGuard(Expr guard, boolean branch, Expr e, int k, boolean upper) { * is true, and different from `k` if `is_k` is false. */ pragma[nomagic] -Expr integerGuard(IntComparableExpr e, boolean branch, int k, boolean is_k) { +deprecated Expr integerGuard(IntComparableExpr e, boolean branch, int k, boolean is_k) { exists(EqualityTest eqtest, boolean polarity | eqtest = result and eqtest.hasOperands(e, any(ConstantIntegerExpr c | c.getIntValue() = k)) and @@ -119,13 +147,15 @@ Expr integerGuard(IntComparableExpr e, boolean branch, int k, boolean is_k) { } /** + * DEPRECATED: Use `rangeGuard` instead. + * * A guard that splits the values of a variable into one range with an upper bound of `k-1` * and one with a lower bound of `k`. * * If `branch_with_lower_bound_k` is true then `result` is equivalent to `k <= x` * and if it is false then `result` is equivalent to `k > x`. */ -Expr intBoundGuard(VarRead x, boolean branch_with_lower_bound_k, int k) { +deprecated Expr intBoundGuard(VarRead x, boolean branch_with_lower_bound_k, int k) { exists(ComparisonExpr comp, ConstantIntegerExpr c, int val | comp = result and comp.hasOperands(x, c) and diff --git a/java/ql/lib/semmle/code/java/dataflow/Nullness.qll b/java/ql/lib/semmle/code/java/dataflow/Nullness.qll index 64423e9a6b9..8728af2c0db 100644 --- a/java/ql/lib/semmle/code/java/dataflow/Nullness.qll +++ b/java/ql/lib/semmle/code/java/dataflow/Nullness.qll @@ -9,49 +9,31 @@ overlay[local?] module; -/* - * Implementation details: - * - * The three exported predicates, `nullDeref`, `alwaysNullDeref`, and - * `superfluousNullGuard`, compute potential null dereferences, definite null - * dereferences, and superfluous null checks, respectively. The bulk of the - * library supports `nullDeref`, while the latter two are fairly simple in - * comparison. - * - * The NPE (NullPointerException) candidates are computed by - * `nullDerefCandidate` and consist of three parts: A variable definition that - * might be null as computed by `varMaybeNull`, a dereference that can cause a - * NPE as computed by `firstVarDereferenceInBlock`, and a control flow path - * between the two points. The path is computed by `varMaybeNullInBlock`, - * which is the transitive closure of the step relation `nullVarStep` - * originating in a definition given by `varMaybeNull`. The step relation - * `nullVarStep` is essentially just the successor relation on basic blocks - * restricted to exclude edges along which the variable cannot be null. - * - * The step relation `nullVarStep` is then reused twice to produce two - * refinements of the path reachability predicate `varMaybeNullInBlock` in - * order to prune impossible paths that would otherwise lead to a potential - * NPE. These two refinements are `varMaybeNullInBlock_corrCond` and - * `varMaybeNullInBlock_trackVar` and are described in further detail below. - */ - import java private import SSA private import semmle.code.java.controlflow.Guards -private import RangeUtils private import IntegerGuards private import NullGuards private import semmle.code.java.Collections private import semmle.code.java.controlflow.internal.Preconditions +private import semmle.code.java.controlflow.ControlFlow as Cf /** Gets an expression that may be `null`. */ -Expr nullExpr() { - result instanceof NullLiteral or - result.(ChooseExpr).getAResultExpr() = nullExpr() or - result.(AssignExpr).getSource() = nullExpr() or - result.(CastExpr).getExpr() = nullExpr() or - result.(ImplicitCastExpr).getExpr() = nullExpr() or - result instanceof SafeCastExpr +Expr nullExpr() { result = nullExpr(_) } + +/** Gets an expression that may be `null`. */ +private Expr nullExpr(Expr reason) { + result instanceof NullLiteral and reason = result + or + result.(ChooseExpr).getAResultExpr() = nullExpr(reason) + or + result.(AssignExpr).getSource() = nullExpr(reason) + or + result.(CastExpr).getExpr() = nullExpr(reason) + or + result.(ImplicitCastExpr).getExpr() = nullExpr(reason) + or + result instanceof SafeCastExpr and reason = result } /** An expression of a boxed type that is implicitly unboxed. */ @@ -137,49 +119,29 @@ private ControlFlowNode varDereference(SsaVariable v, VarAccess va) { } /** - * A `ControlFlowNode` that ensures that the SSA variable is not null in any - * subsequent use, either by dereferencing it or by an assertion. - */ -private ControlFlowNode ensureNotNull(SsaVariable v) { result = varDereference(v, _) } - -private predicate assertFail(BasicBlock bb, ControlFlowNode n) { - bb = n.getBasicBlock() and - methodCallUnconditionallyThrows(n.asExpr()) -} - -/** - * A variable dereference that cannot be reached by a `null` value, because of an earlier - * dereference or assertion in the same `BasicBlock`. - */ -private predicate unreachableVarDereference(BasicBlock bb, SsaVariable v, ControlFlowNode varDeref) { - exists(ControlFlowNode n, int i, int j | - (n = ensureNotNull(v) or assertFail(bb, n)) and - varDeref = varDereference(v, _) and - bb.getNode(i) = n and - bb.getNode(j) = varDeref and - i < j - ) -} - -/** - * The first dereference of a variable in a given `BasicBlock` excluding those dereferences - * that are preceded by a not-null assertion or a trivially failing assertion. + * The first dereference of a variable in a given `BasicBlock`. */ private predicate firstVarDereferenceInBlock(BasicBlock bb, SsaVariable v, VarAccess va) { exists(ControlFlowNode n | varDereference(v, va) = n and n.getBasicBlock() = bb and - not unreachableVarDereference(bb, v, n) + n = + min(ControlFlowNode n0, int i | + varDereference(v, _) = n0 and bb.getNode(i) = n0 + | + n0 order by i + ) ) } /** A variable suspected of being `null`. */ -private predicate varMaybeNull(SsaVariable v, string msg, Expr reason) { +private predicate varMaybeNull(SsaVariable v, ControlFlowNode node, string msg, Expr reason) { // A variable compared to null might be null. exists(Expr e | reason = e and msg = "as suggested by $@ null guard" and guardSuggestsVarMaybeNull(e, v) and + node = v.getCfgNode() and not v instanceof SsaPhiNode and not clearlyNotNull(v) and // Comparisons in finally blocks are excluded since missing exception edges in the CFG could otherwise yield FPs. @@ -195,6 +157,7 @@ private predicate varMaybeNull(SsaVariable v, string msg, Expr reason) { // A parameter might be null if there is a null argument somewhere. exists(Parameter p, Expr arg | v.(SsaImplicitInit).isParameterDefinition(p) and + node = v.getCfgNode() and p.getAnArgument() = arg and reason = arg and msg = "because of $@ null argument" and @@ -205,7 +168,7 @@ private predicate varMaybeNull(SsaVariable v, string msg, Expr reason) { // If the source of a variable is null then the variable may be null. exists(VariableAssign def | v.(SsaExplicitUpdate).getDefiningExpr() = def and - def.getSource() = nullExpr() and + def.getSource() = nullExpr(node.asExpr()) and reason = def and msg = "because of $@ assignment" ) @@ -227,7 +190,7 @@ private Expr nonEmptyExpr() { // ...or it is guarded by a condition proving its length to be non-zero. exists(ConditionBlock cond, boolean branch, FieldAccess length | cond.controls(result.getBasicBlock(), branch) and - cond.getCondition() = integerGuard(length, branch, 0, false) and + cond.getCondition() = nonZeroGuard(length, branch) and length.getField().hasName("length") and length.getQualifier() = v.getAUse() ) @@ -257,7 +220,7 @@ private Expr nonEmptyExpr() { or // ...or a check on its `size`. exists(MethodCall size | - c = integerGuard(size, branch, 0, false) and + c = nonZeroGuard(size, branch) and size.getMethod().hasName("size") and size.getQualifier() = v.getAUse() ) @@ -285,536 +248,29 @@ private predicate impossibleEdge(BasicBlock bb1, BasicBlock bb2) { ) } -/** A control flow edge that leaves a finally-block. */ -private predicate leavingFinally(BasicBlock bb1, BasicBlock bb2, boolean normaledge) { - exists(TryStmt try, BlockStmt finally | - try.getFinally() = finally and - bb1.getASuccessor() = bb2 and - bb1.getFirstNode().getEnclosingStmt().getEnclosingStmt*() = finally and - not bb2.getFirstNode().getEnclosingStmt().getEnclosingStmt*() = finally and - if bb1.getLastNode().getANormalSuccessor() = bb2.getFirstNode() - then normaledge = true - else normaledge = false - ) +private module NullnessConfig implements Cf::ControlFlow::ConfigSig { + predicate source(ControlFlowNode node, SsaVariable def) { varMaybeNull(def, node, _, _) } + + predicate sink(ControlFlowNode node, SsaVariable def) { varDereference(def, _) = node } + + predicate barrierValue(GuardValue gv) { gv.isNullness(false) } + + predicate barrierEdge(BasicBlock bb1, BasicBlock bb2) { impossibleEdge(bb1, bb2) } + + predicate uncertainFlow() { none() } } -private predicate ssaSourceVarMaybeNull(SsaSourceVariable v) { - varMaybeNull(v.getAnSsaVariable(), _, _) -} +private module NullnessFlow = Cf::ControlFlow::Flow; /** - * The step relation for propagating that a given SSA variable might be `null` in a given `BasicBlock`. - * - * If `midssa` is null in `mid` then `ssa` might be null in `bb`. The SSA variables share the same - * `SsaSourceVariable`. - * - * A boolean flag tracks whether a non-normal completion is waiting to resume upon the exit of a finally-block. - * If the flag is set, then the normal edge out of the finally-block is prohibited, but if it is not set then - * no knowledge is assumed of any potentially waiting completions. `midstoredcompletion` is the flag before - * the step and `storedcompletion` is the flag after the step. - */ -private predicate nullVarStep( - SsaVariable midssa, BasicBlock mid, boolean midstoredcompletion, SsaVariable ssa, BasicBlock bb, - boolean storedcompletion -) { - exists(SsaSourceVariable v | - ssaSourceVarMaybeNull(v) and - midssa.getSourceVariable() = v - | - ssa.(SsaPhiNode).getAPhiInput() = midssa and ssa.getBasicBlock() = bb - or - ssa = midssa and - not exists(SsaPhiNode phi | phi.getSourceVariable() = v and phi.getBasicBlock() = bb) - ) and - (midstoredcompletion = true or midstoredcompletion = false) and - midssa.isLiveAtEndOfBlock(mid) and - not ensureNotNull(midssa).getBasicBlock() = mid and - not assertFail(mid, _) and - bb = mid.getASuccessor() and - not impossibleEdge(mid, bb) and - not nullGuardControlsBranchEdge(midssa, false, mid, bb) and - not (leavingFinally(mid, bb, true) and midstoredcompletion = true) and - if bb.getFirstNode().asStmt() = any(TryStmt try | | try.getFinally()) - then - if bb.getFirstNode() = mid.getLastNode().getANormalSuccessor() - then storedcompletion = false - else storedcompletion = true - else - if leavingFinally(mid, bb, _) - then storedcompletion = false - else storedcompletion = midstoredcompletion -} - -/** - * The transitive closure of `nullVarStep` originating from `varMaybeNull`. That is, those `BasicBlock`s - * for which the SSA variable is suspected of being `null`. - */ -private predicate varMaybeNullInBlock( - SsaVariable ssa, SsaSourceVariable v, BasicBlock bb, boolean storedcompletion -) { - varMaybeNull(ssa, _, _) and - bb = ssa.getBasicBlock() and - storedcompletion = false and - v = ssa.getSourceVariable() - or - exists(BasicBlock mid, SsaVariable midssa, boolean midstoredcompletion | - varMaybeNullInBlock(midssa, v, mid, midstoredcompletion) and - nullVarStep(midssa, mid, midstoredcompletion, ssa, bb, storedcompletion) - ) -} - -/** - * Holds if `v` is a source variable that might reach a potential `null` - * dereference. - */ -private predicate nullDerefCandidateVariable(SsaSourceVariable v) { - exists(SsaVariable ssa, BasicBlock bb | - firstVarDereferenceInBlock(bb, ssa, _) and - varMaybeNullInBlock(ssa, v, bb, _) - ) -} - -private predicate varMaybeNullInBlock_origin( - SsaVariable origin, SsaVariable ssa, BasicBlock bb, boolean storedcompletion -) { - nullDerefCandidateVariable(ssa.getSourceVariable()) and - varMaybeNull(ssa, _, _) and - bb = ssa.getBasicBlock() and - storedcompletion = false and - origin = ssa - or - exists(BasicBlock mid, SsaVariable midssa, boolean midstoredcompletion | - varMaybeNullInBlock_origin(origin, midssa, mid, midstoredcompletion) and - nullVarStep(midssa, mid, midstoredcompletion, ssa, bb, storedcompletion) - ) -} - -/** - * A potential `null` dereference. That is, the first dereference of a variable in a block - * where it is suspected of being `null`. - */ -private predicate nullDerefCandidate(SsaVariable origin, VarAccess va) { - exists(SsaVariable ssa, BasicBlock bb | - firstVarDereferenceInBlock(bb, ssa, va) and - varMaybeNullInBlock_origin(origin, ssa, bb, _) - ) -} - -/* - * In the following, the potential `null` dereference candidates are pruned by proving that - * a `NullPointerException` (NPE) cannot occur. This is done by pruning the control-flow paths - * that lead to the NPE candidate in two ways: - * - * 1. For each set of correlated conditions that are passed by the path, consistent - * branches must be taken. For example, the following code is safe due to the two tests on - * `flag` begin correlated. - * ``` - * x = null; - * if (flag) x = new A(); - * if (flag) x.m(); - * ``` - * - * 2. For each other variable that changes its value alongside the potential NPE candidate, - * the passed conditions must be consistent with its value. For example, the following - * code is safe due to the value of `t`. - * ``` - * x = null; - * t = null; - * if (...) { x = new A(); t = new B(); } - * if (t != null) x.m(); - * ``` - * We call such a variable a _tracking variable_ as it tracks the null-ness of `x`. - */ - -/** A variable that is assigned `null` if the given condition takes the given branch. */ -private predicate varConditionallyNull(SsaExplicitUpdate v, ConditionBlock cond, boolean branch) { - exists(ConditionalExpr condexpr | - v.getDefiningExpr().(VariableAssign).getSource() = condexpr and - condexpr.getCondition() = cond.getCondition() - | - condexpr.getBranchExpr(branch) = nullExpr() and - not condexpr.getBranchExpr(branch.booleanNot()) = nullExpr() - ) - or - v.getDefiningExpr().(VariableAssign).getSource() = nullExpr() and - cond.controls(v.getBasicBlock(), branch) -} - -/** - * A condition that might be useful in proving an NPE candidate safe. - * - * This is a condition along the path that found the NPE candidate. - */ -private predicate interestingCond(SsaSourceVariable npecand, ConditionBlock cond) { - nullDerefCandidateVariable(npecand) and - ( - varMaybeNullInBlock(_, npecand, cond, _) or - varConditionallyNull(npecand.getAnSsaVariable(), cond, _) - ) and - not cond.getCondition().(Expr).getAChildExpr*() = npecand.getAnAccess() -} - -pragma[nomagic] -private ConditionBlock ssaIntegerGuard(SsaVariable v, boolean branch, int k, boolean is_k) { - result.getCondition() = integerGuard(v.getAUse(), branch, k, is_k) -} - -pragma[nomagic] -private ConditionBlock ssaIntBoundGuard(SsaVariable v, boolean branch_with_lower_bound_k, int k) { - result.getCondition() = intBoundGuard(v.getAUse(), branch_with_lower_bound_k, k) -} - -pragma[nomagic] -private ConditionBlock ssaEnumConstEquality(SsaVariable v, boolean polarity, EnumConstant c) { - result.getCondition() = enumConstEquality(v.getAUse(), polarity, c) -} - -private predicate conditionChecksNull(ConditionBlock cond, SsaVariable v, boolean branchIsNull) { - nullGuardControlsBranchEdge(v, true, cond, cond.getTestSuccessor(branchIsNull)) and - nullGuardControlsBranchEdge(v, false, cond, cond.getTestSuccessor(branchIsNull.booleanNot())) -} - -/** A pair of correlated conditions for a given NPE candidate. */ -private predicate correlatedConditions( - SsaSourceVariable npecand, ConditionBlock cond1, ConditionBlock cond2, boolean inverted -) { - interestingCond(npecand, cond1) and - interestingCond(npecand, cond2) and - cond1 != cond2 and - ( - exists(SsaVariable v | - cond1.getCondition() = v.getAUse() and - cond2.getCondition() = v.getAUse() and - inverted = false - ) - or - exists(SsaVariable v, boolean branch1, boolean branch2 | - conditionChecksNull(cond1, v, branch1) and - conditionChecksNull(cond2, v, branch2) and - inverted = branch1.booleanXor(branch2) - ) - or - exists(SsaVariable v, int k, boolean branch1, boolean branch2 | - cond1 = ssaIntegerGuard(v, branch1, k, true) and - cond1 = ssaIntegerGuard(v, branch1.booleanNot(), k, false) and - cond2 = ssaIntegerGuard(v, branch2, k, true) and - cond2 = ssaIntegerGuard(v, branch2.booleanNot(), k, false) and - inverted = branch1.booleanXor(branch2) - ) - or - exists(SsaVariable v, int k, boolean branch1, boolean branch2 | - cond1 = ssaIntBoundGuard(v, branch1, k) and - cond2 = ssaIntBoundGuard(v, branch2, k) and - inverted = branch1.booleanXor(branch2) - ) - or - exists(SsaVariable v, EnumConstant c, boolean pol1, boolean pol2 | - cond1 = ssaEnumConstEquality(v, pol1, c) and - cond2 = ssaEnumConstEquality(v, pol2, c) and - inverted = pol1.booleanXor(pol2) - ) - or - exists(SsaVariable v, RefType type | - cond1.getCondition() = instanceofExpr(v, type) and - cond2.getCondition() = instanceofExpr(v, type) and - inverted = false - ) - or - exists(SsaVariable v1, SsaVariable v2, boolean branch1, boolean branch2 | - cond1.getCondition() = varEqualityTestExpr(v1, v2, branch1) and - cond2.getCondition() = varEqualityTestExpr(v1, v2, branch2) and - inverted = branch1.booleanXor(branch2) - ) - ) -} - -/** - * This is again the transitive closure of `nullVarStep` similarly to `varMaybeNullInBlock`, but - * this time restricted based on pairs of correlated conditions consistent with `cond1` - * evaluating to `branch`. - */ -private predicate varMaybeNullInBlock_corrCond( - SsaVariable origin, SsaVariable ssa, BasicBlock bb, boolean storedcompletion, - ConditionBlock cond1, boolean branch -) { - exists(SsaSourceVariable npecand | npecand = ssa.getSourceVariable() | - nullDerefCandidateVariable(npecand) and correlatedConditions(npecand, cond1, _, _) - ) and - ( - varConditionallyNull(ssa, cond1, branch) - or - not varConditionallyNull(ssa, cond1, _) and - (branch = true or branch = false) - ) and - varMaybeNull(ssa, _, _) and - bb = ssa.getBasicBlock() and - storedcompletion = false and - origin = ssa - or - exists(BasicBlock mid, SsaVariable midssa, boolean midstoredcompletion | - varMaybeNullInBlock_corrCond(origin, midssa, mid, midstoredcompletion, cond1, branch) and - ( - cond1 = mid and cond1.getTestSuccessor(branch) = bb - or - exists(ConditionBlock cond2, boolean inverted, boolean branch2 | - cond2 = mid and - correlatedConditions(_, cond1, cond2, inverted) and - cond2.getTestSuccessor(branch2) = bb and - branch = branch2.booleanXor(inverted) - ) - or - cond1 != mid and - not exists(ConditionBlock cond2 | cond2 = mid and correlatedConditions(_, cond1, cond2, _)) - ) and - nullVarStep(midssa, mid, midstoredcompletion, ssa, bb, storedcompletion) - ) -} - -/* - * A tracking variable has its possible values divided into two sets, A and B, for - * which we can attribute at least one direct assignment to be contained in either - * A or B. - * Four kinds are supported: - * - null: A means null and B means non-null. - * - boolean: A means true and B means false. - * - enum: A means a specific enum constant and B means any other value. - * - int: A means a specific integer value and B means any other value. - */ - -private newtype TrackVarKind = - TrackVarKindNull() or - TrackVarKindBool() or - TrackVarKindEnum() or - TrackVarKindInt() - -/** A variable that might be relevant as a tracking variable for the NPE candidate. */ -private predicate trackingVar( - SsaSourceVariable npecand, SsaExplicitUpdate trackssa, SsaSourceVariable trackvar, - TrackVarKind kind, Expr init -) { - exists(ConditionBlock cond | - interestingCond(npecand, cond) and - varMaybeNullInBlock(_, npecand, cond, _) and - cond.getCondition().(Expr).getAChildExpr*() = trackvar.getAnAccess() and - trackssa.getSourceVariable() = trackvar and - trackssa.getDefiningExpr().(VariableAssign).getSource() = init - | - init instanceof NullLiteral and kind = TrackVarKindNull() - or - init = clearlyNotNullExpr() and kind = TrackVarKindNull() - or - init instanceof BooleanLiteral and kind = TrackVarKindBool() - or - init.(VarAccess).getVariable() instanceof EnumConstant and kind = TrackVarKindEnum() - or - exists(init.(ConstantIntegerExpr).getIntValue()) and kind = TrackVarKindInt() - ) -} - -/** Gets an expression that tests the value of a given tracking variable. */ -private Expr trackingVarGuard( - SsaVariable trackssa, SsaSourceVariable trackvar, TrackVarKind kind, boolean branch, boolean isA -) { - exists(Expr init | trackingVar(_, trackssa, trackvar, kind, init) | - result = basicNullGuard(trackvar.getAnAccess(), branch, isA) and - kind = TrackVarKindNull() - or - result = trackvar.getAnAccess() and - kind = TrackVarKindBool() and - (branch = true or branch = false) and - isA = branch - or - exists(boolean polarity, EnumConstant c, EnumConstant initc | - initc.getAnAccess() = init and - kind = TrackVarKindEnum() and - result = enumConstEquality(trackvar.getAnAccess(), polarity, c) and - ( - initc = c and branch = polarity.booleanNot() and isA = false - or - initc = c and branch = polarity and isA = true - or - initc != c and branch = polarity and isA = false - ) - ) - or - exists(int k | - init.(ConstantIntegerExpr).getIntValue() = k and - kind = TrackVarKindInt() - | - result = integerGuard(trackvar.getAnAccess(), branch, k, isA) - or - exists(int k2 | - result = integerGuard(trackvar.getAnAccess(), branch, k2, true) and - isA = false and - k2 != k - ) - or - exists(int bound, boolean branch_with_lower_bound | - result = intBoundGuard(trackvar.getAnAccess(), branch_with_lower_bound, bound) and - isA = false - | - branch = branch_with_lower_bound and k < bound - or - branch = branch_with_lower_bound.booleanNot() and bound <= k - ) - ) - ) - or - exists(EqualityTest eqtest, boolean branch0, boolean polarity, BooleanLiteral boollit | - eqtest = result and - eqtest.hasOperands(trackingVarGuard(trackssa, trackvar, kind, branch0, isA), boollit) and - eqtest.polarity() = polarity and - branch = branch0.booleanXor(polarity).booleanXor(boollit.getBooleanValue()) - ) -} - -/** An update to a tracking variable that is contained fully in either A or B. */ -private predicate isReset( - SsaVariable trackssa, SsaSourceVariable trackvar, TrackVarKind kind, SsaExplicitUpdate update, - boolean isA -) { - exists(Expr init, Expr e | - trackingVar(_, trackssa, trackvar, kind, init) and - update.getSourceVariable() = trackvar and - e = update.getDefiningExpr().(VariableAssign).getSource() - | - e instanceof NullLiteral and kind = TrackVarKindNull() and isA = true - or - e = clearlyNotNullExpr() and kind = TrackVarKindNull() and isA = false - or - e.(BooleanLiteral).getBooleanValue() = isA and kind = TrackVarKindBool() - or - e.(VarAccess).getVariable().(EnumConstant) = init.(VarAccess).getVariable() and - kind = TrackVarKindEnum() and - isA = true - or - e.(VarAccess).getVariable().(EnumConstant) != init.(VarAccess).getVariable() and - kind = TrackVarKindEnum() and - isA = false - or - e.(ConstantIntegerExpr).getIntValue() = init.(ConstantIntegerExpr).getIntValue() and - kind = TrackVarKindInt() and - isA = true - or - e.(ConstantIntegerExpr).getIntValue() != init.(ConstantIntegerExpr).getIntValue() and - kind = TrackVarKindInt() and - isA = false - ) -} - -/** The abstract value of the tracked variable. */ -private newtype TrackedValue = - TrackedValueA() or - TrackedValueB() or - TrackedValueUnknown() - -private TrackedValue trackValAorB(boolean isA) { - isA = true and result = TrackedValueA() - or - isA = false and result = TrackedValueB() -} - -/** A control flow edge passing through a condition that implies a specific value for a tracking variable. */ -private predicate stepImplies( - BasicBlock bb1, BasicBlock bb2, SsaVariable trackssa, SsaSourceVariable trackvar, - TrackVarKind kind, boolean isA -) { - exists(ConditionBlock cond, boolean branch | - cond = bb1 and - cond.getTestSuccessor(branch) = bb2 and - cond.getCondition() = trackingVarGuard(trackssa, trackvar, kind, branch, isA) - ) -} - -/** - * This is again the transitive closure of `nullVarStep` similarly to `varMaybeNullInBlock`, but - * this time restricted based on a tracking variable. - */ -private predicate varMaybeNullInBlock_trackVar( - SsaVariable origin, SsaVariable ssa, BasicBlock bb, boolean storedcompletion, - SsaVariable trackssa, SsaSourceVariable trackvar, TrackVarKind kind, TrackedValue trackvalue -) { - exists(SsaSourceVariable npecand | npecand = ssa.getSourceVariable() | - nullDerefCandidateVariable(npecand) and trackingVar(npecand, trackssa, trackvar, kind, _) - ) and - ( - exists(SsaVariable init, boolean isA | - init.getSourceVariable() = trackvar and - init.isLiveAtEndOfBlock(bb) and - isReset(trackssa, trackvar, kind, init, isA) and - trackvalue = trackValAorB(isA) - ) - or - trackvalue = TrackedValueUnknown() and - not exists(SsaVariable init | - init.getSourceVariable() = trackvar and - init.isLiveAtEndOfBlock(bb) and - isReset(trackssa, trackvar, kind, init, _) - ) - ) and - varMaybeNull(ssa, _, _) and - bb = ssa.getBasicBlock() and - storedcompletion = false and - origin = ssa - or - exists(BasicBlock mid, SsaVariable midssa, boolean midstoredcompletion, TrackedValue trackvalue0 | - varMaybeNullInBlock_trackVar(origin, midssa, mid, midstoredcompletion, trackssa, trackvar, kind, - trackvalue0) and - nullVarStep(midssa, mid, midstoredcompletion, ssa, bb, storedcompletion) and - ( - trackvalue0 = TrackedValueUnknown() - or - // A step that implies a value that contradicts the current value is not allowed. - exists(boolean isA | trackvalue0 = trackValAorB(isA) | - not stepImplies(mid, bb, trackssa, trackvar, kind, isA.booleanNot()) - ) - ) and - ( - // If no update occurs then the tracked value is unchanged unless the step implies a given value via a condition. - not exists(SsaUpdate update | - update.getSourceVariable() = trackvar and - update.getBasicBlock() = bb - ) and - ( - exists(boolean isA | stepImplies(mid, bb, trackssa, trackvar, kind, isA) | - trackvalue = trackValAorB(isA) - ) - or - not stepImplies(mid, bb, trackssa, trackvar, kind, _) and trackvalue = trackvalue0 - ) - or - // If an update occurs then the tracked value is set accordingly. - exists(SsaUpdate update | - update.getSourceVariable() = trackvar and - update.getBasicBlock() = bb - | - exists(boolean isA | isReset(trackssa, trackvar, kind, update, isA) | - trackvalue = trackValAorB(isA) - ) - or - not isReset(trackssa, trackvar, kind, update, _) and trackvalue = TrackedValueUnknown() - ) - ) - ) -} - -/** - * A potential `null` dereference that has not been proven safe. + * Holds if the dereference of `v` at `va` might be `null`. */ predicate nullDeref(SsaSourceVariable v, VarAccess va, string msg, Expr reason) { - exists(SsaVariable origin, SsaVariable ssa, BasicBlock bb | - nullDerefCandidate(origin, va) and - varMaybeNull(origin, msg, reason) and + exists(SsaVariable origin, SsaVariable ssa, ControlFlowNode src, ControlFlowNode sink | + varMaybeNull(origin, src, msg, reason) and + NullnessFlow::flow(src, origin, sink, ssa) and ssa.getSourceVariable() = v and - firstVarDereferenceInBlock(bb, ssa, va) and - forall(ConditionBlock cond | correlatedConditions(v, cond, _, _) | - varMaybeNullInBlock_corrCond(origin, ssa, bb, _, cond, _) - ) and - forall(SsaVariable guardssa, SsaSourceVariable guardvar, TrackVarKind kind | - trackingVar(v, guardssa, guardvar, kind, _) - | - varMaybeNullInBlock_trackVar(origin, ssa, bb, _, guardssa, guardvar, kind, _) - ) + varDereference(ssa, va) = sink ) } diff --git a/java/ql/src/Advisory/Declarations/NonFinalImmutableField.ql b/java/ql/src/Advisory/Declarations/NonFinalImmutableField.ql index 493168d80a7..1ca836ab231 100644 --- a/java/ql/src/Advisory/Declarations/NonFinalImmutableField.ql +++ b/java/ql/src/Advisory/Declarations/NonFinalImmutableField.ql @@ -7,7 +7,10 @@ * @problem.severity recommendation * @precision medium * @id java/non-final-immutable-field - * @tags reliability + * @tags quality + * reliability + * correctness + * readability */ import java diff --git a/java/ql/src/Advisory/Declarations/NonPrivateField.ql b/java/ql/src/Advisory/Declarations/NonPrivateField.ql index 30b18ec53fd..ca081f41ed6 100644 --- a/java/ql/src/Advisory/Declarations/NonPrivateField.ql +++ b/java/ql/src/Advisory/Declarations/NonPrivateField.ql @@ -6,7 +6,10 @@ * @problem.severity recommendation * @precision medium * @id java/non-private-field - * @tags maintainability + * @tags quality + * maintainability + * readability + * complexity */ import java diff --git a/java/ql/src/Advisory/Documentation/MissingJavadocMethods.ql b/java/ql/src/Advisory/Documentation/MissingJavadocMethods.ql index 49d90a595d3..3d4eacf7ee6 100644 --- a/java/ql/src/Advisory/Documentation/MissingJavadocMethods.ql +++ b/java/ql/src/Advisory/Documentation/MissingJavadocMethods.ql @@ -7,6 +7,7 @@ * @precision medium * @id java/undocumented-function * @tags maintainability + * readability */ import java diff --git a/java/ql/src/Advisory/Documentation/MissingJavadocParameters.ql b/java/ql/src/Advisory/Documentation/MissingJavadocParameters.ql index ec4735e5e21..b81500ff303 100644 --- a/java/ql/src/Advisory/Documentation/MissingJavadocParameters.ql +++ b/java/ql/src/Advisory/Documentation/MissingJavadocParameters.ql @@ -7,6 +7,7 @@ * @precision medium * @id java/undocumented-parameter * @tags maintainability + * readability */ import java diff --git a/java/ql/src/Advisory/Documentation/MissingJavadocReturnValues.ql b/java/ql/src/Advisory/Documentation/MissingJavadocReturnValues.ql index 6668fa6da33..87f5bf2a7ff 100644 --- a/java/ql/src/Advisory/Documentation/MissingJavadocReturnValues.ql +++ b/java/ql/src/Advisory/Documentation/MissingJavadocReturnValues.ql @@ -7,6 +7,7 @@ * @precision medium * @id java/undocumented-return-value * @tags maintainability + * readability */ import java diff --git a/java/ql/src/Advisory/Documentation/MissingJavadocThrows.ql b/java/ql/src/Advisory/Documentation/MissingJavadocThrows.ql index 2b6b346062c..ea12c831239 100644 --- a/java/ql/src/Advisory/Documentation/MissingJavadocThrows.ql +++ b/java/ql/src/Advisory/Documentation/MissingJavadocThrows.ql @@ -7,6 +7,8 @@ * @precision medium * @id java/undocumented-exception * @tags maintainability + * readability + * error-handling */ import java diff --git a/java/ql/src/Advisory/Documentation/MissingJavadocTypes.ql b/java/ql/src/Advisory/Documentation/MissingJavadocTypes.ql index b9c5958623d..21ea91703f9 100644 --- a/java/ql/src/Advisory/Documentation/MissingJavadocTypes.ql +++ b/java/ql/src/Advisory/Documentation/MissingJavadocTypes.ql @@ -7,6 +7,7 @@ * @precision medium * @id java/undocumented-type * @tags maintainability + * readability */ import java diff --git a/java/ql/src/Advisory/Java Objects/AvoidCloneMethodAccess.ql b/java/ql/src/Advisory/Java Objects/AvoidCloneMethodAccess.ql index e2e9b32feee..eb3b80f4720 100644 --- a/java/ql/src/Advisory/Java Objects/AvoidCloneMethodAccess.ql +++ b/java/ql/src/Advisory/Java Objects/AvoidCloneMethodAccess.ql @@ -6,7 +6,9 @@ * @problem.severity recommendation * @precision medium * @id java/use-of-clone-method - * @tags reliability + * @tags quality + * reliability + * correctness */ import java diff --git a/java/ql/src/Advisory/Java Objects/AvoidCloneOverride.ql b/java/ql/src/Advisory/Java Objects/AvoidCloneOverride.ql index 45460ad15ed..482aecd8e03 100644 --- a/java/ql/src/Advisory/Java Objects/AvoidCloneOverride.ql +++ b/java/ql/src/Advisory/Java Objects/AvoidCloneOverride.ql @@ -6,7 +6,9 @@ * @problem.severity recommendation * @precision medium * @id java/override-of-clone-method - * @tags reliability + * @tags quality + * reliability + * correctness */ import java diff --git a/java/ql/src/Advisory/Java Objects/AvoidCloneableInterface.ql b/java/ql/src/Advisory/Java Objects/AvoidCloneableInterface.ql index 02abef17130..a3ab822872d 100644 --- a/java/ql/src/Advisory/Java Objects/AvoidCloneableInterface.ql +++ b/java/ql/src/Advisory/Java Objects/AvoidCloneableInterface.ql @@ -6,7 +6,9 @@ * @problem.severity recommendation * @precision medium * @id java/use-of-cloneable-interface - * @tags reliability + * @tags quality + * reliability + * correctness */ import java diff --git a/java/ql/src/Advisory/Java Objects/AvoidFinalizeOverride.ql b/java/ql/src/Advisory/Java Objects/AvoidFinalizeOverride.ql index 3b5ddefbb34..0d74c4281a2 100644 --- a/java/ql/src/Advisory/Java Objects/AvoidFinalizeOverride.ql +++ b/java/ql/src/Advisory/Java Objects/AvoidFinalizeOverride.ql @@ -5,7 +5,9 @@ * @problem.severity recommendation * @precision medium * @id java/override-of-finalize-method - * @tags reliability + * @tags quality + * reliability + * correctness */ import java diff --git a/java/ql/src/Advisory/Naming/NamingConventionsConstants.ql b/java/ql/src/Advisory/Naming/NamingConventionsConstants.ql index 4ee4bfd27cf..bd079b6fc20 100644 --- a/java/ql/src/Advisory/Naming/NamingConventionsConstants.ql +++ b/java/ql/src/Advisory/Naming/NamingConventionsConstants.ql @@ -5,7 +5,9 @@ * @problem.severity recommendation * @precision medium * @id java/misnamed-constant - * @tags maintainability + * @tags quality + * maintainability + * readability */ import java diff --git a/java/ql/src/Advisory/Naming/NamingConventionsMethods.ql b/java/ql/src/Advisory/Naming/NamingConventionsMethods.ql index a4347b783a0..90b3edd4bbc 100644 --- a/java/ql/src/Advisory/Naming/NamingConventionsMethods.ql +++ b/java/ql/src/Advisory/Naming/NamingConventionsMethods.ql @@ -5,7 +5,9 @@ * @problem.severity recommendation * @precision medium * @id java/misnamed-function - * @tags maintainability + * @tags quality + * maintainability + * readability */ import java diff --git a/java/ql/src/Advisory/Naming/NamingConventionsPackages.ql b/java/ql/src/Advisory/Naming/NamingConventionsPackages.ql index 7d135b21fac..efd6207d66f 100644 --- a/java/ql/src/Advisory/Naming/NamingConventionsPackages.ql +++ b/java/ql/src/Advisory/Naming/NamingConventionsPackages.ql @@ -5,7 +5,9 @@ * @problem.severity recommendation * @precision medium * @id java/misnamed-package - * @tags maintainability + * @tags quality + * maintainability + * readability */ import java diff --git a/java/ql/src/Advisory/Naming/NamingConventionsRefTypes.ql b/java/ql/src/Advisory/Naming/NamingConventionsRefTypes.ql index 6942eaab69a..5106b6e80b7 100644 --- a/java/ql/src/Advisory/Naming/NamingConventionsRefTypes.ql +++ b/java/ql/src/Advisory/Naming/NamingConventionsRefTypes.ql @@ -5,7 +5,9 @@ * @problem.severity recommendation * @precision medium * @id java/misnamed-type - * @tags maintainability + * @tags quality + * maintainability + * readability */ import java diff --git a/java/ql/src/Advisory/Naming/NamingConventionsVariables.ql b/java/ql/src/Advisory/Naming/NamingConventionsVariables.ql index bafa2ec5b14..0d225aa1749 100644 --- a/java/ql/src/Advisory/Naming/NamingConventionsVariables.ql +++ b/java/ql/src/Advisory/Naming/NamingConventionsVariables.ql @@ -5,7 +5,9 @@ * @problem.severity recommendation * @precision medium * @id java/misnamed-variable - * @tags maintainability + * @tags quality + * maintainability + * readability */ import java diff --git a/java/ql/src/Advisory/Statements/MissingDefaultInSwitch.ql b/java/ql/src/Advisory/Statements/MissingDefaultInSwitch.ql index eab8a596f0e..28387ab766b 100644 --- a/java/ql/src/Advisory/Statements/MissingDefaultInSwitch.ql +++ b/java/ql/src/Advisory/Statements/MissingDefaultInSwitch.ql @@ -6,7 +6,9 @@ * @problem.severity recommendation * @precision medium * @id java/missing-default-in-switch - * @tags reliability + * @tags quality + * reliability + * correctness * external/cwe/cwe-478 */ diff --git a/java/ql/src/Advisory/Statements/OneStatementPerLine.ql b/java/ql/src/Advisory/Statements/OneStatementPerLine.ql index b4133761e27..2663cab57a9 100644 --- a/java/ql/src/Advisory/Statements/OneStatementPerLine.ql +++ b/java/ql/src/Advisory/Statements/OneStatementPerLine.ql @@ -5,7 +5,9 @@ * @problem.severity recommendation * @precision medium * @id java/multiple-statements-on-same-line - * @tags maintainability + * @tags quality + * maintainability + * readability */ import java diff --git a/java/ql/src/Advisory/Statements/TerminateIfElseIfWithElse.ql b/java/ql/src/Advisory/Statements/TerminateIfElseIfWithElse.ql index 0172719094c..b15dd1c1746 100644 --- a/java/ql/src/Advisory/Statements/TerminateIfElseIfWithElse.ql +++ b/java/ql/src/Advisory/Statements/TerminateIfElseIfWithElse.ql @@ -6,7 +6,9 @@ * @problem.severity recommendation * @precision medium * @id java/non-terminated-if-else-if-chain - * @tags reliability + * @tags quality + * reliability + * correctness */ import java diff --git a/java/ql/src/Advisory/Types/GenericsConstructor.ql b/java/ql/src/Advisory/Types/GenericsConstructor.ql index 411c2466290..4af9f93c86f 100644 --- a/java/ql/src/Advisory/Types/GenericsConstructor.ql +++ b/java/ql/src/Advisory/Types/GenericsConstructor.ql @@ -6,7 +6,10 @@ * @problem.severity recommendation * @precision medium * @id java/raw-constructor-invocation - * @tags maintainability + * @tags quality + * maintainability + * readability + * correctness */ import java diff --git a/java/ql/src/Advisory/Types/GenericsReturnType.ql b/java/ql/src/Advisory/Types/GenericsReturnType.ql index 0107f7953a2..4f17664902b 100644 --- a/java/ql/src/Advisory/Types/GenericsReturnType.ql +++ b/java/ql/src/Advisory/Types/GenericsReturnType.ql @@ -6,7 +6,10 @@ * @problem.severity recommendation * @precision medium * @id java/raw-return-type - * @tags maintainability + * @tags quality + * maintainability + * readability + * correctness */ import java diff --git a/java/ql/src/Advisory/Types/GenericsVariable.ql b/java/ql/src/Advisory/Types/GenericsVariable.ql index 8f5fb3c05c9..d686feae512 100644 --- a/java/ql/src/Advisory/Types/GenericsVariable.ql +++ b/java/ql/src/Advisory/Types/GenericsVariable.ql @@ -6,7 +6,10 @@ * @problem.severity recommendation * @precision medium * @id java/raw-variable - * @tags maintainability + * @tags quality + * maintainability + * readability + * correctness */ import java diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md index ffd5648cddf..022442a1628 100644 --- a/java/ql/src/CHANGELOG.md +++ b/java/ql/src/CHANGELOG.md @@ -1,3 +1,13 @@ +## 1.8.0 + +### Major Analysis Improvements + +* The implementation of `java/dereferenced-value-may-be-null` has been completely replaced with a new general control-flow reachability library. This improves precision by reducing false positives. However, since the entire calculation has been reworked, there can be small corner cases where precision regressions might occur and new false positives may occur, but these cases should be rare. + +### Bug Fixes + +* The message for `java/diagnostic/database-quality` has been updated to include detailed database health metrics. Additionally, the threshold for reporting database health issues has been lowered from 95% to 85% (if any metric falls below this percentage). These changes are visible on the tool status page. + ## 1.7.0 ### New Queries diff --git a/java/ql/src/DeadCode/DeadClass.ql b/java/ql/src/DeadCode/DeadClass.ql index 23f08fec3b8..22ffad4f835 100644 --- a/java/ql/src/DeadCode/DeadClass.ql +++ b/java/ql/src/DeadCode/DeadClass.ql @@ -5,7 +5,8 @@ * @problem.severity recommendation * @precision medium * @id java/dead-class - * @tags maintainability + * @tags quality + * maintainability * useless-code * external/cwe/cwe-561 */ diff --git a/java/ql/src/DeadCode/DeadEnumConstant.ql b/java/ql/src/DeadCode/DeadEnumConstant.ql index 19044994348..791c2b2a751 100644 --- a/java/ql/src/DeadCode/DeadEnumConstant.ql +++ b/java/ql/src/DeadCode/DeadEnumConstant.ql @@ -5,7 +5,8 @@ * @problem.severity recommendation * @precision medium * @id java/dead-enum-constant - * @tags maintainability + * @tags quality + * maintainability * useless-code * external/cwe/cwe-561 */ diff --git a/java/ql/src/DeadCode/DeadField.ql b/java/ql/src/DeadCode/DeadField.ql index 7a8bca7ac7b..4dd0864bd15 100644 --- a/java/ql/src/DeadCode/DeadField.ql +++ b/java/ql/src/DeadCode/DeadField.ql @@ -5,7 +5,8 @@ * @problem.severity recommendation * @precision medium * @id java/dead-field - * @tags maintainability + * @tags quality + * maintainability * useless-code * external/cwe/cwe-561 */ diff --git a/java/ql/src/DeadCode/DeadMethod.ql b/java/ql/src/DeadCode/DeadMethod.ql index 77401341b6c..ea01cbf4db9 100644 --- a/java/ql/src/DeadCode/DeadMethod.ql +++ b/java/ql/src/DeadCode/DeadMethod.ql @@ -5,7 +5,8 @@ * @problem.severity recommendation * @precision medium * @id java/dead-function - * @tags maintainability + * @tags quality + * maintainability * useless-code * external/cwe/cwe-561 */ diff --git a/java/ql/src/Language Abuse/OverridePackagePrivate.ql b/java/ql/src/Language Abuse/OverridePackagePrivate.ql index d2866c76abc..66663e18c4b 100644 --- a/java/ql/src/Language Abuse/OverridePackagePrivate.ql +++ b/java/ql/src/Language Abuse/OverridePackagePrivate.ql @@ -6,8 +6,10 @@ * @problem.severity warning * @precision medium * @id java/non-overriding-package-private - * @tags maintainability + * @tags quality + * maintainability * readability + * correctness */ import java diff --git a/java/ql/src/Language Abuse/TypeVarExtendsFinalType.ql b/java/ql/src/Language Abuse/TypeVarExtendsFinalType.ql index 77c318bcb9e..13b77d10d06 100644 --- a/java/ql/src/Language Abuse/TypeVarExtendsFinalType.ql +++ b/java/ql/src/Language Abuse/TypeVarExtendsFinalType.ql @@ -7,9 +7,9 @@ * @problem.severity warning * @precision medium * @id java/type-bound-extends-final - * @tags maintainability + * @tags quality + * maintainability * readability - * types */ import java diff --git a/java/ql/src/Likely Bugs/Arithmetic/BadAbsOfRandom.ql b/java/ql/src/Likely Bugs/Arithmetic/BadAbsOfRandom.ql index 26353891f41..2af66f5cfba 100644 --- a/java/ql/src/Likely Bugs/Arithmetic/BadAbsOfRandom.ql +++ b/java/ql/src/Likely Bugs/Arithmetic/BadAbsOfRandom.ql @@ -6,8 +6,9 @@ * @problem.severity warning * @precision medium * @id java/abs-of-random - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness */ import java diff --git a/java/ql/src/Likely Bugs/Arithmetic/MultiplyRemainder.ql b/java/ql/src/Likely Bugs/Arithmetic/MultiplyRemainder.ql index 8992d1753d9..ee1e1ca3fed 100644 --- a/java/ql/src/Likely Bugs/Arithmetic/MultiplyRemainder.ql +++ b/java/ql/src/Likely Bugs/Arithmetic/MultiplyRemainder.ql @@ -6,7 +6,9 @@ * @problem.severity warning * @precision medium * @id java/multiplication-of-remainder - * @tags maintainability + * @tags quality + * maintainability + * readability * correctness */ diff --git a/java/ql/src/Likely Bugs/Arithmetic/RandomUsedOnce.ql b/java/ql/src/Likely Bugs/Arithmetic/RandomUsedOnce.ql index a18df356899..7a81d366a6e 100644 --- a/java/ql/src/Likely Bugs/Arithmetic/RandomUsedOnce.ql +++ b/java/ql/src/Likely Bugs/Arithmetic/RandomUsedOnce.ql @@ -6,8 +6,9 @@ * @problem.severity warning * @precision medium * @id java/random-used-once - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness * external/cwe/cwe-335 */ diff --git a/java/ql/src/Likely Bugs/Cloning/MissingCallToSuperClone.ql b/java/ql/src/Likely Bugs/Cloning/MissingCallToSuperClone.ql index 8c2f7b1d6f8..afc7c54bbad 100644 --- a/java/ql/src/Likely Bugs/Cloning/MissingCallToSuperClone.ql +++ b/java/ql/src/Likely Bugs/Cloning/MissingCallToSuperClone.ql @@ -7,8 +7,9 @@ * @problem.severity error * @precision medium * @id java/missing-call-to-super-clone - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness * external/cwe/cwe-580 */ diff --git a/java/ql/src/Likely Bugs/Cloning/MissingMethodClone.ql b/java/ql/src/Likely Bugs/Cloning/MissingMethodClone.ql index 6d48a118e29..2542637b745 100644 --- a/java/ql/src/Likely Bugs/Cloning/MissingMethodClone.ql +++ b/java/ql/src/Likely Bugs/Cloning/MissingMethodClone.ql @@ -6,8 +6,9 @@ * @problem.severity error * @precision medium * @id java/missing-clone-method - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness */ import java diff --git a/java/ql/src/Likely Bugs/Collections/IteratorRemoveMayFail.ql b/java/ql/src/Likely Bugs/Collections/IteratorRemoveMayFail.ql index 0308f68f231..09d686947e0 100644 --- a/java/ql/src/Likely Bugs/Collections/IteratorRemoveMayFail.ql +++ b/java/ql/src/Likely Bugs/Collections/IteratorRemoveMayFail.ql @@ -6,9 +6,9 @@ * @problem.severity warning * @precision medium * @id java/iterator-remove-failure - * @tags reliability + * @tags quality + * reliability * correctness - * logic */ import java diff --git a/java/ql/src/Likely Bugs/Comparison/CovariantCompareTo.ql b/java/ql/src/Likely Bugs/Comparison/CovariantCompareTo.ql index de1e27073f6..6d55bfc6488 100644 --- a/java/ql/src/Likely Bugs/Comparison/CovariantCompareTo.ql +++ b/java/ql/src/Likely Bugs/Comparison/CovariantCompareTo.ql @@ -6,7 +6,8 @@ * @problem.severity error * @precision medium * @id java/wrong-compareto-signature - * @tags reliability + * @tags quality + * reliability * correctness */ diff --git a/java/ql/src/Likely Bugs/Comparison/CovariantEquals.ql b/java/ql/src/Likely Bugs/Comparison/CovariantEquals.ql index 13f63f15a72..84018a513a5 100644 --- a/java/ql/src/Likely Bugs/Comparison/CovariantEquals.ql +++ b/java/ql/src/Likely Bugs/Comparison/CovariantEquals.ql @@ -6,7 +6,8 @@ * @problem.severity error * @precision medium * @id java/wrong-equals-signature - * @tags reliability + * @tags quality + * reliability * correctness */ diff --git a/java/ql/src/Likely Bugs/Comparison/InconsistentCompareTo.ql b/java/ql/src/Likely Bugs/Comparison/InconsistentCompareTo.ql index 8c5a7133e14..7592fe38266 100644 --- a/java/ql/src/Likely Bugs/Comparison/InconsistentCompareTo.ql +++ b/java/ql/src/Likely Bugs/Comparison/InconsistentCompareTo.ql @@ -6,7 +6,8 @@ * @problem.severity warning * @precision medium * @id java/inconsistent-compareto-and-equals - * @tags reliability + * @tags quality + * reliability * correctness */ diff --git a/java/ql/src/Likely Bugs/Comparison/StringComparison.ql b/java/ql/src/Likely Bugs/Comparison/StringComparison.ql index 63d09e0f791..cfca2c8d7dd 100644 --- a/java/ql/src/Likely Bugs/Comparison/StringComparison.ql +++ b/java/ql/src/Likely Bugs/Comparison/StringComparison.ql @@ -6,7 +6,9 @@ * @problem.severity warning * @precision medium * @id java/reference-equality-on-strings - * @tags reliability + * @tags quality + * reliability + * correctness * external/cwe/cwe-597 */ diff --git a/java/ql/src/Likely Bugs/Concurrency/CallsToConditionWait.ql b/java/ql/src/Likely Bugs/Concurrency/CallsToConditionWait.ql index bf163936115..b89d619fada 100644 --- a/java/ql/src/Likely Bugs/Concurrency/CallsToConditionWait.ql +++ b/java/ql/src/Likely Bugs/Concurrency/CallsToConditionWait.ql @@ -6,7 +6,8 @@ * @problem.severity error * @precision medium * @id java/wait-on-condition-interface - * @tags reliability + * @tags quality + * reliability * correctness * concurrency * external/cwe/cwe-662 diff --git a/java/ql/src/Likely Bugs/Concurrency/DateFormatThreadUnsafe.ql b/java/ql/src/Likely Bugs/Concurrency/DateFormatThreadUnsafe.ql index 18683ac690f..0d87ca49bb2 100644 --- a/java/ql/src/Likely Bugs/Concurrency/DateFormatThreadUnsafe.ql +++ b/java/ql/src/Likely Bugs/Concurrency/DateFormatThreadUnsafe.ql @@ -6,7 +6,8 @@ * @problem.severity warning * @precision medium * @id java/thread-unsafe-dateformat - * @tags reliability + * @tags quality + * reliability * correctness * concurrency */ diff --git a/java/ql/src/Likely Bugs/Concurrency/FutileSynchOnField.ql b/java/ql/src/Likely Bugs/Concurrency/FutileSynchOnField.ql index 7c1875dfe3e..5d816ad8cf9 100644 --- a/java/ql/src/Likely Bugs/Concurrency/FutileSynchOnField.ql +++ b/java/ql/src/Likely Bugs/Concurrency/FutileSynchOnField.ql @@ -6,7 +6,8 @@ * @problem.severity error * @precision medium * @id java/unsafe-sync-on-field - * @tags reliability + * @tags quality + * reliability * correctness * concurrency * language-features diff --git a/java/ql/src/Likely Bugs/Concurrency/NotifyNotNotifyAll.ql b/java/ql/src/Likely Bugs/Concurrency/NotifyNotNotifyAll.ql index 047e6853011..e21b816f168 100644 --- a/java/ql/src/Likely Bugs/Concurrency/NotifyNotNotifyAll.ql +++ b/java/ql/src/Likely Bugs/Concurrency/NotifyNotNotifyAll.ql @@ -6,7 +6,8 @@ * @problem.severity warning * @precision medium * @id java/notify-instead-of-notify-all - * @tags reliability + * @tags quality + * reliability * correctness * concurrency * external/cwe/cwe-662 diff --git a/java/ql/src/Likely Bugs/Concurrency/SleepWithLock.ql b/java/ql/src/Likely Bugs/Concurrency/SleepWithLock.ql index 417e426b786..70a3a901ade 100644 --- a/java/ql/src/Likely Bugs/Concurrency/SleepWithLock.ql +++ b/java/ql/src/Likely Bugs/Concurrency/SleepWithLock.ql @@ -6,9 +6,11 @@ * @problem.severity error * @precision medium * @id java/sleep-with-lock-held - * @tags reliability + * @tags quality + * reliability * correctness * concurrency + * performance * external/cwe/cwe-833 */ diff --git a/java/ql/src/Likely Bugs/Concurrency/StartInConstructor.ql b/java/ql/src/Likely Bugs/Concurrency/StartInConstructor.ql index cb971a5f109..3c80e451951 100644 --- a/java/ql/src/Likely Bugs/Concurrency/StartInConstructor.ql +++ b/java/ql/src/Likely Bugs/Concurrency/StartInConstructor.ql @@ -7,7 +7,8 @@ * @problem.severity warning * @precision medium * @id java/thread-start-in-constructor - * @tags reliability + * @tags quality + * reliability * correctness * concurrency */ diff --git a/java/ql/src/Likely Bugs/Concurrency/SynchWriteObject.ql b/java/ql/src/Likely Bugs/Concurrency/SynchWriteObject.ql index 3eaa6743699..1842076a71b 100644 --- a/java/ql/src/Likely Bugs/Concurrency/SynchWriteObject.ql +++ b/java/ql/src/Likely Bugs/Concurrency/SynchWriteObject.ql @@ -6,10 +6,10 @@ * @problem.severity warning * @precision medium * @id java/inconsistent-sync-writeobject - * @tags reliability + * @tags quality + * reliability * correctness * concurrency - * language-features * external/cwe/cwe-662 */ diff --git a/java/ql/src/Likely Bugs/Finalization/NullifiedSuperFinalize.ql b/java/ql/src/Likely Bugs/Finalization/NullifiedSuperFinalize.ql index 19bac66e028..07fb27d5a53 100644 --- a/java/ql/src/Likely Bugs/Finalization/NullifiedSuperFinalize.ql +++ b/java/ql/src/Likely Bugs/Finalization/NullifiedSuperFinalize.ql @@ -6,8 +6,9 @@ * @problem.severity error * @precision medium * @id java/missing-super-finalize - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness * external/cwe/cwe-568 */ diff --git a/java/ql/src/Likely Bugs/Frameworks/JUnit/BadSuiteMethod.ql b/java/ql/src/Likely Bugs/Frameworks/JUnit/BadSuiteMethod.ql index 2b6ae1125dd..fb82f330c22 100644 --- a/java/ql/src/Likely Bugs/Frameworks/JUnit/BadSuiteMethod.ql +++ b/java/ql/src/Likely Bugs/Frameworks/JUnit/BadSuiteMethod.ql @@ -6,9 +6,9 @@ * @problem.severity warning * @precision medium * @id java/wrong-junit-suite-signature - * @tags testability - * maintainability - * frameworks/junit + * @tags quality + * reliability + * correctness */ import java diff --git a/java/ql/src/Likely Bugs/Frameworks/Swing/BadlyOverriddenAdapter.ql b/java/ql/src/Likely Bugs/Frameworks/Swing/BadlyOverriddenAdapter.ql index ed3ab29c365..6a2db4b695f 100644 --- a/java/ql/src/Likely Bugs/Frameworks/Swing/BadlyOverriddenAdapter.ql +++ b/java/ql/src/Likely Bugs/Frameworks/Swing/BadlyOverriddenAdapter.ql @@ -7,9 +7,9 @@ * @problem.severity warning * @precision medium * @id java/wrong-swing-event-adapter-signature - * @tags reliability - * maintainability - * frameworks/swing + * @tags quality + * reliability + * correctness */ import java diff --git a/java/ql/src/Likely Bugs/Likely Typos/DangerousNonCircuitLogic.ql b/java/ql/src/Likely Bugs/Likely Typos/DangerousNonCircuitLogic.ql index 8d9409059f8..c93e5fe91a1 100644 --- a/java/ql/src/Likely Bugs/Likely Typos/DangerousNonCircuitLogic.ql +++ b/java/ql/src/Likely Bugs/Likely Typos/DangerousNonCircuitLogic.ql @@ -7,7 +7,9 @@ * @problem.severity warning * @precision medium * @id java/non-short-circuit-evaluation - * @tags reliability + * @tags quality + * reliability + * correctness * readability * external/cwe/cwe-691 */ diff --git a/java/ql/src/Likely Bugs/Likely Typos/EqualsTypo.ql b/java/ql/src/Likely Bugs/Likely Typos/EqualsTypo.ql index 585306be958..d5a117fc2da 100644 --- a/java/ql/src/Likely Bugs/Likely Typos/EqualsTypo.ql +++ b/java/ql/src/Likely Bugs/Likely Typos/EqualsTypo.ql @@ -5,9 +5,10 @@ * @problem.severity warning * @precision medium * @id java/equals-typo - * @tags maintainability + * @tags quality + * reliability + * correctness * readability - * naming */ import java diff --git a/java/ql/src/Likely Bugs/Likely Typos/HashCodeTypo.ql b/java/ql/src/Likely Bugs/Likely Typos/HashCodeTypo.ql index 7a69f9f7953..e75f9f337fd 100644 --- a/java/ql/src/Likely Bugs/Likely Typos/HashCodeTypo.ql +++ b/java/ql/src/Likely Bugs/Likely Typos/HashCodeTypo.ql @@ -5,9 +5,10 @@ * @problem.severity warning * @precision medium * @id java/hashcode-typo - * @tags maintainability + * @tags quality + * reliability + * correctness * readability - * naming */ import java diff --git a/java/ql/src/Likely Bugs/Likely Typos/ToStringTypo.ql b/java/ql/src/Likely Bugs/Likely Typos/ToStringTypo.ql index 928d9f5a7cc..a4d46ec69e0 100644 --- a/java/ql/src/Likely Bugs/Likely Typos/ToStringTypo.ql +++ b/java/ql/src/Likely Bugs/Likely Typos/ToStringTypo.ql @@ -5,9 +5,10 @@ * @problem.severity warning * @precision medium * @id java/tostring-typo - * @tags maintainability + * @tags quality + * reliability + * correctness * readability - * naming */ import java diff --git a/java/ql/src/Likely Bugs/Reflection/AnnotationPresentCheck.ql b/java/ql/src/Likely Bugs/Reflection/AnnotationPresentCheck.ql index 0bfb4b45a5a..8b75b8c9786 100644 --- a/java/ql/src/Likely Bugs/Reflection/AnnotationPresentCheck.ql +++ b/java/ql/src/Likely Bugs/Reflection/AnnotationPresentCheck.ql @@ -6,8 +6,9 @@ * @problem.severity error * @precision medium * @id java/ineffective-annotation-present-check - * @tags correctness - * logic + * @tags quality + * reliability + * correctness */ import java diff --git a/java/ql/src/Likely Bugs/Serialization/IncorrectSerialVersionUID.ql b/java/ql/src/Likely Bugs/Serialization/IncorrectSerialVersionUID.ql index af86d90d690..813db75526e 100644 --- a/java/ql/src/Likely Bugs/Serialization/IncorrectSerialVersionUID.ql +++ b/java/ql/src/Likely Bugs/Serialization/IncorrectSerialVersionUID.ql @@ -6,9 +6,9 @@ * @problem.severity warning * @precision medium * @id java/incorrect-serial-version-uid - * @tags reliability - * maintainability - * language-features + * @tags quality + * reliability + * correctness */ import java diff --git a/java/ql/src/Likely Bugs/Serialization/IncorrectSerializableMethods.ql b/java/ql/src/Likely Bugs/Serialization/IncorrectSerializableMethods.ql index 815245d1a7d..0fbf52d207e 100644 --- a/java/ql/src/Likely Bugs/Serialization/IncorrectSerializableMethods.ql +++ b/java/ql/src/Likely Bugs/Serialization/IncorrectSerializableMethods.ql @@ -6,9 +6,9 @@ * @problem.severity warning * @precision medium * @id java/wrong-object-serialization-signature - * @tags reliability - * maintainability - * language-features + * @tags quality + * reliability + * correctness */ import java diff --git a/java/ql/src/Likely Bugs/Serialization/MissingVoidConstructorOnExternalizable.ql b/java/ql/src/Likely Bugs/Serialization/MissingVoidConstructorOnExternalizable.ql index 44c92634fe0..47bb0640b5e 100644 --- a/java/ql/src/Likely Bugs/Serialization/MissingVoidConstructorOnExternalizable.ql +++ b/java/ql/src/Likely Bugs/Serialization/MissingVoidConstructorOnExternalizable.ql @@ -6,9 +6,9 @@ * @problem.severity warning * @precision medium * @id java/missing-no-arg-constructor-on-externalizable - * @tags reliability - * maintainability - * language-features + * @tags quality + * reliability + * correctness */ import java diff --git a/java/ql/src/Likely Bugs/Serialization/MissingVoidConstructorsOnSerializable.ql b/java/ql/src/Likely Bugs/Serialization/MissingVoidConstructorsOnSerializable.ql index 651908b0b86..c38a074529d 100644 --- a/java/ql/src/Likely Bugs/Serialization/MissingVoidConstructorsOnSerializable.ql +++ b/java/ql/src/Likely Bugs/Serialization/MissingVoidConstructorsOnSerializable.ql @@ -7,9 +7,9 @@ * @problem.severity warning * @precision medium * @id java/missing-no-arg-constructor-on-serializable - * @tags reliability - * maintainability - * language-features + * @tags quality + * reliability + * correctness */ import java diff --git a/java/ql/src/Likely Bugs/Serialization/NonSerializableInnerClass.ql b/java/ql/src/Likely Bugs/Serialization/NonSerializableInnerClass.ql index 8081c551eed..520dba86c41 100644 --- a/java/ql/src/Likely Bugs/Serialization/NonSerializableInnerClass.ql +++ b/java/ql/src/Likely Bugs/Serialization/NonSerializableInnerClass.ql @@ -6,9 +6,9 @@ * @problem.severity warning * @precision medium * @id java/non-serializable-inner-class - * @tags reliability - * maintainability - * language-features + * @tags quality + * reliability + * correctness */ import java diff --git a/java/ql/src/Likely Bugs/Serialization/ReadResolveObject.ql b/java/ql/src/Likely Bugs/Serialization/ReadResolveObject.ql index 64e5a483362..629e601f469 100644 --- a/java/ql/src/Likely Bugs/Serialization/ReadResolveObject.ql +++ b/java/ql/src/Likely Bugs/Serialization/ReadResolveObject.ql @@ -7,9 +7,9 @@ * @problem.severity warning * @precision medium * @id java/wrong-readresolve-signature - * @tags reliability - * maintainability - * language-features + * @tags quality + * reliability + * correctness */ import java diff --git a/java/ql/src/Likely Bugs/Statements/MissingEnumInSwitch.ql b/java/ql/src/Likely Bugs/Statements/MissingEnumInSwitch.ql index d1cdb8bdfbb..0e6584bb4e5 100644 --- a/java/ql/src/Likely Bugs/Statements/MissingEnumInSwitch.ql +++ b/java/ql/src/Likely Bugs/Statements/MissingEnumInSwitch.ql @@ -6,8 +6,9 @@ * @problem.severity warning * @precision medium * @id java/missing-case-in-switch - * @tags reliability - * readability + * @tags quality + * reliability + * correctness * external/cwe/cwe-478 */ diff --git a/java/ql/src/Likely Bugs/Termination/SpinOnField.ql b/java/ql/src/Likely Bugs/Termination/SpinOnField.ql index d1a7d49db55..7cfb2308c96 100644 --- a/java/ql/src/Likely Bugs/Termination/SpinOnField.ql +++ b/java/ql/src/Likely Bugs/Termination/SpinOnField.ql @@ -6,9 +6,11 @@ * @problem.severity warning * @precision medium * @id java/spin-on-field - * @tags efficiency + * @tags quality + * reliability * correctness * concurrency + * performance */ import java diff --git a/java/ql/src/Violations of Best Practice/Dead Code/CreatesEmptyZip.ql b/java/ql/src/Violations of Best Practice/Dead Code/CreatesEmptyZip.ql index a2b6afbbeee..beea4bba5d5 100644 --- a/java/ql/src/Violations of Best Practice/Dead Code/CreatesEmptyZip.ql +++ b/java/ql/src/Violations of Best Practice/Dead Code/CreatesEmptyZip.ql @@ -6,8 +6,9 @@ * @problem.severity warning * @precision medium * @id java/empty-zip-file-entry - * @tags reliability - * readability + * @tags quality + * reliability + * correctness */ import java diff --git a/java/ql/src/Violations of Best Practice/Implementation Hiding/GetClassGetResource.ql b/java/ql/src/Violations of Best Practice/Implementation Hiding/GetClassGetResource.ql index 7f52c495835..61e928b8c70 100644 --- a/java/ql/src/Violations of Best Practice/Implementation Hiding/GetClassGetResource.ql +++ b/java/ql/src/Violations of Best Practice/Implementation Hiding/GetClassGetResource.ql @@ -6,8 +6,9 @@ * @problem.severity warning * @precision medium * @id java/unsafe-get-resource - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness */ import java diff --git a/java/ql/src/Violations of Best Practice/Naming Conventions/FieldMasksSuperField.ql b/java/ql/src/Violations of Best Practice/Naming Conventions/FieldMasksSuperField.ql index faf64b0ae5e..e45ba34b5e5 100644 --- a/java/ql/src/Violations of Best Practice/Naming Conventions/FieldMasksSuperField.ql +++ b/java/ql/src/Violations of Best Practice/Naming Conventions/FieldMasksSuperField.ql @@ -7,8 +7,10 @@ * @problem.severity warning * @precision medium * @id java/field-masks-super-field - * @tags maintainability + * @tags quality + * maintainability * readability + * correctness */ import java diff --git a/java/ql/src/Violations of Best Practice/Undesirable Calls/NextFromIterator.ql b/java/ql/src/Violations of Best Practice/Undesirable Calls/NextFromIterator.ql index ebdf5576198..31c0d0821e2 100644 --- a/java/ql/src/Violations of Best Practice/Undesirable Calls/NextFromIterator.ql +++ b/java/ql/src/Violations of Best Practice/Undesirable Calls/NextFromIterator.ql @@ -6,7 +6,8 @@ * @problem.severity warning * @precision medium * @id java/iterator-hasnext-calls-next - * @tags reliability + * @tags quality + * reliability * correctness */ diff --git a/java/ql/src/change-notes/2025-09-04-database-diagnostics.md b/java/ql/src/change-notes/2025-09-04-database-diagnostics.md deleted file mode 100644 index ca035346f9f..00000000000 --- a/java/ql/src/change-notes/2025-09-04-database-diagnostics.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: fix ---- -* The message for `java/diagnostic/database-quality` has been updated to include detailed database health metrics. Additionally, the threshold for reporting database health issues has been lowered from 95% to 85% (if any metric falls below this percentage). These changes are visible on the tool status page. diff --git a/java/ql/src/change-notes/released/1.8.0.md b/java/ql/src/change-notes/released/1.8.0.md new file mode 100644 index 00000000000..f8da72566e2 --- /dev/null +++ b/java/ql/src/change-notes/released/1.8.0.md @@ -0,0 +1,9 @@ +## 1.8.0 + +### Major Analysis Improvements + +* The implementation of `java/dereferenced-value-may-be-null` has been completely replaced with a new general control-flow reachability library. This improves precision by reducing false positives. However, since the entire calculation has been reworked, there can be small corner cases where precision regressions might occur and new false positives may occur, but these cases should be rare. + +### Bug Fixes + +* The message for `java/diagnostic/database-quality` has been updated to include detailed database health metrics. Additionally, the threshold for reporting database health issues has been lowered from 95% to 85% (if any metric falls below this percentage). These changes are visible on the tool status page. diff --git a/java/ql/src/codeql-pack.release.yml b/java/ql/src/codeql-pack.release.yml index d1184cc6750..dc8a37cc443 100644 --- a/java/ql/src/codeql-pack.release.yml +++ b/java/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.7.0 +lastReleaseVersion: 1.8.0 diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index 8e1ae28dd6f..01bf070bb07 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 1.7.1-dev +version: 1.8.1-dev groups: - java - queries diff --git a/java/ql/test/library-tests/guards/Guards.java b/java/ql/test/library-tests/guards/Guards.java index aca64d6f64d..689795038c6 100644 --- a/java/ql/test/library-tests/guards/Guards.java +++ b/java/ql/test/library-tests/guards/Guards.java @@ -26,7 +26,7 @@ public class Guards { } int sz = a != null ? a.length : 0; for (int i = 0; i < sz; i++) { - chk(); // $ guarded='a != null:true' guarded='i < sz:true' guarded='sz:not 0' guarded='...?...:...:not 0' guarded='a.length:not 0' guarded='a:not null' + chk(); // $ guarded='a != null:true' guarded='i < sz:true' guarded='sz:Lower bound 1' guarded='...?...:...:Lower bound 1' guarded='a.length:Lower bound 1' guarded='a:not null' int e = a[i]; if (e > 2) break; } @@ -136,11 +136,11 @@ public class Guards { found = true; } if (found) { - chk(); // $ guarded=found:true guarded='i < a.length:true' + chk(); // $ guarded=found:true guarded='i < a.length:true' guarded='a.length:Lower bound 1' } } if (found) { - chk(); // $ guarded=found:true guarded='i < a.length:false' + chk(); // $ guarded=found:true guarded='i < a.length:false' guarded='i:Lower bound 0' } } diff --git a/java/ql/test/library-tests/guards/GuardsInline.expected b/java/ql/test/library-tests/guards/GuardsInline.expected index a76e2629cde..b0bd3b04c62 100644 --- a/java/ql/test/library-tests/guards/GuardsInline.expected +++ b/java/ql/test/library-tests/guards/GuardsInline.expected @@ -8,12 +8,12 @@ | Guards.java:25:7:25:11 | chk(...) | b:false | | Guards.java:25:7:25:11 | chk(...) | g(1):true | | Guards.java:25:7:25:11 | chk(...) | g(2):false | -| Guards.java:29:7:29:11 | chk(...) | '...?...:...:not 0' | +| Guards.java:29:7:29:11 | chk(...) | '...?...:...:Lower bound 1' | | Guards.java:29:7:29:11 | chk(...) | 'a != null:true' | -| Guards.java:29:7:29:11 | chk(...) | 'a.length:not 0' | +| Guards.java:29:7:29:11 | chk(...) | 'a.length:Lower bound 1' | | Guards.java:29:7:29:11 | chk(...) | 'a:not null' | | Guards.java:29:7:29:11 | chk(...) | 'i < sz:true' | -| Guards.java:29:7:29:11 | chk(...) | 'sz:not 0' | +| Guards.java:29:7:29:11 | chk(...) | 'sz:Lower bound 1' | | Guards.java:39:9:39:13 | chk(...) | 's:bar' | | Guards.java:39:9:39:13 | chk(...) | 's:match "bar"' | | Guards.java:42:9:42:13 | chk(...) | 's:foo' | @@ -85,9 +85,11 @@ | Guards.java:127:7:127:11 | chk(...) | 'o != null:false' | | Guards.java:127:7:127:11 | chk(...) | 'o:null' | | Guards.java:127:7:127:11 | chk(...) | g(1):false | +| Guards.java:139:9:139:13 | chk(...) | 'a.length:Lower bound 1' | | Guards.java:139:9:139:13 | chk(...) | 'i < a.length:true' | | Guards.java:139:9:139:13 | chk(...) | found:true | | Guards.java:143:7:143:11 | chk(...) | 'i < a.length:false' | +| Guards.java:143:7:143:11 | chk(...) | 'i:Lower bound 0' | | Guards.java:143:7:143:11 | chk(...) | found:true | | Guards.java:173:7:173:11 | chk(...) | 's:not null' | | Guards.java:173:7:173:11 | chk(...) | testNotNull1(...):true | diff --git a/java/ql/test/query-tests/Nullness/A.java b/java/ql/test/query-tests/Nullness/A.java index 2a3f36da4b1..065fffdbd3f 100644 --- a/java/ql/test/query-tests/Nullness/A.java +++ b/java/ql/test/query-tests/Nullness/A.java @@ -301,7 +301,7 @@ public class A { public void assertThatTest() { Object assertThat_ok1 = maybe() ? null : new Object(); assertThat(assertThat_ok1, notNullValue()); - assertThat_ok1.toString(); + assertThat_ok1.toString(); // OK } private boolean m; diff --git a/java/ql/test/query-tests/Nullness/B.java b/java/ql/test/query-tests/Nullness/B.java index b21d581535d..1234b53d59b 100644 --- a/java/ql/test/query-tests/Nullness/B.java +++ b/java/ql/test/query-tests/Nullness/B.java @@ -276,7 +276,7 @@ public class B { int[] a = null; if (iters > 0) a = new int[iters]; for (int i = 0; i < iters; ++i) - a[i] = 0; // NPE - false positive + a[i] = 0; // OK if (iters > 0) { String last = null; @@ -289,7 +289,7 @@ public class B { throw new RuntimeException(); } for (int i = 0; i < iters; ++i) { - b[i] = 0; // NPE - false positive + b[i] = 0; // OK } } @@ -331,7 +331,7 @@ public class B { x = new Object(); } if(y instanceof String) { - x.hashCode(); // OK + x.hashCode(); // Spurious NPE - false positive } } @@ -341,7 +341,7 @@ public class B { x = new Object(); } if(!(y instanceof String)) { - x.hashCode(); // OK + x.hashCode(); // Spurious NPE - false positive } } @@ -351,7 +351,7 @@ public class B { x = new Object(); } if(y == z) { - x.hashCode(); // OK + x.hashCode(); // Spurious NPE - false positive } Object x2 = null; @@ -359,7 +359,7 @@ public class B { x2 = new Object(); } if(y != z) { - x2.hashCode(); // OK + x2.hashCode(); // Spurious NPE - false positive } Object x3 = null; @@ -367,7 +367,7 @@ public class B { x3 = new Object(); } if(!(y == z)) { - x3.hashCode(); // OK + x3.hashCode(); // Spurious NPE - false positive } } @@ -417,7 +417,7 @@ public class B { x = null; } if (!b) { - x.hashCode(); // NPE - false negative + x.hashCode(); // NPE } // flow can loop around from one iteration to the next } @@ -445,7 +445,7 @@ public class B { if (!ready) { x = null; } else { - x.hashCode(); // Spurious NPE - false positive + x.hashCode(); // OK } if ((a[i] & 1) != 0) { ready = (a[i] & 2) != 0; @@ -515,4 +515,46 @@ public class B { if (c == 100) { return; } o.hashCode(); // NPE } + + public void testFinally(int[] xs, int[] ys) { + if (xs.length == 0) return; + if (ys.length == 0) return; + String s1 = null; + String s2 = null; + for (int x : xs) { + try { + if (x == 0) { break; } + s1 = "1"; + for (int y : ys) { + if (y == 0) { break; } + s2 = "2"; + } + } finally { + } + s1.hashCode(); // OK + s2.hashCode(); // NPE + } + s1.hashCode(); // NPE - false negative, Java CFG lacks proper edge label + } + + public void lenCheck(int[] xs, int n, int t) { + if (n > 42) return; + if (maybe) {} + if (n > 0 && (xs == null || xs.length < n)) { + return; + } + if (maybe) {} + if (n > 21) return; + if (maybe) {} + for (int i = 0; i < n; ++i) { + xs[i]++; // OK + } + } + + public void rangetest(int n) { + String s = null; + if (n < 0 || n > 10) s = "A"; + if (n > 100) s.hashCode(); // OK + if (n == 42) s.hashCode(); // OK + } } diff --git a/java/ql/test/query-tests/Nullness/C.java b/java/ql/test/query-tests/Nullness/C.java index 9424cbe71f2..881185abd23 100644 --- a/java/ql/test/query-tests/Nullness/C.java +++ b/java/ql/test/query-tests/Nullness/C.java @@ -97,7 +97,7 @@ public class C { arr2 = new int[arr1.length]; } for (int i = 0; i < arr1.length; i++) - arr2[i] = arr1[i]; // NPE - false positive + arr2[i] = arr1[i]; // OK } public void ex8(int x, int lim) { @@ -107,7 +107,7 @@ public class C { while (!stop) { int j = 0; while (!stop && j < lim) { - int step = (j * obj.hashCode()) % 10; // NPE - false positive + int step = (j * obj.hashCode()) % 10; // OK if (step == 0) { obj.hashCode(); i += 1; @@ -134,7 +134,7 @@ public class C { cond = true; } if (cond) { - obj2.hashCode(); // NPE - false positive + obj2.hashCode(); // OK } } @@ -185,7 +185,7 @@ public class C { b = true; } else if (a[i] == 2) { verifyBool(b); - obj.hashCode(); // NPE - false positive + obj.hashCode(); // OK } } } diff --git a/java/ql/test/query-tests/Nullness/NullMaybe.expected b/java/ql/test/query-tests/Nullness/NullMaybe.expected index f0d671d58bd..89209bd3a71 100644 --- a/java/ql/test/query-tests/Nullness/NullMaybe.expected +++ b/java/ql/test/query-tests/Nullness/NullMaybe.expected @@ -15,24 +15,24 @@ | B.java:118:5:118:7 | obj | Variable $@ may be null at this access as suggested by $@ null guard. | B.java:117:27:117:36 | obj | obj | B.java:119:13:119:23 | ... != ... | this | | B.java:133:5:133:7 | obj | Variable $@ may be null at this access because of $@ assignment. | B.java:128:5:128:22 | Object obj | obj | B.java:128:12:128:21 | obj | this | | B.java:190:7:190:7 | o | Variable $@ may be null at this access because of $@ assignment. | B.java:178:5:178:20 | Object o | o | B.java:186:5:186:12 | ...=... | this | -| B.java:279:7:279:7 | a | Variable $@ may be null at this access because of $@ assignment. | B.java:276:5:276:19 | int[] a | a | B.java:276:11:276:18 | a | this | -| B.java:292:7:292:7 | b | Variable $@ may be null at this access because of $@ assignment. | B.java:287:5:287:44 | int[] b | b | B.java:287:11:287:43 | b | this | +| B.java:334:7:334:7 | x | Variable $@ may be null at this access because of $@ assignment. | B.java:329:5:329:20 | Object x | x | B.java:329:12:329:19 | x | this | +| B.java:344:7:344:7 | x | Variable $@ may be null at this access because of $@ assignment. | B.java:339:5:339:20 | Object x | x | B.java:339:12:339:19 | x | this | +| B.java:354:7:354:7 | x | Variable $@ may be null at this access because of $@ assignment. | B.java:349:5:349:20 | Object x | x | B.java:349:12:349:19 | x | this | +| B.java:362:7:362:8 | x2 | Variable $@ may be null at this access because of $@ assignment. | B.java:357:5:357:21 | Object x2 | x2 | B.java:357:12:357:20 | x2 | this | +| B.java:370:7:370:8 | x3 | Variable $@ may be null at this access because of $@ assignment. | B.java:365:5:365:21 | Object x3 | x3 | B.java:365:12:365:20 | x3 | this | | B.java:408:7:408:7 | x | Variable $@ may be null at this access as suggested by $@ null guard. | B.java:374:23:374:30 | x | x | B.java:375:23:375:31 | ... != ... | this | -| B.java:448:9:448:9 | x | Variable $@ may be null at this access because of $@ assignment. | B.java:442:5:442:28 | Object x | x | B.java:446:9:446:16 | ...=... | this | +| B.java:420:9:420:9 | x | Variable $@ may be null at this access because of $@ assignment. | B.java:413:5:413:28 | Object x | x | B.java:417:9:417:16 | ...=... | this | | B.java:465:9:465:9 | x | Variable $@ may be null at this access because of $@ assignment. | B.java:458:5:458:28 | Object x | x | B.java:470:9:470:16 | ...=... | this | | B.java:487:9:487:9 | x | Variable $@ may be null at this access because of $@ assignment. | B.java:476:5:476:20 | Object x | x | B.java:476:12:476:19 | x | this | | B.java:516:5:516:5 | o | Variable $@ may be null at this access as suggested by $@ null guard. | B.java:511:25:511:32 | o | o | B.java:512:22:512:30 | ... == ... | this | +| B.java:535:7:535:8 | s2 | Variable $@ may be null at this access because of $@ assignment. | B.java:523:5:523:21 | String s2 | s2 | B.java:523:12:523:20 | s2 | this | | C.java:9:44:9:45 | a2 | Variable $@ may be null at this access as suggested by $@ null guard. | C.java:6:5:6:23 | long[][] a2 | a2 | C.java:7:34:7:54 | ... != ... | this | | C.java:9:44:9:45 | a2 | Variable $@ may be null at this access because of $@ assignment. | C.java:6:5:6:23 | long[][] a2 | a2 | C.java:6:14:6:22 | a2 | this | | C.java:10:17:10:18 | a3 | Variable $@ may be null at this access as suggested by $@ null guard. | C.java:8:5:8:21 | long[] a3 | a3 | C.java:9:38:9:58 | ... != ... | this | | C.java:10:17:10:18 | a3 | Variable $@ may be null at this access because of $@ assignment. | C.java:8:5:8:21 | long[] a3 | a3 | C.java:8:12:8:20 | a3 | this | | C.java:21:7:21:8 | s1 | Variable $@ may be null at this access because of $@ assignment. | C.java:14:5:14:30 | String s1 | s1 | C.java:17:7:17:24 | ...=... | this | | C.java:51:7:51:11 | slice | Variable $@ may be null at this access because of $@ assignment. | C.java:43:5:43:30 | List slice | slice | C.java:43:18:43:29 | slice | this | -| C.java:100:7:100:10 | arr2 | Variable $@ may be null at this access because of $@ assignment. | C.java:95:5:95:22 | int[] arr2 | arr2 | C.java:95:11:95:21 | arr2 | this | -| C.java:110:25:110:27 | obj | Variable $@ may be null at this access because of $@ assignment. | C.java:106:5:106:30 | Object obj | obj | C.java:118:13:118:22 | ...=... | this | -| C.java:137:7:137:10 | obj2 | Variable $@ may be null at this access as suggested by $@ null guard. | C.java:131:5:131:23 | Object obj2 | obj2 | C.java:132:9:132:20 | ... != ... | this | | C.java:144:15:144:15 | a | Variable $@ may be null at this access as suggested by $@ null guard. | C.java:141:20:141:26 | a | a | C.java:142:13:142:21 | ... == ... | this | -| C.java:188:9:188:11 | obj | Variable $@ may be null at this access because of $@ assignment. | C.java:181:5:181:22 | Object obj | obj | C.java:181:12:181:21 | obj | this | | C.java:219:9:219:10 | o1 | Variable $@ may be null at this access as suggested by $@ null guard. | C.java:212:20:212:28 | o1 | o1 | C.java:213:9:213:18 | ... == ... | this | | C.java:233:7:233:8 | xs | Variable $@ may be null at this access because of $@ assignment. | C.java:231:5:231:56 | int[] xs | xs | C.java:231:11:231:55 | xs | this | | F.java:11:5:11:7 | obj | Variable $@ may be null at this access as suggested by $@ null guard. | F.java:8:18:8:27 | obj | obj | F.java:9:9:9:19 | ... == ... | this | diff --git a/javascript/ql/integration-tests/query-suite/javascript-code-quality-extended.qls.expected b/javascript/ql/integration-tests/query-suite/javascript-code-quality-extended.qls.expected index 6894a776b37..1d2d3c1ff8c 100644 --- a/javascript/ql/integration-tests/query-suite/javascript-code-quality-extended.qls.expected +++ b/javascript/ql/integration-tests/query-suite/javascript-code-quality-extended.qls.expected @@ -4,6 +4,9 @@ ql/javascript/ql/src/AngularJS/IncompatibleService.ql ql/javascript/ql/src/AngularJS/MissingExplicitInjection.ql ql/javascript/ql/src/AngularJS/RepeatedInjection.ql ql/javascript/ql/src/AngularJS/UseNgSrc.ql +ql/javascript/ql/src/Comments/CommentedOutCode.ql +ql/javascript/ql/src/Comments/TodoComments.ql +ql/javascript/ql/src/DOM/Alert.ql ql/javascript/ql/src/DOM/DuplicateAttributes.ql ql/javascript/ql/src/DOM/MalformedIdAttribute.ql ql/javascript/ql/src/DOM/PseudoEval.ql @@ -20,11 +23,13 @@ ql/javascript/ql/src/Declarations/IneffectiveParameterType.ql ql/javascript/ql/src/Declarations/MissingThisQualifier.ql ql/javascript/ql/src/Declarations/MissingVarDecl.ql ql/javascript/ql/src/Declarations/MixedStaticInstanceThisAccess.ql +ql/javascript/ql/src/Declarations/RedeclaredVariable.ql ql/javascript/ql/src/Declarations/SuspiciousMethodNameDeclaration.ql ql/javascript/ql/src/Declarations/TemporalDeadZone.ql ql/javascript/ql/src/Declarations/UniqueParameterNames.ql ql/javascript/ql/src/Declarations/UniquePropertyNames.ql ql/javascript/ql/src/Declarations/UnreachableMethodOverloads.ql +ql/javascript/ql/src/Declarations/UnusedParameter.ql ql/javascript/ql/src/Declarations/UnusedVariable.ql ql/javascript/ql/src/Expressions/ComparisonWithNaN.ql ql/javascript/ql/src/Expressions/DuplicateCondition.ql @@ -48,9 +53,12 @@ ql/javascript/ql/src/Expressions/UnclearOperatorPrecedence.ql ql/javascript/ql/src/Expressions/UnknownDirective.ql ql/javascript/ql/src/Expressions/UnneededDefensiveProgramming.ql ql/javascript/ql/src/Expressions/WhitespaceContradictsPrecedence.ql +ql/javascript/ql/src/LanguageFeatures/ArgumentsCallerCallee.ql ql/javascript/ql/src/LanguageFeatures/BadTypeof.ql ql/javascript/ql/src/LanguageFeatures/ConditionalComments.ql +ql/javascript/ql/src/LanguageFeatures/DebuggerStatement.ql ql/javascript/ql/src/LanguageFeatures/DeleteVar.ql +ql/javascript/ql/src/LanguageFeatures/Eval.ql ql/javascript/ql/src/LanguageFeatures/ExpressionClosures.ql ql/javascript/ql/src/LanguageFeatures/ForInComprehensionBlocks.ql ql/javascript/ql/src/LanguageFeatures/IllegalInvocation.ql @@ -71,6 +79,7 @@ ql/javascript/ql/src/LanguageFeatures/WithStatement.ql ql/javascript/ql/src/LanguageFeatures/YieldInNonGenerator.ql ql/javascript/ql/src/NodeJS/InvalidExport.ql ql/javascript/ql/src/NodeJS/MissingExports.ql +ql/javascript/ql/src/Performance/ReassignParameterAndUseArguments.ql ql/javascript/ql/src/Quality/UnhandledErrorInStreamPipeline.ql ql/javascript/ql/src/React/DirectStateMutation.ql ql/javascript/ql/src/React/InconsistentStateUpdate.ql @@ -78,6 +87,7 @@ ql/javascript/ql/src/React/UnsupportedStateUpdateInLifecycleMethod.ql ql/javascript/ql/src/React/UnusedOrUndefinedStateProperty.ql ql/javascript/ql/src/RegExp/BackrefBeforeGroup.ql ql/javascript/ql/src/RegExp/BackrefIntoNegativeLookahead.ql +ql/javascript/ql/src/RegExp/BackspaceEscape.ql ql/javascript/ql/src/RegExp/DuplicateCharacterInCharacterClass.ql ql/javascript/ql/src/RegExp/EmptyCharacterClass.ql ql/javascript/ql/src/RegExp/RegExpAlwaysMatches.ql @@ -86,7 +96,9 @@ ql/javascript/ql/src/RegExp/UnmatchableCaret.ql ql/javascript/ql/src/RegExp/UnmatchableDollar.ql ql/javascript/ql/src/Statements/DanglingElse.ql ql/javascript/ql/src/Statements/IgnoreArrayResult.ql +ql/javascript/ql/src/Statements/ImplicitReturn.ql ql/javascript/ql/src/Statements/InconsistentLoopOrientation.ql +ql/javascript/ql/src/Statements/InconsistentReturn.ql ql/javascript/ql/src/Statements/LabelInCase.ql ql/javascript/ql/src/Statements/LoopIterationSkippedDueToShifting.ql ql/javascript/ql/src/Statements/MisleadingIndentationAfterControlStmt.ql diff --git a/javascript/ql/integration-tests/query-suite/not_included_in_qls.expected b/javascript/ql/integration-tests/query-suite/not_included_in_qls.expected index fa52a97a4e4..46317e8800f 100644 --- a/javascript/ql/integration-tests/query-suite/not_included_in_qls.expected +++ b/javascript/ql/integration-tests/query-suite/not_included_in_qls.expected @@ -1,18 +1,13 @@ ql/javascript/ql/src/AlertSuppression.ql ql/javascript/ql/src/AngularJS/DeadAngularJSEventListener.ql ql/javascript/ql/src/AngularJS/UnusedAngularDependency.ql -ql/javascript/ql/src/Comments/CommentedOutCode.ql ql/javascript/ql/src/Comments/FCommentedOutCode.ql -ql/javascript/ql/src/Comments/TodoComments.ql -ql/javascript/ql/src/DOM/Alert.ql ql/javascript/ql/src/DOM/AmbiguousIdAttribute.ql ql/javascript/ql/src/DOM/ConflictingAttributes.ql ql/javascript/ql/src/DOM/TargetBlank.ql ql/javascript/ql/src/Declarations/DeadStoreOfGlobal.ql -ql/javascript/ql/src/Declarations/RedeclaredVariable.ql ql/javascript/ql/src/Declarations/TooManyParameters.ql ql/javascript/ql/src/Declarations/UnstableCyclicImport.ql -ql/javascript/ql/src/Declarations/UnusedParameter.ql ql/javascript/ql/src/Declarations/UnusedProperty.ql ql/javascript/ql/src/Electron/EnablingNodeIntegration.ql ql/javascript/ql/src/Expressions/BitwiseSignCheck.ql @@ -21,10 +16,7 @@ ql/javascript/ql/src/Expressions/MisspelledIdentifier.ql ql/javascript/ql/src/JSDoc/BadParamTag.ql ql/javascript/ql/src/JSDoc/JSDocForNonExistentParameter.ql ql/javascript/ql/src/JSDoc/UndocumentedParameter.ql -ql/javascript/ql/src/LanguageFeatures/ArgumentsCallerCallee.ql -ql/javascript/ql/src/LanguageFeatures/DebuggerStatement.ql ql/javascript/ql/src/LanguageFeatures/EmptyArrayInit.ql -ql/javascript/ql/src/LanguageFeatures/Eval.ql ql/javascript/ql/src/LanguageFeatures/JumpFromFinally.ql ql/javascript/ql/src/LanguageFeatures/SetterIgnoresParameter.ql ql/javascript/ql/src/LanguageFeatures/WrongExtensionJSON.ql @@ -48,8 +40,6 @@ ql/javascript/ql/src/NodeJS/DubiousImport.ql ql/javascript/ql/src/NodeJS/UnresolvableImport.ql ql/javascript/ql/src/NodeJS/UnusedDependency.ql ql/javascript/ql/src/Performance/NonLocalForIn.ql -ql/javascript/ql/src/Performance/ReassignParameterAndUseArguments.ql -ql/javascript/ql/src/RegExp/BackspaceEscape.ql ql/javascript/ql/src/RegExp/MalformedRegExp.ql ql/javascript/ql/src/Security/CWE-020/ExternalAPIsUsedWithUntrustedData.ql ql/javascript/ql/src/Security/CWE-020/UntrustedDataToExternalAPI.ql @@ -59,8 +49,6 @@ ql/javascript/ql/src/Security/CWE-798/HardcodedCredentials.ql ql/javascript/ql/src/Security/CWE-807/DifferentKindsComparisonBypass.ql ql/javascript/ql/src/Security/trest/test.ql ql/javascript/ql/src/Statements/EphemeralLoop.ql -ql/javascript/ql/src/Statements/ImplicitReturn.ql -ql/javascript/ql/src/Statements/InconsistentReturn.ql ql/javascript/ql/src/Statements/NestedLoopsSameVariable.ql ql/javascript/ql/src/Statements/ReturnOutsideFunction.ql ql/javascript/ql/src/Summary/TaintSinks.ql diff --git a/javascript/ql/lib/CHANGELOG.md b/javascript/ql/lib/CHANGELOG.md index d45d55f6a36..b98534e791d 100644 --- a/javascript/ql/lib/CHANGELOG.md +++ b/javascript/ql/lib/CHANGELOG.md @@ -1,3 +1,10 @@ +## 2.6.11 + +### Minor Analysis Improvements + +* Added modeling for promisification libraries `@gar/promisify`, `es6-promisify`, `util.promisify`, `thenify-all`, `call-me-maybe`, `@google-cloud/promisify`, and `util-promisify`. +* Data flow is now tracked through promisified user-defined functions. + ## 2.6.10 ### Minor Analysis Improvements diff --git a/javascript/ql/lib/change-notes/2025-07-28-dynamodb.md b/javascript/ql/lib/change-notes/2025-07-28-dynamodb.md new file mode 100644 index 00000000000..bbf5d57163a --- /dev/null +++ b/javascript/ql/lib/change-notes/2025-07-28-dynamodb.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added support for the `aws-sdk` and `@aws-sdk/client-dynamodb`, `@aws-sdk/client-athena`, `@aws-sdk/client-s3`, and `@aws-sdk/client-rds-data` packages. diff --git a/javascript/ql/lib/change-notes/2025-09-17-graphql-enhance.md b/javascript/ql/lib/change-notes/2025-09-17-graphql-enhance.md new file mode 100644 index 00000000000..cb0b886a6f7 --- /dev/null +++ b/javascript/ql/lib/change-notes/2025-09-17-graphql-enhance.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Support for the [graphql](https://www.npmjs.com/package/graphql) library has been improved. Data flow from GraphQL query sources and variables to resolver function parameters is now tracked. diff --git a/javascript/ql/lib/change-notes/released/2.6.11.md b/javascript/ql/lib/change-notes/released/2.6.11.md new file mode 100644 index 00000000000..b9a47cae76c --- /dev/null +++ b/javascript/ql/lib/change-notes/released/2.6.11.md @@ -0,0 +1,6 @@ +## 2.6.11 + +### Minor Analysis Improvements + +* Added modeling for promisification libraries `@gar/promisify`, `es6-promisify`, `util.promisify`, `thenify-all`, `call-me-maybe`, `@google-cloud/promisify`, and `util-promisify`. +* Data flow is now tracked through promisified user-defined functions. diff --git a/javascript/ql/lib/codeql-pack.release.yml b/javascript/ql/lib/codeql-pack.release.yml index aa42bd9f12a..a31eb42966c 100644 --- a/javascript/ql/lib/codeql-pack.release.yml +++ b/javascript/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.6.10 +lastReleaseVersion: 2.6.11 diff --git a/javascript/ql/lib/ext/aws-sdk.model.yml b/javascript/ql/lib/ext/aws-sdk.model.yml index eefa87fbe61..40fa4b8b703 100644 --- a/javascript/ql/lib/ext/aws-sdk.model.yml +++ b/javascript/ql/lib/ext/aws-sdk.model.yml @@ -1,8 +1,52 @@ extensions: + - addsTo: + pack: codeql/javascript-all + extensible: typeModel + data: + - ["aws-sdk.Athena", "aws-sdk", "Member[Athena]"] + - ["aws-sdk.S3", "aws-sdk", "Member[S3]"] + - ["aws-sdk.RDSDataService", "aws-sdk", "Member[RDSDataService]"] + - ["aws-sdk.DynamoDB", "aws-sdk", "Member[DynamoDB]"] + - ["@aws-sdk/client.Client", "@aws-sdk/client-athena", "Member[AthenaClient]"] + - ["@aws-sdk/client.Client", "@aws-sdk/client-s3", "Member[S3Client]"] + - ["@aws-sdk/client.Client", "@aws-sdk/client-dynamodb", "Member[DynamoDBClient,DynamoDB]"] + - ["@aws-sdk/client.Client", "@aws-sdk/client-rds-data", "Member[RDSDataClient]"] - addsTo: pack: codeql/javascript-all extensible: sinkModel data: - - ["aws-sdk", "AnyMember.Argument[0].Member[secretAccessKey,accessKeyId]", "credentials-key"] - - ["aws-sdk", "AnyMember.Member[secretAccessKey,accessKeyId]", "credentials-key"] - - ["aws-sdk", "Member[Credentials].Argument[0,1]", "credentials-key"] + - ["aws-sdk", "AnyMember.Argument[0].Member[secretAccessKey,accessKeyId]", "credentials-key"] + - ["aws-sdk", "AnyMember.Member[secretAccessKey,accessKeyId]", "credentials-key"] + - ["aws-sdk", "Member[Credentials].Argument[0,1]", "credentials-key"] + - ["@aws-sdk/client.Client", "ReturnValue.Member[send].Argument[0]", "sql-injection"] + - ["aws-sdk.Athena", "ReturnValue.Member[startQueryExecution,createNamedQuery,updateNamedQuery].Argument[0].Member[QueryString]", "sql-injection"] + - ["aws-sdk.S3", "ReturnValue.Member[selectObjectContent].Argument[0].Member[Expression]", "sql-injection"] + - ["aws-sdk.RDSDataService", "ReturnValue.Member[executeStatement,batchExecuteStatement].Argument[0].Member[sql]", "sql-injection"] + - ["aws-sdk.RDSDataService", "ReturnValue.Member[batchExecuteStatement].Argument[0].Member[parameterSets].ArrayElement.Member[sql]", "sql-injection"] + - ["aws-sdk.DynamoDB", "ReturnValue.Member[executeStatement].Argument[0].Member[Statement]", "sql-injection"] + - ["aws-sdk.DynamoDB", "ReturnValue.Member[batchExecuteStatement].Argument[0].Member[Statements].ArrayElement.Member[Statement]", "sql-injection"] + - addsTo: + pack: codeql/javascript-all + extensible: summaryModel + data: + - ["@aws-sdk/client-athena", "Member[StartQueryExecutionCommand,CreateNamedQueryCommand,UpdateNamedQueryCommand]", "Argument[0].Member[QueryString]", "ReturnValue", "taint"] + - ["@aws-sdk/client-athena", "Member[CreatePreparedStatementCommand]", "Argument[0].Member[QueryStatement]", "ReturnValue", "taint"] + - ["@aws-sdk/client-s3", "Member[SelectObjectContentCommand]", "Argument[0].Member[Expression]", "ReturnValue", "taint"] + - ["@aws-sdk/client-rds-data", "Member[ExecuteStatementCommand,BatchExecuteStatementCommand]", "Argument[0].Member[sql]", "ReturnValue", "taint"] + - ["@aws-sdk/client-rds-data", "Member[BatchExecuteStatementCommand]", "Argument[0].Member[parameterSets].ArrayElement.Member[sql]", "ReturnValue", "taint"] + - ["@aws-sdk/client-rds-data", "Member[ExecuteSqlCommand]", "Argument[0].Member[sqlStatements]", "ReturnValue", "taint"] + - ["@aws-sdk/client-dynamodb", "Member[ExecuteStatementCommand]", "Argument[0].Member[Statement]", "ReturnValue", "taint"] + - ["@aws-sdk/client-dynamodb", "Member[BatchExecuteStatementCommand]", "Argument[0].Member[Statements].ArrayElement.Member[Statement]", "ReturnValue", "taint"] + - addsTo: + pack: codeql/javascript-all + extensible: sourceModel + data: + - ["@aws-sdk/client.Client", "ReturnValue.Member[send].ReturnValue.Awaited", "database-access-result"] + - ["aws-sdk.Athena", "ReturnValue.Member[getQueryResults].ReturnValue.Member[promise].ReturnValue.Awaited", "database-access-result"] + - ["aws-sdk.Athena", "ReturnValue.Member[getQueryResults].Argument[1].Parameter[1]", "database-access-result"] + - ["aws-sdk.S3", "ReturnValue.Member[getObject].ReturnValue.Member[promise].ReturnValue.Awaited", "database-access-result"] + - ["aws-sdk.S3", "ReturnValue.Member[getObject].Argument[1].Parameter[1]", "database-access-result"] + - ["aws-sdk.RDSDataService", "ReturnValue.Member[executeStatement,batchExecuteStatement].ReturnValue.Member[promise].ReturnValue.Awaited", "database-access-result"] + - ["aws-sdk.RDSDataService", "ReturnValue.Member[executeStatement,batchExecuteStatement].Argument[1].Parameter[1]", "database-access-result"] + - ["aws-sdk.DynamoDB", "ReturnValue.Member[executeStatement,batchExecuteStatement,query,scan,getItem,batchGetItem].ReturnValue.Member[promise].ReturnValue.Awaited", "database-access-result"] + - ["aws-sdk.DynamoDB", "ReturnValue.Member[executeStatement,batchExecuteStatement,query,scan,getItem,batchGetItem].Argument[1].Parameter[1]", "database-access-result"] diff --git a/javascript/ql/lib/ext/call-me-maybe.model.yml b/javascript/ql/lib/ext/call-me-maybe.model.yml new file mode 100644 index 00000000000..ceda3e8b092 --- /dev/null +++ b/javascript/ql/lib/ext/call-me-maybe.model.yml @@ -0,0 +1,6 @@ +extensions: + - addsTo: + pack: codeql/javascript-all + extensible: summaryModel + data: + - ["call-me-maybe", "", "Argument[1]", "ReturnValue", "value"] diff --git a/javascript/ql/lib/ext/graph-ql.model.yml b/javascript/ql/lib/ext/graph-ql.model.yml new file mode 100644 index 00000000000..08233d1135d --- /dev/null +++ b/javascript/ql/lib/ext/graph-ql.model.yml @@ -0,0 +1,6 @@ +extensions: + - addsTo: + pack: codeql/javascript-all + extensible: summaryModel + data: + - ["graphql", "Member[graphql]", "Argument[0].Member[source,variableValues]", "Argument[0].Member[rootValue].AnyMember.Parameter[0]", "taint"] diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index e233d83e328..1d05d1003f3 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 2.6.11-dev +version: 2.6.12-dev groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index 3bb04f2686b..850e9224451 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -822,7 +822,7 @@ module API { or // special case: from `require('m')` to an export of `prop` in `m` exists(Import imp, Module m, string prop | - pred = imp.getImportedModuleNode() and + pred = imp.getImportedModuleNodeStrict() and m = imp.getImportedModule() and lbl = Label::member(prop) and rhs = m.getAnExportedValue(prop) @@ -1115,6 +1115,17 @@ module API { ref = awaited(call) ) or + // Handle promisified object member access: promisify(obj).member should be treated as obj.member (promisified) + exists( + Promisify::PromisifyAllCall promisifiedObj, DataFlow::SourceNode originalObj, + string member + | + originalObj.flowsTo(promisifiedObj.getArgument(0)) and + use(base, originalObj) and + lbl = Label::member(member) and + ref = promisifiedObj.getAPropertyRead(member) + ) + or decoratorDualEdge(base, lbl, ref) or decoratorUseEdge(base, lbl, ref) @@ -1337,7 +1348,7 @@ module API { result = nd.getALocalSource() or // additional backwards step from `require('m')` to `exports` or `module.exports` in m - exists(Import imp | imp.getImportedModuleNode() = trackDefNode(nd, t.continue()) | + exists(Import imp | imp.getImportedModuleNodeStrict() = trackDefNode(nd, t.continue()) | result = DataFlow::exportsVarNode(imp.getImportedModule()) or result = DataFlow::moduleVarNode(imp.getImportedModule()).getAPropertyRead("exports") diff --git a/javascript/ql/lib/semmle/javascript/ES2015Modules.qll b/javascript/ql/lib/semmle/javascript/ES2015Modules.qll index ed68209c6f1..e584697c1e4 100644 --- a/javascript/ql/lib/semmle/javascript/ES2015Modules.qll +++ b/javascript/ql/lib/semmle/javascript/ES2015Modules.qll @@ -137,17 +137,26 @@ class ImportDeclaration extends Stmt, Import, @import_declaration { is instanceof ImportNamespaceSpecifier and count(this.getASpecifier()) = 1 or - // For compatibility with the non-standard implementation of default imports, - // treat default imports as namespace imports in cases where it can't cause ambiguity - // between named exports and the properties of a default-exported object. - not this.getImportedModule().(ES2015Module).hasBothNamedAndDefaultExports() and - is.getImportedName() = "default" + result = this.getAmbiguousDefaultImportNode() ) or // `import { createServer } from 'http'` result = DataFlow::destructuredModuleImportNode(this) } + /** + * Gets the data flow node corresponding to the `foo` in `import foo from "somewhere"`. + * + * This refers to the default import, but some non-standard compilers will treat it as a namespace + * import. In order to support both interpretations, it is considered an "ambiguous default import". + * + * Note that renamed default imports, such as `import { default as foo } from "somewhere"`, + * are not considered ambiguous, and will not be reported by this predicate. + */ + DataFlow::Node getAmbiguousDefaultImportNode() { + result = DataFlow::valueNode(this.getASpecifier().(ImportDefaultSpecifier)) + } + /** Holds if this is declared with the `type` keyword, so it only imports types. */ predicate isTypeOnly() { has_type_keyword(this) } diff --git a/javascript/ql/lib/semmle/javascript/Modules.qll b/javascript/ql/lib/semmle/javascript/Modules.qll index 3ddd5132d05..8b0330b708b 100644 --- a/javascript/ql/lib/semmle/javascript/Modules.qll +++ b/javascript/ql/lib/semmle/javascript/Modules.qll @@ -179,7 +179,42 @@ abstract class Import extends AstNode { } /** - * Gets the data flow node that the default import of this import is available at. + * Gets the data flow node corresponding to the imported module. + * + * For example: + * ```js + * // ES2015 style + * import * as foo from "fs"; // Gets the node for `foo` + * import { readSync } from "fs"; // Gets a node representing the destructured import + * + * // CommonJS style + * require("fs"); // Gets the return value + * + * // AMD style + * define(["fs"], function(fs) { // Gets the node for the `fs` parameter + * }); + * ``` + * + * For default imports, this gets two nodes: the default import node, and a node representing the imported module: + * ```js + * import foo from "fs"; // gets both `foo` and a node representing the imported module + * ``` + * This behaviour is to support non-standard compilers that treat default imports + * as namespace imports. Use `getImportedModuleNodeStrict()` to avoid this behaviour in cases + * where it would cause ambiguous data flow. */ abstract DataFlow::Node getImportedModuleNode(); + + /** + * Gets the same as `getImportedModuleNode()` except ambiguous default imports are excluded + * in cases where it would cause ambiguity between named exports and properties + * of a default export. + */ + final DataFlow::Node getImportedModuleNodeStrict() { + result = this.getImportedModuleNode() and + not ( + result = this.(ImportDeclaration).getAmbiguousDefaultImportNode() and + this.getImportedModule().(ES2015Module).hasBothNamedAndDefaultExports() + ) + } } diff --git a/javascript/ql/lib/semmle/javascript/Promises.qll b/javascript/ql/lib/semmle/javascript/Promises.qll index 51411463efc..2feb92e2e55 100644 --- a/javascript/ql/lib/semmle/javascript/Promises.qll +++ b/javascript/ql/lib/semmle/javascript/Promises.qll @@ -727,8 +727,12 @@ module Promisify { PromisifyAllCall() { this = [ - DataFlow::moduleMember("bluebird", "promisifyAll"), - DataFlow::moduleImport(["util-promisifyall", "pify"]) + DataFlow::moduleMember(["bluebird", "@google-cloud/promisify", "es6-promisify"], + "promisifyAll"), + DataFlow::moduleMember("thenify-all", "withCallback"), + DataFlow::moduleImport([ + "util-promisifyall", "pify", "thenify-all", "@gar/promisify", "util.promisify-all" + ]) ].getACall() } } @@ -741,11 +745,13 @@ module Promisify { PromisifyCall() { this = DataFlow::moduleImport(["util", "bluebird"]).getAMemberCall("promisify") or - this = DataFlow::moduleImport(["pify", "util.promisify"]).getACall() + this = DataFlow::moduleImport(["pify", "util.promisify", "util-promisify"]).getACall() or - this = DataFlow::moduleImport("thenify").getACall() + this = DataFlow::moduleImport(["thenify", "@gar/promisify", "es6-promisify"]).getACall() or this = DataFlow::moduleMember("thenify", "withCallback").getACall() + or + this = DataFlow::moduleMember("@google-cloud/promisify", "promisify").getACall() } } } diff --git a/javascript/ql/lib/semmle/javascript/dataflow/DataFlow.qll b/javascript/ql/lib/semmle/javascript/dataflow/DataFlow.qll index edc591ceff4..071d6d08433 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/DataFlow.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/DataFlow.qll @@ -1912,6 +1912,7 @@ module DataFlow { deprecated import Configuration import TypeTracking import AdditionalFlowSteps + import PromisifyFlow import internal.FunctionWrapperSteps import internal.sharedlib.DataFlow import internal.BarrierGuards diff --git a/javascript/ql/lib/semmle/javascript/dataflow/Portals.qll b/javascript/ql/lib/semmle/javascript/dataflow/Portals.qll index a325a5e14f7..d8f29c707a6 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/Portals.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/Portals.qll @@ -11,6 +11,7 @@ * * The API of this library is not stable yet and may change. */ +deprecated module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/dataflow/PromisifyFlow.qll b/javascript/ql/lib/semmle/javascript/dataflow/PromisifyFlow.qll new file mode 100644 index 00000000000..4389a3d031a --- /dev/null +++ b/javascript/ql/lib/semmle/javascript/dataflow/PromisifyFlow.qll @@ -0,0 +1,29 @@ +/** + * Provides data flow steps for promisified user-defined function calls. + * This ensures that when you call a promisified user-defined function, + * arguments flow to the original function's parameters. + */ + +private import javascript +private import semmle.javascript.dataflow.AdditionalFlowSteps + +/** + * A data flow step from arguments of promisified user-defined function calls to + * the parameters of the original function. + */ +class PromisifiedUserFunctionArgumentFlow extends AdditionalFlowStep { + override predicate step(DataFlow::Node pred, DataFlow::Node succ) { + exists( + DataFlow::CallNode promisifiedCall, Promisify::PromisifyCall promisify, + DataFlow::FunctionNode originalFunc, int i + | + // The promisified call flows from a promisify result + promisify.flowsTo(promisifiedCall.getCalleeNode()) and + // The original function was promisified + originalFunc.flowsTo(promisify.getArgument(0)) and + // Argument i of the promisified call flows to parameter i of the original function + pred = promisifiedCall.getArgument(i) and + succ = originalFunc.getParameter(i) + ) + } +} diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/FlowSummaryPrivate.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/FlowSummaryPrivate.qll index 31f5f16bbfb..6315b34b0a4 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/FlowSummaryPrivate.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/FlowSummaryPrivate.qll @@ -94,6 +94,8 @@ private string encodeContentAux(ContentSet cs, string arg) { cs = ContentSet::iteratorElement() and result = "IteratorElement" or cs = ContentSet::iteratorError() and result = "IteratorError" + or + cs = ContentSet::anyProperty() and result = "AnyMember" ) or cs = getPromiseContent(arg) and diff --git a/javascript/ql/lib/semmle/javascript/frameworks/AsyncPackage.qll b/javascript/ql/lib/semmle/javascript/frameworks/AsyncPackage.qll index 4dc60d44765..db2487ce46a 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/AsyncPackage.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/AsyncPackage.qll @@ -25,6 +25,18 @@ module AsyncPackage { result = member(name + "Series") } + /** + * Gets `Limit` or `Series` name variants for a given member name. + * + * For example, `memberNameVariant("map")` returns `map`, `mapLimit`, and `mapSeries`. + */ + bindingset[name] + private string memberNameVariant(string name) { + result = name or + result = name + "Limit" or + result = name + "Series" + } + /** * A call to `async.waterfall`. */ @@ -101,22 +113,47 @@ module AsyncPackage { */ class IterationCall extends DataFlow::InvokeNode { string name; + int iteratorCallbackIndex; + int finalCallbackIndex; IterationCall() { - this = memberVariant(name).getACall() and - name = - [ - "concat", "detect", "each", "eachOf", "forEach", "forEachOf", "every", "filter", - "groupBy", "map", "mapValues", "reduce", "reduceRight", "reject", "some", "sortBy", - "transform" - ] + ( + ( + name = + memberNameVariant([ + "concat", "detect", "each", "eachOf", "forEach", "forEachOf", "every", "filter", + "groupBy", "map", "mapValues", "reject", "some", "sortBy", + ]) and + if name.matches("%Limit") + then ( + iteratorCallbackIndex = 2 and finalCallbackIndex = 3 + ) else ( + iteratorCallbackIndex = 1 and finalCallbackIndex = 2 + ) + ) + or + name = ["reduce", "reduceRight", "transform"] and + iteratorCallbackIndex = 2 and + finalCallbackIndex = 3 + ) and + this = member(name).getACall() } /** - * Gets the name of the iteration call, without the `Limit` or `Series` suffix. + * Gets the name of the iteration call */ string getName() { result = name } + /** + * Gets the iterator callback index + */ + int getIteratorCallbackIndex() { result = iteratorCallbackIndex } + + /** + * Gets the final callback index + */ + int getFinalCallbackIndex() { result = finalCallbackIndex } + /** * Gets the node holding the collection being iterated over. */ @@ -125,26 +162,33 @@ module AsyncPackage { /** * Gets the node holding the function being called for each element in the collection. */ - DataFlow::Node getIteratorCallback() { result = this.getArgument(this.getNumArgument() - 2) } + DataFlow::FunctionNode getIteratorCallback() { + result = this.getCallback(iteratorCallbackIndex) + } /** - * Gets the node holding the function being invoked after iteration is complete. + * Gets the node holding the function being invoked after iteration is complete. (may not exist) */ - DataFlow::Node getFinalCallback() { result = this.getArgument(this.getNumArgument() - 1) } + DataFlow::FunctionNode getFinalCallback() { result = this.getCallback(finalCallbackIndex) } } - /** - * A taint step from the collection into the iterator callback of an iteration call. - * - * For example: `data -> item` in `async.each(data, (item, cb) => {})`. - */ - private class IterationInputTaintStep extends TaintTracking::SharedTaintStep { - override predicate step(DataFlow::Node pred, DataFlow::Node succ) { - exists(DataFlow::FunctionNode iteratee, IterationCall call | - iteratee = call.getIteratorCallback() and // Require a closure to avoid spurious call/return mismatch. - pred = call.getCollection() and // TODO: needs a flow summary to ensure ArrayElement content is unfolded - succ = iteratee.getParameter(0) - ) + private class IterationCallFlowSummary extends DataFlow::SummarizedCallable { + private int callbackArgIndex; + + IterationCallFlowSummary() { + this = "async.IteratorCall(callbackArgIndex=" + callbackArgIndex + ")" and + callbackArgIndex in [1 .. 3] + } + + override DataFlow::InvokeNode getACallSimple() { + result instanceof IterationCall and + result.(IterationCall).getIteratorCallbackIndex() = callbackArgIndex + } + + override predicate propagatesFlow(string input, string output, boolean preservesValue) { + preservesValue = true and + input = "Argument[0]." + ["ArrayElement", "SetElement", "IteratorElement", "AnyMember"] and + output = "Argument[" + callbackArgIndex + "].Parameter[0]" } } @@ -152,14 +196,14 @@ module AsyncPackage { * A taint step from the return value of an iterator callback to the result of the iteration * call. * - * For example: `item + taint()` -> result` in `async.map(data, (item, cb) => cb(null, item + taint()), (err, result) => {})`. + * For example: `item + taint() -> result` in `async.map(data, (item, cb) => cb(null, item + taint()), (err, result) => {})`. */ private class IterationOutputTaintStep extends TaintTracking::SharedTaintStep { override predicate step(DataFlow::Node pred, DataFlow::Node succ) { exists( DataFlow::FunctionNode iteratee, DataFlow::FunctionNode final, int i, IterationCall call | - iteratee = call.getIteratorCallback().getALocalSource() and + iteratee = call.getIteratorCallback() and final = call.getFinalCallback() and // Require a closure to avoid spurious call/return mismatch. pred = getLastParameter(iteratee).getACall().getArgument(i) and succ = final.getParameter(i) and @@ -175,14 +219,18 @@ module AsyncPackage { * * For example: `data -> result` in `async.sortBy(data, orderingFn, (err, result) => {})`. */ - private class IterationPreserveTaintStep extends TaintTracking::SharedTaintStep { - override predicate step(DataFlow::Node pred, DataFlow::Node succ) { - exists(DataFlow::FunctionNode final, IterationCall call | - final = call.getFinalCallback() and // Require a closure to avoid spurious call/return mismatch. - pred = call.getCollection() and - succ = final.getParameter(1) and - call.getName() = "sortBy" - ) + private class IterationPreserveTaintStepFlowSummary extends DataFlow::SummarizedCallable { + IterationPreserveTaintStepFlowSummary() { this = "async.sortBy" } + + override DataFlow::InvokeNode getACallSimple() { + result instanceof IterationCall and + result.(IterationCall).getName() = "sortBy" + } + + override predicate propagatesFlow(string input, string output, boolean preservesValue) { + preservesValue = false and + input = "Argument[0]." + ["ArrayElement", "SetElement", "IteratorElement", "AnyMember"] and + output = "Argument[2].Parameter[1]" } } } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/LodashUnderscore.qll b/javascript/ql/lib/semmle/javascript/frameworks/LodashUnderscore.qll index 7c2e6aa37a5..20258622737 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/LodashUnderscore.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/LodashUnderscore.qll @@ -341,6 +341,18 @@ module LodashUnderscore { preservesValue = true } } + + private class LodashGroupBy extends DataFlow::SummarizedCallable { + LodashGroupBy() { this = "_.groupBy" } + + override DataFlow::CallNode getACall() { result = member("groupBy").getACall() } + + override predicate propagatesFlow(string input, string output, boolean preservesValue) { + input = "Argument[0]" and + output = ["Argument[1].Parameter[0]", "ReturnValue"] and + preservesValue = false + } + } } /** diff --git a/javascript/ql/lib/semmle/javascript/internal/flow_summaries/Arrays.qll b/javascript/ql/lib/semmle/javascript/internal/flow_summaries/Arrays.qll index b5696837781..6754d3db307 100644 --- a/javascript/ql/lib/semmle/javascript/internal/flow_summaries/Arrays.qll +++ b/javascript/ql/lib/semmle/javascript/internal/flow_summaries/Arrays.qll @@ -544,6 +544,25 @@ class ToSpliced extends SummarizedCallable { } } +class With extends SummarizedCallable { + With() { this = "Array#with" } + + override InstanceCall getACallSimple() { result.getMethodName() = "with" } + + override predicate propagatesFlow(string input, string output, boolean preservesValue) { + preservesValue = true and + ( + // Copy all elements from the original array to the new array + input = "Argument[this].WithArrayElement" and + output = "ReturnValue" + or + // Replace the value at the specified index + input = "Argument[1]" and + output = "ReturnValue.ArrayElement" + ) + } +} + class ArrayCoercionPackage extends FunctionalPackageSummary { ArrayCoercionPackage() { this = "ArrayCoercionPackage" } diff --git a/javascript/ql/lib/semmle/javascript/internal/flow_summaries/FlowSummaryUtil.qll b/javascript/ql/lib/semmle/javascript/internal/flow_summaries/FlowSummaryUtil.qll index a5df1d4716a..33f891935f4 100644 --- a/javascript/ql/lib/semmle/javascript/internal/flow_summaries/FlowSummaryUtil.qll +++ b/javascript/ql/lib/semmle/javascript/internal/flow_summaries/FlowSummaryUtil.qll @@ -49,3 +49,10 @@ string getAnArrayContent() { // Values stored at an unknown index result = "ArrayElement[?]" } + +/** + * Gets an argument position up to a certain limit. + * + * This can be used to generate flow summaries that should preserve such positions. + */ +int getAnArgumentPosition() { result = [0 .. 10] } diff --git a/javascript/ql/lib/semmle/javascript/internal/flow_summaries/Promises.qll b/javascript/ql/lib/semmle/javascript/internal/flow_summaries/Promises.qll index 7587ab11dc4..74048f0e397 100644 --- a/javascript/ql/lib/semmle/javascript/internal/flow_summaries/Promises.qll +++ b/javascript/ql/lib/semmle/javascript/internal/flow_summaries/Promises.qll @@ -368,3 +368,29 @@ private class PromiseWithResolversLike extends SummarizedCallable { ) } } + +class PromiseTry extends DataFlow::SummarizedCallable { + PromiseTry() { this = "Promise.try()" } + + override DataFlow::CallNode getACallSimple() { + result = promiseConstructorRef().getAMemberCall(["try", "attempt"]) + or + result = DataFlow::moduleImport(["p-try", "es6-promise-try"]).getACall() + } + + override predicate propagatesFlow(string input, string output, boolean preservesValue) { + preservesValue = true and + ( + exists(int i | i = getAnArgumentPosition() | + input = "Argument[" + (i + 1) + "]" and + output = "Argument[0].Parameter[" + i + "]" + ) + or + input = "Argument[0].ReturnValue" and + output = "ReturnValue.Awaited" + or + input = "Argument[0].ReturnValue[exception]" and + output = "ReturnValue.Awaited[error]" + ) + } +} diff --git a/javascript/ql/src/CHANGELOG.md b/javascript/ql/src/CHANGELOG.md index ab471438cb1..619bc14bf29 100644 --- a/javascript/ql/src/CHANGELOG.md +++ b/javascript/ql/src/CHANGELOG.md @@ -1,3 +1,17 @@ +## 2.1.0 + +### Major Analysis Improvements + +* Added support for TypeScript 5.9 +* Added support for `import defer` syntax in JavaScript and TypeScript. + +### Minor Analysis Improvements + +* Data flow is now tracked through the `Promise.try` and `Array.prototype.with` functions. +* Query `js/index-out-of-bounds` no longer produces a false-positive when a strictly-less-than check overrides a previous less-than-or-equal test. +* The query `js/remote-property-injection` now detects property injection vulnerabilities through object enumeration patterns such as `Object.keys()`. +* The query "Permissive CORS configuration" (`js/cors-permissive-configuration`) has been promoted from experimental and is now part of the default security suite. + ## 2.0.3 No user-facing changes. diff --git a/javascript/ql/src/Comments/CommentedOutCode.ql b/javascript/ql/src/Comments/CommentedOutCode.ql index 2528172522d..460a3bc2133 100644 --- a/javascript/ql/src/Comments/CommentedOutCode.ql +++ b/javascript/ql/src/Comments/CommentedOutCode.ql @@ -4,9 +4,9 @@ * @kind problem * @problem.severity recommendation * @id js/commented-out-code - * @tags maintainability - * statistical - * non-attributable + * @tags quality + * maintainability + * readability * @precision medium */ diff --git a/javascript/ql/src/Comments/TodoComments.ql b/javascript/ql/src/Comments/TodoComments.ql index 3d7f92cfbfc..487dde1f737 100644 --- a/javascript/ql/src/Comments/TodoComments.ql +++ b/javascript/ql/src/Comments/TodoComments.ql @@ -5,7 +5,9 @@ * @kind problem * @problem.severity recommendation * @id js/todo-comment - * @tags maintainability + * @tags quality + * maintainability + * readability * external/cwe/cwe-546 * @precision medium */ diff --git a/javascript/ql/src/DOM/Alert.ql b/javascript/ql/src/DOM/Alert.ql index 97fd505d2f9..43218c439c1 100644 --- a/javascript/ql/src/DOM/Alert.ql +++ b/javascript/ql/src/DOM/Alert.ql @@ -4,7 +4,9 @@ * @kind problem * @problem.severity recommendation * @id js/alert-call - * @tags maintainability + * @tags quality + * reliability + * correctness * external/cwe/cwe-489 * @precision medium */ diff --git a/javascript/ql/src/Declarations/RedeclaredVariable.ql b/javascript/ql/src/Declarations/RedeclaredVariable.ql index a48e4e5f65e..098cfdaffc4 100644 --- a/javascript/ql/src/Declarations/RedeclaredVariable.ql +++ b/javascript/ql/src/Declarations/RedeclaredVariable.ql @@ -4,7 +4,9 @@ * @kind problem * @problem.severity recommendation * @id js/variable-redeclaration - * @tags reliability + * @tags quality + * reliability + * correctness * readability * @precision medium */ diff --git a/javascript/ql/src/Declarations/UnusedParameter.ql b/javascript/ql/src/Declarations/UnusedParameter.ql index d48dc11ed2a..6cb84d2f7c1 100644 --- a/javascript/ql/src/Declarations/UnusedParameter.ql +++ b/javascript/ql/src/Declarations/UnusedParameter.ql @@ -4,7 +4,10 @@ * @kind problem * @problem.severity recommendation * @id js/unused-parameter - * @tags maintainability + * @tags quality + * reliability + * correctness + * readability * @precision medium */ diff --git a/javascript/ql/src/LanguageFeatures/ArgumentsCallerCallee.ql b/javascript/ql/src/LanguageFeatures/ArgumentsCallerCallee.ql index 6354383f6c7..9bbf22eebaa 100644 --- a/javascript/ql/src/LanguageFeatures/ArgumentsCallerCallee.ql +++ b/javascript/ql/src/LanguageFeatures/ArgumentsCallerCallee.ql @@ -5,8 +5,9 @@ * @kind problem * @problem.severity recommendation * @id js/call-stack-introspection - * @tags maintainability - * language-features + * @tags quality + * reliability + * correctness * @precision medium */ diff --git a/javascript/ql/src/LanguageFeatures/DebuggerStatement.ql b/javascript/ql/src/LanguageFeatures/DebuggerStatement.ql index 6ffca36df7c..a81f8e93051 100644 --- a/javascript/ql/src/LanguageFeatures/DebuggerStatement.ql +++ b/javascript/ql/src/LanguageFeatures/DebuggerStatement.ql @@ -4,9 +4,10 @@ * @kind problem * @problem.severity recommendation * @id js/debugger-statement - * @tags efficiency - * maintainability - * language-features + * @tags quality + * reliability + * correctness + * performance * external/cwe/cwe-489 * @precision medium */ diff --git a/javascript/ql/src/LanguageFeatures/Eval.ql b/javascript/ql/src/LanguageFeatures/Eval.ql index f1f753774c0..940ec716da7 100644 --- a/javascript/ql/src/LanguageFeatures/Eval.ql +++ b/javascript/ql/src/LanguageFeatures/Eval.ql @@ -5,8 +5,9 @@ * @kind problem * @problem.severity recommendation * @id js/eval-call - * @tags maintainability - * language-features + * @tags quality + * reliability + * correctness * external/cwe/cwe-676 * @precision medium */ diff --git a/javascript/ql/src/Performance/ReassignParameterAndUseArguments.ql b/javascript/ql/src/Performance/ReassignParameterAndUseArguments.ql index 0e54de5d7d8..7fddaa74592 100644 --- a/javascript/ql/src/Performance/ReassignParameterAndUseArguments.ql +++ b/javascript/ql/src/Performance/ReassignParameterAndUseArguments.ql @@ -5,8 +5,9 @@ * @kind problem * @problem.severity recommendation * @id js/parameter-reassignment-with-arguments - * @tags efficiency - * maintainability + * @tags quality + * reliability + * performance * @precision medium */ diff --git a/javascript/ql/src/RegExp/BackspaceEscape.ql b/javascript/ql/src/RegExp/BackspaceEscape.ql index 054f46f06b6..cee6c7672ce 100644 --- a/javascript/ql/src/RegExp/BackspaceEscape.ql +++ b/javascript/ql/src/RegExp/BackspaceEscape.ql @@ -5,9 +5,10 @@ * @kind problem * @problem.severity recommendation * @id js/regex/backspace-escape - * @tags maintainability + * @tags quality + * maintainability * readability - * regular-expressions + * correctness * @precision medium */ diff --git a/javascript/ql/src/Statements/ImplicitReturn.ql b/javascript/ql/src/Statements/ImplicitReturn.ql index 9bc50f0798a..cf76ec61606 100644 --- a/javascript/ql/src/Statements/ImplicitReturn.ql +++ b/javascript/ql/src/Statements/ImplicitReturn.ql @@ -5,7 +5,10 @@ * @kind problem * @problem.severity recommendation * @id js/implicit-return - * @tags maintainability + * @tags quality + * reliability + * correctness + * readability * @precision medium */ diff --git a/javascript/ql/src/Statements/InconsistentReturn.ql b/javascript/ql/src/Statements/InconsistentReturn.ql index b6978301e02..a6e810d52bf 100644 --- a/javascript/ql/src/Statements/InconsistentReturn.ql +++ b/javascript/ql/src/Statements/InconsistentReturn.ql @@ -4,8 +4,10 @@ * @kind problem * @problem.severity recommendation * @id js/mixed-returns - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness + * readability * @precision medium */ diff --git a/javascript/ql/src/change-notes/2025-07-31-cors-move-out-of-experimental.md b/javascript/ql/src/change-notes/2025-07-31-cors-move-out-of-experimental.md deleted file mode 100644 index db04cbc7d93..00000000000 --- a/javascript/ql/src/change-notes/2025-07-31-cors-move-out-of-experimental.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The query "Permissive CORS configuration" (`js/cors-permissive-configuration`) has been promoted from experimental and is now part of the default security suite. diff --git a/javascript/ql/src/change-notes/2025-08-27-remote-property-injection-update.md b/javascript/ql/src/change-notes/2025-08-27-remote-property-injection-update.md deleted file mode 100644 index 17fe6123cce..00000000000 --- a/javascript/ql/src/change-notes/2025-08-27-remote-property-injection-update.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The query `js/remote-property-injection` now detects property injection vulnerabilities through object enumeration patterns such as `Object.keys()`. \ No newline at end of file diff --git a/javascript/ql/src/change-notes/2025-09-05-typescript-5.9.md b/javascript/ql/src/change-notes/2025-09-05-typescript-5.9.md deleted file mode 100644 index bb0b6420200..00000000000 --- a/javascript/ql/src/change-notes/2025-09-05-typescript-5.9.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: majorAnalysis ---- -* Added support for TypeScript 5.9 -* Added support for `import defer` syntax in JavaScript and TypeScript. diff --git a/javascript/ql/src/change-notes/2025-09-12-off-by-one.md b/javascript/ql/src/change-notes/2025-09-12-off-by-one.md deleted file mode 100644 index 42a97195d4f..00000000000 --- a/javascript/ql/src/change-notes/2025-09-12-off-by-one.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Query `js/index-out-of-bounds` no longer produces a false-positive when a strictly-less-than check overrides a previous less-than-or-equal test. diff --git a/javascript/ql/src/change-notes/released/2.1.0.md b/javascript/ql/src/change-notes/released/2.1.0.md new file mode 100644 index 00000000000..e0ef5ddd6e1 --- /dev/null +++ b/javascript/ql/src/change-notes/released/2.1.0.md @@ -0,0 +1,13 @@ +## 2.1.0 + +### Major Analysis Improvements + +* Added support for TypeScript 5.9 +* Added support for `import defer` syntax in JavaScript and TypeScript. + +### Minor Analysis Improvements + +* Data flow is now tracked through the `Promise.try` and `Array.prototype.with` functions. +* Query `js/index-out-of-bounds` no longer produces a false-positive when a strictly-less-than check overrides a previous less-than-or-equal test. +* The query `js/remote-property-injection` now detects property injection vulnerabilities through object enumeration patterns such as `Object.keys()`. +* The query "Permissive CORS configuration" (`js/cors-permissive-configuration`) has been promoted from experimental and is now part of the default security suite. diff --git a/javascript/ql/src/codeql-pack.release.yml b/javascript/ql/src/codeql-pack.release.yml index fabf1e86596..487a1a58b2b 100644 --- a/javascript/ql/src/codeql-pack.release.yml +++ b/javascript/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.3 +lastReleaseVersion: 2.1.0 diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index b754f04005d..916ad1339b2 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 2.0.4-dev +version: 2.1.1-dev groups: - javascript - queries diff --git a/javascript/ql/test/library-tests/FlowSummary/DataFlowConsistency.expected b/javascript/ql/test/library-tests/FlowSummary/DataFlowConsistency.expected index f3b3ca527c3..51612c5b97a 100644 --- a/javascript/ql/test/library-tests/FlowSummary/DataFlowConsistency.expected +++ b/javascript/ql/test/library-tests/FlowSummary/DataFlowConsistency.expected @@ -20,21 +20,6 @@ reverseRead | tst.js:267:28:267:31 | map3 | Origin of readStep is missing a PostUpdateNode. | argHasPostUpdate postWithInFlow -| file://:0:0:0:0 | [summary] to write: Argument[0] in _.tap | PostUpdateNode should not be the target of local flow. | -| file://:0:0:0:0 | [summary] to write: Argument[1] in Array method with flow into callback | PostUpdateNode should not be the target of local flow. | -| file://:0:0:0:0 | [summary] to write: Argument[1] in Array#filter | PostUpdateNode should not be the target of local flow. | -| file://:0:0:0:0 | [summary] to write: Argument[1] in Array#find / Array#findLast | PostUpdateNode should not be the target of local flow. | -| file://:0:0:0:0 | [summary] to write: Argument[1] in Array#flatMap | PostUpdateNode should not be the target of local flow. | -| file://:0:0:0:0 | [summary] to write: Argument[1] in Array#forEach / Map#forEach / Set#forEach | PostUpdateNode should not be the target of local flow. | -| file://:0:0:0:0 | [summary] to write: Argument[1] in Array#map | PostUpdateNode should not be the target of local flow. | -| file://:0:0:0:0 | [summary] to write: Argument[1] in Array#reduce / Array#reduceRight | PostUpdateNode should not be the target of local flow. | -| file://:0:0:0:0 | [summary] to write: Argument[2] in 'array.prototype.find' / 'array-find' | PostUpdateNode should not be the target of local flow. | -| file://:0:0:0:0 | [summary] to write: Argument[2] in Array.from(arg, callback, [thisArg]) | PostUpdateNode should not be the target of local flow. | -| file://:0:0:0:0 | [summary] to write: Argument[2] in _.reduce-like | PostUpdateNode should not be the target of local flow. | -| file://:0:0:0:0 | [summary] to write: Argument[this] in Array#flatMap | PostUpdateNode should not be the target of local flow. | -| file://:0:0:0:0 | [summary] to write: Argument[this] in Array#forEach / Map#forEach / Set#forEach | PostUpdateNode should not be the target of local flow. | -| file://:0:0:0:0 | [summary] to write: Argument[this] in Array#map | PostUpdateNode should not be the target of local flow. | -| file://:0:0:0:0 | [summary] to write: Argument[this] in Array#reduce / Array#reduceRight | PostUpdateNode should not be the target of local flow. | viableImplInCallContextTooLarge uniqueParameterNodeAtPosition uniqueParameterNodePosition diff --git a/javascript/ql/test/library-tests/Portals/PortalEntry.expected b/javascript/ql/test/library-tests/Portals/PortalEntry.expected deleted file mode 100644 index b6f7ce88118..00000000000 --- a/javascript/ql/test/library-tests/Portals/PortalEntry.expected +++ /dev/null @@ -1,1715 +0,0 @@ -| (member Promise (root https://www.npmjs.com/package/bluebird)) | src/bluebird/index.js:9:19:9:25 | Promise | true | -| (member default (root https://www.npmjs.com/package/m2)) | src/m2/main.js:6:16:16:1 | class { ... y; }\\n} | true | -| (member exec (instance (member Promise (root https://www.npmjs.com/package/bluebird)))) | src/bluebird/index.js:2:15:2:18 | exec | true | -| (member f00 (member f00 (member f00 (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member f00 (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (parameter 0 (parameter 0 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member f00 (return (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (member foo (root https://www.npmjs.com/package/cyclic))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (parameter 0 (parameter 0 (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member f00 (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (parameter 0 (parameter 0 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member f00 (return (return (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:5:11:5:13 | foo | true | -| (member foo (root https://www.npmjs.com/package/cyclic)) | src/cyclic/index.js:10:15:10:17 | foo | true | -| (member foo (root https://www.npmjs.com/package/m2)) | src/m2/main.js:1:8:4:1 | functio ... "hi";\\n} | true | -| (member foo (root https://www.npmjs.com/package/m4)) | src/m4/index.js:1:15:1:28 | function(x) {} | true | -| (member m (instance (member default (root https://www.npmjs.com/package/m2)))) | src/m2/main.js:11:4:13:3 | (x) {\\n ... e);\\n } | true | -| (member name (instance (member default (root https://www.npmjs.com/package/m2)))) | src/m2/main.js:8:17:8:20 | name | true | -| (member s (member default (root https://www.npmjs.com/package/m2))) | src/m2/main.js:15:11:15:27 | (y) { return y; } | true | -| (member then (instance (member Promise (root https://www.npmjs.com/package/bluebird)))) | src/bluebird/index.js:5:26:7:1 | functio ... ull);\\n} | true | -| (member x (parameter 0 (member foo (root https://www.npmjs.com/package/m2)))) | src/m3/tst2.js:5:10:5:10 | o | false | -| (member y (member x (parameter 0 (member foo (root https://www.npmjs.com/package/m2))))) | src/m3/tst2.js:3:6:3:8 | "?" | false | -| (member z (parameter 0 (member foo (root https://www.npmjs.com/package/m2)))) | src/m2/main.js:3:9:3:12 | "hi" | true | -| (parameter 0 (member String (global))) | src/m5/index.js:5:33:5:50 | fs.readFileSync(f) | true | -| (parameter 0 (member default (root https://www.npmjs.com/package/m2))) | src/m3/tst3.js:4:7:4:10 | "me" | false | -| (parameter 0 (member default (root https://www.npmjs.com/package/m2))) | src/m3/tst3.js:5:7:5:10 | "me" | false | -| (parameter 0 (member encode (root https://www.npmjs.com/package/base-64/base64.js))) | src/m5/index.js:5:26:5:51 | String( ... ync(f)) | false | -| (parameter 0 (member foo (root https://www.npmjs.com/package/m2))) | src/m3/tst2.js:5:5:5:12 | { x: o } | false | -| (parameter 0 (member log (member console (global)))) | src/m2/main.js:2:15:2:19 | p.x.y | true | -| (parameter 0 (member log (member console (global)))) | src/m2/main.js:12:17:12:35 | x + " " + this.name | true | -| (parameter 0 (member log (member console (global)))) | src/m3/index.js:3:43:3:61 | m1("Hello, world!") | true | -| (parameter 0 (member m (instance (member default (root https://www.npmjs.com/package/m2))))) | src/m3/tst3.js:4:15:4:18 | "hi" | false | -| (parameter 0 (member m (instance (member default (root https://www.npmjs.com/package/m2))))) | src/m3/tst3.js:4:15:4:18 | "hi" | true | -| (parameter 0 (member m (member default (root https://www.npmjs.com/package/m2)))) | src/m3/tst3.js:2:5:2:8 | "hi" | false | -| (parameter 0 (member m (return (member default (root https://www.npmjs.com/package/m2))))) | src/m3/tst3.js:4:15:4:18 | "hi" | false | -| (parameter 0 (member readFileSync (root https://www.npmjs.com/package/fs))) | src/m5/index.js:5:49:5:49 | f | false | -| (parameter 0 (member s (instance (member default (root https://www.npmjs.com/package/m2))))) | src/m3/tst3.js:5:15:5:21 | "there" | false | -| (parameter 0 (member s (instance (member default (root https://www.npmjs.com/package/m2))))) | src/m3/tst3.js:5:15:5:21 | "there" | true | -| (parameter 0 (member s (member default (root https://www.npmjs.com/package/m2)))) | src/m3/tst3.js:3:5:3:11 | "there" | false | -| (parameter 0 (member s (return (member default (root https://www.npmjs.com/package/m2))))) | src/m3/tst3.js:5:15:5:21 | "there" | false | -| (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member f00 (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 0 (return (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:6:2:8 | foo | true | -| (parameter 0 (parameter 1 (member then (instance (member Promise (root https://www.npmjs.com/package/bluebird)))))) | src/bluebird/index.js:6:12:6:15 | null | true | -| (parameter 0 (root https://www.npmjs.com/package/m1)) | src/m3/index.js:3:46:3:60 | "Hello, world!" | false | -| (return (member f00 (member f00 (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member f00 (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (parameter 0 (parameter 0 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member f00 (return (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member foo (root https://www.npmjs.com/package/cyclic))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (member s (member default (root https://www.npmjs.com/package/m2)))) | src/m2/main.js:15:24:15:24 | y | true | -| (return (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (parameter 0 (parameter 0 (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member f00 (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (member foo (root https://www.npmjs.com/package/cyclic)))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (parameter 0 (parameter 0 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (return (return (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:3:10:3:12 | foo | true | -| (return (root https://www.npmjs.com/package/m1)) | src/m1/index.js:1:25:1:25 | x | true | -| (root https://www.npmjs.com/package/m1) | src/m1/index.js:1:18:1:25 | (x) => x | true | diff --git a/javascript/ql/test/library-tests/Portals/PortalEntry.ql b/javascript/ql/test/library-tests/Portals/PortalEntry.ql deleted file mode 100644 index 2e16b7bffb1..00000000000 --- a/javascript/ql/test/library-tests/Portals/PortalEntry.ql +++ /dev/null @@ -1,5 +0,0 @@ -import javascript -import semmle.javascript.dataflow.Portals - -from Portal p, boolean escapes -select p, p.getAnEntryNode(escapes), escapes diff --git a/javascript/ql/test/library-tests/Portals/PortalExit.expected b/javascript/ql/test/library-tests/Portals/PortalExit.expected deleted file mode 100644 index ed5a28d830e..00000000000 --- a/javascript/ql/test/library-tests/Portals/PortalExit.expected +++ /dev/null @@ -1,1060 +0,0 @@ -| (global) | src/bluebird/index.js:1:1:1:0 | this | true | -| (global) | src/bluebird/tst.js:1:1:1:0 | this | true | -| (global) | src/cyclic/index.js:1:1:1:0 | this | true | -| (global) | src/m1/index.js:1:1:1:0 | this | true | -| (global) | src/m2/main.js:1:1:1:0 | this | true | -| (global) | src/m3/index.js:1:1:1:0 | this | true | -| (global) | src/m3/tst2.js:1:1:1:0 | this | true | -| (global) | src/m3/tst3.js:1:1:1:0 | this | true | -| (global) | src/m3/tst.js:1:1:1:0 | this | true | -| (global) | src/m4/index.js:1:1:1:0 | this | true | -| (global) | src/m5/index.js:1:1:1:0 | this | true | -| (instance (member Promise (root https://www.npmjs.com/package/bluebird))) | src/bluebird/index.js:1:1:1:0 | this | true | -| (instance (member Promise (root https://www.npmjs.com/package/bluebird))) | src/bluebird/index.js:5:1:5:17 | Promise.prototype | true | -| (instance (member Promise (root https://www.npmjs.com/package/bluebird))) | src/bluebird/index.js:5:26:5:25 | this | true | -| (instance (member Promise (root https://www.npmjs.com/package/bluebird))) | src/bluebird/tst.js:2:9:2:21 | new Promise() | true | -| (instance (member default (root https://www.npmjs.com/package/m2))) | src/m2/main.js:7:14:7:13 | this | true | -| (instance (member default (root https://www.npmjs.com/package/m2))) | src/m2/main.js:11:4:11:3 | this | true | -| (instance (member default (root https://www.npmjs.com/package/m2))) | src/m2/main.js:15:11:15:10 | this | true | -| (instance (member default (root https://www.npmjs.com/package/m2))) | src/m3/tst3.js:4:1:4:11 | new A("me") | false | -| (instance (member default (root https://www.npmjs.com/package/m2))) | src/m3/tst3.js:4:1:4:11 | new A("me") | true | -| (instance (member default (root https://www.npmjs.com/package/m2))) | src/m3/tst3.js:5:1:5:11 | new A("me") | false | -| (instance (member default (root https://www.npmjs.com/package/m2))) | src/m3/tst3.js:5:1:5:11 | new A("me") | true | -| (member String (global)) | src/m5/index.js:5:26:5:31 | String | true | -| (member console (global)) | src/m2/main.js:2:3:2:9 | console | true | -| (member console (global)) | src/m2/main.js:12:5:12:11 | console | true | -| (member console (global)) | src/m3/index.js:3:31:3:37 | console | true | -| (member default (root https://www.npmjs.com/package/m2)) | src/m3/tst3.js:1:8:1:8 | A | false | -| (member encode (root https://www.npmjs.com/package/base-64/base64.js)) | src/m5/index.js:5:12:5:24 | base64.encode | false | -| (member foo (root https://www.npmjs.com/package/m2)) | src/m3/tst2.js:1:10:1:12 | foo | false | -| (member log (member console (global))) | src/m2/main.js:2:3:2:13 | console.log | true | -| (member log (member console (global))) | src/m2/main.js:12:5:12:15 | console.log | true | -| (member log (member console (global))) | src/m3/index.js:3:31:3:41 | console.log | true | -| (member m (instance (member default (root https://www.npmjs.com/package/m2)))) | src/m3/tst3.js:4:1:4:13 | new A("me").m | false | -| (member m (instance (member default (root https://www.npmjs.com/package/m2)))) | src/m3/tst3.js:4:1:4:13 | new A("me").m | true | -| (member m (member default (root https://www.npmjs.com/package/m2))) | src/m3/tst3.js:2:1:2:3 | A.m | false | -| (member m (return (member default (root https://www.npmjs.com/package/m2)))) | src/m3/tst3.js:4:1:4:13 | new A("me").m | false | -| (member name (instance (member default (root https://www.npmjs.com/package/m2)))) | src/m2/main.js:12:27:12:35 | this.name | true | -| (member readFileSync (root https://www.npmjs.com/package/fs)) | src/m5/index.js:5:33:5:47 | fs.readFileSync | false | -| (member s (instance (member default (root https://www.npmjs.com/package/m2)))) | src/m3/tst3.js:5:1:5:13 | new A("me").s | false | -| (member s (instance (member default (root https://www.npmjs.com/package/m2)))) | src/m3/tst3.js:5:1:5:13 | new A("me").s | true | -| (member s (member default (root https://www.npmjs.com/package/m2))) | src/m3/tst3.js:3:1:3:3 | A.s | false | -| (member s (return (member default (root https://www.npmjs.com/package/m2)))) | src/m3/tst3.js:5:1:5:13 | new A("me").s | false | -| (member x (parameter 0 (member foo (root https://www.npmjs.com/package/m2)))) | src/m2/main.js:2:15:2:17 | p.x | true | -| (member y (member x (parameter 0 (member foo (root https://www.npmjs.com/package/m2))))) | src/m2/main.js:2:15:2:19 | p.x.y | true | -| (parameter 0 (member Promise (root https://www.npmjs.com/package/bluebird))) | src/bluebird/index.js:1:18:1:21 | exec | true | -| (parameter 0 (member f00 (member f00 (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member f00 (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (parameter 0 (parameter 0 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member f00 (return (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (member foo (root https://www.npmjs.com/package/m2))) | src/m2/main.js:1:21:1:21 | p | true | -| (parameter 0 (member foo (root https://www.npmjs.com/package/m4))) | src/m4/index.js:1:24:1:24 | x | true | -| (parameter 0 (member m (instance (member default (root https://www.npmjs.com/package/m2))))) | src/m2/main.js:11:5:11:5 | x | true | -| (parameter 0 (member s (member default (root https://www.npmjs.com/package/m2)))) | src/m2/main.js:15:12:15:12 | y | true | -| (parameter 0 (member then (instance (member Promise (root https://www.npmjs.com/package/bluebird))))) | src/bluebird/index.js:5:35:5:43 | fulfilled | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (parameter 0 (parameter 0 (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member f00 (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (parameter 0 (parameter 0 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (return (return (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:1:14:1:15 | cb | true | -| (parameter 0 (root https://www.npmjs.com/package/m1)) | src/m1/index.js:1:19:1:19 | x | true | -| (parameter 1 (member then (instance (member Promise (root https://www.npmjs.com/package/bluebird))))) | src/bluebird/index.js:5:46:5:53 | rejected | true | -| (return (member String (global))) | src/m5/index.js:5:26:5:51 | String( ... ync(f)) | true | -| (return (member default (root https://www.npmjs.com/package/m2))) | src/m3/tst3.js:4:1:4:11 | new A("me") | false | -| (return (member default (root https://www.npmjs.com/package/m2))) | src/m3/tst3.js:5:1:5:11 | new A("me") | false | -| (return (member encode (root https://www.npmjs.com/package/base-64/base64.js))) | src/m5/index.js:5:12:5:52 | base64. ... nc(f))) | false | -| (return (member foo (root https://www.npmjs.com/package/m2))) | src/m3/tst2.js:5:1:5:13 | foo({ x: o }) | false | -| (return (member log (member console (global)))) | src/m2/main.js:2:3:2:20 | console.log(p.x.y) | true | -| (return (member log (member console (global)))) | src/m2/main.js:12:5:12:36 | console ... s.name) | true | -| (return (member log (member console (global)))) | src/m3/index.js:3:31:3:62 | console ... rld!")) | true | -| (return (member m (instance (member default (root https://www.npmjs.com/package/m2))))) | src/m3/tst3.js:4:1:4:19 | new A("me").m("hi") | false | -| (return (member m (instance (member default (root https://www.npmjs.com/package/m2))))) | src/m3/tst3.js:4:1:4:19 | new A("me").m("hi") | true | -| (return (member m (member default (root https://www.npmjs.com/package/m2)))) | src/m3/tst3.js:2:1:2:9 | A.m("hi") | false | -| (return (member m (return (member default (root https://www.npmjs.com/package/m2))))) | src/m3/tst3.js:4:1:4:19 | new A("me").m("hi") | false | -| (return (member readFileSync (root https://www.npmjs.com/package/fs))) | src/m5/index.js:5:33:5:50 | fs.readFileSync(f) | false | -| (return (member s (instance (member default (root https://www.npmjs.com/package/m2))))) | src/m3/tst3.js:5:1:5:22 | new A(" ... there") | false | -| (return (member s (instance (member default (root https://www.npmjs.com/package/m2))))) | src/m3/tst3.js:5:1:5:22 | new A(" ... there") | true | -| (return (member s (member default (root https://www.npmjs.com/package/m2)))) | src/m3/tst3.js:3:1:3:12 | A.s("there") | false | -| (return (member s (return (member default (root https://www.npmjs.com/package/m2))))) | src/m3/tst3.js:5:1:5:22 | new A(" ... there") | false | -| (return (parameter 0 (member f00 (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member f00 (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (parameter 0 (parameter 0 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member f00 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (parameter 0 (parameter 0 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (parameter 0 (parameter 0 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (parameter 0 (parameter 0 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (parameter 0 (parameter 0 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (parameter 0 (parameter 0 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (parameter 0 (parameter 0 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (parameter 0 (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (parameter 0 (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (member f00 (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (member f00 (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (member f00 (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (member f00 (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (member f00 (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (member f00 (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (member f00 (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (member f00 (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (member f00 (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (member f00 (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (member f00 (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (member f00 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (parameter 0 (parameter 0 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (parameter 0 (parameter 0 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (parameter 0 (parameter 0 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (parameter 0 (parameter 0 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (parameter 0 (parameter 0 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (return (member f00 (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (return (member f00 (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (return (member f00 (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (return (member f00 (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (return (member f00 (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (return (parameter 0 (parameter 0 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (return (parameter 0 (parameter 0 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (return (return (member f00 (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (return (return (member f00 (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (return (return (parameter 0 (parameter 0 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (return (return (return (member f00 (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 0 (return (return (return (return (return (return (member foo (root https://www.npmjs.com/package/cyclic)))))))))) | src/cyclic/index.js:2:3:2:9 | cb(foo) | true | -| (return (parameter 1 (member then (instance (member Promise (root https://www.npmjs.com/package/bluebird)))))) | src/bluebird/index.js:6:3:6:16 | rejected(null) | true | -| (return (root https://www.npmjs.com/package/m1)) | src/m3/index.js:3:43:3:61 | m1("Hello, world!") | false | -| (root https://www.npmjs.com/package/base-64/base64.js) | src/m5/index.js:2:14:2:41 | require ... 64.js") | false | -| (root https://www.npmjs.com/package/fs) | src/m5/index.js:1:12:1:24 | require("fs") | false | -| (root https://www.npmjs.com/package/m1) | src/m3/index.js:1:10:1:22 | require("m1") | false | -| (root https://www.npmjs.com/package/m2) | src/m3/tst2.js:1:1:1:25 | import ... m "m2"; | false | -| (root https://www.npmjs.com/package/m2) | src/m3/tst3.js:1:1:1:19 | import A from "m2"; | false | diff --git a/javascript/ql/test/library-tests/Portals/PortalExit.ql b/javascript/ql/test/library-tests/Portals/PortalExit.ql deleted file mode 100644 index c8215261fd0..00000000000 --- a/javascript/ql/test/library-tests/Portals/PortalExit.ql +++ /dev/null @@ -1,5 +0,0 @@ -import javascript -import semmle.javascript.dataflow.Portals - -from Portal p, boolean isRemote -select p, p.getAnExitNode(isRemote), isRemote diff --git a/javascript/ql/test/library-tests/Portals/src/bluebird/index.js b/javascript/ql/test/library-tests/Portals/src/bluebird/index.js deleted file mode 100644 index 55534a29ee1..00000000000 --- a/javascript/ql/test/library-tests/Portals/src/bluebird/index.js +++ /dev/null @@ -1,9 +0,0 @@ -function Promise(exec) { - this.exec = exec; -} - -Promise.prototype.then = function(fulfilled, rejected) { - rejected(null); -}; - -exports.Promise = Promise; diff --git a/javascript/ql/test/library-tests/Portals/src/bluebird/package.json b/javascript/ql/test/library-tests/Portals/src/bluebird/package.json deleted file mode 100644 index c87227dd781..00000000000 --- a/javascript/ql/test/library-tests/Portals/src/bluebird/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "name": "bluebird" -} diff --git a/javascript/ql/test/library-tests/Portals/src/bluebird/tst.js b/javascript/ql/test/library-tests/Portals/src/bluebird/tst.js deleted file mode 100644 index 9de51f32583..00000000000 --- a/javascript/ql/test/library-tests/Portals/src/bluebird/tst.js +++ /dev/null @@ -1,2 +0,0 @@ -var Promise= require('./index').Promise; -var p = new Promise(); diff --git a/javascript/ql/test/library-tests/Portals/src/cyclic/index.js b/javascript/ql/test/library-tests/Portals/src/cyclic/index.js deleted file mode 100644 index cf6f60871ce..00000000000 --- a/javascript/ql/test/library-tests/Portals/src/cyclic/index.js +++ /dev/null @@ -1,10 +0,0 @@ -function foo(cb) { - cb(foo); - return foo; -} -foo.f00 = foo; - -foo(foo); -foo(foo()); - -exports.foo = foo; diff --git a/javascript/ql/test/library-tests/Portals/src/cyclic/package.json b/javascript/ql/test/library-tests/Portals/src/cyclic/package.json deleted file mode 100644 index f842eba9efd..00000000000 --- a/javascript/ql/test/library-tests/Portals/src/cyclic/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "name": "cyclic" -} diff --git a/javascript/ql/test/library-tests/Portals/src/m1/index.js b/javascript/ql/test/library-tests/Portals/src/m1/index.js deleted file mode 100644 index b6996b7326d..00000000000 --- a/javascript/ql/test/library-tests/Portals/src/m1/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = (x) => x; diff --git a/javascript/ql/test/library-tests/Portals/src/m1/package.json b/javascript/ql/test/library-tests/Portals/src/m1/package.json deleted file mode 100644 index a055bb659b3..00000000000 --- a/javascript/ql/test/library-tests/Portals/src/m1/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "name": "m1" -} diff --git a/javascript/ql/test/library-tests/Portals/src/m2/main.js b/javascript/ql/test/library-tests/Portals/src/m2/main.js deleted file mode 100644 index 43f42b1ff83..00000000000 --- a/javascript/ql/test/library-tests/Portals/src/m2/main.js +++ /dev/null @@ -1,16 +0,0 @@ -export function foo(p) { - console.log(p.x.y); - p.z = "hi"; -} - -export default class { - constructor(name) { - this.name = name; - } - - m(x) { - console.log(x + " " + this.name); - } - - static s(y) { return y; } -}; diff --git a/javascript/ql/test/library-tests/Portals/src/m2/package.json b/javascript/ql/test/library-tests/Portals/src/m2/package.json deleted file mode 100644 index 6a14139b8eb..00000000000 --- a/javascript/ql/test/library-tests/Portals/src/m2/package.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "m2", - "main": "main.js" -} diff --git a/javascript/ql/test/library-tests/Portals/src/m3/index.js b/javascript/ql/test/library-tests/Portals/src/m3/index.js deleted file mode 100644 index c677a0e8f86..00000000000 --- a/javascript/ql/test/library-tests/Portals/src/m3/index.js +++ /dev/null @@ -1,3 +0,0 @@ -var m1 = require("m1"); - -module.exports = function() { console.log(m1("Hello, world!")); }; diff --git a/javascript/ql/test/library-tests/Portals/src/m3/package.json b/javascript/ql/test/library-tests/Portals/src/m3/package.json deleted file mode 100644 index 6644e5c989c..00000000000 --- a/javascript/ql/test/library-tests/Portals/src/m3/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "client", - "private": true, - "dependencies": { - "m1": "*", - "m2": "*" - } -} diff --git a/javascript/ql/test/library-tests/Portals/src/m3/tst.js b/javascript/ql/test/library-tests/Portals/src/m3/tst.js deleted file mode 100644 index dea4b2f9201..00000000000 --- a/javascript/ql/test/library-tests/Portals/src/m3/tst.js +++ /dev/null @@ -1 +0,0 @@ -require(".")(); diff --git a/javascript/ql/test/library-tests/Portals/src/m3/tst2.js b/javascript/ql/test/library-tests/Portals/src/m3/tst2.js deleted file mode 100644 index ae963ef6458..00000000000 --- a/javascript/ql/test/library-tests/Portals/src/m3/tst2.js +++ /dev/null @@ -1,5 +0,0 @@ -import { foo } from "m2"; -var o = { - y: "?" -}; -foo({ x: o }); diff --git a/javascript/ql/test/library-tests/Portals/src/m3/tst3.js b/javascript/ql/test/library-tests/Portals/src/m3/tst3.js deleted file mode 100644 index 33f1bce997b..00000000000 --- a/javascript/ql/test/library-tests/Portals/src/m3/tst3.js +++ /dev/null @@ -1,5 +0,0 @@ -import A from "m2"; -A.m("hi"); -A.s("there"); -new A("me").m("hi"); -new A("me").s("there"); diff --git a/javascript/ql/test/library-tests/Portals/src/m4/index.js b/javascript/ql/test/library-tests/Portals/src/m4/index.js deleted file mode 100644 index 71247fc87d9..00000000000 --- a/javascript/ql/test/library-tests/Portals/src/m4/index.js +++ /dev/null @@ -1 +0,0 @@ -exports.foo = function(x) {}; diff --git a/javascript/ql/test/library-tests/Portals/src/m4/package.json b/javascript/ql/test/library-tests/Portals/src/m4/package.json deleted file mode 100644 index a3bb655cba4..00000000000 --- a/javascript/ql/test/library-tests/Portals/src/m4/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "name": "m4" -} diff --git a/javascript/ql/test/library-tests/Portals/src/m5/index.js b/javascript/ql/test/library-tests/Portals/src/m5/index.js deleted file mode 100644 index cc467c97fb8..00000000000 --- a/javascript/ql/test/library-tests/Portals/src/m5/index.js +++ /dev/null @@ -1,6 +0,0 @@ -const fs = require("fs"), - base64 = require("base-64/base64.js"); - -module.exports.readBase64 = function (f) { - return base64.encode(String(fs.readFileSync(f))); -}; diff --git a/javascript/ql/test/library-tests/Portals/src/m5/package.json b/javascript/ql/test/library-tests/Portals/src/m5/package.json deleted file mode 100644 index 90f440499e9..00000000000 --- a/javascript/ql/test/library-tests/Portals/src/m5/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "m5", - "dependencies": { - "base-64": "*" - } -} diff --git a/javascript/ql/test/library-tests/TripleDot/array-with.js b/javascript/ql/test/library-tests/TripleDot/array-with.js new file mode 100644 index 00000000000..73c09a434ac --- /dev/null +++ b/javascript/ql/test/library-tests/TripleDot/array-with.js @@ -0,0 +1,25 @@ +function t1() { + const arr = [1, 2, 3]; + const newArr = arr.with(1, source('with.1')); + sink(newArr[1]); // $ hasValueFlow=with.1 +} + +function t2() { + const arr = [source('with.2.1'), 2, source('with.2.3')]; + const newArr = arr.with(1, 'replaced'); + sink(newArr[0]); // $ hasValueFlow=with.2.1 + sink(newArr[2]); // $ hasValueFlow=with.2.3 +} + +function t3() { + const arr = [1, 2, 3]; + const index = source('with.3.index'); + const newArr = arr.with(index, 'new value'); + // No assertions here as the index is tainted, not the value +} + +function t4() { + const arr = [1, 2, 3]; + const newArr = arr.with(1, source('with.4')); + sink(arr[1]); // This should NOT have value flow as with() returns a new array +} diff --git a/javascript/ql/test/library-tests/TripleDot/promise-try.js b/javascript/ql/test/library-tests/TripleDot/promise-try.js new file mode 100644 index 00000000000..9c96ee73426 --- /dev/null +++ b/javascript/ql/test/library-tests/TripleDot/promise-try.js @@ -0,0 +1,29 @@ +async function t1() { + const promise = Promise.try(() => { + return source('try.1'); + }); + sink(await promise); // $ hasValueFlow=try.1 +} + +async function t2() { + const promise = Promise.try((x) => { + return x + }, source('try.2')); + sink(await promise); // $ hasValueFlow=try.2 +} + +async function t3() { + const promise = Promise.try((x) => { + throw x; + }, source('try.3')); + promise.catch(err => { + sink(err); // $ hasValueFlow=try.3 + }); +} + +async function t4() { + const promise = Promise.try((x, y) => { + return y; + }, source('try.4.1'), source('try.4.2')); + sink(await promise); // $ hasValueFlow=try.4.2 +} diff --git a/javascript/ql/test/library-tests/frameworks/AsyncPackage/AsyncTaintTracking.expected b/javascript/ql/test/library-tests/frameworks/AsyncPackage/AsyncTaintTracking.expected index 168f5ec5ace..95ee8fe452b 100644 --- a/javascript/ql/test/library-tests/frameworks/AsyncPackage/AsyncTaintTracking.expected +++ b/javascript/ql/test/library-tests/frameworks/AsyncPackage/AsyncTaintTracking.expected @@ -1,12 +1,24 @@ legacyDataFlowDifference -| each.js:11:9:11:16 | source() | each.js:13:12:13:15 | item | only flow with OLD data flow library | -| map.js:10:13:10:20 | source() | map.js:12:14:12:17 | item | only flow with OLD data flow library | -| map.js:26:13:26:20 | source() | map.js:28:27:28:32 | result | only flow with OLD data flow library | -| sortBy.js:10:22:10:29 | source() | sortBy.js:12:27:12:32 | result | only flow with OLD data flow library | +| each.js:11:9:11:16 | source() | each.js:13:12:13:15 | item | only flow with NEW data flow library | +| map.js:14:13:14:20 | source() | map.js:16:14:16:17 | item | only flow with NEW data flow library | +| map.js:30:13:30:20 | source() | map.js:32:27:32:32 | result | only flow with NEW data flow library | +| map.js:40:13:40:20 | source() | map.js:11:10:11:10 | x | only flow with NEW data flow library | +| map.js:42:12:42:19 | source() | map.js:11:10:11:10 | x | only flow with NEW data flow library | +| map.js:44:16:44:23 | source() | map.js:11:10:11:10 | x | only flow with NEW data flow library | +| map.js:46:18:46:25 | source() | map.js:11:10:11:10 | x | only flow with NEW data flow library | +| sortBy.js:10:22:10:29 | source() | sortBy.js:12:27:12:32 | result | only flow with NEW data flow library | #select -| map.js:20:19:20:26 | source() | map.js:23:27:23:32 | result | -| waterfall.js:8:30:8:37 | source() | waterfall.js:11:12:11:16 | taint | -| waterfall.js:8:30:8:37 | source() | waterfall.js:20:10:20:14 | taint | -| waterfall.js:28:18:28:25 | source() | waterfall.js:39:10:39:12 | err | -| waterfall.js:46:22:46:29 | source() | waterfall.js:49:12:49:16 | taint | -| waterfall.js:46:22:46:29 | source() | waterfall.js:55:10:55:14 | taint | +| each.js:11:9:11:16 | source() | each.js:13:12:13:15 | item | +| map.js:14:13:14:20 | source() | map.js:16:14:16:17 | item | +| map.js:24:19:24:26 | source() | map.js:27:27:27:32 | result | +| map.js:30:13:30:20 | source() | map.js:32:27:32:32 | result | +| map.js:40:13:40:20 | source() | map.js:11:10:11:10 | x | +| map.js:42:12:42:19 | source() | map.js:11:10:11:10 | x | +| map.js:44:16:44:23 | source() | map.js:11:10:11:10 | x | +| map.js:46:18:46:25 | source() | map.js:11:10:11:10 | x | +| sortBy.js:10:22:10:29 | source() | sortBy.js:12:27:12:32 | result | +| waterfall.js:16:30:16:37 | source() | waterfall.js:19:12:19:16 | taint | +| waterfall.js:16:30:16:37 | source() | waterfall.js:28:10:28:14 | taint | +| waterfall.js:36:18:36:25 | source() | waterfall.js:47:10:47:12 | err | +| waterfall.js:54:22:54:29 | source() | waterfall.js:57:12:57:16 | taint | +| waterfall.js:54:22:54:29 | source() | waterfall.js:63:10:63:14 | taint | diff --git a/javascript/ql/test/library-tests/frameworks/AsyncPackage/map.js b/javascript/ql/test/library-tests/frameworks/AsyncPackage/map.js index ed7e64b01fa..b1e9ecc883b 100644 --- a/javascript/ql/test/library-tests/frameworks/AsyncPackage/map.js +++ b/javascript/ql/test/library-tests/frameworks/AsyncPackage/map.js @@ -7,6 +7,10 @@ function sink(x) { console.log(x) } +function call_sink(x) { + sink(x) +} + async_.map([source()], (item, cb) => { sink(item), // NOT OK @@ -32,3 +36,12 @@ async_.map(['safe'], (item, cb) => cb(null, item), (err, result) => sink(result) // OK ); + +async_.map([source()], call_sink) // NOT OK + +async_.map(source().prop, call_sink) // NOT OK + +async_.map({a: source()}, call_sink) // NOT OK + +async_.mapLimit([source()], 1, call_sink) // NOT OK + diff --git a/javascript/ql/test/library-tests/frameworks/AsyncPackage/waterfall.js b/javascript/ql/test/library-tests/frameworks/AsyncPackage/waterfall.js index 439ac48674a..8554d048d98 100644 --- a/javascript/ql/test/library-tests/frameworks/AsyncPackage/waterfall.js +++ b/javascript/ql/test/library-tests/frameworks/AsyncPackage/waterfall.js @@ -1,7 +1,15 @@ let async_ = require('async'); let waterfall = require('a-sync-waterfall'); -var source, sink, somethingWrong; +function source() { + return 'TAINT' +} + +function sink(x) { + console.log(x) +} + +var somethingWrong; async_.waterfall([ function(callback) { diff --git a/javascript/ql/test/query-tests/Security/CWE-078/CommandInjection/CommandInjection.expected b/javascript/ql/test/query-tests/Security/CWE-078/CommandInjection/CommandInjection.expected index dc9c65822ba..f1d547bdfb1 100644 --- a/javascript/ql/test/query-tests/Security/CWE-078/CommandInjection/CommandInjection.expected +++ b/javascript/ql/test/query-tests/Security/CWE-078/CommandInjection/CommandInjection.expected @@ -82,6 +82,33 @@ | other.js:28:27:28:29 | cmd | other.js:5:25:5:31 | req.url | other.js:28:27:28:29 | cmd | This command line depends on a $@. | other.js:5:25:5:31 | req.url | user-provided value | | other.js:30:33:30:35 | cmd | other.js:5:25:5:31 | req.url | other.js:30:33:30:35 | cmd | This command line depends on a $@. | other.js:5:25:5:31 | req.url | user-provided value | | other.js:34:44:34:46 | cmd | other.js:5:25:5:31 | req.url | other.js:34:44:34:46 | cmd | This command line depends on a $@. | other.js:5:25:5:31 | req.url | user-provided value | +| promisification.js:9:13:9:21 | code.code | promisification.js:15:18:15:25 | req.body | promisification.js:9:13:9:21 | code.code | This command line depends on a $@. | promisification.js:15:18:15:25 | req.body | user-provided value | +| promisification.js:24:22:24:25 | code | promisification.js:21:18:21:25 | req.body | promisification.js:24:22:24:25 | code | This command line depends on a $@. | promisification.js:21:18:21:25 | req.body | user-provided value | +| promisification.js:31:24:31:27 | code | promisification.js:30:18:30:25 | req.body | promisification.js:31:24:31:27 | code | This command line depends on a $@. | promisification.js:30:18:30:25 | req.body | user-provided value | +| promisification.js:40:21:40:24 | code | promisification.js:37:18:37:25 | req.body | promisification.js:40:21:40:24 | code | This command line depends on a $@. | promisification.js:37:18:37:25 | req.body | user-provided value | +| promisification.js:43:24:43:27 | code | promisification.js:37:18:37:25 | req.body | promisification.js:43:24:43:27 | code | This command line depends on a $@. | promisification.js:37:18:37:25 | req.body | user-provided value | +| promisification.js:52:21:52:24 | code | promisification.js:49:18:49:25 | req.body | promisification.js:52:21:52:24 | code | This command line depends on a $@. | promisification.js:49:18:49:25 | req.body | user-provided value | +| promisification.js:55:15:55:18 | code | promisification.js:49:18:49:25 | req.body | promisification.js:55:15:55:18 | code | This command line depends on a $@. | promisification.js:49:18:49:25 | req.body | user-provided value | +| promisification.js:65:21:65:23 | cmd | promisification.js:61:15:61:22 | req.body | promisification.js:65:21:65:23 | cmd | This command line depends on a $@. | promisification.js:61:15:61:22 | req.body | user-provided value | +| promisification.js:69:20:69:22 | cmd | promisification.js:61:15:61:22 | req.body | promisification.js:69:20:69:22 | cmd | This command line depends on a $@. | promisification.js:61:15:61:22 | req.body | user-provided value | +| promisification.js:74:26:74:28 | cmd | promisification.js:61:15:61:22 | req.body | promisification.js:74:26:74:28 | cmd | This command line depends on a $@. | promisification.js:61:15:61:22 | req.body | user-provided value | +| promisification.js:77:24:77:26 | cmd | promisification.js:61:15:61:22 | req.body | promisification.js:77:24:77:26 | cmd | This command line depends on a $@. | promisification.js:61:15:61:22 | req.body | user-provided value | +| promisification.js:78:28:78:30 | cmd | promisification.js:61:15:61:22 | req.body | promisification.js:78:28:78:30 | cmd | This command line depends on a $@. | promisification.js:61:15:61:22 | req.body | user-provided value | +| promisification.js:79:25:79:27 | cmd | promisification.js:61:15:61:22 | req.body | promisification.js:79:25:79:27 | cmd | This command line depends on a $@. | promisification.js:61:15:61:22 | req.body | user-provided value | +| promisification.js:83:36:83:39 | code | promisification.js:61:15:61:22 | req.body | promisification.js:83:36:83:39 | code | This command line depends on a $@. | promisification.js:61:15:61:22 | req.body | user-provided value | +| promisification.js:100:23:100:26 | code | promisification.js:99:18:99:25 | req.body | promisification.js:100:23:100:26 | code | This command line depends on a $@. | promisification.js:99:18:99:25 | req.body | user-provided value | +| promisification.js:101:27:101:30 | code | promisification.js:99:18:99:25 | req.body | promisification.js:101:27:101:30 | code | This command line depends on a $@. | promisification.js:99:18:99:25 | req.body | user-provided value | +| promisification.js:102:27:102:30 | code | promisification.js:99:18:99:25 | req.body | promisification.js:102:27:102:30 | code | This command line depends on a $@. | promisification.js:99:18:99:25 | req.body | user-provided value | +| promisification.js:106:24:106:27 | code | promisification.js:99:18:99:25 | req.body | promisification.js:106:24:106:27 | code | This command line depends on a $@. | promisification.js:99:18:99:25 | req.body | user-provided value | +| promisification.js:109:24:109:27 | code | promisification.js:99:18:99:25 | req.body | promisification.js:109:24:109:27 | code | This command line depends on a $@. | promisification.js:99:18:99:25 | req.body | user-provided value | +| promisification.js:124:17:124:19 | cmd | promisification.js:114:18:114:25 | req.body | promisification.js:124:17:124:19 | cmd | This command line depends on a $@. | promisification.js:114:18:114:25 | req.body | user-provided value | +| promisification.js:133:21:133:24 | code | promisification.js:130:18:130:25 | req.body | promisification.js:133:21:133:24 | code | This command line depends on a $@. | promisification.js:130:18:130:25 | req.body | user-provided value | +| promisification.js:136:15:136:18 | code | promisification.js:130:18:130:25 | req.body | promisification.js:136:15:136:18 | code | This command line depends on a $@. | promisification.js:130:18:130:25 | req.body | user-provided value | +| promisification.js:144:21:144:24 | code | promisification.js:141:18:141:25 | req.body | promisification.js:144:21:144:24 | code | This command line depends on a $@. | promisification.js:141:18:141:25 | req.body | user-provided value | +| promisification.js:147:15:147:18 | code | promisification.js:141:18:141:25 | req.body | promisification.js:147:15:147:18 | code | This command line depends on a $@. | promisification.js:141:18:141:25 | req.body | user-provided value | +| promisification.js:150:24:150:27 | code | promisification.js:141:18:141:25 | req.body | promisification.js:150:24:150:27 | code | This command line depends on a $@. | promisification.js:141:18:141:25 | req.body | user-provided value | +| promisification.js:151:28:151:31 | code | promisification.js:141:18:141:25 | req.body | promisification.js:151:28:151:31 | code | This command line depends on a $@. | promisification.js:141:18:141:25 | req.body | user-provided value | +| promisification.js:152:25:152:28 | code | promisification.js:141:18:141:25 | req.body | promisification.js:152:25:152:28 | code | This command line depends on a $@. | promisification.js:141:18:141:25 | req.body | user-provided value | | third-party-command-injection.js:6:21:6:27 | command | third-party-command-injection.js:5:20:5:26 | command | third-party-command-injection.js:6:21:6:27 | command | This command line depends on a $@. | third-party-command-injection.js:5:20:5:26 | command | user-provided value | edges | actions.js:8:9:8:13 | title | actions.js:9:16:9:20 | title | provenance | | @@ -259,6 +286,59 @@ edges | other.js:5:9:5:11 | cmd | other.js:34:44:34:46 | cmd | provenance | | | other.js:5:15:5:38 | url.par ... , true) | other.js:5:9:5:11 | cmd | provenance | | | other.js:5:25:5:31 | req.url | other.js:5:15:5:38 | url.par ... , true) | provenance | | +| promisification.js:8:21:8:24 | code | promisification.js:9:13:9:16 | code | provenance | | +| promisification.js:9:13:9:16 | code | promisification.js:9:13:9:21 | code.code | provenance | | +| promisification.js:15:11:15:14 | code | promisification.js:16:15:16:18 | code | provenance | | +| promisification.js:15:18:15:25 | req.body | promisification.js:15:11:15:14 | code | provenance | | +| promisification.js:16:15:16:18 | code | promisification.js:8:21:8:24 | code | provenance | | +| promisification.js:21:11:21:14 | code | promisification.js:24:22:24:25 | code | provenance | | +| promisification.js:21:18:21:25 | req.body | promisification.js:21:11:21:14 | code | provenance | | +| promisification.js:30:11:30:14 | code | promisification.js:31:24:31:27 | code | provenance | | +| promisification.js:30:18:30:25 | req.body | promisification.js:30:11:30:14 | code | provenance | | +| promisification.js:37:11:37:14 | code | promisification.js:40:21:40:24 | code | provenance | | +| promisification.js:37:11:37:14 | code | promisification.js:43:24:43:27 | code | provenance | | +| promisification.js:37:18:37:25 | req.body | promisification.js:37:11:37:14 | code | provenance | | +| promisification.js:49:11:49:14 | code | promisification.js:52:21:52:24 | code | provenance | | +| promisification.js:49:11:49:14 | code | promisification.js:55:15:55:18 | code | provenance | | +| promisification.js:49:18:49:25 | req.body | promisification.js:49:11:49:14 | code | provenance | | +| promisification.js:61:9:61:11 | cmd | promisification.js:65:21:65:23 | cmd | provenance | | +| promisification.js:61:9:61:11 | cmd | promisification.js:69:20:69:22 | cmd | provenance | | +| promisification.js:61:9:61:11 | cmd | promisification.js:74:26:74:28 | cmd | provenance | | +| promisification.js:61:9:61:11 | cmd | promisification.js:77:24:77:26 | cmd | provenance | | +| promisification.js:61:9:61:11 | cmd | promisification.js:78:28:78:30 | cmd | provenance | | +| promisification.js:61:9:61:11 | cmd | promisification.js:79:25:79:27 | cmd | provenance | | +| promisification.js:61:9:61:11 | cmd | promisification.js:89:12:89:14 | cmd | provenance | | +| promisification.js:61:15:61:22 | req.body | promisification.js:61:9:61:11 | cmd | provenance | | +| promisification.js:81:34:81:37 | code | promisification.js:83:36:83:39 | code | provenance | | +| promisification.js:89:12:89:14 | cmd | promisification.js:81:34:81:37 | code | provenance | | +| promisification.js:99:11:99:14 | code | promisification.js:100:23:100:26 | code | provenance | | +| promisification.js:99:11:99:14 | code | promisification.js:101:27:101:30 | code | provenance | | +| promisification.js:99:11:99:14 | code | promisification.js:102:27:102:30 | code | provenance | | +| promisification.js:99:11:99:14 | code | promisification.js:106:24:106:27 | code | provenance | | +| promisification.js:99:11:99:14 | code | promisification.js:109:24:109:27 | code | provenance | | +| promisification.js:99:18:99:25 | req.body | promisification.js:99:11:99:14 | code | provenance | | +| promisification.js:114:11:114:14 | code | promisification.js:122:42:122:45 | code | provenance | | +| promisification.js:114:18:114:25 | req.body | promisification.js:114:11:114:14 | code | provenance | | +| promisification.js:116:32:116:34 | cmd | promisification.js:117:16:119:10 | new Pro ... }) [PromiseValue] | provenance | | +| promisification.js:116:32:116:34 | cmd | promisification.js:118:21:118:23 | cmd | provenance | | +| promisification.js:118:13:118:19 | [post update] resolve [resolve-value] | promisification.js:117:29:117:35 | resolve [Return] [resolve-value] | provenance | | +| promisification.js:118:21:118:23 | cmd | promisification.js:118:13:118:19 | [post update] resolve [resolve-value] | provenance | | +| promisification.js:122:11:122:20 | cmdPromise [PromiseValue] | promisification.js:123:17:123:26 | cmdPromise [PromiseValue] | provenance | | +| promisification.js:122:24:122:46 | createE ... e(code) [PromiseValue] | promisification.js:122:11:122:20 | cmdPromise [PromiseValue] | provenance | | +| promisification.js:122:42:122:45 | code | promisification.js:116:32:116:34 | cmd | provenance | | +| promisification.js:122:42:122:45 | code | promisification.js:122:24:122:46 | createE ... e(code) [PromiseValue] | provenance | | +| promisification.js:123:5:123:27 | maybe(n ... romise) [PromiseValue] | promisification.js:123:34:123:36 | cmd | provenance | | +| promisification.js:123:17:123:26 | cmdPromise [PromiseValue] | promisification.js:123:5:123:27 | maybe(n ... romise) [PromiseValue] | provenance | | +| promisification.js:123:34:123:36 | cmd | promisification.js:124:17:124:19 | cmd | provenance | | +| promisification.js:130:11:130:14 | code | promisification.js:133:21:133:24 | code | provenance | | +| promisification.js:130:11:130:14 | code | promisification.js:136:15:136:18 | code | provenance | | +| promisification.js:130:18:130:25 | req.body | promisification.js:130:11:130:14 | code | provenance | | +| promisification.js:141:11:141:14 | code | promisification.js:144:21:144:24 | code | provenance | | +| promisification.js:141:11:141:14 | code | promisification.js:147:15:147:18 | code | provenance | | +| promisification.js:141:11:141:14 | code | promisification.js:150:24:150:27 | code | provenance | | +| promisification.js:141:11:141:14 | code | promisification.js:151:28:151:31 | code | provenance | | +| promisification.js:141:11:141:14 | code | promisification.js:152:25:152:28 | code | provenance | | +| promisification.js:141:18:141:25 | req.body | promisification.js:141:11:141:14 | code | provenance | | | third-party-command-injection.js:5:20:5:26 | command | third-party-command-injection.js:6:21:6:27 | command | provenance | | nodes | actions.js:8:9:8:13 | title | semmle.label | title | @@ -446,6 +526,71 @@ nodes | other.js:28:27:28:29 | cmd | semmle.label | cmd | | other.js:30:33:30:35 | cmd | semmle.label | cmd | | other.js:34:44:34:46 | cmd | semmle.label | cmd | +| promisification.js:8:21:8:24 | code | semmle.label | code | +| promisification.js:9:13:9:16 | code | semmle.label | code | +| promisification.js:9:13:9:21 | code.code | semmle.label | code.code | +| promisification.js:15:11:15:14 | code | semmle.label | code | +| promisification.js:15:18:15:25 | req.body | semmle.label | req.body | +| promisification.js:16:15:16:18 | code | semmle.label | code | +| promisification.js:21:11:21:14 | code | semmle.label | code | +| promisification.js:21:18:21:25 | req.body | semmle.label | req.body | +| promisification.js:24:22:24:25 | code | semmle.label | code | +| promisification.js:30:11:30:14 | code | semmle.label | code | +| promisification.js:30:18:30:25 | req.body | semmle.label | req.body | +| promisification.js:31:24:31:27 | code | semmle.label | code | +| promisification.js:37:11:37:14 | code | semmle.label | code | +| promisification.js:37:18:37:25 | req.body | semmle.label | req.body | +| promisification.js:40:21:40:24 | code | semmle.label | code | +| promisification.js:43:24:43:27 | code | semmle.label | code | +| promisification.js:49:11:49:14 | code | semmle.label | code | +| promisification.js:49:18:49:25 | req.body | semmle.label | req.body | +| promisification.js:52:21:52:24 | code | semmle.label | code | +| promisification.js:55:15:55:18 | code | semmle.label | code | +| promisification.js:61:9:61:11 | cmd | semmle.label | cmd | +| promisification.js:61:15:61:22 | req.body | semmle.label | req.body | +| promisification.js:65:21:65:23 | cmd | semmle.label | cmd | +| promisification.js:69:20:69:22 | cmd | semmle.label | cmd | +| promisification.js:74:26:74:28 | cmd | semmle.label | cmd | +| promisification.js:77:24:77:26 | cmd | semmle.label | cmd | +| promisification.js:78:28:78:30 | cmd | semmle.label | cmd | +| promisification.js:79:25:79:27 | cmd | semmle.label | cmd | +| promisification.js:81:34:81:37 | code | semmle.label | code | +| promisification.js:83:36:83:39 | code | semmle.label | code | +| promisification.js:89:12:89:14 | cmd | semmle.label | cmd | +| promisification.js:99:11:99:14 | code | semmle.label | code | +| promisification.js:99:18:99:25 | req.body | semmle.label | req.body | +| promisification.js:100:23:100:26 | code | semmle.label | code | +| promisification.js:101:27:101:30 | code | semmle.label | code | +| promisification.js:102:27:102:30 | code | semmle.label | code | +| promisification.js:106:24:106:27 | code | semmle.label | code | +| promisification.js:109:24:109:27 | code | semmle.label | code | +| promisification.js:114:11:114:14 | code | semmle.label | code | +| promisification.js:114:18:114:25 | req.body | semmle.label | req.body | +| promisification.js:116:32:116:34 | cmd | semmle.label | cmd | +| promisification.js:117:16:119:10 | new Pro ... }) [PromiseValue] | semmle.label | new Pro ... }) [PromiseValue] | +| promisification.js:117:29:117:35 | resolve [Return] [resolve-value] | semmle.label | resolve [Return] [resolve-value] | +| promisification.js:118:13:118:19 | [post update] resolve [resolve-value] | semmle.label | [post update] resolve [resolve-value] | +| promisification.js:118:21:118:23 | cmd | semmle.label | cmd | +| promisification.js:122:11:122:20 | cmdPromise [PromiseValue] | semmle.label | cmdPromise [PromiseValue] | +| promisification.js:122:24:122:46 | createE ... e(code) [PromiseValue] | semmle.label | createE ... e(code) [PromiseValue] | +| promisification.js:122:42:122:45 | code | semmle.label | code | +| promisification.js:123:5:123:27 | maybe(n ... romise) [PromiseValue] | semmle.label | maybe(n ... romise) [PromiseValue] | +| promisification.js:123:17:123:26 | cmdPromise [PromiseValue] | semmle.label | cmdPromise [PromiseValue] | +| promisification.js:123:34:123:36 | cmd | semmle.label | cmd | +| promisification.js:124:17:124:19 | cmd | semmle.label | cmd | +| promisification.js:130:11:130:14 | code | semmle.label | code | +| promisification.js:130:18:130:25 | req.body | semmle.label | req.body | +| promisification.js:133:21:133:24 | code | semmle.label | code | +| promisification.js:136:15:136:18 | code | semmle.label | code | +| promisification.js:141:11:141:14 | code | semmle.label | code | +| promisification.js:141:18:141:25 | req.body | semmle.label | req.body | +| promisification.js:144:21:144:24 | code | semmle.label | code | +| promisification.js:147:15:147:18 | code | semmle.label | code | +| promisification.js:150:24:150:27 | code | semmle.label | code | +| promisification.js:151:28:151:31 | code | semmle.label | code | +| promisification.js:152:25:152:28 | code | semmle.label | code | | third-party-command-injection.js:5:20:5:26 | command | semmle.label | command | | third-party-command-injection.js:6:21:6:27 | command | semmle.label | command | subpaths +| promisification.js:116:32:116:34 | cmd | promisification.js:118:21:118:23 | cmd | promisification.js:117:29:117:35 | resolve [Return] [resolve-value] | promisification.js:117:16:119:10 | new Pro ... }) [PromiseValue] | +| promisification.js:122:42:122:45 | code | promisification.js:116:32:116:34 | cmd | promisification.js:117:16:119:10 | new Pro ... }) [PromiseValue] | promisification.js:122:24:122:46 | createE ... e(code) [PromiseValue] | diff --git a/javascript/ql/test/query-tests/Security/CWE-078/CommandInjection/promisification.js b/javascript/ql/test/query-tests/Security/CWE-078/CommandInjection/promisification.js new file mode 100644 index 00000000000..b062c8b7ee2 --- /dev/null +++ b/javascript/ql/test/query-tests/Security/CWE-078/CommandInjection/promisification.js @@ -0,0 +1,153 @@ +const express = require('express'); +const bodyParser = require('body-parser'); +const cp = require('child_process'); + +const app = express(); +app.use(bodyParser.json()); + +function legacyEval(code) { + cp.exec(code.code); // $ Alert +} + +app.post('/eval', async (req, res) => { + const { promisify } = require('util'); + const evalAsync = promisify(legacyEval); + const code = req.body; // $ Source + evalAsync(code); +}); + +app.post('/eval', async (req, res) => { + const directPromisify = require('util.promisify'); + const code = req.body; // $ Source + + const promisifiedExec3 = directPromisify(cp.exec); + promisifiedExec3(code); // $ Alert +}); + +app.post('/eval', async (req, res) => { + const promisify2 = require('util.promisify-all'); + const promisifiedCp = promisify2(cp); + const code = req.body; // $ Source + promisifiedCp.exec(code); // $ Alert +}); + + +app.post('/eval', async (req, res) => { + var garPromisify = require("@gar/promisify"); + const code = req.body; // $ Source + + const promisifiedExec = garPromisify(cp.exec); + promisifiedExec(code); // $ Alert + + const promisifiedCp = garPromisify(cp); + promisifiedCp.exec(code); // $ Alert +}); + +app.post('/eval', async (req, res) => { + require('util.promisify/shim')(); + const util = require('util'); + const code = req.body; // $ Source + + const promisifiedExec = util.promisify(cp.exec); + promisifiedExec(code); // $ Alert + + const execAsync = util.promisify(cp.exec.bind(cp)); + execAsync(code); // $ Alert +}); + + +app.post('/eval', async (req, res) => { + const es6Promisify = require("es6-promisify"); + let cmd = req.body; // $ Source + + // Test basic promisification + const promisifiedExec = es6Promisify(cp.exec); + promisifiedExec(cmd); // $ Alert + + // Test with method binding + const execBoundAsync = es6Promisify(cp.exec.bind(cp)); + execBoundAsync(cmd); // $ Alert + + const promisifiedExecMulti = es6Promisify(cp.exec, { + multiArgs: true + }); + promisifiedExecMulti(cmd); // $ Alert + + const promisifiedCp = es6Promisify.promisifyAll(cp); + promisifiedCp.exec(cmd); // $ Alert + promisifiedCp.execFile(cmd); // $ Alert + promisifiedCp.spawn(cmd); // $ Alert + + const lambda = es6Promisify((code, callback) => { + try { + const result = cp.exec(code); // $ Alert + callback(null, result); + } catch (err) { + callback(err); + } + }); + lambda(cmd); +}); + + +app.post('/eval', async (req, res) => { + var thenifyAll = require('thenify-all'); + var cpThenifyAll = thenifyAll(require('child_process'), {}, [ + 'exec', + 'execSync', + ]); + const code = req.body; // $ Source + cpThenifyAll.exec(code); // $ Alert + cpThenifyAll.execSync(code); // $ Alert + cpThenifyAll.execFile(code); // $ SPURIOUS: Alert - not promisified, as it is not listed in `thenifyAll`, but it should fine to flag it + + + var cpThenifyAll1 = thenifyAll.withCallback(require('child_process'), {}, ['exec']); + cpThenifyAll1.exec(code, function (err, string) {}); // $ Alert + + var cpThenifyAll2 = thenifyAll(require('child_process')); + cpThenifyAll2.exec(code); // $ Alert +}); + +app.post('/eval', async (req, res) => { + const maybe = require('call-me-maybe'); + const code = req.body; // $ Source + + function createExecPromise(cmd) { + return new Promise((resolve) => { + resolve(cmd); + }); + } + + const cmdPromise = createExecPromise(code); + maybe(null, cmdPromise).then(cmd => { + cp.exec(cmd); // $ Alert + }); +}); + +app.post('/eval', async (req, res) => { + const utilPromisify = require('util-promisify'); + const code = req.body; // $ Source + + const promisifiedExec = utilPromisify(cp.exec); + promisifiedExec(code); // $ Alert + + const execAsync = utilPromisify(cp.exec.bind(cp)); + execAsync(code); // $ Alert +}); + +app.post('/eval', async (req, res) => { + const {promisify, promisifyAll} = require('@google-cloud/promisify'); + const code = req.body; // $ Source + + const promisifiedExec = promisify(cp.exec); + promisifiedExec(code); // $ Alert + + const execAsync = promisify(cp.exec.bind(cp)); + execAsync(code); // $ Alert + + const promisifiedCp = promisifyAll(cp); + promisifiedCp.exec(code); // $ Alert + promisifiedCp.execFile(code); // $ Alert + promisifiedCp.spawn(code); // $ Alert +}); diff --git a/javascript/ql/test/query-tests/Security/CWE-079/DomBasedXss/XssWithAdditionalSources.expected b/javascript/ql/test/query-tests/Security/CWE-079/DomBasedXss/XssWithAdditionalSources.expected index 4f27cd94835..f8781e6741b 100644 --- a/javascript/ql/test/query-tests/Security/CWE-079/DomBasedXss/XssWithAdditionalSources.expected +++ b/javascript/ql/test/query-tests/Security/CWE-079/DomBasedXss/XssWithAdditionalSources.expected @@ -32,6 +32,82 @@ nodes | angular-tempate-url.js:13:30:13:31 | ev | semmle.label | ev | | angular-tempate-url.js:14:26:14:27 | ev | semmle.label | ev | | angular-tempate-url.js:14:26:14:32 | ev.data | semmle.label | ev.data | +| aws-db.js:15:31:15:37 | results | semmle.label | results | +| aws-db.js:15:31:15:76 | results ... arValue | semmle.label | results ... arValue | +| aws-db.js:20:31:20:38 | response | semmle.label | response | +| aws-db.js:20:31:20:54 | respons ... tring() | semmle.label | respons ... tring() | +| aws-db.js:24:31:24:39 | response2 | semmle.label | response2 | +| aws-db.js:24:31:24:47 | response2.records | semmle.label | response2.records | +| aws-db.js:28:31:28:39 | response3 | semmle.label | response3 | +| aws-db.js:28:31:28:44 | response3.Item | semmle.label | response3.Item | +| aws-db.js:43:31:43:37 | results | semmle.label | results | +| aws-db.js:43:31:43:76 | results ... arValue | semmle.label | results ... arValue | +| aws-db.js:46:35:46:38 | data | semmle.label | data | +| aws-db.js:46:35:46:77 | data.Re ... arValue | semmle.label | data.Re ... arValue | +| aws-db.js:51:31:51:38 | response | semmle.label | response | +| aws-db.js:51:31:51:54 | respons ... tring() | semmle.label | respons ... tring() | +| aws-db.js:54:35:54:38 | data | semmle.label | data | +| aws-db.js:54:35:54:54 | data.Body.toString() | semmle.label | data.Body.toString() | +| aws-db.js:59:31:59:39 | response1 | semmle.label | response1 | +| aws-db.js:59:31:59:47 | response1.records | semmle.label | response1.records | +| aws-db.js:62:35:62:38 | data | semmle.label | data | +| aws-db.js:62:35:62:46 | data.records | semmle.label | data.records | +| aws-db.js:66:31:66:39 | response2 | semmle.label | response2 | +| aws-db.js:66:31:66:53 | respons ... Results | semmle.label | respons ... Results | +| aws-db.js:69:35:69:38 | data | semmle.label | data | +| aws-db.js:69:35:69:52 | data.updateResults | semmle.label | data.updateResults | +| aws-db.js:74:35:74:38 | data | semmle.label | data | +| aws-db.js:74:35:74:43 | data.Item | semmle.label | data.Item | +| aws-db.js:77:35:77:38 | data | semmle.label | data | +| aws-db.js:77:35:77:43 | data.Item | semmle.label | data.Item | +| aws.js:14:31:14:36 | result | semmle.label | result | +| aws.js:14:31:14:44 | result.comment | semmle.label | result.comment | +| aws.js:18:31:18:37 | result2 | semmle.label | result2 | +| aws.js:18:31:18:45 | result2.comment | semmle.label | result2.comment | +| aws.js:22:31:22:37 | result3 | semmle.label | result3 | +| aws.js:22:31:22:45 | result3.comment | semmle.label | result3.comment | +| aws.js:26:31:26:37 | result4 | semmle.label | result4 | +| aws.js:26:31:26:45 | result4.comment | semmle.label | result4.comment | +| aws.js:34:31:34:34 | data | semmle.label | data | +| aws.js:34:31:34:42 | data.comment | semmle.label | data.comment | +| aws.js:37:35:37:38 | data | semmle.label | data | +| aws.js:37:35:37:46 | data.comment | semmle.label | data.comment | +| aws.js:47:31:47:34 | data | semmle.label | data | +| aws.js:47:31:47:42 | data.comment | semmle.label | data.comment | +| aws.js:50:35:50:38 | data | semmle.label | data | +| aws.js:50:35:50:46 | data.comment | semmle.label | data.comment | +| aws.js:59:31:59:34 | data | semmle.label | data | +| aws.js:59:31:59:42 | data.comment | semmle.label | data.comment | +| aws.js:62:35:62:38 | data | semmle.label | data | +| aws.js:62:35:62:46 | data.comment | semmle.label | data.comment | +| aws.js:66:31:66:35 | data2 | semmle.label | data2 | +| aws.js:66:31:66:43 | data2.comment | semmle.label | data2.comment | +| aws.js:69:35:69:38 | data | semmle.label | data | +| aws.js:69:35:69:46 | data.comment | semmle.label | data.comment | +| aws.js:78:31:78:34 | data | semmle.label | data | +| aws.js:78:31:78:42 | data.comment | semmle.label | data.comment | +| aws.js:81:35:81:38 | data | semmle.label | data | +| aws.js:81:35:81:46 | data.comment | semmle.label | data.comment | +| aws.js:85:31:85:35 | data2 | semmle.label | data2 | +| aws.js:85:31:85:43 | data2.comment | semmle.label | data2.comment | +| aws.js:88:35:88:38 | data | semmle.label | data | +| aws.js:88:35:88:46 | data.comment | semmle.label | data.comment | +| aws.js:92:31:92:35 | data3 | semmle.label | data3 | +| aws.js:92:31:92:43 | data3.comment | semmle.label | data3.comment | +| aws.js:95:35:95:38 | data | semmle.label | data | +| aws.js:95:35:95:46 | data.comment | semmle.label | data.comment | +| aws.js:99:31:99:35 | data4 | semmle.label | data4 | +| aws.js:99:31:99:43 | data4.comment | semmle.label | data4.comment | +| aws.js:102:35:102:38 | data | semmle.label | data | +| aws.js:102:35:102:46 | data.comment | semmle.label | data.comment | +| aws.js:106:31:106:35 | data5 | semmle.label | data5 | +| aws.js:106:31:106:43 | data5.comment | semmle.label | data5.comment | +| aws.js:109:35:109:38 | data | semmle.label | data | +| aws.js:109:35:109:46 | data.comment | semmle.label | data.comment | +| aws.js:113:31:113:35 | data6 | semmle.label | data6 | +| aws.js:113:31:113:43 | data6.comment | semmle.label | data6.comment | +| aws.js:116:35:116:38 | data | semmle.label | data | +| aws.js:116:35:116:46 | data.comment | semmle.label | data.comment | | classnames.js:7:31:7:84 | `` | semmle.label | `` | | classnames.js:7:47:7:69 | classNa ... w.name) | semmle.label | classNa ... w.name) | | classnames.js:7:58:7:68 | window.name | semmle.label | window.name | @@ -724,6 +800,44 @@ edges | angular-tempate-url.js:13:30:13:31 | ev | angular-tempate-url.js:14:26:14:27 | ev | provenance | | | angular-tempate-url.js:14:26:14:27 | ev | angular-tempate-url.js:14:26:14:32 | ev.data | provenance | | | angular-tempate-url.js:14:26:14:32 | ev.data | angular-tempate-url.js:9:26:9:45 | Cookie.get("unsafe") | provenance | | +| aws-db.js:15:31:15:37 | results | aws-db.js:15:31:15:76 | results ... arValue | provenance | | +| aws-db.js:20:31:20:38 | response | aws-db.js:20:31:20:54 | respons ... tring() | provenance | | +| aws-db.js:24:31:24:39 | response2 | aws-db.js:24:31:24:47 | response2.records | provenance | | +| aws-db.js:28:31:28:39 | response3 | aws-db.js:28:31:28:44 | response3.Item | provenance | | +| aws-db.js:43:31:43:37 | results | aws-db.js:43:31:43:76 | results ... arValue | provenance | | +| aws-db.js:46:35:46:38 | data | aws-db.js:46:35:46:77 | data.Re ... arValue | provenance | | +| aws-db.js:51:31:51:38 | response | aws-db.js:51:31:51:54 | respons ... tring() | provenance | | +| aws-db.js:54:35:54:38 | data | aws-db.js:54:35:54:54 | data.Body.toString() | provenance | | +| aws-db.js:59:31:59:39 | response1 | aws-db.js:59:31:59:47 | response1.records | provenance | | +| aws-db.js:62:35:62:38 | data | aws-db.js:62:35:62:46 | data.records | provenance | | +| aws-db.js:66:31:66:39 | response2 | aws-db.js:66:31:66:53 | respons ... Results | provenance | | +| aws-db.js:69:35:69:38 | data | aws-db.js:69:35:69:52 | data.updateResults | provenance | | +| aws-db.js:74:35:74:38 | data | aws-db.js:74:35:74:43 | data.Item | provenance | | +| aws-db.js:77:35:77:38 | data | aws-db.js:77:35:77:43 | data.Item | provenance | | +| aws.js:14:31:14:36 | result | aws.js:14:31:14:44 | result.comment | provenance | | +| aws.js:18:31:18:37 | result2 | aws.js:18:31:18:45 | result2.comment | provenance | | +| aws.js:22:31:22:37 | result3 | aws.js:22:31:22:45 | result3.comment | provenance | | +| aws.js:26:31:26:37 | result4 | aws.js:26:31:26:45 | result4.comment | provenance | | +| aws.js:34:31:34:34 | data | aws.js:34:31:34:42 | data.comment | provenance | | +| aws.js:37:35:37:38 | data | aws.js:37:35:37:46 | data.comment | provenance | | +| aws.js:47:31:47:34 | data | aws.js:47:31:47:42 | data.comment | provenance | | +| aws.js:50:35:50:38 | data | aws.js:50:35:50:46 | data.comment | provenance | | +| aws.js:59:31:59:34 | data | aws.js:59:31:59:42 | data.comment | provenance | | +| aws.js:62:35:62:38 | data | aws.js:62:35:62:46 | data.comment | provenance | | +| aws.js:66:31:66:35 | data2 | aws.js:66:31:66:43 | data2.comment | provenance | | +| aws.js:69:35:69:38 | data | aws.js:69:35:69:46 | data.comment | provenance | | +| aws.js:78:31:78:34 | data | aws.js:78:31:78:42 | data.comment | provenance | | +| aws.js:81:35:81:38 | data | aws.js:81:35:81:46 | data.comment | provenance | | +| aws.js:85:31:85:35 | data2 | aws.js:85:31:85:43 | data2.comment | provenance | | +| aws.js:88:35:88:38 | data | aws.js:88:35:88:46 | data.comment | provenance | | +| aws.js:92:31:92:35 | data3 | aws.js:92:31:92:43 | data3.comment | provenance | | +| aws.js:95:35:95:38 | data | aws.js:95:35:95:46 | data.comment | provenance | | +| aws.js:99:31:99:35 | data4 | aws.js:99:31:99:43 | data4.comment | provenance | | +| aws.js:102:35:102:38 | data | aws.js:102:35:102:46 | data.comment | provenance | | +| aws.js:106:31:106:35 | data5 | aws.js:106:31:106:43 | data5.comment | provenance | | +| aws.js:109:35:109:38 | data | aws.js:109:35:109:46 | data.comment | provenance | | +| aws.js:113:31:113:35 | data6 | aws.js:113:31:113:43 | data6.comment | provenance | | +| aws.js:116:35:116:38 | data | aws.js:116:35:116:46 | data.comment | provenance | | | classnames.js:7:47:7:69 | classNa ... w.name) | classnames.js:7:31:7:84 | `` | provenance | | | classnames.js:7:58:7:68 | window.name | classnames.js:7:47:7:69 | classNa ... w.name) | provenance | | | classnames.js:8:47:8:70 | classNa ... w.name) | classnames.js:8:31:8:85 | `` | provenance | | @@ -1319,6 +1433,44 @@ subpaths | various-concat-obfuscations.js:21:17:21:46 | documen ... h.attrs | various-concat-obfuscations.js:17:24:17:28 | attrs | various-concat-obfuscations.js:18:10:18:105 | '
') | various-concat-obfuscations.js:21:4:21:47 | indirec ... .attrs) | | various-concat-obfuscations.js:21:17:21:46 | documen ... h.attrs | various-concat-obfuscations.js:17:24:17:28 | attrs | various-concat-obfuscations.js:18:10:18:105 | '
') [ArrayElement] | various-concat-obfuscations.js:21:4:21:47 | indirec ... .attrs) | #select +| aws-db.js:15:31:15:76 | results ... arValue | aws-db.js:15:31:15:37 | results | aws-db.js:15:31:15:76 | results ... arValue | Cross-site scripting vulnerability due to $@. | aws-db.js:15:31:15:37 | results | user-provided value | +| aws-db.js:20:31:20:54 | respons ... tring() | aws-db.js:20:31:20:38 | response | aws-db.js:20:31:20:54 | respons ... tring() | Cross-site scripting vulnerability due to $@. | aws-db.js:20:31:20:38 | response | user-provided value | +| aws-db.js:24:31:24:47 | response2.records | aws-db.js:24:31:24:39 | response2 | aws-db.js:24:31:24:47 | response2.records | Cross-site scripting vulnerability due to $@. | aws-db.js:24:31:24:39 | response2 | user-provided value | +| aws-db.js:28:31:28:44 | response3.Item | aws-db.js:28:31:28:39 | response3 | aws-db.js:28:31:28:44 | response3.Item | Cross-site scripting vulnerability due to $@. | aws-db.js:28:31:28:39 | response3 | user-provided value | +| aws-db.js:43:31:43:76 | results ... arValue | aws-db.js:43:31:43:37 | results | aws-db.js:43:31:43:76 | results ... arValue | Cross-site scripting vulnerability due to $@. | aws-db.js:43:31:43:37 | results | user-provided value | +| aws-db.js:46:35:46:77 | data.Re ... arValue | aws-db.js:46:35:46:38 | data | aws-db.js:46:35:46:77 | data.Re ... arValue | Cross-site scripting vulnerability due to $@. | aws-db.js:46:35:46:38 | data | user-provided value | +| aws-db.js:51:31:51:54 | respons ... tring() | aws-db.js:51:31:51:38 | response | aws-db.js:51:31:51:54 | respons ... tring() | Cross-site scripting vulnerability due to $@. | aws-db.js:51:31:51:38 | response | user-provided value | +| aws-db.js:54:35:54:54 | data.Body.toString() | aws-db.js:54:35:54:38 | data | aws-db.js:54:35:54:54 | data.Body.toString() | Cross-site scripting vulnerability due to $@. | aws-db.js:54:35:54:38 | data | user-provided value | +| aws-db.js:59:31:59:47 | response1.records | aws-db.js:59:31:59:39 | response1 | aws-db.js:59:31:59:47 | response1.records | Cross-site scripting vulnerability due to $@. | aws-db.js:59:31:59:39 | response1 | user-provided value | +| aws-db.js:62:35:62:46 | data.records | aws-db.js:62:35:62:38 | data | aws-db.js:62:35:62:46 | data.records | Cross-site scripting vulnerability due to $@. | aws-db.js:62:35:62:38 | data | user-provided value | +| aws-db.js:66:31:66:53 | respons ... Results | aws-db.js:66:31:66:39 | response2 | aws-db.js:66:31:66:53 | respons ... Results | Cross-site scripting vulnerability due to $@. | aws-db.js:66:31:66:39 | response2 | user-provided value | +| aws-db.js:69:35:69:52 | data.updateResults | aws-db.js:69:35:69:38 | data | aws-db.js:69:35:69:52 | data.updateResults | Cross-site scripting vulnerability due to $@. | aws-db.js:69:35:69:38 | data | user-provided value | +| aws-db.js:74:35:74:43 | data.Item | aws-db.js:74:35:74:38 | data | aws-db.js:74:35:74:43 | data.Item | Cross-site scripting vulnerability due to $@. | aws-db.js:74:35:74:38 | data | user-provided value | +| aws-db.js:77:35:77:43 | data.Item | aws-db.js:77:35:77:38 | data | aws-db.js:77:35:77:43 | data.Item | Cross-site scripting vulnerability due to $@. | aws-db.js:77:35:77:38 | data | user-provided value | +| aws.js:14:31:14:44 | result.comment | aws.js:14:31:14:36 | result | aws.js:14:31:14:44 | result.comment | Cross-site scripting vulnerability due to $@. | aws.js:14:31:14:36 | result | user-provided value | +| aws.js:18:31:18:45 | result2.comment | aws.js:18:31:18:37 | result2 | aws.js:18:31:18:45 | result2.comment | Cross-site scripting vulnerability due to $@. | aws.js:18:31:18:37 | result2 | user-provided value | +| aws.js:22:31:22:45 | result3.comment | aws.js:22:31:22:37 | result3 | aws.js:22:31:22:45 | result3.comment | Cross-site scripting vulnerability due to $@. | aws.js:22:31:22:37 | result3 | user-provided value | +| aws.js:26:31:26:45 | result4.comment | aws.js:26:31:26:37 | result4 | aws.js:26:31:26:45 | result4.comment | Cross-site scripting vulnerability due to $@. | aws.js:26:31:26:37 | result4 | user-provided value | +| aws.js:34:31:34:42 | data.comment | aws.js:34:31:34:34 | data | aws.js:34:31:34:42 | data.comment | Cross-site scripting vulnerability due to $@. | aws.js:34:31:34:34 | data | user-provided value | +| aws.js:37:35:37:46 | data.comment | aws.js:37:35:37:38 | data | aws.js:37:35:37:46 | data.comment | Cross-site scripting vulnerability due to $@. | aws.js:37:35:37:38 | data | user-provided value | +| aws.js:47:31:47:42 | data.comment | aws.js:47:31:47:34 | data | aws.js:47:31:47:42 | data.comment | Cross-site scripting vulnerability due to $@. | aws.js:47:31:47:34 | data | user-provided value | +| aws.js:50:35:50:46 | data.comment | aws.js:50:35:50:38 | data | aws.js:50:35:50:46 | data.comment | Cross-site scripting vulnerability due to $@. | aws.js:50:35:50:38 | data | user-provided value | +| aws.js:59:31:59:42 | data.comment | aws.js:59:31:59:34 | data | aws.js:59:31:59:42 | data.comment | Cross-site scripting vulnerability due to $@. | aws.js:59:31:59:34 | data | user-provided value | +| aws.js:62:35:62:46 | data.comment | aws.js:62:35:62:38 | data | aws.js:62:35:62:46 | data.comment | Cross-site scripting vulnerability due to $@. | aws.js:62:35:62:38 | data | user-provided value | +| aws.js:66:31:66:43 | data2.comment | aws.js:66:31:66:35 | data2 | aws.js:66:31:66:43 | data2.comment | Cross-site scripting vulnerability due to $@. | aws.js:66:31:66:35 | data2 | user-provided value | +| aws.js:69:35:69:46 | data.comment | aws.js:69:35:69:38 | data | aws.js:69:35:69:46 | data.comment | Cross-site scripting vulnerability due to $@. | aws.js:69:35:69:38 | data | user-provided value | +| aws.js:78:31:78:42 | data.comment | aws.js:78:31:78:34 | data | aws.js:78:31:78:42 | data.comment | Cross-site scripting vulnerability due to $@. | aws.js:78:31:78:34 | data | user-provided value | +| aws.js:81:35:81:46 | data.comment | aws.js:81:35:81:38 | data | aws.js:81:35:81:46 | data.comment | Cross-site scripting vulnerability due to $@. | aws.js:81:35:81:38 | data | user-provided value | +| aws.js:85:31:85:43 | data2.comment | aws.js:85:31:85:35 | data2 | aws.js:85:31:85:43 | data2.comment | Cross-site scripting vulnerability due to $@. | aws.js:85:31:85:35 | data2 | user-provided value | +| aws.js:88:35:88:46 | data.comment | aws.js:88:35:88:38 | data | aws.js:88:35:88:46 | data.comment | Cross-site scripting vulnerability due to $@. | aws.js:88:35:88:38 | data | user-provided value | +| aws.js:92:31:92:43 | data3.comment | aws.js:92:31:92:35 | data3 | aws.js:92:31:92:43 | data3.comment | Cross-site scripting vulnerability due to $@. | aws.js:92:31:92:35 | data3 | user-provided value | +| aws.js:95:35:95:46 | data.comment | aws.js:95:35:95:38 | data | aws.js:95:35:95:46 | data.comment | Cross-site scripting vulnerability due to $@. | aws.js:95:35:95:38 | data | user-provided value | +| aws.js:99:31:99:43 | data4.comment | aws.js:99:31:99:35 | data4 | aws.js:99:31:99:43 | data4.comment | Cross-site scripting vulnerability due to $@. | aws.js:99:31:99:35 | data4 | user-provided value | +| aws.js:102:35:102:46 | data.comment | aws.js:102:35:102:38 | data | aws.js:102:35:102:46 | data.comment | Cross-site scripting vulnerability due to $@. | aws.js:102:35:102:38 | data | user-provided value | +| aws.js:106:31:106:43 | data5.comment | aws.js:106:31:106:35 | data5 | aws.js:106:31:106:43 | data5.comment | Cross-site scripting vulnerability due to $@. | aws.js:106:31:106:35 | data5 | user-provided value | +| aws.js:109:35:109:46 | data.comment | aws.js:109:35:109:38 | data | aws.js:109:35:109:46 | data.comment | Cross-site scripting vulnerability due to $@. | aws.js:109:35:109:38 | data | user-provided value | +| aws.js:113:31:113:43 | data6.comment | aws.js:113:31:113:35 | data6 | aws.js:113:31:113:43 | data6.comment | Cross-site scripting vulnerability due to $@. | aws.js:113:31:113:35 | data6 | user-provided value | +| aws.js:116:35:116:46 | data.comment | aws.js:116:35:116:38 | data | aws.js:116:35:116:46 | data.comment | Cross-site scripting vulnerability due to $@. | aws.js:116:35:116:38 | data | user-provided value | | hana.js:11:37:11:51 | rows[0].comment | hana.js:11:37:11:40 | rows | hana.js:11:37:11:51 | rows[0].comment | Cross-site scripting vulnerability due to $@. | hana.js:11:37:11:40 | rows | user-provided value | | hana.js:16:37:16:51 | rows[0].comment | hana.js:16:37:16:40 | rows | hana.js:16:37:16:51 | rows[0].comment | Cross-site scripting vulnerability due to $@. | hana.js:16:37:16:40 | rows | user-provided value | | hana.js:19:37:19:51 | rows[0].comment | hana.js:19:37:19:40 | rows | hana.js:19:37:19:51 | rows[0].comment | Cross-site scripting vulnerability due to $@. | hana.js:19:37:19:40 | rows | user-provided value | diff --git a/javascript/ql/test/query-tests/Security/CWE-079/DomBasedXss/aws-db.js b/javascript/ql/test/query-tests/Security/CWE-079/DomBasedXss/aws-db.js new file mode 100644 index 00000000000..0f345f7172e --- /dev/null +++ b/javascript/ql/test/query-tests/Security/CWE-079/DomBasedXss/aws-db.js @@ -0,0 +1,79 @@ +const { AthenaClient, GetQueryResultsCommand } = require('@aws-sdk/client-athena'); +const { S3Client, GetObjectCommand } = require("@aws-sdk/client-s3"); +const { RDSDataClient, ExecuteStatementCommand } = require("@aws-sdk/client-rds-data"); +const { DynamoDBClient, GetItemCommand } = require("@aws-sdk/client-dynamodb"); + + +const express = require('express'); +const bodyParser = require('body-parser'); +const app = express(); +app.use(bodyParser.json()); + +app.post('/v3/all', async (req, res) => { + const client = new AthenaClient({ region: "us-east-1" }); + const results = await client.send(new GetQueryResultsCommand({ QueryExecutionId })); + document.body.innerHTML = results.ResultSet.Rows[0].Data[0].VarCharValue; // $ Alert[js/xss-additional-sources-dom-test] + + const s3 = new S3Client({ region: "us-east-1" }); + const command = new GetObjectCommand({ Bucket: bucket, Key: key }); + const response = await s3.send(command); + document.body.innerHTML = response.Body.toString(); // $ Alert[js/xss-additional-sources-dom-test] + + const clientRDS = new RDSDataClient({ region: "us-east-1" }); + const response2 = await clientRDS.send(new ExecuteStatementCommand(command)); + document.body.innerHTML = response2.records; // $ Alert[js/xss-additional-sources-dom-test] + + const clientDyamo = new DynamoDBClient({ region: "us-east-1" }); + const response3 = await clientDyamo.send(new GetItemCommand(command)); + document.body.innerHTML = response3.Item; // $ Alert[js/xss-additional-sources-dom-test] + +}); + + +app.post('/v2/all', async (req, res) => { + const AWS = require('aws-sdk'); + const athena = new AWS.Athena(); + const params = { + QueryString: 'SELECT * FROM my_table', + ResultConfiguration: { OutputLocation: 's3://bucket/prefix/' } + }; + const { QueryExecutionId } = await athena.startQueryExecution(params).promise(); + + const results = await athena.getQueryResults({ QueryExecutionId }).promise(); + document.body.innerHTML = results.ResultSet.Rows[0].Data[0].VarCharValue; // $ Alert[js/xss-additional-sources-dom-test] + + athena.getQueryResults({ QueryExecutionId }, (err, data) => { + document.body.innerHTML = data.ResultSet.Rows[0].Data[0].VarCharValue; // $ Alert[js/xss-additional-sources-dom-test] + }); + + const s3 = new AWS.S3({ region: "us-east-1" }); + const response = await s3.getObject({ Bucket: "bucket", Key: "key" }).promise(); + document.body.innerHTML = response.Body.toString(); // $ Alert[js/xss-additional-sources-dom-test] + + s3.getObject({ Bucket: "bucket", Key: "key" }, (err, data) => { + document.body.innerHTML = data.Body.toString(); // $ Alert[js/xss-additional-sources-dom-test] + }); + + const rdsData = new AWS.RDSDataService({ region: "us-east-1" }); + const response1 = await rdsData.executeStatement(params).promise(); + document.body.innerHTML = response1.records; // $ Alert[js/xss-additional-sources-dom-test] + + rdsData.executeStatement(params, function(err, data) { + document.body.innerHTML = data.records; // $ Alert[js/xss-additional-sources-dom-test] + }); + + const response2 = await rdsData.batchExecuteStatement(params).promise(); + document.body.innerHTML = response2.updateResults; // $ Alert[js/xss-additional-sources-dom-test] + + rdsData.batchExecuteStatement(params, function(err, data) { + document.body.innerHTML = data.updateResults; // $ Alert[js/xss-additional-sources-dom-test] + }); + + const dynamodb = new AWS.DynamoDB({ region: "us-east-1" }); + dynamodb.executeStatement(params, (err, data) => { + document.body.innerHTML = data.Item; // $ Alert[js/xss-additional-sources-dom-test] + }); + dynamodb.executeStatement(params).promise().then(data => { + document.body.innerHTML = data.Item; // $ Alert[js/xss-additional-sources-dom-test] + }); +}); diff --git a/javascript/ql/test/query-tests/Security/CWE-079/DomBasedXss/aws.js b/javascript/ql/test/query-tests/Security/CWE-079/DomBasedXss/aws.js new file mode 100644 index 00000000000..103689c078f --- /dev/null +++ b/javascript/ql/test/query-tests/Security/CWE-079/DomBasedXss/aws.js @@ -0,0 +1,118 @@ +const AWS = require('aws-sdk'); +const { AthenaClient } = require('@aws-sdk/client-athena'); +const { S3Client } = require('@aws-sdk/client-s3'); +const { RDSDataClient } = require('@aws-sdk/client-rds-data'); +const { DynamoDBClient } = require('@aws-sdk/client-dynamodb'); +const express = require('express'); + +const app = express(); + +// AWS V3 Common tests +app.post('/aws-v3-common', async (req, res) => { + const athenaClient = new AthenaClient({}); + const result = await athenaClient.send({}); + document.body.innerHTML = result.comment; // $ Alert[js/xss-additional-sources-dom-test] + + const s3Client = new S3Client({}); + const result2 = await s3Client.send({}); + document.body.innerHTML = result2.comment; // $ Alert[js/xss-additional-sources-dom-test] + + const rdsDataClient = new RDSDataClient({}); + const result3 = await rdsDataClient.send({}); + document.body.innerHTML = result3.comment; // $ Alert[js/xss-additional-sources-dom-test] + + const dynamoClient = new DynamoDBClient({}); + const result4 = await dynamoClient.send({}); + document.body.innerHTML = result4.comment; // $ Alert[js/xss-additional-sources-dom-test] +}); + +// Athena Client V2 tests +app.post('/athena-v2', async (req, res) => { + const athena = new AWS.Athena(); + + const data = await athena.getQueryResults({}).promise(); + document.body.innerHTML = data.comment; // $ Alert[js/xss-additional-sources-dom-test] + + athena.getQueryResults({}, function(err, data) { + document.body.innerHTML = data.comment; // $ Alert[js/xss-additional-sources-dom-test] + }); +}); + +// S3 Client V2 tests +app.post('/s3-v2', async (req, res) => { + const s3 = new AWS.S3(); + + + const data = await s3.getObject({}).promise(); + document.body.innerHTML = data.comment; // $ Alert[js/xss-additional-sources-dom-test] + + s3.getObject({}, function(err, data) { + document.body.innerHTML = data.comment; // $ Alert[js/xss-additional-sources-dom-test] + }); +}); + +// RDS Data Client V2 tests +app.post('/rds-data-v2', async (req, res) => { + const rdsData = new AWS.RDSDataService(); + + const data = await rdsData.executeStatement({}).promise(); + document.body.innerHTML = data.comment; // $ Alert[js/xss-additional-sources-dom-test] + + rdsData.executeStatement({}, function(err, data) { + document.body.innerHTML = data.comment; // $ Alert[js/xss-additional-sources-dom-test] + }); + + const data2 = await rdsData.batchExecuteStatement({}).promise(); + document.body.innerHTML = data2.comment; // $ Alert[js/xss-additional-sources-dom-test] + + rdsData.batchExecuteStatement({}, function(err, data) { + document.body.innerHTML = data.comment; // $ Alert[js/xss-additional-sources-dom-test] + }); +}); + +// DynamoDB Client V2 tests +app.post('/dynamodb-v2', async (req, res) => { + const dynamodb = new AWS.DynamoDB(); + + const data = await dynamodb.executeStatement({}).promise(); + document.body.innerHTML = data.comment; // $ Alert[js/xss-additional-sources-dom-test] + + dynamodb.executeStatement({}, function(err, data) { + document.body.innerHTML = data.comment; // $ Alert[js/xss-additional-sources-dom-test] + }); + + const data2 = await dynamodb.batchExecuteStatement({}).promise(); + document.body.innerHTML = data2.comment; // $ Alert[js/xss-additional-sources-dom-test] + + dynamodb.batchExecuteStatement({}, function(err, data) { + document.body.innerHTML = data.comment; // $ Alert[js/xss-additional-sources-dom-test] + }); + + const data3 = await dynamodb.query({}).promise(); + document.body.innerHTML = data3.comment; // $ Alert[js/xss-additional-sources-dom-test] + + dynamodb.query({}, function(err, data) { + document.body.innerHTML = data.comment; // $ Alert[js/xss-additional-sources-dom-test] + }); + + const data4 = await dynamodb.scan({}).promise(); + document.body.innerHTML = data4.comment; // $ Alert[js/xss-additional-sources-dom-test] + + dynamodb.scan({}, function(err, data) { + document.body.innerHTML = data.comment; // $ Alert[js/xss-additional-sources-dom-test] + }); + + const data5 = await dynamodb.getItem({}).promise(); + document.body.innerHTML = data5.comment; // $ Alert[js/xss-additional-sources-dom-test] + + dynamodb.getItem({}, function(err, data) { + document.body.innerHTML = data.comment; // $ Alert[js/xss-additional-sources-dom-test] + }); + + const data6 = await dynamodb.batchGetItem({}).promise(); + document.body.innerHTML = data6.comment; // $ Alert[js/xss-additional-sources-dom-test] + + dynamodb.batchGetItem({}, function(err, data) { + document.body.innerHTML = data.comment; // $ Alert[js/xss-additional-sources-dom-test] + }); +}); diff --git a/javascript/ql/test/query-tests/Security/CWE-089/untyped/SqlInjection.expected b/javascript/ql/test/query-tests/Security/CWE-089/untyped/SqlInjection.expected index 9405e075e33..f28fb93238d 100644 --- a/javascript/ql/test/query-tests/Security/CWE-089/untyped/SqlInjection.expected +++ b/javascript/ql/test/query-tests/Security/CWE-089/untyped/SqlInjection.expected @@ -1,4 +1,20 @@ #select +| athena.js:19:23:19:23 | p | athena.js:9:23:9:30 | req.body | athena.js:19:23:19:23 | p | This query string depends on a $@. | athena.js:9:23:9:30 | req.body | user-provided value | +| athena.js:27:23:27:58 | new Cre ... arams2) | athena.js:9:23:9:30 | req.body | athena.js:27:23:27:58 | new Cre ... arams2) | This query string depends on a $@. | athena.js:9:23:9:30 | req.body | user-provided value | +| athena.js:36:23:36:58 | new Upd ... arams3) | athena.js:9:23:9:30 | req.body | athena.js:36:23:36:58 | new Upd ... arams3) | This query string depends on a $@. | athena.js:9:23:9:30 | req.body | user-provided value | +| athena.js:48:22:48:30 | userQuery | athena.js:43:23:43:30 | req.body | athena.js:48:22:48:30 | userQuery | This query string depends on a $@. | athena.js:43:23:43:30 | req.body | user-provided value | +| athena.js:57:22:57:30 | userQuery | athena.js:43:23:43:30 | req.body | athena.js:57:22:57:30 | userQuery | This query string depends on a $@. | athena.js:43:23:43:30 | req.body | user-provided value | +| athena.js:66:22:66:30 | userQuery | athena.js:43:23:43:30 | req.body | athena.js:66:22:66:30 | userQuery | This query string depends on a $@. | athena.js:43:23:43:30 | req.body | user-provided value | +| athena.js:84:23:84:29 | command | athena.js:75:32:75:39 | req.body | athena.js:84:23:84:29 | command | This query string depends on a $@. | athena.js:75:32:75:39 | req.body | user-provided value | +| clients3.js:18:23:18:60 | new Sel ... params) | clients3.js:10:26:10:33 | req.body | clients3.js:18:23:18:60 | new Sel ... params) | This query string depends on a $@. | clients3.js:10:26:10:33 | req.body | user-provided value | +| clients3.js:29:21:29:68 | "SELECT ... usInput | clients3.js:23:26:23:33 | req.body | clients3.js:29:21:29:68 | "SELECT ... usInput | This query string depends on a $@. | clients3.js:23:26:23:33 | req.body | user-provided value | +| clients3.js:38:21:38:68 | "SELECT ... usInput | clients3.js:23:26:23:33 | req.body | clients3.js:38:21:38:68 | "SELECT ... usInput | This query string depends on a $@. | clients3.js:23:26:23:33 | req.body | user-provided value | +| dynamodb.js:15:23:15:29 | command | dynamodb.js:9:26:9:33 | req.body | dynamodb.js:15:23:15:29 | command | This query string depends on a $@. | dynamodb.js:9:26:9:33 | req.body | user-provided value | +| dynamodb.js:21:23:21:35 | updateCommand | dynamodb.js:9:26:9:33 | req.body | dynamodb.js:21:23:21:35 | updateCommand | This query string depends on a $@. | dynamodb.js:9:26:9:33 | req.body | user-provided value | +| dynamodb.js:47:24:47:30 | command | dynamodb.js:9:26:9:33 | req.body | dynamodb.js:47:24:47:30 | command | This query string depends on a $@. | dynamodb.js:9:26:9:33 | req.body | user-provided value | +| dynamodb.js:58:20:58:77 | `SELECT ... nput}'` | dynamodb.js:56:26:56:33 | req.body | dynamodb.js:58:20:58:77 | `SELECT ... nput}'` | This query string depends on a $@. | dynamodb.js:56:26:56:33 | req.body | user-provided value | +| dynamodb.js:64:28:64:85 | `SELECT ... nput}'` | dynamodb.js:56:26:56:33 | req.body | dynamodb.js:64:28:64:85 | `SELECT ... nput}'` | This query string depends on a $@. | dynamodb.js:56:26:56:33 | req.body | user-provided value | +| dynamodb.js:67:28:67:85 | `SELECT ... nput}'` | dynamodb.js:56:26:56:33 | req.body | dynamodb.js:67:28:67:85 | `SELECT ... nput}'` | This query string depends on a $@. | dynamodb.js:56:26:56:33 | req.body | user-provided value | | graphql.js:9:34:19:5 | `\\n ... }\\n ` | graphql.js:8:16:8:28 | req.params.id | graphql.js:9:34:19:5 | `\\n ... }\\n ` | This query string depends on a $@. | graphql.js:8:16:8:28 | req.params.id | user-provided value | | graphql.js:26:30:26:40 | `foo ${id}` | graphql.js:25:16:25:28 | req.params.id | graphql.js:26:30:26:40 | `foo ${id}` | This query string depends on a $@. | graphql.js:25:16:25:28 | req.params.id | user-provided value | | graphql.js:29:32:29:42 | `foo ${id}` | graphql.js:25:16:25:28 | req.params.id | graphql.js:29:32:29:42 | `foo ${id}` | This query string depends on a $@. | graphql.js:25:16:25:28 | req.params.id | user-provided value | @@ -122,6 +138,10 @@ | pg-promise.js:60:20:60:24 | query | pg-promise.js:7:16:7:34 | req.params.category | pg-promise.js:60:20:60:24 | query | This query string depends on a $@. | pg-promise.js:7:16:7:34 | req.params.category | user-provided value | | pg-promise.js:63:23:63:27 | query | pg-promise.js:7:16:7:34 | req.params.category | pg-promise.js:63:23:63:27 | query | This query string depends on a $@. | pg-promise.js:7:16:7:34 | req.params.category | user-provided value | | pg-promise.js:64:16:64:20 | query | pg-promise.js:7:16:7:34 | req.params.category | pg-promise.js:64:16:64:20 | query | This query string depends on a $@. | pg-promise.js:7:16:7:34 | req.params.category | user-provided value | +| rds-client.js:19:23:19:58 | new Exe ... arams1) | rds-client.js:8:23:8:30 | req.body | rds-client.js:19:23:19:58 | new Exe ... arams1) | This query string depends on a $@. | rds-client.js:8:23:8:30 | req.body | user-provided value | +| rds-client.js:36:23:36:51 | new Exe ... params) | rds-client.js:8:23:8:30 | req.body | rds-client.js:36:23:36:51 | new Exe ... params) | This query string depends on a $@. | rds-client.js:8:23:8:30 | req.body | user-provided value | +| rds-client.js:53:14:53:22 | userQuery | rds-client.js:44:23:44:30 | req.body | rds-client.js:53:14:53:22 | userQuery | This query string depends on a $@. | rds-client.js:44:23:44:30 | req.body | user-provided value | +| rds-client.js:61:50:61:52 | sql | rds-client.js:45:25:45:32 | req.body | rds-client.js:61:50:61:52 | sql | This query string depends on a $@. | rds-client.js:45:25:45:32 | req.body | user-provided value | | redis.js:10:16:10:27 | req.body.key | redis.js:10:16:10:23 | req.body | redis.js:10:16:10:27 | req.body.key | This query object depends on a $@. | redis.js:10:16:10:23 | req.body | user-provided value | | redis.js:18:16:18:18 | key | redis.js:12:15:12:22 | req.body | redis.js:18:16:18:18 | key | This query object depends on a $@. | redis.js:12:15:12:22 | req.body | user-provided value | | redis.js:19:43:19:45 | key | redis.js:12:15:12:22 | req.body | redis.js:19:43:19:45 | key | This query object depends on a $@. | redis.js:12:15:12:22 | req.body | user-provided value | @@ -137,6 +157,72 @@ | tst4.js:8:10:8:66 | 'SELECT ... d + '"' | tst4.js:8:46:8:60 | $routeParams.id | tst4.js:8:10:8:66 | 'SELECT ... d + '"' | This query string depends on a $@. | tst4.js:8:46:8:60 | $routeParams.id | user-provided value | | tst.js:10:10:10:64 | 'SELECT ... d + '"' | tst.js:10:46:10:58 | req.params.id | tst.js:10:10:10:64 | 'SELECT ... d + '"' | This query string depends on a $@. | tst.js:10:46:10:58 | req.params.id | user-provided value | edges +| athena.js:9:11:9:19 | userQuery | athena.js:14:30:14:38 | userQuery | provenance | | +| athena.js:9:11:9:19 | userQuery | athena.js:24:22:24:30 | userQuery | provenance | | +| athena.js:9:11:9:19 | userQuery | athena.js:33:22:33:30 | userQuery | provenance | | +| athena.js:9:23:9:30 | req.body | athena.js:9:11:9:19 | userQuery | provenance | | +| athena.js:13:11:13:17 | params1 [QueryString] | athena.js:18:46:18:52 | params1 [QueryString] | provenance | | +| athena.js:13:21:17:5 | { \\n ... }\\n } [QueryString] | athena.js:13:11:13:17 | params1 [QueryString] | provenance | | +| athena.js:14:22:14:38 | "SQL" + userQuery | athena.js:13:21:17:5 | { \\n ... }\\n } [QueryString] | provenance | | +| athena.js:14:30:14:38 | userQuery | athena.js:14:22:14:38 | "SQL" + userQuery | provenance | | +| athena.js:18:11:18:11 | p | athena.js:19:23:19:23 | p | provenance | | +| athena.js:18:15:18:53 | new Sta ... arams1) | athena.js:18:11:18:11 | p | provenance | | +| athena.js:18:46:18:52 | params1 [QueryString] | athena.js:18:15:18:53 | new Sta ... arams1) | provenance | | +| athena.js:21:11:21:17 | params2 [QueryString] | athena.js:27:51:27:57 | params2 [QueryString] | provenance | | +| athena.js:21:21:26:5 | {\\n ... "\\n } [QueryString] | athena.js:21:11:21:17 | params2 [QueryString] | provenance | | +| athena.js:24:22:24:30 | userQuery | athena.js:21:21:26:5 | {\\n ... "\\n } [QueryString] | provenance | | +| athena.js:27:51:27:57 | params2 [QueryString] | athena.js:27:23:27:58 | new Cre ... arams2) | provenance | | +| athena.js:29:11:29:17 | params3 [QueryString] | athena.js:36:51:36:57 | params3 [QueryString] | provenance | | +| athena.js:29:21:35:5 | {\\n ... "\\n } [QueryString] | athena.js:29:11:29:17 | params3 [QueryString] | provenance | | +| athena.js:33:22:33:30 | userQuery | athena.js:29:21:35:5 | {\\n ... "\\n } [QueryString] | provenance | | +| athena.js:36:51:36:57 | params3 [QueryString] | athena.js:36:23:36:58 | new Upd ... arams3) | provenance | | +| athena.js:43:11:43:19 | userQuery | athena.js:48:22:48:30 | userQuery | provenance | | +| athena.js:43:11:43:19 | userQuery | athena.js:57:22:57:30 | userQuery | provenance | | +| athena.js:43:11:43:19 | userQuery | athena.js:66:22:66:30 | userQuery | provenance | | +| athena.js:43:23:43:30 | req.body | athena.js:43:11:43:19 | userQuery | provenance | | +| athena.js:75:11:75:28 | userQueryStatement | athena.js:80:25:80:42 | userQueryStatement | provenance | | +| athena.js:75:32:75:39 | req.body | athena.js:75:11:75:28 | userQueryStatement | provenance | | +| athena.js:77:11:77:15 | input [QueryStatement] | athena.js:83:56:83:60 | input [QueryStatement] | provenance | | +| athena.js:77:19:82:5 | {\\n ... ,\\n } [QueryStatement] | athena.js:77:11:77:15 | input [QueryStatement] | provenance | | +| athena.js:80:25:80:42 | userQueryStatement | athena.js:77:19:82:5 | {\\n ... ,\\n } [QueryStatement] | provenance | | +| athena.js:83:11:83:17 | command | athena.js:84:23:84:29 | command | provenance | | +| athena.js:83:21:83:61 | new Cre ... (input) | athena.js:83:11:83:17 | command | provenance | | +| athena.js:83:56:83:60 | input [QueryStatement] | athena.js:83:21:83:61 | new Cre ... (input) | provenance | | +| clients3.js:10:9:10:22 | maliciousInput | clients3.js:16:55:16:68 | maliciousInput | provenance | | +| clients3.js:10:26:10:33 | req.body | clients3.js:10:9:10:22 | maliciousInput | provenance | | +| clients3.js:12:11:12:16 | params [Expression] | clients3.js:18:54:18:59 | params [Expression] | provenance | | +| clients3.js:12:20:17:5 | {\\n ... ,\\n } [Expression] | clients3.js:12:11:12:16 | params [Expression] | provenance | | +| clients3.js:16:21:16:68 | "SELECT ... usInput | clients3.js:12:20:17:5 | {\\n ... ,\\n } [Expression] | provenance | | +| clients3.js:16:55:16:68 | maliciousInput | clients3.js:16:21:16:68 | "SELECT ... usInput | provenance | | +| clients3.js:18:54:18:59 | params [Expression] | clients3.js:18:23:18:60 | new Sel ... params) | provenance | | +| clients3.js:23:9:23:22 | maliciousInput | clients3.js:29:55:29:68 | maliciousInput | provenance | | +| clients3.js:23:9:23:22 | maliciousInput | clients3.js:38:55:38:68 | maliciousInput | provenance | | +| clients3.js:23:26:23:33 | req.body | clients3.js:23:9:23:22 | maliciousInput | provenance | | +| clients3.js:29:55:29:68 | maliciousInput | clients3.js:29:21:29:68 | "SELECT ... usInput | provenance | | +| clients3.js:38:55:38:68 | maliciousInput | clients3.js:38:21:38:68 | "SELECT ... usInput | provenance | | +| dynamodb.js:9:9:9:22 | maliciousInput | dynamodb.js:11:64:11:77 | maliciousInput | provenance | | +| dynamodb.js:9:9:9:22 | maliciousInput | dynamodb.js:17:80:17:93 | maliciousInput | provenance | | +| dynamodb.js:9:26:9:33 | req.body | dynamodb.js:9:9:9:22 | maliciousInput | provenance | | +| dynamodb.js:11:11:11:19 | statement | dynamodb.js:13:20:13:28 | statement | provenance | | +| dynamodb.js:11:64:11:77 | maliciousInput | dynamodb.js:11:11:11:19 | statement | provenance | | +| dynamodb.js:12:11:12:17 | command | dynamodb.js:15:23:15:29 | command | provenance | | +| dynamodb.js:12:11:12:17 | command | dynamodb.js:47:24:47:30 | command | provenance | | +| dynamodb.js:12:21:14:6 | new Exe ... \\n }) | dynamodb.js:12:11:12:17 | command | provenance | | +| dynamodb.js:12:49:14:5 | {\\n ... t\\n } [Statement] | dynamodb.js:12:21:14:6 | new Exe ... \\n }) | provenance | | +| dynamodb.js:13:20:13:28 | statement | dynamodb.js:12:49:14:5 | {\\n ... t\\n } [Statement] | provenance | | +| dynamodb.js:17:11:17:25 | updateStatement | dynamodb.js:19:20:19:34 | updateStatement | provenance | | +| dynamodb.js:17:80:17:93 | maliciousInput | dynamodb.js:17:11:17:25 | updateStatement | provenance | | +| dynamodb.js:18:11:18:23 | updateCommand | dynamodb.js:21:23:21:35 | updateCommand | provenance | | +| dynamodb.js:18:27:20:6 | new Exe ... \\n }) | dynamodb.js:18:11:18:23 | updateCommand | provenance | | +| dynamodb.js:18:55:20:5 | {\\n ... t\\n } [Statement] | dynamodb.js:18:27:20:6 | new Exe ... \\n }) | provenance | | +| dynamodb.js:19:20:19:34 | updateStatement | dynamodb.js:18:55:20:5 | {\\n ... t\\n } [Statement] | provenance | | +| dynamodb.js:56:9:56:22 | maliciousInput | dynamodb.js:58:61:58:74 | maliciousInput | provenance | | +| dynamodb.js:56:9:56:22 | maliciousInput | dynamodb.js:64:69:64:82 | maliciousInput | provenance | | +| dynamodb.js:56:9:56:22 | maliciousInput | dynamodb.js:67:69:67:82 | maliciousInput | provenance | | +| dynamodb.js:56:26:56:33 | req.body | dynamodb.js:56:9:56:22 | maliciousInput | provenance | | +| dynamodb.js:58:61:58:74 | maliciousInput | dynamodb.js:58:20:58:77 | `SELECT ... nput}'` | provenance | | +| dynamodb.js:64:69:64:82 | maliciousInput | dynamodb.js:64:28:64:85 | `SELECT ... nput}'` | provenance | | +| dynamodb.js:67:69:67:82 | maliciousInput | dynamodb.js:67:28:67:85 | `SELECT ... nput}'` | provenance | | | graphql.js:8:11:8:12 | id | graphql.js:11:46:11:47 | id | provenance | | | graphql.js:8:16:8:28 | req.params.id | graphql.js:8:11:8:12 | id | provenance | | | graphql.js:11:46:11:47 | id | graphql.js:9:34:19:5 | `\\n ... }\\n ` | provenance | | @@ -490,6 +576,23 @@ edges | pg-promise.js:22:11:22:15 | query | pg-promise.js:60:20:60:24 | query | provenance | | | pg-promise.js:22:11:22:15 | query | pg-promise.js:63:23:63:27 | query | provenance | | | pg-promise.js:22:11:22:15 | query | pg-promise.js:64:16:64:20 | query | provenance | | +| rds-client.js:8:11:8:19 | userQuery | rds-client.js:17:14:17:22 | userQuery | provenance | | +| rds-client.js:8:11:8:19 | userQuery | rds-client.js:33:24:33:32 | userQuery | provenance | | +| rds-client.js:8:23:8:30 | req.body | rds-client.js:8:11:8:19 | userQuery | provenance | | +| rds-client.js:13:11:13:17 | params1 [sql] | rds-client.js:19:51:19:57 | params1 [sql] | provenance | | +| rds-client.js:13:21:18:5 | {\\n ... y\\n } [sql] | rds-client.js:13:11:13:17 | params1 [sql] | provenance | | +| rds-client.js:17:14:17:22 | userQuery | rds-client.js:13:21:18:5 | {\\n ... y\\n } [sql] | provenance | | +| rds-client.js:19:51:19:57 | params1 [sql] | rds-client.js:19:23:19:58 | new Exe ... arams1) | provenance | | +| rds-client.js:29:11:29:16 | params [sqlStatements] | rds-client.js:36:45:36:50 | params [sqlStatements] | provenance | | +| rds-client.js:29:20:34:5 | {\\n ... y\\n } [sqlStatements] | rds-client.js:29:11:29:16 | params [sqlStatements] | provenance | | +| rds-client.js:33:24:33:32 | userQuery | rds-client.js:29:20:34:5 | {\\n ... y\\n } [sqlStatements] | provenance | | +| rds-client.js:36:45:36:50 | params [sqlStatements] | rds-client.js:36:23:36:51 | new Exe ... params) | provenance | | +| rds-client.js:44:11:44:19 | userQuery | rds-client.js:53:14:53:22 | userQuery | provenance | | +| rds-client.js:44:23:44:30 | req.body | rds-client.js:44:11:44:19 | userQuery | provenance | | +| rds-client.js:45:11:45:21 | userQueries | rds-client.js:61:24:61:34 | userQueries | provenance | | +| rds-client.js:45:25:45:32 | req.body | rds-client.js:45:11:45:21 | userQueries | provenance | | +| rds-client.js:61:24:61:34 | userQueries | rds-client.js:61:40:61:42 | sql | provenance | | +| rds-client.js:61:40:61:42 | sql | rds-client.js:61:50:61:52 | sql | provenance | | | redis.js:10:16:10:23 | req.body | redis.js:10:16:10:27 | req.body.key | provenance | Config | | redis.js:12:9:12:11 | key | redis.js:13:16:13:18 | key | provenance | | | redis.js:12:9:12:11 | key | redis.js:18:16:18:18 | key | provenance | | @@ -518,6 +621,79 @@ edges | tst4.js:8:46:8:60 | $routeParams.id | tst4.js:8:10:8:66 | 'SELECT ... d + '"' | provenance | | | tst.js:10:46:10:58 | req.params.id | tst.js:10:10:10:64 | 'SELECT ... d + '"' | provenance | | nodes +| athena.js:9:11:9:19 | userQuery | semmle.label | userQuery | +| athena.js:9:23:9:30 | req.body | semmle.label | req.body | +| athena.js:13:11:13:17 | params1 [QueryString] | semmle.label | params1 [QueryString] | +| athena.js:13:21:17:5 | { \\n ... }\\n } [QueryString] | semmle.label | { \\n ... }\\n } [QueryString] | +| athena.js:14:22:14:38 | "SQL" + userQuery | semmle.label | "SQL" + userQuery | +| athena.js:14:30:14:38 | userQuery | semmle.label | userQuery | +| athena.js:18:11:18:11 | p | semmle.label | p | +| athena.js:18:15:18:53 | new Sta ... arams1) | semmle.label | new Sta ... arams1) | +| athena.js:18:46:18:52 | params1 [QueryString] | semmle.label | params1 [QueryString] | +| athena.js:19:23:19:23 | p | semmle.label | p | +| athena.js:21:11:21:17 | params2 [QueryString] | semmle.label | params2 [QueryString] | +| athena.js:21:21:26:5 | {\\n ... "\\n } [QueryString] | semmle.label | {\\n ... "\\n } [QueryString] | +| athena.js:24:22:24:30 | userQuery | semmle.label | userQuery | +| athena.js:27:23:27:58 | new Cre ... arams2) | semmle.label | new Cre ... arams2) | +| athena.js:27:51:27:57 | params2 [QueryString] | semmle.label | params2 [QueryString] | +| athena.js:29:11:29:17 | params3 [QueryString] | semmle.label | params3 [QueryString] | +| athena.js:29:21:35:5 | {\\n ... "\\n } [QueryString] | semmle.label | {\\n ... "\\n } [QueryString] | +| athena.js:33:22:33:30 | userQuery | semmle.label | userQuery | +| athena.js:36:23:36:58 | new Upd ... arams3) | semmle.label | new Upd ... arams3) | +| athena.js:36:51:36:57 | params3 [QueryString] | semmle.label | params3 [QueryString] | +| athena.js:43:11:43:19 | userQuery | semmle.label | userQuery | +| athena.js:43:23:43:30 | req.body | semmle.label | req.body | +| athena.js:48:22:48:30 | userQuery | semmle.label | userQuery | +| athena.js:57:22:57:30 | userQuery | semmle.label | userQuery | +| athena.js:66:22:66:30 | userQuery | semmle.label | userQuery | +| athena.js:75:11:75:28 | userQueryStatement | semmle.label | userQueryStatement | +| athena.js:75:32:75:39 | req.body | semmle.label | req.body | +| athena.js:77:11:77:15 | input [QueryStatement] | semmle.label | input [QueryStatement] | +| athena.js:77:19:82:5 | {\\n ... ,\\n } [QueryStatement] | semmle.label | {\\n ... ,\\n } [QueryStatement] | +| athena.js:80:25:80:42 | userQueryStatement | semmle.label | userQueryStatement | +| athena.js:83:11:83:17 | command | semmle.label | command | +| athena.js:83:21:83:61 | new Cre ... (input) | semmle.label | new Cre ... (input) | +| athena.js:83:56:83:60 | input [QueryStatement] | semmle.label | input [QueryStatement] | +| athena.js:84:23:84:29 | command | semmle.label | command | +| clients3.js:10:9:10:22 | maliciousInput | semmle.label | maliciousInput | +| clients3.js:10:26:10:33 | req.body | semmle.label | req.body | +| clients3.js:12:11:12:16 | params [Expression] | semmle.label | params [Expression] | +| clients3.js:12:20:17:5 | {\\n ... ,\\n } [Expression] | semmle.label | {\\n ... ,\\n } [Expression] | +| clients3.js:16:21:16:68 | "SELECT ... usInput | semmle.label | "SELECT ... usInput | +| clients3.js:16:55:16:68 | maliciousInput | semmle.label | maliciousInput | +| clients3.js:18:23:18:60 | new Sel ... params) | semmle.label | new Sel ... params) | +| clients3.js:18:54:18:59 | params [Expression] | semmle.label | params [Expression] | +| clients3.js:23:9:23:22 | maliciousInput | semmle.label | maliciousInput | +| clients3.js:23:26:23:33 | req.body | semmle.label | req.body | +| clients3.js:29:21:29:68 | "SELECT ... usInput | semmle.label | "SELECT ... usInput | +| clients3.js:29:55:29:68 | maliciousInput | semmle.label | maliciousInput | +| clients3.js:38:21:38:68 | "SELECT ... usInput | semmle.label | "SELECT ... usInput | +| clients3.js:38:55:38:68 | maliciousInput | semmle.label | maliciousInput | +| dynamodb.js:9:9:9:22 | maliciousInput | semmle.label | maliciousInput | +| dynamodb.js:9:26:9:33 | req.body | semmle.label | req.body | +| dynamodb.js:11:11:11:19 | statement | semmle.label | statement | +| dynamodb.js:11:64:11:77 | maliciousInput | semmle.label | maliciousInput | +| dynamodb.js:12:11:12:17 | command | semmle.label | command | +| dynamodb.js:12:21:14:6 | new Exe ... \\n }) | semmle.label | new Exe ... \\n }) | +| dynamodb.js:12:49:14:5 | {\\n ... t\\n } [Statement] | semmle.label | {\\n ... t\\n } [Statement] | +| dynamodb.js:13:20:13:28 | statement | semmle.label | statement | +| dynamodb.js:15:23:15:29 | command | semmle.label | command | +| dynamodb.js:17:11:17:25 | updateStatement | semmle.label | updateStatement | +| dynamodb.js:17:80:17:93 | maliciousInput | semmle.label | maliciousInput | +| dynamodb.js:18:11:18:23 | updateCommand | semmle.label | updateCommand | +| dynamodb.js:18:27:20:6 | new Exe ... \\n }) | semmle.label | new Exe ... \\n }) | +| dynamodb.js:18:55:20:5 | {\\n ... t\\n } [Statement] | semmle.label | {\\n ... t\\n } [Statement] | +| dynamodb.js:19:20:19:34 | updateStatement | semmle.label | updateStatement | +| dynamodb.js:21:23:21:35 | updateCommand | semmle.label | updateCommand | +| dynamodb.js:47:24:47:30 | command | semmle.label | command | +| dynamodb.js:56:9:56:22 | maliciousInput | semmle.label | maliciousInput | +| dynamodb.js:56:26:56:33 | req.body | semmle.label | req.body | +| dynamodb.js:58:20:58:77 | `SELECT ... nput}'` | semmle.label | `SELECT ... nput}'` | +| dynamodb.js:58:61:58:74 | maliciousInput | semmle.label | maliciousInput | +| dynamodb.js:64:28:64:85 | `SELECT ... nput}'` | semmle.label | `SELECT ... nput}'` | +| dynamodb.js:64:69:64:82 | maliciousInput | semmle.label | maliciousInput | +| dynamodb.js:67:28:67:85 | `SELECT ... nput}'` | semmle.label | `SELECT ... nput}'` | +| dynamodb.js:67:69:67:82 | maliciousInput | semmle.label | maliciousInput | | graphql.js:8:11:8:12 | id | semmle.label | id | | graphql.js:8:16:8:28 | req.params.id | semmle.label | req.params.id | | graphql.js:9:34:19:5 | `\\n ... }\\n ` | semmle.label | `\\n ... }\\n ` | @@ -803,6 +979,26 @@ nodes | pg-promise.js:60:20:60:24 | query | semmle.label | query | | pg-promise.js:63:23:63:27 | query | semmle.label | query | | pg-promise.js:64:16:64:20 | query | semmle.label | query | +| rds-client.js:8:11:8:19 | userQuery | semmle.label | userQuery | +| rds-client.js:8:23:8:30 | req.body | semmle.label | req.body | +| rds-client.js:13:11:13:17 | params1 [sql] | semmle.label | params1 [sql] | +| rds-client.js:13:21:18:5 | {\\n ... y\\n } [sql] | semmle.label | {\\n ... y\\n } [sql] | +| rds-client.js:17:14:17:22 | userQuery | semmle.label | userQuery | +| rds-client.js:19:23:19:58 | new Exe ... arams1) | semmle.label | new Exe ... arams1) | +| rds-client.js:19:51:19:57 | params1 [sql] | semmle.label | params1 [sql] | +| rds-client.js:29:11:29:16 | params [sqlStatements] | semmle.label | params [sqlStatements] | +| rds-client.js:29:20:34:5 | {\\n ... y\\n } [sqlStatements] | semmle.label | {\\n ... y\\n } [sqlStatements] | +| rds-client.js:33:24:33:32 | userQuery | semmle.label | userQuery | +| rds-client.js:36:23:36:51 | new Exe ... params) | semmle.label | new Exe ... params) | +| rds-client.js:36:45:36:50 | params [sqlStatements] | semmle.label | params [sqlStatements] | +| rds-client.js:44:11:44:19 | userQuery | semmle.label | userQuery | +| rds-client.js:44:23:44:30 | req.body | semmle.label | req.body | +| rds-client.js:45:11:45:21 | userQueries | semmle.label | userQueries | +| rds-client.js:45:25:45:32 | req.body | semmle.label | req.body | +| rds-client.js:53:14:53:22 | userQuery | semmle.label | userQuery | +| rds-client.js:61:24:61:34 | userQueries | semmle.label | userQueries | +| rds-client.js:61:40:61:42 | sql | semmle.label | sql | +| rds-client.js:61:50:61:52 | sql | semmle.label | sql | | redis.js:10:16:10:23 | req.body | semmle.label | req.body | | redis.js:10:16:10:27 | req.body.key | semmle.label | req.body.key | | redis.js:12:9:12:11 | key | semmle.label | key | diff --git a/javascript/ql/test/query-tests/Security/CWE-089/untyped/athena.js b/javascript/ql/test/query-tests/Security/CWE-089/untyped/athena.js new file mode 100644 index 00000000000..a671fdc5356 --- /dev/null +++ b/javascript/ql/test/query-tests/Security/CWE-089/untyped/athena.js @@ -0,0 +1,85 @@ +const { AthenaClient, StartQueryExecutionCommand, CreateNamedQueryCommand, UpdateNamedQueryCommand, CreatePreparedStatementCommand } = require("@aws-sdk/client-athena"); +const AWS = require('aws-sdk'); +const express = require('express'); +const bodyParser = require('body-parser'); +const app = express(); +app.use(bodyParser.json()); + +app.post('/v3/athena/all', async (req, res) => { + const userQuery = req.body.query; // $ Source + + const client = new AthenaClient({ region: "us-east-1" }); + + const params1 = { + QueryString: "SQL" + userQuery, + QueryExecutionContext: { Database: "default" }, + ResultConfiguration: { OutputLocation: "s3://my-results/" } + }; + const p = new StartQueryExecutionCommand(params1); + await client.send(p); // $ Alert + + const params2 = { + Name: "user_query", + Database: "default", + QueryString: userQuery, + Description: "User-provided query" + }; + await client.send(new CreateNamedQueryCommand(params2)); // $ Alert -- This only stores query to database, not executed + + const params3 = { + NamedQueryId: "namedQueryId", + Name: "user_query_updated", + Database: "default", + QueryString: userQuery, + Description: "Updated user-provided query" + }; + await client.send(new UpdateNamedQueryCommand(params3)); // $ Alert -- This only stores query to database, not executed + + res.end(); +}); + + +app.post('/v2/athena/all', async (req, res) => { + const userQuery = req.body.query; // $ Source + + const athena = new AWS.Athena({ region: "us-east-1" }); + + const params1 = { + QueryString: userQuery, // $ Alert + QueryExecutionContext: { Database: "default" }, + ResultConfiguration: { OutputLocation: "s3://my-results/" } + }; + await athena.startQueryExecution(params1).promise(); + + const params2 = { + Name: "user_query", + Database: "default", + QueryString: userQuery, // $ Alert -- This only stores query to database, not executed + Description: "User-provided query" + }; + await athena.createNamedQuery(params2).promise(); + + const params3 = { + NamedQueryId: "namedQueryId", + Name: "user_query_updated", + Database: "default", + QueryString: userQuery, // $ Alert -- This only stores query to database, not executed + Description: "Updated user-provided query" + }; + await athena.updateNamedQuery(params3).promise(); + + res.end(); +}); + +app.post('/dynamodb-v3', async (req, res) => { + const userQueryStatement = req.body.query; // $ Source + const client = new AthenaClient({ region: "us-east-1" }); + const input = { + StatementName: "STRING_VALUE", + WorkGroup: "STRING_VALUE", + QueryStatement: userQueryStatement, + Description: "STRING_VALUE", + }; + const command = new CreatePreparedStatementCommand(input); + await client.send(command); // $ Alert +}); diff --git a/javascript/ql/test/query-tests/Security/CWE-089/untyped/clients3.js b/javascript/ql/test/query-tests/Security/CWE-089/untyped/clients3.js new file mode 100644 index 00000000000..9c6bce42657 --- /dev/null +++ b/javascript/ql/test/query-tests/Security/CWE-089/untyped/clients3.js @@ -0,0 +1,44 @@ +const { S3Client, SelectObjectContentCommand } = require("@aws-sdk/client-s3"); +const AWS = require('aws-sdk'); +const express = require('express'); +const bodyParser = require('body-parser'); + +const app = express(); +app.use(bodyParser.json()); + +app.post('/client/v3/execute', async (req, res) => { + let maliciousInput = req.body.filter; // $ Source + const client = new S3Client({ region: "us-east-1" }); + const params = { + Bucket: "my-bucket", + Key: "data.csv", + ExpressionType: "SQL", + Expression: "SELECT * FROM S3Object WHERE " + maliciousInput, + }; + await client.send(new SelectObjectContentCommand(params)); // $ Alert + res.end(); +}); + +app.post('/client/v2/execute', async (req, res) => { + let maliciousInput = req.body.filter; // $ Source + const s3 = new AWS.S3({ region: "us-east-1" }); + const params = { + Bucket: "my-bucket", + Key: "data.csv", + ExpressionType: "SQL", + Expression: "SELECT * FROM S3Object WHERE " + maliciousInput, // $ Alert + }; + await s3.selectObjectContent(params).promise(); + res.end(); + + const params1 = { + Bucket: "my-bucket", + Key: "data.csv", + ExpressionType: "SQL", + Expression: "SELECT * FROM S3Object WHERE " + maliciousInput, // $ Alert + }; + + s3.selectObjectContent(params1, (err, data) => { + res.end(); + }); +}); diff --git a/javascript/ql/test/query-tests/Security/CWE-089/untyped/dynamodb.js b/javascript/ql/test/query-tests/Security/CWE-089/untyped/dynamodb.js new file mode 100644 index 00000000000..ef9e3c3005c --- /dev/null +++ b/javascript/ql/test/query-tests/Security/CWE-089/untyped/dynamodb.js @@ -0,0 +1,73 @@ +import {DynamoDBClient, ExecuteStatementCommand, BatchExecuteStatementCommand, DynamoDB} from "@aws-sdk/client-dynamodb"; +const express = require('express'); + +const app = express(); +const region = 'us-east-1'; + +app.post('/partiql/v3/execute', async (req, res) => { + const client = new DynamoDBClient({}); + let maliciousInput = req.body.data; // $ Source + + const statement = `SELECT * FROM Users WHERE username = '${maliciousInput}'`; + const command = new ExecuteStatementCommand({ + Statement: statement + }); + await client.send(command); // $ Alert + + const updateStatement = "UPDATE Users SET status = 'active' WHERE id = " + maliciousInput; + const updateCommand = new ExecuteStatementCommand({ + Statement: updateStatement + }); + await client.send(updateCommand); // $ Alert + + + const batchInput = { + Statements: [{ + Statement: `SELECT * FROM Users WHERE username = '${maliciousInput}'` + }, + { + Statement: "UPDATE Users SET role = 'user' WHERE username = bob" + } + ] + }; + + const batchCommand = new BatchExecuteStatementCommand(batchInput); + await client.send(batchCommand); // $ MISSING: Alert + + const batchInput2 = { + Statements: maliciousInput.map(input => ({ + Statement: `SELECT * FROM SensitiveData WHERE username = '${input}'` + })) + }; + + const batchCommand2 = new BatchExecuteStatementCommand(batchInput2); + await client.send(batchCommand2); // $ MISSING: Alert + + const client2 = new DynamoDB({}); + await client2.send(command); // $ Alert + await client2.send(batchCommand); // $ MISSING: Alert +}); + +app.post('/partiql/v2/execute', async (req, res) => { + const AWS = require('aws-sdk'); + const dynamodb = new AWS.DynamoDB({ + region: 'us-east-1' + }); + let maliciousInput = req.body.data; // $ Source + const params = { + Statement: `SELECT * FROM Users WHERE username = '${maliciousInput}'` // $ Alert + }; + + dynamodb.executeStatement(params, function(err, data) {}); + const params2 = { + Statements: [{ + Statement: `SELECT * FROM Users WHERE username = '${maliciousInput}'` // $ Alert + }, + { + Statement: `SELECT * FROM Users WHERE username = '${maliciousInput}'` // $ Alert + } + ] + }; + + dynamodb.batchExecuteStatement(params2, function(err, data) {}); +}); diff --git a/javascript/ql/test/query-tests/Security/CWE-089/untyped/rds-client.js b/javascript/ql/test/query-tests/Security/CWE-089/untyped/rds-client.js new file mode 100644 index 00000000000..35d41e145f9 --- /dev/null +++ b/javascript/ql/test/query-tests/Security/CWE-089/untyped/rds-client.js @@ -0,0 +1,68 @@ +const { RDSDataClient, BatchExecuteStatementCommand, ExecuteStatementCommand, ExecuteSqlCommand } = require("@aws-sdk/client-rds-data"); +const express = require('express'); +const bodyParser = require('body-parser'); +const app = express(); +app.use(bodyParser.json()); + +app.post('/v3/rds/all', async (req, res) => { + const userQuery = req.body.query; // $ Source + const userQueries = req.body.queries; // $ MISSING: Source + + const client = new RDSDataClient({ region: "us-east-1" }); + + const params1 = { + resourceArn: "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-cluster", + secretArn: "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-secret", + database: "userDatabase", + sql: userQuery + }; + await client.send(new ExecuteStatementCommand(params1)); // $ Alert + + const params2 = { + resourceArn: "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-cluster", + secretArn: "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-secret", + database: "userDatabase", + parameterSets: userQueries.map(sql => ({ sql })) + }; + await client.send(new BatchExecuteStatementCommand(params2)); // $ MISSING: Alert + + const params = { + resourceArn: "...", + secretArn: "...", + database: "userDatabase", + sqlStatements: userQuery + }; + + await client.send(new ExecuteSqlCommand(params)); // $ Alert + + res.end(); +}); + +const AWS = require('aws-sdk'); + +app.post('/v2/rds/all', async (req, res) => { + const userQuery = req.body.query; // $ Source + const userQueries = req.body.queries; // $ Source + + const rdsData = new AWS.RDSDataService({ region: "us-east-1" }); + + const params1 = { + resourceArn: "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-cluster", + secretArn: "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-secret", + database: "userDatabase", + sql: userQuery // $ Alert + }; + await rdsData.executeStatement(params1).promise(); + + const params2 = { + resourceArn: "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-cluster", + secretArn: "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-secret", + database: "userDatabase", + parameterSets: userQueries.map(sql => ({ sql })) // $ Alert + }; + await rdsData.batchExecuteStatement(params2).promise(); + + res.end(); +}); + +app.listen(3000); diff --git a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/CodeInjection.expected b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/CodeInjection.expected index 8ddaba30fc8..3f5d8abed8a 100644 --- a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/CodeInjection.expected +++ b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/CodeInjection.expected @@ -61,6 +61,8 @@ | fastify.js:107:23:107:31 | userInput | fastify.js:106:21:106:38 | request.query.code | fastify.js:107:23:107:31 | userInput | This code execution depends on a $@. | fastify.js:106:21:106:38 | request.query.code | user-provided value | | fastify.js:108:28:108:50 | reply.l ... tedCode | fastify.js:94:29:94:41 | request.query | fastify.js:108:28:108:50 | reply.l ... tedCode | This code execution depends on a $@. | fastify.js:94:29:94:41 | request.query | user-provided value | | fastify.js:108:28:108:50 | reply.l ... tedCode | fastify.js:94:29:94:51 | request ... plyCode | fastify.js:108:28:108:50 | reply.l ... tedCode | This code execution depends on a $@. | fastify.js:94:29:94:51 | request ... plyCode | user-provided value | +| graph-ql.js:20:19:20:22 | expr | graph-ql.js:28:32:28:39 | req.body | graph-ql.js:20:19:20:22 | expr | This code execution depends on a $@. | graph-ql.js:28:32:28:39 | req.body | user-provided value | +| graph-ql.js:39:19:39:30 | name + title | graph-ql.js:28:32:28:39 | req.body | graph-ql.js:39:19:39:30 | name + title | This code execution depends on a $@. | graph-ql.js:28:32:28:39 | req.body | user-provided value | | module.js:9:16:9:29 | req.query.code | module.js:9:16:9:29 | req.query.code | module.js:9:16:9:29 | req.query.code | This code execution depends on a $@. | module.js:9:16:9:29 | req.query.code | user-provided value | | module.js:11:17:11:30 | req.query.code | module.js:11:17:11:30 | req.query.code | module.js:11:17:11:30 | req.query.code | This code execution depends on a $@. | module.js:11:17:11:30 | req.query.code | user-provided value | | react-native.js:8:32:8:38 | tainted | react-native.js:7:17:7:33 | req.param("code") | react-native.js:8:32:8:38 | tainted | This code execution depends on a $@. | react-native.js:7:17:7:33 | req.param("code") | user-provided value | @@ -154,6 +156,23 @@ edges | fastify.js:106:9:106:17 | userInput | fastify.js:107:23:107:31 | userInput | provenance | | | fastify.js:106:21:106:33 | request.query | fastify.js:106:9:106:17 | userInput | provenance | | | fastify.js:106:21:106:38 | request.query.code | fastify.js:106:9:106:17 | userInput | provenance | | +| graph-ql.js:18:10:18:17 | { expr } | graph-ql.js:18:12:18:15 | expr | provenance | | +| graph-ql.js:18:12:18:15 | expr | graph-ql.js:20:19:20:22 | expr | provenance | | +| graph-ql.js:28:9:28:28 | { query, variables } | graph-ql.js:28:11:28:15 | query | provenance | | +| graph-ql.js:28:9:28:28 | { query, variables } | graph-ql.js:28:18:28:26 | variables | provenance | | +| graph-ql.js:28:11:28:15 | query | graph-ql.js:31:13:31:17 | query | provenance | | +| graph-ql.js:28:18:28:26 | variables | graph-ql.js:33:21:33:29 | variables | provenance | | +| graph-ql.js:28:18:28:26 | variables | graph-ql.js:54:21:54:29 | variables | provenance | | +| graph-ql.js:28:32:28:39 | req.body | graph-ql.js:28:9:28:28 | { query, variables } | provenance | | +| graph-ql.js:31:13:31:17 | query | graph-ql.js:18:10:18:17 | { expr } | provenance | | +| graph-ql.js:33:21:33:29 | variables | graph-ql.js:18:10:18:17 | { expr } | provenance | | +| graph-ql.js:38:13:38:27 | { name, title } | graph-ql.js:38:15:38:18 | name | provenance | | +| graph-ql.js:38:13:38:27 | { name, title } | graph-ql.js:38:21:38:25 | title | provenance | | +| graph-ql.js:38:15:38:18 | name | graph-ql.js:39:19:39:22 | name | provenance | | +| graph-ql.js:38:21:38:25 | title | graph-ql.js:39:26:39:30 | title | provenance | | +| graph-ql.js:39:19:39:22 | name | graph-ql.js:39:19:39:30 | name + title | provenance | | +| graph-ql.js:39:26:39:30 | title | graph-ql.js:39:19:39:30 | name + title | provenance | | +| graph-ql.js:54:21:54:29 | variables | graph-ql.js:38:13:38:27 | { name, title } | provenance | | | react-native.js:7:7:7:13 | tainted | react-native.js:8:32:8:38 | tainted | provenance | | | react-native.js:7:7:7:13 | tainted | react-native.js:10:23:10:29 | tainted | provenance | | | react-native.js:7:17:7:33 | req.param("code") | react-native.js:7:7:7:13 | tainted | provenance | | @@ -288,6 +307,22 @@ nodes | fastify.js:106:21:106:38 | request.query.code | semmle.label | request.query.code | | fastify.js:107:23:107:31 | userInput | semmle.label | userInput | | fastify.js:108:28:108:50 | reply.l ... tedCode | semmle.label | reply.l ... tedCode | +| graph-ql.js:18:10:18:17 | { expr } | semmle.label | { expr } | +| graph-ql.js:18:12:18:15 | expr | semmle.label | expr | +| graph-ql.js:20:19:20:22 | expr | semmle.label | expr | +| graph-ql.js:28:9:28:28 | { query, variables } | semmle.label | { query, variables } | +| graph-ql.js:28:11:28:15 | query | semmle.label | query | +| graph-ql.js:28:18:28:26 | variables | semmle.label | variables | +| graph-ql.js:28:32:28:39 | req.body | semmle.label | req.body | +| graph-ql.js:31:13:31:17 | query | semmle.label | query | +| graph-ql.js:33:21:33:29 | variables | semmle.label | variables | +| graph-ql.js:38:13:38:27 | { name, title } | semmle.label | { name, title } | +| graph-ql.js:38:15:38:18 | name | semmle.label | name | +| graph-ql.js:38:21:38:25 | title | semmle.label | title | +| graph-ql.js:39:19:39:22 | name | semmle.label | name | +| graph-ql.js:39:19:39:30 | name + title | semmle.label | name + title | +| graph-ql.js:39:26:39:30 | title | semmle.label | title | +| graph-ql.js:54:21:54:29 | variables | semmle.label | variables | | module.js:9:16:9:29 | req.query.code | semmle.label | req.query.code | | module.js:11:17:11:30 | req.query.code | semmle.label | req.query.code | | react-native.js:7:7:7:13 | tainted | semmle.label | tainted | diff --git a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/HeuristicSourceCodeInjection.expected b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/HeuristicSourceCodeInjection.expected index db39855c5e5..3d4022d8fb6 100644 --- a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/HeuristicSourceCodeInjection.expected +++ b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/HeuristicSourceCodeInjection.expected @@ -55,6 +55,23 @@ edges | fastify.js:106:9:106:17 | userInput | fastify.js:107:23:107:31 | userInput | provenance | | | fastify.js:106:21:106:33 | request.query | fastify.js:106:9:106:17 | userInput | provenance | | | fastify.js:106:21:106:38 | request.query.code | fastify.js:106:9:106:17 | userInput | provenance | | +| graph-ql.js:18:10:18:17 | { expr } | graph-ql.js:18:12:18:15 | expr | provenance | | +| graph-ql.js:18:12:18:15 | expr | graph-ql.js:20:19:20:22 | expr | provenance | | +| graph-ql.js:28:9:28:28 | { query, variables } | graph-ql.js:28:11:28:15 | query | provenance | | +| graph-ql.js:28:9:28:28 | { query, variables } | graph-ql.js:28:18:28:26 | variables | provenance | | +| graph-ql.js:28:11:28:15 | query | graph-ql.js:31:13:31:17 | query | provenance | | +| graph-ql.js:28:18:28:26 | variables | graph-ql.js:33:21:33:29 | variables | provenance | | +| graph-ql.js:28:18:28:26 | variables | graph-ql.js:54:21:54:29 | variables | provenance | | +| graph-ql.js:28:32:28:39 | req.body | graph-ql.js:28:9:28:28 | { query, variables } | provenance | | +| graph-ql.js:31:13:31:17 | query | graph-ql.js:18:10:18:17 | { expr } | provenance | | +| graph-ql.js:33:21:33:29 | variables | graph-ql.js:18:10:18:17 | { expr } | provenance | | +| graph-ql.js:38:13:38:27 | { name, title } | graph-ql.js:38:15:38:18 | name | provenance | | +| graph-ql.js:38:13:38:27 | { name, title } | graph-ql.js:38:21:38:25 | title | provenance | | +| graph-ql.js:38:15:38:18 | name | graph-ql.js:39:19:39:22 | name | provenance | | +| graph-ql.js:38:21:38:25 | title | graph-ql.js:39:26:39:30 | title | provenance | | +| graph-ql.js:39:19:39:22 | name | graph-ql.js:39:19:39:30 | name + title | provenance | | +| graph-ql.js:39:26:39:30 | title | graph-ql.js:39:19:39:30 | name + title | provenance | | +| graph-ql.js:54:21:54:29 | variables | graph-ql.js:38:13:38:27 | { name, title } | provenance | | | react-native.js:7:7:7:13 | tainted | react-native.js:8:32:8:38 | tainted | provenance | | | react-native.js:7:7:7:13 | tainted | react-native.js:10:23:10:29 | tainted | provenance | | | react-native.js:7:17:7:33 | req.param("code") | react-native.js:7:7:7:13 | tainted | provenance | | @@ -191,6 +208,22 @@ nodes | fastify.js:106:21:106:38 | request.query.code | semmle.label | request.query.code | | fastify.js:107:23:107:31 | userInput | semmle.label | userInput | | fastify.js:108:28:108:50 | reply.l ... tedCode | semmle.label | reply.l ... tedCode | +| graph-ql.js:18:10:18:17 | { expr } | semmle.label | { expr } | +| graph-ql.js:18:12:18:15 | expr | semmle.label | expr | +| graph-ql.js:20:19:20:22 | expr | semmle.label | expr | +| graph-ql.js:28:9:28:28 | { query, variables } | semmle.label | { query, variables } | +| graph-ql.js:28:11:28:15 | query | semmle.label | query | +| graph-ql.js:28:18:28:26 | variables | semmle.label | variables | +| graph-ql.js:28:32:28:39 | req.body | semmle.label | req.body | +| graph-ql.js:31:13:31:17 | query | semmle.label | query | +| graph-ql.js:33:21:33:29 | variables | semmle.label | variables | +| graph-ql.js:38:13:38:27 | { name, title } | semmle.label | { name, title } | +| graph-ql.js:38:15:38:18 | name | semmle.label | name | +| graph-ql.js:38:21:38:25 | title | semmle.label | title | +| graph-ql.js:39:19:39:22 | name | semmle.label | name | +| graph-ql.js:39:19:39:30 | name + title | semmle.label | name + title | +| graph-ql.js:39:26:39:30 | title | semmle.label | title | +| graph-ql.js:54:21:54:29 | variables | semmle.label | variables | | module.js:9:16:9:29 | req.query.code | semmle.label | req.query.code | | module.js:11:17:11:30 | req.query.code | semmle.label | req.query.code | | react-native.js:7:7:7:13 | tainted | semmle.label | tainted | diff --git a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/graph-ql.js b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/graph-ql.js new file mode 100644 index 00000000000..f68f47cf3ac --- /dev/null +++ b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/graph-ql.js @@ -0,0 +1,56 @@ +const express = require('express'); +const { graphql, buildSchema } = require('graphql'); + +const app = express(); +app.use(express.json()); + +const schema = buildSchema(` + type Query { + greet(name: String!): String + calc(expr: String!): String + } +`); + +const root = { + greet: ({ name }) => { + return `Hello, ${name}!`; + }, + calc: ({ expr }) => { + try { + return eval(expr).toString(); // $ Alert[js/code-injection] + } catch (e) { + return `Error: ${e.message}`; + } + } +}; + +app.post('/graphql', async (req, res) => { + const { query, variables } = req.body; // $ Source[js/code-injection] + const result = await graphql({ + schema, + source: query, + rootValue: root, + variableValues: variables + }); + res.json(result); + + const root1 = { + greet: ({ name, title }) => { + return eval(name + title).toString(); // $ Alert[js/code-injection] + } + }; + graphql({ + schema: buildSchema(` + type Query { + greet(name: String!, title: String): String + } + `), + source: ` + query GreetUser($name: String!, $title: String) { + greet(name: $name, title: $title) + } + `, + rootValue: root1, + variableValues: variables + }); +}); diff --git a/misc/bazel/3rdparty/py_deps/BUILD.bazel b/misc/bazel/3rdparty/py_deps/BUILD.bazel index f756b4a519f..86bfde26641 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.bazel @@ -80,26 +80,26 @@ alias( ) alias( - name = "tree-sitter-0.20.4", - actual = "@vendor_py__tree-sitter-0.20.4//:tree_sitter", + name = "tree-sitter-0.24.7", + actual = "@vendor_py__tree-sitter-0.24.7//:tree_sitter", tags = ["manual"], ) alias( name = "tree-sitter", - actual = "@vendor_py__tree-sitter-0.20.4//:tree_sitter", + actual = "@vendor_py__tree-sitter-0.24.7//:tree_sitter", tags = ["manual"], ) alias( - name = "tree-sitter-graph-0.7.0", - actual = "@vendor_py__tree-sitter-graph-0.7.0//:tree_sitter_graph", + name = "tree-sitter-graph-0.12.0", + actual = "@vendor_py__tree-sitter-graph-0.12.0//:tree_sitter_graph", tags = ["manual"], ) alias( name = "tree-sitter-graph", - actual = "@vendor_py__tree-sitter-graph-0.7.0//:tree_sitter_graph", + actual = "@vendor_py__tree-sitter-graph-0.12.0//:tree_sitter_graph", tags = ["manual"], ) diff --git a/misc/bazel/3rdparty/py_deps/BUILD.hashbrown-0.9.1.bazel b/misc/bazel/3rdparty/py_deps/BUILD.hashbrown-0.9.1.bazel deleted file mode 100644 index 15fc24acbf1..00000000000 --- a/misc/bazel/3rdparty/py_deps/BUILD.hashbrown-0.9.1.bazel +++ /dev/null @@ -1,99 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_py_deps -############################################################################### - -load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -cargo_toml_env_vars( - name = "cargo_toml_env_vars", - src = "Cargo.toml", -) - -rust_library( - name = "hashbrown", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_features = [ - "ahash", - "inline-more", - ], - crate_root = "src/lib.rs", - edition = "2018", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=hashbrown", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "0.9.1", - deps = [ - "@vendor_py__ahash-0.4.8//:ahash", - ], -) diff --git a/misc/bazel/3rdparty/py_deps/BUILD.ahash-0.4.8.bazel b/misc/bazel/3rdparty/py_deps/BUILD.streaming-iterator-0.1.9.bazel similarity index 96% rename from misc/bazel/3rdparty/py_deps/BUILD.ahash-0.4.8.bazel rename to misc/bazel/3rdparty/py_deps/BUILD.streaming-iterator-0.1.9.bazel index 057a5225197..2e3575479e8 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.ahash-0.4.8.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.streaming-iterator-0.1.9.bazel @@ -17,7 +17,7 @@ cargo_toml_env_vars( ) rust_library( - name = "ahash", + name = "streaming_iterator", srcs = glob( include = ["**/*.rs"], allow_empty = True, @@ -35,7 +35,7 @@ rust_library( ], ), crate_root = "src/lib.rs", - edition = "2018", + edition = "2021", rustc_env_files = [ ":cargo_toml_env_vars", ], @@ -44,7 +44,7 @@ rust_library( ], tags = [ "cargo-bazel", - "crate-name=ahash", + "crate-name=streaming-iterator", "manual", "noclippy", "norustfmt", @@ -88,5 +88,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.4.8", + version = "0.1.9", ) diff --git a/misc/bazel/3rdparty/py_deps/BUILD.string-interner-0.12.2.bazel b/misc/bazel/3rdparty/py_deps/BUILD.string-interner-0.12.2.bazel deleted file mode 100644 index 5e177a306e9..00000000000 --- a/misc/bazel/3rdparty/py_deps/BUILD.string-interner-0.12.2.bazel +++ /dev/null @@ -1,101 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_py_deps -############################################################################### - -load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -cargo_toml_env_vars( - name = "cargo_toml_env_vars", - src = "Cargo.toml", -) - -rust_library( - name = "string_interner", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_features = [ - "backends", - "inline-more", - "std", - ], - crate_root = "src/lib.rs", - edition = "2018", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=string-interner", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "0.12.2", - deps = [ - "@vendor_py__cfg-if-1.0.0//:cfg_if", - "@vendor_py__hashbrown-0.9.1//:hashbrown", - ], -) diff --git a/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-0.20.4.bazel b/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-0.24.7.bazel similarity index 90% rename from misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-0.20.4.bazel rename to misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-0.24.7.bazel index fea7b8b185e..312b70e2337 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-0.20.4.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-0.24.7.bazel @@ -38,8 +38,12 @@ rust_library( "WORKSPACE.bazel", ], ), + crate_features = [ + "default", + "std", + ], crate_root = "binding_rust/lib.rs", - edition = "2018", + edition = "2021", rustc_env_files = [ ":cargo_toml_env_vars", ], @@ -92,10 +96,13 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.20.4", + version = "0.24.7", deps = [ "@vendor_py__regex-1.11.1//:regex", - "@vendor_py__tree-sitter-0.20.4//:build_script_build", + "@vendor_py__regex-syntax-0.8.5//:regex_syntax", + "@vendor_py__streaming-iterator-0.1.9//:streaming_iterator", + "@vendor_py__tree-sitter-0.24.7//:build_script_build", + "@vendor_py__tree-sitter-language-0.1.5//:tree_sitter_language", ], ) @@ -118,6 +125,10 @@ cargo_build_script( "WORKSPACE.bazel", ], ), + crate_features = [ + "default", + "std", + ], crate_name = "build_script_build", crate_root = "binding_rust/build.rs", data = glob( @@ -132,7 +143,8 @@ cargo_build_script( "WORKSPACE.bazel", ], ), - edition = "2018", + edition = "2021", + links = "tree-sitter", pkg_name = "tree-sitter", rustc_env_files = [ ":cargo_toml_env_vars", @@ -147,7 +159,7 @@ cargo_build_script( "noclippy", "norustfmt", ], - version = "0.20.4", + version = "0.24.7", visibility = ["//visibility:private"], deps = [ "@vendor_py__cc-1.2.14//:cc", diff --git a/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-graph-0.7.0.bazel b/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-graph-0.12.0.bazel similarity index 96% rename from misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-graph-0.7.0.bazel rename to misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-graph-0.12.0.bazel index 4db3e576764..ad8dd864b00 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-graph-0.7.0.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-graph-0.12.0.bazel @@ -88,15 +88,15 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.7.0", + version = "0.12.0", deps = [ "@vendor_py__log-0.4.25//:log", "@vendor_py__regex-1.11.1//:regex", "@vendor_py__serde-1.0.217//:serde", "@vendor_py__serde_json-1.0.138//:serde_json", "@vendor_py__smallvec-1.14.0//:smallvec", - "@vendor_py__string-interner-0.12.2//:string_interner", + "@vendor_py__streaming-iterator-0.1.9//:streaming_iterator", "@vendor_py__thiserror-1.0.69//:thiserror", - "@vendor_py__tree-sitter-0.20.4//:tree_sitter", + "@vendor_py__tree-sitter-0.24.7//:tree_sitter", ], ) diff --git a/misc/bazel/3rdparty/py_deps/BUILD.cfg-if-1.0.0.bazel b/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-language-0.1.5.bazel similarity index 95% rename from misc/bazel/3rdparty/py_deps/BUILD.cfg-if-1.0.0.bazel rename to misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-language-0.1.5.bazel index da9dbdfb977..409bc07da9f 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.cfg-if-1.0.0.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-language-0.1.5.bazel @@ -17,7 +17,7 @@ cargo_toml_env_vars( ) rust_library( - name = "cfg_if", + name = "tree_sitter_language", srcs = glob( include = ["**/*.rs"], allow_empty = True, @@ -34,8 +34,8 @@ rust_library( "WORKSPACE.bazel", ], ), - crate_root = "src/lib.rs", - edition = "2018", + crate_root = "language.rs", + edition = "2021", rustc_env_files = [ ":cargo_toml_env_vars", ], @@ -44,7 +44,7 @@ rust_library( ], tags = [ "cargo-bazel", - "crate-name=cfg-if", + "crate-name=tree-sitter-language", "manual", "noclippy", "norustfmt", @@ -88,5 +88,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.0.0", + version = "0.1.5", ) diff --git a/misc/bazel/3rdparty/py_deps/defs.bzl b/misc/bazel/3rdparty/py_deps/defs.bzl index 9d78e46b2f8..ea04edbae03 100644 --- a/misc/bazel/3rdparty/py_deps/defs.bzl +++ b/misc/bazel/3rdparty/py_deps/defs.bzl @@ -298,13 +298,13 @@ _NORMAL_DEPENDENCIES = { "anyhow": Label("@vendor_py__anyhow-1.0.95//:anyhow"), "clap": Label("@vendor_py__clap-4.5.30//:clap"), "regex": Label("@vendor_py__regex-1.11.1//:regex"), - "tree-sitter": Label("@vendor_py__tree-sitter-0.20.4//:tree_sitter"), - "tree-sitter-graph": Label("@vendor_py__tree-sitter-graph-0.7.0//:tree_sitter_graph"), + "tree-sitter": Label("@vendor_py__tree-sitter-0.24.7//:tree_sitter"), + "tree-sitter-graph": Label("@vendor_py__tree-sitter-graph-0.12.0//:tree_sitter_graph"), }, }, "python/extractor/tsg-python/tsp": { _COMMON_CONDITION: { - "tree-sitter": Label("@vendor_py__tree-sitter-0.20.4//:tree_sitter"), + "tree-sitter": Label("@vendor_py__tree-sitter-0.24.7//:tree_sitter"), }, }, } @@ -452,16 +452,6 @@ def crate_repositories(): Returns: A list of repos visible to the module through the module extension. """ - maybe( - http_archive, - name = "vendor_py__ahash-0.4.8", - sha256 = "0453232ace82dee0dd0b4c87a59bd90f7b53b314f3e0f61fe2ee7c8a16482289", - type = "tar.gz", - urls = ["https://static.crates.io/crates/ahash/0.4.8/download"], - strip_prefix = "ahash-0.4.8", - build_file = Label("//misc/bazel/3rdparty/py_deps:BUILD.ahash-0.4.8.bazel"), - ) - maybe( http_archive, name = "vendor_py__aho-corasick-1.1.3", @@ -542,16 +532,6 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/py_deps:BUILD.cc-1.2.14.bazel"), ) - maybe( - http_archive, - name = "vendor_py__cfg-if-1.0.0", - sha256 = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd", - type = "tar.gz", - urls = ["https://static.crates.io/crates/cfg-if/1.0.0/download"], - strip_prefix = "cfg-if-1.0.0", - build_file = Label("//misc/bazel/3rdparty/py_deps:BUILD.cfg-if-1.0.0.bazel"), - ) - maybe( http_archive, name = "vendor_py__clap-4.5.30", @@ -592,16 +572,6 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/py_deps:BUILD.colorchoice-1.0.3.bazel"), ) - maybe( - http_archive, - name = "vendor_py__hashbrown-0.9.1", - sha256 = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04", - type = "tar.gz", - urls = ["https://static.crates.io/crates/hashbrown/0.9.1/download"], - strip_prefix = "hashbrown-0.9.1", - build_file = Label("//misc/bazel/3rdparty/py_deps:BUILD.hashbrown-0.9.1.bazel"), - ) - maybe( http_archive, name = "vendor_py__is_terminal_polyfill-1.70.1", @@ -764,12 +734,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_py__string-interner-0.12.2", - sha256 = "383196d1876517ee6f9f0864d1fc1070331b803335d3c6daaa04bbcccd823c08", + name = "vendor_py__streaming-iterator-0.1.9", + sha256 = "2b2231b7c3057d5e4ad0156fb3dc807d900806020c5ffa3ee6ff2c8c76fb8520", type = "tar.gz", - urls = ["https://static.crates.io/crates/string-interner/0.12.2/download"], - strip_prefix = "string-interner-0.12.2", - build_file = Label("//misc/bazel/3rdparty/py_deps:BUILD.string-interner-0.12.2.bazel"), + urls = ["https://static.crates.io/crates/streaming-iterator/0.1.9/download"], + strip_prefix = "streaming-iterator-0.1.9", + build_file = Label("//misc/bazel/3rdparty/py_deps:BUILD.streaming-iterator-0.1.9.bazel"), ) maybe( @@ -814,22 +784,32 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_py__tree-sitter-0.20.4", - sha256 = "4e34327f8eac545e3f037382471b2b19367725a242bba7bc45edb9efb49fe39a", + name = "vendor_py__tree-sitter-0.24.7", + sha256 = "a5387dffa7ffc7d2dae12b50c6f7aab8ff79d6210147c6613561fc3d474c6f75", type = "tar.gz", - urls = ["https://static.crates.io/crates/tree-sitter/0.20.4/download"], - strip_prefix = "tree-sitter-0.20.4", - build_file = Label("//misc/bazel/3rdparty/py_deps:BUILD.tree-sitter-0.20.4.bazel"), + urls = ["https://static.crates.io/crates/tree-sitter/0.24.7/download"], + strip_prefix = "tree-sitter-0.24.7", + build_file = Label("//misc/bazel/3rdparty/py_deps:BUILD.tree-sitter-0.24.7.bazel"), ) maybe( http_archive, - name = "vendor_py__tree-sitter-graph-0.7.0", - sha256 = "639d21e886f581d293de5f5081f09af003c54607ff3fa85efa159b243ba1f97a", + name = "vendor_py__tree-sitter-graph-0.12.0", + sha256 = "63f86eb73c7d891c4b9b6fe4d4e63dd94c506e4788af7c2296afdcfbeea626cc", type = "tar.gz", - urls = ["https://static.crates.io/crates/tree-sitter-graph/0.7.0/download"], - strip_prefix = "tree-sitter-graph-0.7.0", - build_file = Label("//misc/bazel/3rdparty/py_deps:BUILD.tree-sitter-graph-0.7.0.bazel"), + urls = ["https://static.crates.io/crates/tree-sitter-graph/0.12.0/download"], + strip_prefix = "tree-sitter-graph-0.12.0", + build_file = Label("//misc/bazel/3rdparty/py_deps:BUILD.tree-sitter-graph-0.12.0.bazel"), + ) + + maybe( + http_archive, + name = "vendor_py__tree-sitter-language-0.1.5", + sha256 = "c4013970217383f67b18aef68f6fb2e8d409bc5755227092d32efb0422ba24b8", + type = "tar.gz", + urls = ["https://static.crates.io/crates/tree-sitter-language/0.1.5/download"], + strip_prefix = "tree-sitter-language-0.1.5", + build_file = Label("//misc/bazel/3rdparty/py_deps:BUILD.tree-sitter-language-0.1.5.bazel"), ) maybe( @@ -957,6 +937,6 @@ def crate_repositories(): struct(repo = "vendor_py__cc-1.2.14", is_dev_dep = False), struct(repo = "vendor_py__clap-4.5.30", is_dev_dep = False), struct(repo = "vendor_py__regex-1.11.1", is_dev_dep = False), - struct(repo = "vendor_py__tree-sitter-0.20.4", is_dev_dep = False), - struct(repo = "vendor_py__tree-sitter-graph-0.7.0", is_dev_dep = False), + struct(repo = "vendor_py__tree-sitter-0.24.7", is_dev_dep = False), + struct(repo = "vendor_py__tree-sitter-graph-0.12.0", is_dev_dep = False), ] diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.adler2-2.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.adler2-2.0.1.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.adler2-2.0.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.adler2-2.0.1.bazel index 5ee0a08f4c7..61dd4b8015d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.adler2-2.0.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.adler2-2.0.1.bazel @@ -88,5 +88,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "2.0.0", + version = "2.0.1", ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.android-tzdata-0.1.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.android-tzdata-0.1.1.bazel deleted file mode 100644 index 8a7e7f71b1f..00000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.android-tzdata-0.1.1.bazel +++ /dev/null @@ -1,92 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -cargo_toml_env_vars( - name = "cargo_toml_env_vars", - src = "Cargo.toml", -) - -rust_library( - name = "android_tzdata", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_root = "src/lib.rs", - edition = "2018", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=android-tzdata", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "0.1.1", -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.android_system_properties-0.1.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.android_system_properties-0.1.5.bazel index 0d633d276d5..d53f2d8803f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.android_system_properties-0.1.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.android_system_properties-0.1.5.bazel @@ -90,6 +90,6 @@ rust_library( }), version = "0.1.5", deps = [ - "@vendor_ts__libc-0.2.174//:libc", + "@vendor_ts__libc-0.2.175//:libc", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstream-0.6.19.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstream-0.6.20.bazel similarity index 92% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstream-0.6.19.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstream-0.6.20.bazel index efabc537139..612f153cad1 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstream-0.6.19.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstream-0.6.20.bazel @@ -93,23 +93,23 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.6.19", + version = "0.6.20", deps = [ "@vendor_ts__anstyle-1.0.11//:anstyle", "@vendor_ts__anstyle-parse-0.2.7//:anstyle_parse", - "@vendor_ts__anstyle-query-1.1.3//:anstyle_query", + "@vendor_ts__anstyle-query-1.1.4//:anstyle_query", "@vendor_ts__colorchoice-1.0.4//:colorchoice", "@vendor_ts__is_terminal_polyfill-1.70.1//:is_terminal_polyfill", "@vendor_ts__utf8parse-0.2.2//:utf8parse", ] + select({ "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ - "@vendor_ts__anstyle-wincon-3.0.9//:anstyle_wincon", # aarch64-pc-windows-msvc + "@vendor_ts__anstyle-wincon-3.0.10//:anstyle_wincon", # aarch64-pc-windows-msvc ], "@rules_rust//rust/platform:i686-pc-windows-msvc": [ - "@vendor_ts__anstyle-wincon-3.0.9//:anstyle_wincon", # i686-pc-windows-msvc + "@vendor_ts__anstyle-wincon-3.0.10//:anstyle_wincon", # i686-pc-windows-msvc ], "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ - "@vendor_ts__anstyle-wincon-3.0.9//:anstyle_wincon", # x86_64-pc-windows-msvc + "@vendor_ts__anstyle-wincon-3.0.10//:anstyle_wincon", # x86_64-pc-windows-msvc ], "//conditions:default": [], }), diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-query-1.1.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-query-1.1.4.bazel similarity index 94% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-query-1.1.3.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-query-1.1.4.bazel index 04bdb7d5536..56c6b1fe921 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-query-1.1.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-query-1.1.4.bazel @@ -88,16 +88,16 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.1.3", + version = "1.1.4", deps = select({ "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ - "@vendor_ts__windows-sys-0.59.0//:windows_sys", # cfg(windows) + "@vendor_ts__windows-sys-0.60.2//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:i686-pc-windows-msvc": [ - "@vendor_ts__windows-sys-0.59.0//:windows_sys", # cfg(windows) + "@vendor_ts__windows-sys-0.60.2//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ - "@vendor_ts__windows-sys-0.59.0//:windows_sys", # cfg(windows) + "@vendor_ts__windows-sys-0.60.2//:windows_sys", # cfg(windows) ], "//conditions:default": [], }), diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-wincon-3.0.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-wincon-3.0.10.bazel similarity index 95% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-wincon-3.0.9.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-wincon-3.0.10.bazel index acb0616902e..6be501fabe1 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-wincon-3.0.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-wincon-3.0.10.bazel @@ -88,21 +88,21 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "3.0.9", + version = "3.0.10", deps = [ "@vendor_ts__anstyle-1.0.11//:anstyle", ] + select({ "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ "@vendor_ts__once_cell_polyfill-1.70.1//:once_cell_polyfill", # cfg(windows) - "@vendor_ts__windows-sys-0.59.0//:windows_sys", # cfg(windows) + "@vendor_ts__windows-sys-0.60.2//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:i686-pc-windows-msvc": [ "@vendor_ts__once_cell_polyfill-1.70.1//:once_cell_polyfill", # cfg(windows) - "@vendor_ts__windows-sys-0.59.0//:windows_sys", # cfg(windows) + "@vendor_ts__windows-sys-0.60.2//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ "@vendor_ts__once_cell_polyfill-1.70.1//:once_cell_polyfill", # cfg(windows) - "@vendor_ts__windows-sys-0.59.0//:windows_sys", # cfg(windows) + "@vendor_ts__windows-sys-0.60.2//:windows_sys", # cfg(windows) ], "//conditions:default": [], }), diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.argfile-0.2.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.argfile-0.2.1.bazel index c28444a73c1..5b77349d60f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.argfile-0.2.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.argfile-0.2.1.bazel @@ -94,6 +94,6 @@ rust_library( version = "0.2.1", deps = [ "@vendor_ts__fs-err-2.11.0//:fs_err", - "@vendor_ts__os_str_bytes-7.0.0//:os_str_bytes", + "@vendor_ts__os_str_bytes-7.1.1//:os_str_bytes", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.atomic-0.6.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.atomic-0.6.1.bazel similarity index 98% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.atomic-0.6.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.atomic-0.6.1.bazel index 4cb9d323813..f81c241a363 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.atomic-0.6.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.atomic-0.6.1.bazel @@ -92,8 +92,8 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.6.0", + version = "0.6.1", deps = [ - "@vendor_ts__bytemuck-1.21.0//:bytemuck", + "@vendor_ts__bytemuck-1.23.2//:bytemuck", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bazel index df61c70b249..720687fcb84 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bazel @@ -68,26 +68,26 @@ alias( ) alias( - name = "chrono-0.4.41", - actual = "@vendor_ts__chrono-0.4.41//:chrono", + name = "chrono-0.4.42", + actual = "@vendor_ts__chrono-0.4.42//:chrono", tags = ["manual"], ) alias( name = "chrono", - actual = "@vendor_ts__chrono-0.4.41//:chrono", + actual = "@vendor_ts__chrono-0.4.42//:chrono", tags = ["manual"], ) alias( - name = "clap-4.5.44", - actual = "@vendor_ts__clap-4.5.44//:clap", + name = "clap-4.5.47", + actual = "@vendor_ts__clap-4.5.47//:clap", tags = ["manual"], ) alias( name = "clap", - actual = "@vendor_ts__clap-4.5.44//:clap", + actual = "@vendor_ts__clap-4.5.47//:clap", tags = ["manual"], ) @@ -140,14 +140,14 @@ alias( ) alias( - name = "flate2-1.1.0", - actual = "@vendor_ts__flate2-1.1.0//:flate2", + name = "flate2-1.1.2", + actual = "@vendor_ts__flate2-1.1.2//:flate2", tags = ["manual"], ) alias( name = "flate2", - actual = "@vendor_ts__flate2-1.1.0//:flate2", + actual = "@vendor_ts__flate2-1.1.2//:flate2", tags = ["manual"], ) @@ -164,14 +164,14 @@ alias( ) alias( - name = "globset-0.4.15", - actual = "@vendor_ts__globset-0.4.15//:globset", + name = "globset-0.4.16", + actual = "@vendor_ts__globset-0.4.16//:globset", tags = ["manual"], ) alias( name = "globset", - actual = "@vendor_ts__globset-0.4.15//:globset", + actual = "@vendor_ts__globset-0.4.16//:globset", tags = ["manual"], ) @@ -236,14 +236,14 @@ alias( ) alias( - name = "proc-macro2-1.0.97", - actual = "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + name = "proc-macro2-1.0.101", + actual = "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", tags = ["manual"], ) alias( name = "proc-macro2", - actual = "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + actual = "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", tags = ["manual"], ) @@ -260,200 +260,200 @@ alias( ) alias( - name = "ra_ap_base_db-0.0.300", - actual = "@vendor_ts__ra_ap_base_db-0.0.300//:ra_ap_base_db", + name = "ra_ap_base_db-0.0.301", + actual = "@vendor_ts__ra_ap_base_db-0.0.301//:ra_ap_base_db", tags = ["manual"], ) alias( name = "ra_ap_base_db", - actual = "@vendor_ts__ra_ap_base_db-0.0.300//:ra_ap_base_db", + actual = "@vendor_ts__ra_ap_base_db-0.0.301//:ra_ap_base_db", tags = ["manual"], ) alias( - name = "ra_ap_cfg-0.0.300", - actual = "@vendor_ts__ra_ap_cfg-0.0.300//:ra_ap_cfg", + name = "ra_ap_cfg-0.0.301", + actual = "@vendor_ts__ra_ap_cfg-0.0.301//:ra_ap_cfg", tags = ["manual"], ) alias( name = "ra_ap_cfg", - actual = "@vendor_ts__ra_ap_cfg-0.0.300//:ra_ap_cfg", + actual = "@vendor_ts__ra_ap_cfg-0.0.301//:ra_ap_cfg", tags = ["manual"], ) alias( - name = "ra_ap_hir-0.0.300", - actual = "@vendor_ts__ra_ap_hir-0.0.300//:ra_ap_hir", + name = "ra_ap_hir-0.0.301", + actual = "@vendor_ts__ra_ap_hir-0.0.301//:ra_ap_hir", tags = ["manual"], ) alias( name = "ra_ap_hir", - actual = "@vendor_ts__ra_ap_hir-0.0.300//:ra_ap_hir", + actual = "@vendor_ts__ra_ap_hir-0.0.301//:ra_ap_hir", tags = ["manual"], ) alias( - name = "ra_ap_hir_def-0.0.300", - actual = "@vendor_ts__ra_ap_hir_def-0.0.300//:ra_ap_hir_def", + name = "ra_ap_hir_def-0.0.301", + actual = "@vendor_ts__ra_ap_hir_def-0.0.301//:ra_ap_hir_def", tags = ["manual"], ) alias( name = "ra_ap_hir_def", - actual = "@vendor_ts__ra_ap_hir_def-0.0.300//:ra_ap_hir_def", + actual = "@vendor_ts__ra_ap_hir_def-0.0.301//:ra_ap_hir_def", tags = ["manual"], ) alias( - name = "ra_ap_hir_expand-0.0.300", - actual = "@vendor_ts__ra_ap_hir_expand-0.0.300//:ra_ap_hir_expand", + name = "ra_ap_hir_expand-0.0.301", + actual = "@vendor_ts__ra_ap_hir_expand-0.0.301//:ra_ap_hir_expand", tags = ["manual"], ) alias( name = "ra_ap_hir_expand", - actual = "@vendor_ts__ra_ap_hir_expand-0.0.300//:ra_ap_hir_expand", + actual = "@vendor_ts__ra_ap_hir_expand-0.0.301//:ra_ap_hir_expand", tags = ["manual"], ) alias( - name = "ra_ap_hir_ty-0.0.300", - actual = "@vendor_ts__ra_ap_hir_ty-0.0.300//:ra_ap_hir_ty", + name = "ra_ap_hir_ty-0.0.301", + actual = "@vendor_ts__ra_ap_hir_ty-0.0.301//:ra_ap_hir_ty", tags = ["manual"], ) alias( name = "ra_ap_hir_ty", - actual = "@vendor_ts__ra_ap_hir_ty-0.0.300//:ra_ap_hir_ty", + actual = "@vendor_ts__ra_ap_hir_ty-0.0.301//:ra_ap_hir_ty", tags = ["manual"], ) alias( - name = "ra_ap_ide_db-0.0.300", - actual = "@vendor_ts__ra_ap_ide_db-0.0.300//:ra_ap_ide_db", + name = "ra_ap_ide_db-0.0.301", + actual = "@vendor_ts__ra_ap_ide_db-0.0.301//:ra_ap_ide_db", tags = ["manual"], ) alias( name = "ra_ap_ide_db", - actual = "@vendor_ts__ra_ap_ide_db-0.0.300//:ra_ap_ide_db", + actual = "@vendor_ts__ra_ap_ide_db-0.0.301//:ra_ap_ide_db", tags = ["manual"], ) alias( - name = "ra_ap_intern-0.0.300", - actual = "@vendor_ts__ra_ap_intern-0.0.300//:ra_ap_intern", + name = "ra_ap_intern-0.0.301", + actual = "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern", tags = ["manual"], ) alias( name = "ra_ap_intern", - actual = "@vendor_ts__ra_ap_intern-0.0.300//:ra_ap_intern", + actual = "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern", tags = ["manual"], ) alias( - name = "ra_ap_load-cargo-0.0.300", - actual = "@vendor_ts__ra_ap_load-cargo-0.0.300//:ra_ap_load_cargo", + name = "ra_ap_load-cargo-0.0.301", + actual = "@vendor_ts__ra_ap_load-cargo-0.0.301//:ra_ap_load_cargo", tags = ["manual"], ) alias( name = "ra_ap_load-cargo", - actual = "@vendor_ts__ra_ap_load-cargo-0.0.300//:ra_ap_load_cargo", + actual = "@vendor_ts__ra_ap_load-cargo-0.0.301//:ra_ap_load_cargo", tags = ["manual"], ) alias( - name = "ra_ap_parser-0.0.300", - actual = "@vendor_ts__ra_ap_parser-0.0.300//:ra_ap_parser", + name = "ra_ap_parser-0.0.301", + actual = "@vendor_ts__ra_ap_parser-0.0.301//:ra_ap_parser", tags = ["manual"], ) alias( name = "ra_ap_parser", - actual = "@vendor_ts__ra_ap_parser-0.0.300//:ra_ap_parser", + actual = "@vendor_ts__ra_ap_parser-0.0.301//:ra_ap_parser", tags = ["manual"], ) alias( - name = "ra_ap_paths-0.0.300", - actual = "@vendor_ts__ra_ap_paths-0.0.300//:ra_ap_paths", + name = "ra_ap_paths-0.0.301", + actual = "@vendor_ts__ra_ap_paths-0.0.301//:ra_ap_paths", tags = ["manual"], ) alias( name = "ra_ap_paths", - actual = "@vendor_ts__ra_ap_paths-0.0.300//:ra_ap_paths", + actual = "@vendor_ts__ra_ap_paths-0.0.301//:ra_ap_paths", tags = ["manual"], ) alias( - name = "ra_ap_project_model-0.0.300", - actual = "@vendor_ts__ra_ap_project_model-0.0.300//:ra_ap_project_model", + name = "ra_ap_project_model-0.0.301", + actual = "@vendor_ts__ra_ap_project_model-0.0.301//:ra_ap_project_model", tags = ["manual"], ) alias( name = "ra_ap_project_model", - actual = "@vendor_ts__ra_ap_project_model-0.0.300//:ra_ap_project_model", + actual = "@vendor_ts__ra_ap_project_model-0.0.301//:ra_ap_project_model", tags = ["manual"], ) alias( - name = "ra_ap_span-0.0.300", - actual = "@vendor_ts__ra_ap_span-0.0.300//:ra_ap_span", + name = "ra_ap_span-0.0.301", + actual = "@vendor_ts__ra_ap_span-0.0.301//:ra_ap_span", tags = ["manual"], ) alias( name = "ra_ap_span", - actual = "@vendor_ts__ra_ap_span-0.0.300//:ra_ap_span", + actual = "@vendor_ts__ra_ap_span-0.0.301//:ra_ap_span", tags = ["manual"], ) alias( - name = "ra_ap_stdx-0.0.300", - actual = "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx", + name = "ra_ap_stdx-0.0.301", + actual = "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx", tags = ["manual"], ) alias( - name = "stdx-0.0.300", - actual = "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx", + name = "stdx-0.0.301", + actual = "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx", tags = ["manual"], ) alias( name = "stdx", - actual = "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx", + actual = "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx", tags = ["manual"], ) alias( - name = "ra_ap_syntax-0.0.300", - actual = "@vendor_ts__ra_ap_syntax-0.0.300//:ra_ap_syntax", + name = "ra_ap_syntax-0.0.301", + actual = "@vendor_ts__ra_ap_syntax-0.0.301//:ra_ap_syntax", tags = ["manual"], ) alias( name = "ra_ap_syntax", - actual = "@vendor_ts__ra_ap_syntax-0.0.300//:ra_ap_syntax", + actual = "@vendor_ts__ra_ap_syntax-0.0.301//:ra_ap_syntax", tags = ["manual"], ) alias( - name = "ra_ap_vfs-0.0.300", - actual = "@vendor_ts__ra_ap_vfs-0.0.300//:ra_ap_vfs", + name = "ra_ap_vfs-0.0.301", + actual = "@vendor_ts__ra_ap_vfs-0.0.301//:ra_ap_vfs", tags = ["manual"], ) alias( name = "ra_ap_vfs", - actual = "@vendor_ts__ra_ap_vfs-0.0.300//:ra_ap_vfs", + actual = "@vendor_ts__ra_ap_vfs-0.0.301//:ra_ap_vfs", tags = ["manual"], ) @@ -470,26 +470,26 @@ alias( ) alias( - name = "rayon-1.10.0", - actual = "@vendor_ts__rayon-1.10.0//:rayon", + name = "rayon-1.11.0", + actual = "@vendor_ts__rayon-1.11.0//:rayon", tags = ["manual"], ) alias( name = "rayon", - actual = "@vendor_ts__rayon-1.10.0//:rayon", + actual = "@vendor_ts__rayon-1.11.0//:rayon", tags = ["manual"], ) alias( - name = "regex-1.11.1", - actual = "@vendor_ts__regex-1.11.1//:regex", + name = "regex-1.11.2", + actual = "@vendor_ts__regex-1.11.2//:regex", tags = ["manual"], ) alias( name = "regex", - actual = "@vendor_ts__regex-1.11.1//:regex", + actual = "@vendor_ts__regex-1.11.2//:regex", tags = ["manual"], ) @@ -506,14 +506,14 @@ alias( ) alias( - name = "serde_json-1.0.142", - actual = "@vendor_ts__serde_json-1.0.142//:serde_json", + name = "serde_json-1.0.143", + actual = "@vendor_ts__serde_json-1.0.143//:serde_json", tags = ["manual"], ) alias( name = "serde_json", - actual = "@vendor_ts__serde_json-1.0.142//:serde_json", + actual = "@vendor_ts__serde_json-1.0.143//:serde_json", tags = ["manual"], ) @@ -530,14 +530,14 @@ alias( ) alias( - name = "syn-2.0.104", - actual = "@vendor_ts__syn-2.0.104//:syn", + name = "syn-2.0.106", + actual = "@vendor_ts__syn-2.0.106//:syn", tags = ["manual"], ) alias( name = "syn", - actual = "@vendor_ts__syn-2.0.104//:syn", + actual = "@vendor_ts__syn-2.0.106//:syn", tags = ["manual"], ) @@ -578,26 +578,26 @@ alias( ) alias( - name = "tracing-subscriber-0.3.19", - actual = "@vendor_ts__tracing-subscriber-0.3.19//:tracing_subscriber", + name = "tracing-subscriber-0.3.20", + actual = "@vendor_ts__tracing-subscriber-0.3.20//:tracing_subscriber", tags = ["manual"], ) alias( name = "tracing-subscriber", - actual = "@vendor_ts__tracing-subscriber-0.3.19//:tracing_subscriber", + actual = "@vendor_ts__tracing-subscriber-0.3.20//:tracing_subscriber", tags = ["manual"], ) alias( - name = "tree-sitter-0.24.6", - actual = "@vendor_ts__tree-sitter-0.24.6//:tree_sitter", + name = "tree-sitter-0.25.9", + actual = "@vendor_ts__tree-sitter-0.25.9//:tree_sitter", tags = ["manual"], ) alias( name = "tree-sitter", - actual = "@vendor_ts__tree-sitter-0.24.6//:tree_sitter", + actual = "@vendor_ts__tree-sitter-0.25.9//:tree_sitter", tags = ["manual"], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-2.9.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-2.9.4.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-2.9.1.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-2.9.4.bazel index fbb0a5c3656..f4b462ce131 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-2.9.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-2.9.4.bazel @@ -88,5 +88,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "2.9.1", + version = "2.9.4", ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.boxcar-0.2.13.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.boxcar-0.2.14.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.boxcar-0.2.13.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.boxcar-0.2.14.bazel index ac24b2ad629..2286d8017db 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.boxcar-0.2.13.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.boxcar-0.2.14.bazel @@ -88,5 +88,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.2.13", + version = "0.2.14", ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bstr-1.11.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bstr-1.12.0.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bstr-1.11.3.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bstr-1.12.0.bazel index 1793e0d7dae..0433f5fe907 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bstr-1.11.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bstr-1.12.0.bazel @@ -92,7 +92,7 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.11.3", + version = "1.12.0", deps = [ "@vendor_ts__memchr-2.7.5//:memchr", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bytemuck-1.21.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bytemuck-1.23.2.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bytemuck-1.21.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bytemuck-1.23.2.bazel index cf7710e627d..ce1e2725e32 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bytemuck-1.21.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bytemuck-1.23.2.bazel @@ -88,5 +88,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.21.0", + version = "1.23.2", ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.camino-1.1.10.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.camino-1.1.12.bazel similarity index 97% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.camino-1.1.10.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.camino-1.1.12.bazel index f7df381842e..9a90162b227 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.camino-1.1.10.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.camino-1.1.12.bazel @@ -96,9 +96,9 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.1.10", + version = "1.1.12", deps = [ - "@vendor_ts__camino-1.1.10//:build_script_build", + "@vendor_ts__camino-1.1.12//:build_script_build", "@vendor_ts__serde-1.0.219//:serde", ], ) @@ -155,7 +155,7 @@ cargo_build_script( "noclippy", "norustfmt", ], - version = "1.1.10", + version = "1.1.12", visibility = ["//visibility:private"], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-util-schemas-0.8.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-util-schemas-0.8.2.bazel index a4d476d9ad9..d0dfee25c63 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-util-schemas-0.8.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-util-schemas-0.8.2.bazel @@ -92,11 +92,11 @@ rust_library( deps = [ "@vendor_ts__semver-1.0.26//:semver", "@vendor_ts__serde-1.0.219//:serde", - "@vendor_ts__serde-untagged-0.1.7//:serde_untagged", + "@vendor_ts__serde-untagged-0.1.8//:serde_untagged", "@vendor_ts__serde-value-0.7.0//:serde_value", - "@vendor_ts__thiserror-2.0.12//:thiserror", + "@vendor_ts__thiserror-2.0.16//:thiserror", "@vendor_ts__toml-0.8.23//:toml", "@vendor_ts__unicode-xid-0.2.6//:unicode_xid", - "@vendor_ts__url-2.5.4//:url", + "@vendor_ts__url-2.5.7//:url", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo_metadata-0.21.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo_metadata-0.21.0.bazel index 37ecc0be0e0..c96de37e116 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo_metadata-0.21.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo_metadata-0.21.0.bazel @@ -93,12 +93,12 @@ rust_library( }), version = "0.21.0", deps = [ - "@vendor_ts__camino-1.1.10//:camino", + "@vendor_ts__camino-1.1.12//:camino", "@vendor_ts__cargo-platform-0.2.0//:cargo_platform", "@vendor_ts__cargo-util-schemas-0.8.2//:cargo_util_schemas", "@vendor_ts__semver-1.0.26//:semver", "@vendor_ts__serde-1.0.219//:serde", - "@vendor_ts__serde_json-1.0.142//:serde_json", - "@vendor_ts__thiserror-2.0.12//:thiserror", + "@vendor_ts__serde_json-1.0.143//:serde_json", + "@vendor_ts__thiserror-2.0.16//:thiserror", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cc-1.2.29.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cc-1.2.37.bazel similarity index 85% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cc-1.2.29.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cc-1.2.37.bazel index 94f1085dc75..ab0df21161a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cc-1.2.29.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cc-1.2.37.bazel @@ -91,43 +91,44 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.2.29", + version = "1.2.37", deps = [ - "@vendor_ts__jobserver-0.1.32//:jobserver", + "@vendor_ts__find-msvc-tools-0.1.1//:find_msvc_tools", + "@vendor_ts__jobserver-0.1.34//:jobserver", "@vendor_ts__shlex-1.3.0//:shlex", ] + select({ "@rules_rust//rust/platform:aarch64-apple-darwin": [ - "@vendor_ts__libc-0.2.174//:libc", # aarch64-apple-darwin + "@vendor_ts__libc-0.2.175//:libc", # aarch64-apple-darwin ], "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # aarch64-unknown-linux-gnu + "@vendor_ts__libc-0.2.175//:libc", # aarch64-unknown-linux-gnu ], "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu + "@vendor_ts__libc-0.2.175//:libc", # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu ], "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.174//:libc", # arm-unknown-linux-gnueabi + "@vendor_ts__libc-0.2.175//:libc", # arm-unknown-linux-gnueabi ], "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # i686-unknown-linux-gnu + "@vendor_ts__libc-0.2.175//:libc", # i686-unknown-linux-gnu ], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # powerpc-unknown-linux-gnu + "@vendor_ts__libc-0.2.175//:libc", # powerpc-unknown-linux-gnu ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # s390x-unknown-linux-gnu + "@vendor_ts__libc-0.2.175//:libc", # s390x-unknown-linux-gnu ], "@rules_rust//rust/platform:x86_64-apple-darwin": [ - "@vendor_ts__libc-0.2.174//:libc", # x86_64-apple-darwin + "@vendor_ts__libc-0.2.175//:libc", # x86_64-apple-darwin ], "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ - "@vendor_ts__libc-0.2.174//:libc", # x86_64-unknown-freebsd + "@vendor_ts__libc-0.2.175//:libc", # x86_64-unknown-freebsd ], "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # x86_64-unknown-linux-gnu + "@vendor_ts__libc-0.2.175//:libc", # x86_64-unknown-linux-gnu ], "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu + "@vendor_ts__libc-0.2.175//:libc", # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu ], "//conditions:default": [], }), diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg-if-1.0.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg-if-1.0.3.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg-if-1.0.1.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg-if-1.0.3.bazel index 3c46f710630..ca5231827c8 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg-if-1.0.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg-if-1.0.3.bazel @@ -88,5 +88,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.0.1", + version = "1.0.3", ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-derive-0.103.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-derive-0.103.0.bazel index 43156f3cd95..5f533839888 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-derive-0.103.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-derive-0.103.0.bazel @@ -90,9 +90,9 @@ rust_proc_macro( }), version = "0.103.0", deps = [ - "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.104//:syn", + "@vendor_ts__syn-2.0.106//:syn", "@vendor_ts__synstructure-0.13.2//:synstructure", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-derive-0.104.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-derive-0.104.0.bazel index b37413cd6c0..cd0251c5806 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-derive-0.104.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-derive-0.104.0.bazel @@ -90,9 +90,9 @@ rust_proc_macro( }), version = "0.104.0", deps = [ - "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.104//:syn", + "@vendor_ts__syn-2.0.106//:syn", "@vendor_ts__synstructure-0.13.2//:synstructure", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-ir-0.103.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-ir-0.103.0.bazel index 1e3c900ab90..efafd49d342 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-ir-0.103.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-ir-0.103.0.bazel @@ -93,6 +93,6 @@ rust_library( }), version = "0.103.0", deps = [ - "@vendor_ts__bitflags-2.9.1//:bitflags", + "@vendor_ts__bitflags-2.9.4//:bitflags", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-ir-0.104.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-ir-0.104.0.bazel index 16b835996d6..60a6ae9176f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-ir-0.104.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-ir-0.104.0.bazel @@ -93,6 +93,6 @@ rust_library( }), version = "0.104.0", deps = [ - "@vendor_ts__bitflags-2.9.1//:bitflags", + "@vendor_ts__bitflags-2.9.4//:bitflags", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-solve-0.103.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-solve-0.103.0.bazel index 4966053d4f3..9f0abb9530a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-solve-0.103.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-solve-0.103.0.bazel @@ -95,7 +95,7 @@ rust_library( deps = [ "@vendor_ts__chalk-ir-0.103.0//:chalk_ir", "@vendor_ts__ena-0.14.3//:ena", - "@vendor_ts__indexmap-2.10.0//:indexmap", + "@vendor_ts__indexmap-2.11.1//:indexmap", "@vendor_ts__itertools-0.12.1//:itertools", "@vendor_ts__petgraph-0.6.5//:petgraph", "@vendor_ts__rustc-hash-1.1.0//:rustc_hash", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chrono-0.4.41.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chrono-0.4.42.bazel similarity index 92% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chrono-0.4.41.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chrono-0.4.42.bazel index c96eee26669..f6c987b4f92 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chrono-0.4.41.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chrono-0.4.42.bazel @@ -36,7 +36,6 @@ rust_library( ), crate_features = [ "alloc", - "android-tzdata", "clock", "default", "iana-time-zone", @@ -104,7 +103,7 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.4.41", + version = "0.4.42", deps = [ "@vendor_ts__num-traits-0.2.19//:num_traits", "@vendor_ts__serde-1.0.219//:serde", @@ -119,11 +118,10 @@ rust_library( "@vendor_ts__iana-time-zone-0.1.63//:iana_time_zone", # aarch64-apple-ios-sim ], "@rules_rust//rust/platform:aarch64-linux-android": [ - "@vendor_ts__android-tzdata-0.1.1//:android_tzdata", # aarch64-linux-android "@vendor_ts__iana-time-zone-0.1.63//:iana_time_zone", # aarch64-linux-android ], "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ - "@vendor_ts__windows-link-0.1.3//:windows_link", # aarch64-pc-windows-msvc + "@vendor_ts__windows-link-0.2.0//:windows_link", # aarch64-pc-windows-msvc ], "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [ "@vendor_ts__iana-time-zone-0.1.63//:iana_time_zone", # aarch64-unknown-fuchsia @@ -141,7 +139,6 @@ rust_library( "@vendor_ts__iana-time-zone-0.1.63//:iana_time_zone", # arm-unknown-linux-gnueabi ], "@rules_rust//rust/platform:armv7-linux-androideabi": [ - "@vendor_ts__android-tzdata-0.1.1//:android_tzdata", # armv7-linux-androideabi "@vendor_ts__iana-time-zone-0.1.63//:iana_time_zone", # armv7-linux-androideabi ], "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [ @@ -151,11 +148,10 @@ rust_library( "@vendor_ts__iana-time-zone-0.1.63//:iana_time_zone", # i686-apple-darwin ], "@rules_rust//rust/platform:i686-linux-android": [ - "@vendor_ts__android-tzdata-0.1.1//:android_tzdata", # i686-linux-android "@vendor_ts__iana-time-zone-0.1.63//:iana_time_zone", # i686-linux-android ], "@rules_rust//rust/platform:i686-pc-windows-msvc": [ - "@vendor_ts__windows-link-0.1.3//:windows_link", # i686-pc-windows-msvc + "@vendor_ts__windows-link-0.2.0//:windows_link", # i686-pc-windows-msvc ], "@rules_rust//rust/platform:i686-unknown-freebsd": [ "@vendor_ts__iana-time-zone-0.1.63//:iana_time_zone", # i686-unknown-freebsd @@ -170,8 +166,8 @@ rust_library( "@vendor_ts__iana-time-zone-0.1.63//:iana_time_zone", # s390x-unknown-linux-gnu ], "@rules_rust//rust/platform:wasm32-unknown-unknown": [ - "@vendor_ts__js-sys-0.3.77//:js_sys", # wasm32-unknown-unknown - "@vendor_ts__wasm-bindgen-0.2.100//:wasm_bindgen", # wasm32-unknown-unknown + "@vendor_ts__js-sys-0.3.78//:js_sys", # wasm32-unknown-unknown + "@vendor_ts__wasm-bindgen-0.2.101//:wasm_bindgen", # wasm32-unknown-unknown ], "@rules_rust//rust/platform:x86_64-apple-darwin": [ "@vendor_ts__iana-time-zone-0.1.63//:iana_time_zone", # x86_64-apple-darwin @@ -180,11 +176,10 @@ rust_library( "@vendor_ts__iana-time-zone-0.1.63//:iana_time_zone", # x86_64-apple-ios ], "@rules_rust//rust/platform:x86_64-linux-android": [ - "@vendor_ts__android-tzdata-0.1.1//:android_tzdata", # x86_64-linux-android "@vendor_ts__iana-time-zone-0.1.63//:iana_time_zone", # x86_64-linux-android ], "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ - "@vendor_ts__windows-link-0.1.3//:windows_link", # x86_64-pc-windows-msvc + "@vendor_ts__windows-link-0.2.0//:windows_link", # x86_64-pc-windows-msvc ], "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ "@vendor_ts__iana-time-zone-0.1.63//:iana_time_zone", # x86_64-unknown-freebsd diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap-4.5.44.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap-4.5.47.bazel similarity index 96% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap-4.5.44.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap-4.5.47.bazel index df9619c99ea..6156a05c6ff 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap-4.5.44.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap-4.5.47.bazel @@ -47,7 +47,7 @@ rust_library( crate_root = "src/lib.rs", edition = "2021", proc_macro_deps = [ - "@vendor_ts__clap_derive-4.5.41//:clap_derive", + "@vendor_ts__clap_derive-4.5.47//:clap_derive", ], rustc_env_files = [ ":cargo_toml_env_vars", @@ -101,8 +101,8 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "4.5.44", + version = "4.5.47", deps = [ - "@vendor_ts__clap_builder-4.5.44//:clap_builder", + "@vendor_ts__clap_builder-4.5.47//:clap_builder", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_builder-4.5.44.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_builder-4.5.47.bazel similarity index 98% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_builder-4.5.44.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_builder-4.5.47.bazel index 639d48d4637..70d56783478 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_builder-4.5.44.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_builder-4.5.47.bazel @@ -96,9 +96,9 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "4.5.44", + version = "4.5.47", deps = [ - "@vendor_ts__anstream-0.6.19//:anstream", + "@vendor_ts__anstream-0.6.20//:anstream", "@vendor_ts__anstyle-1.0.11//:anstyle", "@vendor_ts__clap_lex-0.7.5//:clap_lex", "@vendor_ts__strsim-0.11.1//:strsim", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_derive-4.5.41.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_derive-4.5.47.bazel similarity index 96% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_derive-4.5.41.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_derive-4.5.47.bazel index 177f948947f..1f2d042d69d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_derive-4.5.41.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_derive-4.5.47.bazel @@ -91,11 +91,11 @@ rust_proc_macro( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "4.5.41", + version = "4.5.47", deps = [ "@vendor_ts__heck-0.5.0//:heck", - "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.104//:syn", + "@vendor_ts__syn-2.0.106//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cov-mark-2.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cov-mark-2.1.0.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cov-mark-2.0.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cov-mark-2.1.0.bazel index 3c562e624d0..a63921c3b4a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cov-mark-2.0.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cov-mark-2.1.0.bazel @@ -92,5 +92,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "2.0.0", + version = "2.1.0", ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crc32fast-1.4.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crc32fast-1.4.2.bazel deleted file mode 100644 index 24f106b3eda..00000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crc32fast-1.4.2.bazel +++ /dev/null @@ -1,99 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -cargo_toml_env_vars( - name = "cargo_toml_env_vars", - src = "Cargo.toml", -) - -rust_library( - name = "crc32fast", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_features = [ - "default", - "std", - ], - crate_root = "src/lib.rs", - edition = "2015", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=crc32fast", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "1.4.2", - deps = [ - "@vendor_ts__cfg-if-1.0.1//:cfg_if", - ], -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crc32fast-1.5.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crc32fast-1.5.0.bazel new file mode 100644 index 00000000000..b3a40b976a8 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crc32fast-1.5.0.bazel @@ -0,0 +1,166 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load( + "@rules_rust//cargo:defs.bzl", + "cargo_build_script", + "cargo_toml_env_vars", +) +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "crc32fast", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "default", + "std", + ], + crate_root = "src/lib.rs", + edition = "2021", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=crc32fast", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "1.5.0", + deps = [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", + "@vendor_ts__crc32fast-1.5.0//:build_script_build", + ], +) + +cargo_build_script( + name = "_bs", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + "**/*.rs", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "default", + "std", + ], + crate_name = "build_script_build", + crate_root = "build.rs", + data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + edition = "2021", + pkg_name = "crc32fast", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=crc32fast", + "manual", + "noclippy", + "norustfmt", + ], + version = "1.5.0", + visibility = ["//visibility:private"], +) + +alias( + name = "build_script_build", + actual = ":_bs", + tags = ["manual"], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_core-0.20.11.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_core-0.20.11.bazel index 3f33e24ebe2..8fe1dfc0606 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_core-0.20.11.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_core-0.20.11.bazel @@ -96,9 +96,9 @@ rust_library( deps = [ "@vendor_ts__fnv-1.0.7//:fnv", "@vendor_ts__ident_case-1.0.1//:ident_case", - "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", "@vendor_ts__strsim-0.11.1//:strsim", - "@vendor_ts__syn-2.0.104//:syn", + "@vendor_ts__syn-2.0.106//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_macro-0.20.11.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_macro-0.20.11.bazel index f4d01d9198e..c32d23d3c48 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_macro-0.20.11.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_macro-0.20.11.bazel @@ -92,6 +92,6 @@ rust_proc_macro( deps = [ "@vendor_ts__darling_core-0.20.11//:darling_core", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.104//:syn", + "@vendor_ts__syn-2.0.106//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dashmap-6.1.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dashmap-6.1.0.bazel index e4f933a3d51..6a7ea421553 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dashmap-6.1.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dashmap-6.1.0.bazel @@ -94,7 +94,7 @@ rust_library( }), version = "6.1.0", deps = [ - "@vendor_ts__cfg-if-1.0.1//:cfg_if", + "@vendor_ts__cfg-if-1.0.3//:cfg_if", "@vendor_ts__crossbeam-utils-0.8.21//:crossbeam_utils", "@vendor_ts__hashbrown-0.14.5//:hashbrown", "@vendor_ts__lock_api-0.4.13//:lock_api", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.deranged-0.4.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.deranged-0.5.3.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.deranged-0.4.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.deranged-0.5.3.bazel index c25fab4a1ad..262c356a1ba 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.deranged-0.4.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.deranged-0.5.3.bazel @@ -88,5 +88,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.4.0", + version = "0.5.3", ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.displaydoc-0.2.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.displaydoc-0.2.5.bazel index 7c6b8f96bbf..a486cb7c128 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.displaydoc-0.2.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.displaydoc-0.2.5.bazel @@ -90,8 +90,8 @@ rust_proc_macro( }), version = "0.2.5", deps = [ - "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.104//:syn", + "@vendor_ts__syn-2.0.106//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dyn-clone-1.0.19.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dyn-clone-1.0.20.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dyn-clone-1.0.19.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dyn-clone-1.0.20.bazel index 448bf06fc09..0510a623902 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dyn-clone-1.0.19.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dyn-clone-1.0.20.bazel @@ -88,5 +88,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.0.19", + version = "1.0.20", ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ena-0.14.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ena-0.14.3.bazel index d006d25618c..50d4b33db9a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ena-0.14.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ena-0.14.3.bazel @@ -90,6 +90,6 @@ rust_library( }), version = "0.14.3", deps = [ - "@vendor_ts__log-0.4.27//:log", + "@vendor_ts__log-0.4.28//:log", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.figment-0.10.19.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.figment-0.10.19.bazel index 9569df15a02..8b6d7b8c56c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.figment-0.10.19.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.figment-0.10.19.bazel @@ -108,46 +108,46 @@ rust_library( "@vendor_ts__uncased-0.9.10//:uncased", ] + select({ "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ - "@vendor_ts__atomic-0.6.0//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) + "@vendor_ts__atomic-0.6.1//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) ], "@rules_rust//rust/platform:armv7-linux-androideabi": [ - "@vendor_ts__atomic-0.6.0//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) + "@vendor_ts__atomic-0.6.1//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) ], "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [ - "@vendor_ts__atomic-0.6.0//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) + "@vendor_ts__atomic-0.6.1//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) ], "@rules_rust//rust/platform:i686-apple-darwin": [ - "@vendor_ts__atomic-0.6.0//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) + "@vendor_ts__atomic-0.6.1//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) ], "@rules_rust//rust/platform:i686-linux-android": [ - "@vendor_ts__atomic-0.6.0//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) + "@vendor_ts__atomic-0.6.1//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) ], "@rules_rust//rust/platform:i686-pc-windows-msvc": [ - "@vendor_ts__atomic-0.6.0//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) + "@vendor_ts__atomic-0.6.1//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) ], "@rules_rust//rust/platform:i686-unknown-freebsd": [ - "@vendor_ts__atomic-0.6.0//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) + "@vendor_ts__atomic-0.6.1//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) ], "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ - "@vendor_ts__atomic-0.6.0//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) + "@vendor_ts__atomic-0.6.1//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) ], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ - "@vendor_ts__atomic-0.6.0//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) + "@vendor_ts__atomic-0.6.1//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) ], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [ - "@vendor_ts__atomic-0.6.0//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) + "@vendor_ts__atomic-0.6.1//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) ], "@rules_rust//rust/platform:thumbv7em-none-eabi": [ - "@vendor_ts__atomic-0.6.0//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) + "@vendor_ts__atomic-0.6.1//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) ], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [ - "@vendor_ts__atomic-0.6.0//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) + "@vendor_ts__atomic-0.6.1//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) ], "@rules_rust//rust/platform:wasm32-unknown-unknown": [ - "@vendor_ts__atomic-0.6.0//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) + "@vendor_ts__atomic-0.6.1//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) ], "@rules_rust//rust/platform:wasm32-wasip1": [ - "@vendor_ts__atomic-0.6.0//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) + "@vendor_ts__atomic-0.6.1//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) ], "//conditions:default": [], }), diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.overload-0.1.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.find-msvc-tools-0.1.1.bazel similarity index 98% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.overload-0.1.1.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.find-msvc-tools-0.1.1.bazel index 047ca4a2489..d956f008444 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.overload-0.1.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.find-msvc-tools-0.1.1.bazel @@ -17,7 +17,7 @@ cargo_toml_env_vars( ) rust_library( - name = "overload", + name = "find_msvc_tools", srcs = glob( include = ["**/*.rs"], allow_empty = True, @@ -44,7 +44,7 @@ rust_library( ], tags = [ "cargo-bazel", - "crate-name=overload", + "crate-name=find-msvc-tools", "manual", "noclippy", "norustfmt", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.flate2-1.1.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.flate2-1.1.2.bazel similarity index 96% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.flate2-1.1.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.flate2-1.1.2.bazel index 47ffe2a16c7..b06683055f3 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.flate2-1.1.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.flate2-1.1.2.bazel @@ -94,9 +94,9 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.1.0", + version = "1.1.2", deps = [ - "@vendor_ts__crc32fast-1.4.2//:crc32fast", - "@vendor_ts__miniz_oxide-0.8.5//:miniz_oxide", + "@vendor_ts__crc32fast-1.5.0//:crc32fast", + "@vendor_ts__miniz_oxide-0.8.9//:miniz_oxide", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.form_urlencoded-1.2.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.form_urlencoded-1.2.2.bazel similarity index 97% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.form_urlencoded-1.2.1.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.form_urlencoded-1.2.2.bazel index be5dbcf148d..e0bb0c5b348 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.form_urlencoded-1.2.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.form_urlencoded-1.2.2.bazel @@ -92,8 +92,8 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.2.1", + version = "1.2.2", deps = [ - "@vendor_ts__percent-encoding-2.3.1//:percent_encoding", + "@vendor_ts__percent-encoding-2.3.2//:percent_encoding", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fsevent-sys-4.1.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fsevent-sys-4.1.0.bazel index f6e6c4fad54..ae27e0cf00e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fsevent-sys-4.1.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fsevent-sys-4.1.0.bazel @@ -90,6 +90,6 @@ rust_library( }), version = "4.1.0", deps = [ - "@vendor_ts__libc-0.2.174//:libc", + "@vendor_ts__libc-0.2.175//:libc", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.getrandom-0.3.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.getrandom-0.3.3.bazel index 54516ab2d7a..49103f0d303 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.getrandom-0.3.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.getrandom-0.3.3.bazel @@ -97,74 +97,74 @@ rust_library( }), version = "0.3.3", deps = [ - "@vendor_ts__cfg-if-1.0.1//:cfg_if", + "@vendor_ts__cfg-if-1.0.3//:cfg_if", "@vendor_ts__getrandom-0.3.3//:build_script_build", ] + select({ "@rules_rust//rust/platform:aarch64-apple-darwin": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(any(target_os = "macos", target_os = "openbsd", target_os = "vita", target_os = "emscripten")) + "@vendor_ts__libc-0.2.175//:libc", # cfg(any(target_os = "macos", target_os = "openbsd", target_os = "vita", target_os = "emscripten")) ], "@rules_rust//rust/platform:aarch64-apple-ios": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(any(target_os = "ios", target_os = "visionos", target_os = "watchos", target_os = "tvos")) + "@vendor_ts__libc-0.2.175//:libc", # cfg(any(target_os = "ios", target_os = "visionos", target_os = "watchos", target_os = "tvos")) ], "@rules_rust//rust/platform:aarch64-apple-ios-sim": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(any(target_os = "ios", target_os = "visionos", target_os = "watchos", target_os = "tvos")) + "@vendor_ts__libc-0.2.175//:libc", # cfg(any(target_os = "ios", target_os = "visionos", target_os = "watchos", target_os = "tvos")) ], "@rules_rust//rust/platform:aarch64-linux-android": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) + "@vendor_ts__libc-0.2.175//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) + "@vendor_ts__libc-0.2.175//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) + "@vendor_ts__libc-0.2.175//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(any(target_os = "haiku", target_os = "redox", target_os = "nto", target_os = "aix")) + "@vendor_ts__libc-0.2.175//:libc", # cfg(any(target_os = "haiku", target_os = "redox", target_os = "nto", target_os = "aix")) ], "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) + "@vendor_ts__libc-0.2.175//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], "@rules_rust//rust/platform:armv7-linux-androideabi": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) + "@vendor_ts__libc-0.2.175//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) + "@vendor_ts__libc-0.2.175//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], "@rules_rust//rust/platform:i686-apple-darwin": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(any(target_os = "macos", target_os = "openbsd", target_os = "vita", target_os = "emscripten")) + "@vendor_ts__libc-0.2.175//:libc", # cfg(any(target_os = "macos", target_os = "openbsd", target_os = "vita", target_os = "emscripten")) ], "@rules_rust//rust/platform:i686-linux-android": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) + "@vendor_ts__libc-0.2.175//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], "@rules_rust//rust/platform:i686-unknown-freebsd": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(any(target_os = "dragonfly", target_os = "freebsd", target_os = "hurd", target_os = "illumos", target_os = "cygwin", all(target_os = "horizon", target_arch = "arm"))) + "@vendor_ts__libc-0.2.175//:libc", # cfg(any(target_os = "dragonfly", target_os = "freebsd", target_os = "hurd", target_os = "illumos", target_os = "cygwin", all(target_os = "horizon", target_arch = "arm"))) ], "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) + "@vendor_ts__libc-0.2.175//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) + "@vendor_ts__libc-0.2.175//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) + "@vendor_ts__libc-0.2.175//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], "@rules_rust//rust/platform:x86_64-apple-darwin": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(any(target_os = "macos", target_os = "openbsd", target_os = "vita", target_os = "emscripten")) + "@vendor_ts__libc-0.2.175//:libc", # cfg(any(target_os = "macos", target_os = "openbsd", target_os = "vita", target_os = "emscripten")) ], "@rules_rust//rust/platform:x86_64-apple-ios": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(any(target_os = "ios", target_os = "visionos", target_os = "watchos", target_os = "tvos")) + "@vendor_ts__libc-0.2.175//:libc", # cfg(any(target_os = "ios", target_os = "visionos", target_os = "watchos", target_os = "tvos")) ], "@rules_rust//rust/platform:x86_64-linux-android": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) + "@vendor_ts__libc-0.2.175//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(any(target_os = "dragonfly", target_os = "freebsd", target_os = "hurd", target_os = "illumos", target_os = "cygwin", all(target_os = "horizon", target_arch = "arm"))) + "@vendor_ts__libc-0.2.175//:libc", # cfg(any(target_os = "dragonfly", target_os = "freebsd", target_os = "hurd", target_os = "illumos", target_os = "cygwin", all(target_os = "horizon", target_arch = "arm"))) ], "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) + "@vendor_ts__libc-0.2.175//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) + "@vendor_ts__libc-0.2.175//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], "//conditions:default": [], }), diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.globset-0.4.15.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.globset-0.4.16.bazel similarity index 94% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.globset-0.4.15.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.globset-0.4.16.bazel index 23ffeea84c3..6c5f8cd7929 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.globset-0.4.15.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.globset-0.4.16.bazel @@ -92,12 +92,12 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.4.15", + version = "0.4.16", deps = [ "@vendor_ts__aho-corasick-1.1.3//:aho_corasick", - "@vendor_ts__bstr-1.11.3//:bstr", - "@vendor_ts__log-0.4.27//:log", - "@vendor_ts__regex-automata-0.4.9//:regex_automata", - "@vendor_ts__regex-syntax-0.8.5//:regex_syntax", + "@vendor_ts__bstr-1.12.0//:bstr", + "@vendor_ts__log-0.4.28//:log", + "@vendor_ts__regex-automata-0.4.10//:regex_automata", + "@vendor_ts__regex-syntax-0.8.6//:regex_syntax", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.15.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.15.5.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.15.4.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.15.5.bazel index e787c0b73f3..4f57dca3c97 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.15.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.15.5.bazel @@ -96,7 +96,7 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.15.4", + version = "0.15.5", deps = [ "@vendor_ts__allocator-api2-0.2.21//:allocator_api2", "@vendor_ts__equivalent-1.0.2//:equivalent", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashlink-0.10.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashlink-0.10.0.bazel index cede17426a8..785d16ee293 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashlink-0.10.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashlink-0.10.0.bazel @@ -90,6 +90,6 @@ rust_library( }), version = "0.10.0", deps = [ - "@vendor_ts__hashbrown-0.15.4//:hashbrown", + "@vendor_ts__hashbrown-0.15.5//:hashbrown", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.iana-time-zone-0.1.63.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.iana-time-zone-0.1.63.bazel index 19f17469001..b3e809c2090 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.iana-time-zone-0.1.63.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.iana-time-zone-0.1.63.bazel @@ -121,9 +121,9 @@ rust_library( "@vendor_ts__windows-core-0.61.2//:windows_core", # cfg(target_os = "windows") ], "@rules_rust//rust/platform:wasm32-unknown-unknown": [ - "@vendor_ts__js-sys-0.3.77//:js_sys", # cfg(all(target_arch = "wasm32", target_os = "unknown")) - "@vendor_ts__log-0.4.27//:log", # cfg(all(target_arch = "wasm32", target_os = "unknown")) - "@vendor_ts__wasm-bindgen-0.2.100//:wasm_bindgen", # cfg(all(target_arch = "wasm32", target_os = "unknown")) + "@vendor_ts__js-sys-0.3.78//:js_sys", # cfg(all(target_arch = "wasm32", target_os = "unknown")) + "@vendor_ts__log-0.4.28//:log", # cfg(all(target_arch = "wasm32", target_os = "unknown")) + "@vendor_ts__wasm-bindgen-0.2.101//:wasm_bindgen", # cfg(all(target_arch = "wasm32", target_os = "unknown")) ], "@rules_rust//rust/platform:x86_64-apple-darwin": [ "@vendor_ts__core-foundation-sys-0.8.7//:core_foundation_sys", # cfg(target_vendor = "apple") diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.iana-time-zone-haiku-0.1.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.iana-time-zone-haiku-0.1.2.bazel index ac8feaf79a2..7de07c3e66d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.iana-time-zone-haiku-0.1.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.iana-time-zone-haiku-0.1.2.bazel @@ -149,7 +149,7 @@ cargo_build_script( version = "0.1.2", visibility = ["//visibility:private"], deps = [ - "@vendor_ts__cc-1.2.29//:cc", + "@vendor_ts__cc-1.2.37//:cc", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_collections-2.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_collections-2.0.0.bazel index 73ee415f9a1..c15de7a0de7 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_collections-2.0.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_collections-2.0.0.bazel @@ -93,9 +93,9 @@ rust_library( }), version = "2.0.0", deps = [ - "@vendor_ts__potential_utf-0.1.2//:potential_utf", + "@vendor_ts__potential_utf-0.1.3//:potential_utf", "@vendor_ts__yoke-0.8.0//:yoke", "@vendor_ts__zerofrom-0.1.6//:zerofrom", - "@vendor_ts__zerovec-0.11.2//:zerovec", + "@vendor_ts__zerovec-0.11.4//:zerovec", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_locale_core-2.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_locale_core-2.0.0.bazel index 91cf4cab296..fe541bdd5d9 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_locale_core-2.0.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_locale_core-2.0.0.bazel @@ -99,6 +99,6 @@ rust_library( "@vendor_ts__litemap-0.8.0//:litemap", "@vendor_ts__tinystr-0.8.1//:tinystr", "@vendor_ts__writeable-0.6.1//:writeable", - "@vendor_ts__zerovec-0.11.2//:zerovec", + "@vendor_ts__zerovec-0.11.4//:zerovec", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_normalizer-2.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_normalizer-2.0.0.bazel index f604cf034a9..0d7fa879c94 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_normalizer-2.0.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_normalizer-2.0.0.bazel @@ -100,6 +100,6 @@ rust_library( "@vendor_ts__icu_normalizer_data-2.0.0//:icu_normalizer_data", "@vendor_ts__icu_provider-2.0.0//:icu_provider", "@vendor_ts__smallvec-1.15.1//:smallvec", - "@vendor_ts__zerovec-0.11.2//:zerovec", + "@vendor_ts__zerovec-0.11.4//:zerovec", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_properties-2.0.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_properties-2.0.1.bazel index cee332f06e1..0775afcb043 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_properties-2.0.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_properties-2.0.1.bazel @@ -100,8 +100,8 @@ rust_library( "@vendor_ts__icu_locale_core-2.0.0//:icu_locale_core", "@vendor_ts__icu_properties_data-2.0.1//:icu_properties_data", "@vendor_ts__icu_provider-2.0.0//:icu_provider", - "@vendor_ts__potential_utf-0.1.2//:potential_utf", + "@vendor_ts__potential_utf-0.1.3//:potential_utf", "@vendor_ts__zerotrie-0.2.2//:zerotrie", - "@vendor_ts__zerovec-0.11.2//:zerovec", + "@vendor_ts__zerovec-0.11.4//:zerovec", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_provider-2.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_provider-2.0.0.bazel index 0a9c998ee12..42dc4eb7c34 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_provider-2.0.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_provider-2.0.0.bazel @@ -104,6 +104,6 @@ rust_library( "@vendor_ts__yoke-0.8.0//:yoke", "@vendor_ts__zerofrom-0.1.6//:zerofrom", "@vendor_ts__zerotrie-0.2.2//:zerotrie", - "@vendor_ts__zerovec-0.11.2//:zerovec", + "@vendor_ts__zerovec-0.11.4//:zerovec", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.idna-1.0.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.idna-1.1.0.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.idna-1.0.3.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.idna-1.1.0.bazel index ca624309664..1e4fe273978 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.idna-1.0.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.idna-1.1.0.bazel @@ -93,7 +93,7 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.0.3", + version = "1.1.0", deps = [ "@vendor_ts__idna_adapter-1.2.1//:idna_adapter", "@vendor_ts__smallvec-1.15.1//:smallvec", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-2.10.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-2.11.1.bazel similarity index 98% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-2.10.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-2.11.1.bazel index 110e79e3f12..c3763099eb8 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-2.10.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-2.11.1.bazel @@ -93,10 +93,10 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "2.10.0", + version = "2.11.1", deps = [ "@vendor_ts__equivalent-1.0.2//:equivalent", - "@vendor_ts__hashbrown-0.15.4//:hashbrown", + "@vendor_ts__hashbrown-0.15.5//:hashbrown", "@vendor_ts__serde-1.0.219//:serde", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-0.11.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-0.11.0.bazel index 455b1ada88b..31a69e5e760 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-0.11.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-0.11.0.bazel @@ -90,8 +90,8 @@ rust_library( }), version = "0.11.0", deps = [ - "@vendor_ts__bitflags-2.9.1//:bitflags", + "@vendor_ts__bitflags-2.9.4//:bitflags", "@vendor_ts__inotify-sys-0.1.5//:inotify_sys", - "@vendor_ts__libc-0.2.174//:libc", + "@vendor_ts__libc-0.2.175//:libc", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-sys-0.1.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-sys-0.1.5.bazel index 64a360cc60b..757c2e30a5b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-sys-0.1.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-sys-0.1.5.bazel @@ -90,6 +90,6 @@ rust_library( }), version = "0.1.5", deps = [ - "@vendor_ts__libc-0.2.174//:libc", + "@vendor_ts__libc-0.2.175//:libc", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jobserver-0.1.32.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jobserver-0.1.32.bazel deleted file mode 100644 index 5e1bfd6978c..00000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jobserver-0.1.32.bazel +++ /dev/null @@ -1,167 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -cargo_toml_env_vars( - name = "cargo_toml_env_vars", - src = "Cargo.toml", -) - -rust_library( - name = "jobserver", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_root = "src/lib.rs", - edition = "2021", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=jobserver", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "0.1.32", - deps = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:aarch64-apple-ios": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:aarch64-linux-android": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:armv7-linux-androideabi": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:i686-apple-darwin": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:i686-linux-android": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:i686-unknown-freebsd": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:x86_64-apple-darwin": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:x86_64-apple-ios": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:x86_64-linux-android": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) - ], - "//conditions:default": [], - }), -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.filetime-0.2.25.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jobserver-0.1.34.bazel similarity index 75% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.filetime-0.2.25.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jobserver-0.1.34.bazel index 35820d594a5..c92c87746bf 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.filetime-0.2.25.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jobserver-0.1.34.bazel @@ -17,7 +17,7 @@ cargo_toml_env_vars( ) rust_library( - name = "filetime", + name = "jobserver", srcs = glob( include = ["**/*.rs"], allow_empty = True, @@ -35,7 +35,7 @@ rust_library( ], ), crate_root = "src/lib.rs", - edition = "2018", + edition = "2021", rustc_env_files = [ ":cargo_toml_env_vars", ], @@ -44,7 +44,7 @@ rust_library( ], tags = [ "cargo-bazel", - "crate-name=filetime", + "crate-name=jobserver", "manual", "noclippy", "norustfmt", @@ -88,90 +88,88 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.2.25", - deps = [ - "@vendor_ts__cfg-if-1.0.1//:cfg_if", - ] + select({ + version = "0.1.34", + deps = select({ "@rules_rust//rust/platform:aarch64-apple-darwin": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-apple-ios": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-apple-ios-sim": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-linux-android": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ - "@vendor_ts__windows-sys-0.59.0//:windows_sys", # cfg(windows) + "@vendor_ts__getrandom-0.3.3//:getrandom", # cfg(windows) ], "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:armv7-linux-androideabi": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-apple-darwin": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-linux-android": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-pc-windows-msvc": [ - "@vendor_ts__windows-sys-0.59.0//:windows_sys", # cfg(windows) + "@vendor_ts__getrandom-0.3.3//:getrandom", # cfg(windows) ], "@rules_rust//rust/platform:i686-unknown-freebsd": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-apple-darwin": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-apple-ios": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-linux-android": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ - "@vendor_ts__windows-sys-0.59.0//:windows_sys", # cfg(windows) + "@vendor_ts__getrandom-0.3.3//:getrandom", # cfg(windows) ], "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "//conditions:default": [], }), diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.js-sys-0.3.77.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.js-sys-0.3.78.bazel similarity index 97% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.js-sys-0.3.77.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.js-sys-0.3.78.bazel index c7cad35aed5..e7d05a34f21 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.js-sys-0.3.77.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.js-sys-0.3.78.bazel @@ -92,9 +92,9 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.3.77", + version = "0.3.78", deps = [ "@vendor_ts__once_cell-1.21.3//:once_cell", - "@vendor_ts__wasm-bindgen-0.2.100//:wasm_bindgen", + "@vendor_ts__wasm-bindgen-0.2.101//:wasm_bindgen", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-1.1.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-1.1.1.bazel index d2fcbb68bae..81d5b18a81b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-1.1.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-1.1.1.bazel @@ -91,6 +91,6 @@ rust_library( version = "1.1.1", deps = [ "@vendor_ts__kqueue-sys-1.0.4//:kqueue_sys", - "@vendor_ts__libc-0.2.174//:libc", + "@vendor_ts__libc-0.2.175//:libc", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-sys-1.0.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-sys-1.0.4.bazel index ad1e457dfe6..46c5f37608f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-sys-1.0.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-sys-1.0.4.bazel @@ -91,6 +91,6 @@ rust_library( version = "1.0.4", deps = [ "@vendor_ts__bitflags-1.3.2//:bitflags", - "@vendor_ts__libc-0.2.174//:libc", + "@vendor_ts__libc-0.2.175//:libc", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libc-0.2.174.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libc-0.2.175.bazel similarity index 97% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libc-0.2.174.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libc-0.2.175.bazel index 55fe8a8115b..4aad3afd224 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libc-0.2.174.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libc-0.2.175.bazel @@ -96,9 +96,9 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.2.174", + version = "0.2.175", deps = [ - "@vendor_ts__libc-0.2.174//:build_script_build", + "@vendor_ts__libc-0.2.175//:build_script_build", ], ) @@ -154,7 +154,7 @@ cargo_build_script( "noclippy", "norustfmt", ], - version = "0.2.174", + version = "0.2.175", visibility = ["//visibility:private"], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libredox-0.1.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libredox-0.1.4.bazel deleted file mode 100644 index 606bd2a2595..00000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libredox-0.1.4.bazel +++ /dev/null @@ -1,97 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -cargo_toml_env_vars( - name = "cargo_toml_env_vars", - src = "Cargo.toml", -) - -rust_library( - name = "libredox", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_root = "src/lib.rs", - edition = "2021", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=libredox", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "0.1.4", - deps = [ - "@vendor_ts__bitflags-2.9.1//:bitflags", - "@vendor_ts__libc-0.2.174//:libc", - "@vendor_ts__redox_syscall-0.5.13//:syscall", - ], -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.log-0.3.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.log-0.3.9.bazel index cc061b625ca..961aa4b6dab 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.log-0.3.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.log-0.3.9.bazel @@ -94,6 +94,6 @@ rust_library( }), version = "0.3.9", deps = [ - "@vendor_ts__log-0.4.27//:log", + "@vendor_ts__log-0.4.28//:log", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.log-0.4.27.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.log-0.4.28.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.log-0.4.27.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.log-0.4.28.bazel index 8e1f8897335..8d88e063c67 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.log-0.4.27.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.log-0.4.28.bazel @@ -91,5 +91,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.4.27", + version = "0.4.28", ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.matchers-0.1.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.matchers-0.2.0.bazel similarity index 97% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.matchers-0.1.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.matchers-0.2.0.bazel index 9a3778fcabc..4ba33942822 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.matchers-0.1.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.matchers-0.2.0.bazel @@ -88,8 +88,8 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.1.0", + version = "0.2.0", deps = [ - "@vendor_ts__regex-automata-0.1.10//:regex_automata", + "@vendor_ts__regex-automata-0.4.10//:regex_automata", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miniz_oxide-0.8.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miniz_oxide-0.8.9.bazel similarity index 98% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miniz_oxide-0.8.5.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miniz_oxide-0.8.9.bazel index bc02579b4ea..80d0e6c3fc0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miniz_oxide-0.8.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miniz_oxide-0.8.9.bazel @@ -91,8 +91,8 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.8.5", + version = "0.8.9", deps = [ - "@vendor_ts__adler2-2.0.0//:adler2", + "@vendor_ts__adler2-2.0.1//:adler2", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.mio-1.0.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.mio-1.0.4.bazel index 098fbb7173c..28e096bc418 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.mio-1.0.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.mio-1.0.4.bazel @@ -96,92 +96,92 @@ rust_library( }), version = "1.0.4", deps = [ - "@vendor_ts__log-0.4.27//:log", + "@vendor_ts__log-0.4.28//:log", ] + select({ "@rules_rust//rust/platform:aarch64-apple-darwin": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-apple-ios": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-apple-ios-sim": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-linux-android": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ "@vendor_ts__windows-sys-0.59.0//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:armv7-linux-androideabi": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-apple-darwin": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-linux-android": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-pc-windows-msvc": [ "@vendor_ts__windows-sys-0.59.0//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:i686-unknown-freebsd": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:wasm32-wasip1": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(target_os = "wasi") + "@vendor_ts__libc-0.2.175//:libc", # cfg(target_os = "wasi") "@vendor_ts__wasi-0.11.1-wasi-snapshot-preview1//:wasi", # cfg(target_os = "wasi") ], "@rules_rust//rust/platform:x86_64-apple-darwin": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-apple-ios": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-linux-android": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ "@vendor_ts__windows-sys-0.59.0//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "//conditions:default": [], }), diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miow-0.6.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miow-0.6.1.bazel similarity index 97% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miow-0.6.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miow-0.6.1.bazel index 6f99dee0d2d..af5955087e3 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miow-0.6.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miow-0.6.1.bazel @@ -88,8 +88,8 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.6.0", + version = "0.6.1", deps = [ - "@vendor_ts__windows-sys-0.48.0//:windows_sys", + "@vendor_ts__windows-sys-0.61.0//:windows_sys", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.notify-8.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.notify-8.2.0.bazel similarity index 95% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.notify-8.0.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.notify-8.2.0.bazel index 70889e441f0..ffba7968026 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.notify-8.0.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.notify-8.2.0.bazel @@ -93,16 +93,15 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "8.0.0", + version = "8.2.0", deps = [ - "@vendor_ts__filetime-0.2.25//:filetime", - "@vendor_ts__libc-0.2.174//:libc", - "@vendor_ts__log-0.4.27//:log", + "@vendor_ts__libc-0.2.175//:libc", + "@vendor_ts__log-0.4.28//:log", "@vendor_ts__notify-types-2.0.0//:notify_types", "@vendor_ts__walkdir-2.5.0//:walkdir", ] + select({ "@rules_rust//rust/platform:aarch64-apple-darwin": [ - "@vendor_ts__bitflags-2.9.1//:bitflags", # cfg(target_os = "macos") + "@vendor_ts__bitflags-2.9.4//:bitflags", # cfg(target_os = "macos") "@vendor_ts__fsevent-sys-4.1.0//:fsevent_sys", # aarch64-apple-darwin ], "@rules_rust//rust/platform:aarch64-apple-ios": [ @@ -118,7 +117,7 @@ rust_library( "@vendor_ts__mio-1.0.4//:mio", # cfg(any(target_os = "linux", target_os = "android")) ], "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ - "@vendor_ts__windows-sys-0.59.0//:windows_sys", # cfg(windows) + "@vendor_ts__windows-sys-0.60.2//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ "@vendor_ts__inotify-0.11.0//:inotify", # cfg(any(target_os = "linux", target_os = "android")) @@ -141,7 +140,7 @@ rust_library( "@vendor_ts__mio-1.0.4//:mio", # cfg(any(target_os = "linux", target_os = "android")) ], "@rules_rust//rust/platform:i686-apple-darwin": [ - "@vendor_ts__bitflags-2.9.1//:bitflags", # cfg(target_os = "macos") + "@vendor_ts__bitflags-2.9.4//:bitflags", # cfg(target_os = "macos") "@vendor_ts__fsevent-sys-4.1.0//:fsevent_sys", # i686-apple-darwin ], "@rules_rust//rust/platform:i686-linux-android": [ @@ -149,7 +148,7 @@ rust_library( "@vendor_ts__mio-1.0.4//:mio", # cfg(any(target_os = "linux", target_os = "android")) ], "@rules_rust//rust/platform:i686-pc-windows-msvc": [ - "@vendor_ts__windows-sys-0.59.0//:windows_sys", # cfg(windows) + "@vendor_ts__windows-sys-0.60.2//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:i686-unknown-freebsd": [ "@vendor_ts__kqueue-1.1.1//:kqueue", # cfg(any(target_os = "freebsd", target_os = "openbsd", target_os = "netbsd", target_os = "dragonflybsd", target_os = "ios")) @@ -168,7 +167,7 @@ rust_library( "@vendor_ts__mio-1.0.4//:mio", # cfg(any(target_os = "linux", target_os = "android")) ], "@rules_rust//rust/platform:x86_64-apple-darwin": [ - "@vendor_ts__bitflags-2.9.1//:bitflags", # cfg(target_os = "macos") + "@vendor_ts__bitflags-2.9.4//:bitflags", # cfg(target_os = "macos") "@vendor_ts__fsevent-sys-4.1.0//:fsevent_sys", # x86_64-apple-darwin ], "@rules_rust//rust/platform:x86_64-apple-ios": [ @@ -180,7 +179,7 @@ rust_library( "@vendor_ts__mio-1.0.4//:mio", # cfg(any(target_os = "linux", target_os = "android")) ], "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ - "@vendor_ts__windows-sys-0.59.0//:windows_sys", # cfg(windows) + "@vendor_ts__windows-sys-0.60.2//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ "@vendor_ts__kqueue-1.1.1//:kqueue", # cfg(any(target_os = "freebsd", target_os = "openbsd", target_os = "netbsd", target_os = "dragonflybsd", target_os = "ios")) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.nu-ansi-term-0.46.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.nu-ansi-term-0.50.1.bazel similarity index 82% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.nu-ansi-term-0.46.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.nu-ansi-term-0.50.1.bazel index b436335be0c..1e9f6c7d54a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.nu-ansi-term-0.46.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.nu-ansi-term-0.50.1.bazel @@ -22,6 +22,18 @@ rust_library( include = ["**/*.rs"], allow_empty = True, ), + aliases = select({ + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": { + "@vendor_ts__windows-sys-0.52.0//:windows_sys": "windows", # cfg(windows) + }, + "@rules_rust//rust/platform:i686-pc-windows-msvc": { + "@vendor_ts__windows-sys-0.52.0//:windows_sys": "windows", # cfg(windows) + }, + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": { + "@vendor_ts__windows-sys-0.52.0//:windows_sys": "windows", # cfg(windows) + }, + "//conditions:default": {}, + }), compile_data = glob( include = ["**"], allow_empty = True, @@ -35,7 +47,7 @@ rust_library( ], ), crate_root = "src/lib.rs", - edition = "2018", + edition = "2021", rustc_env_files = [ ":cargo_toml_env_vars", ], @@ -88,18 +100,16 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.46.0", - deps = [ - "@vendor_ts__overload-0.1.1//:overload", - ] + select({ + version = "0.50.1", + deps = select({ "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ - "@vendor_ts__winapi-0.3.9//:winapi", # cfg(target_os = "windows") + "@vendor_ts__windows-sys-0.52.0//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:i686-pc-windows-msvc": [ - "@vendor_ts__winapi-0.3.9//:winapi", # cfg(target_os = "windows") + "@vendor_ts__windows-sys-0.52.0//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ - "@vendor_ts__winapi-0.3.9//:winapi", # cfg(target_os = "windows") + "@vendor_ts__windows-sys-0.52.0//:windows_sys", # cfg(windows) ], "//conditions:default": [], }), diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num_cpus-1.17.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num_cpus-1.17.0.bazel index 65ccdc7fd1a..84ac7e536d7 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num_cpus-1.17.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num_cpus-1.17.0.bazel @@ -91,103 +91,103 @@ rust_library( version = "1.17.0", deps = select({ "@rules_rust//rust/platform:aarch64-apple-darwin": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:aarch64-apple-ios": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:aarch64-apple-ios-sim": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:aarch64-linux-android": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:aarch64-unknown-uefi": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:armv7-linux-androideabi": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:i686-apple-darwin": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:i686-linux-android": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:i686-unknown-freebsd": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:thumbv7em-none-eabi": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:wasm32-unknown-unknown": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:wasm32-wasip1": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:x86_64-apple-darwin": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:x86_64-apple-ios": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:x86_64-linux-android": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:x86_64-unknown-none": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:x86_64-unknown-uefi": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "//conditions:default": [], }), diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.os_str_bytes-7.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.os_str_bytes-7.1.1.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.os_str_bytes-7.0.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.os_str_bytes-7.1.1.bazel index 5f68898f2b4..96010fb2e46 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.os_str_bytes-7.0.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.os_str_bytes-7.1.1.bazel @@ -93,7 +93,7 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "7.0.0", + version = "7.1.1", deps = [ "@vendor_ts__memchr-2.7.5//:memchr", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.parking_lot_core-0.9.11.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.parking_lot_core-0.9.11.bazel index dd30b9a5bc1..ffcde4b57f2 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.parking_lot_core-0.9.11.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.parking_lot_core-0.9.11.bazel @@ -94,90 +94,90 @@ rust_library( }), version = "0.9.11", deps = [ - "@vendor_ts__cfg-if-1.0.1//:cfg_if", + "@vendor_ts__cfg-if-1.0.3//:cfg_if", "@vendor_ts__parking_lot_core-0.9.11//:build_script_build", "@vendor_ts__smallvec-1.15.1//:smallvec", ] + select({ "@rules_rust//rust/platform:aarch64-apple-darwin": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-apple-ios": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-apple-ios-sim": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-linux-android": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ "@vendor_ts__windows-targets-0.52.6//:windows_targets", # cfg(windows) ], "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:armv7-linux-androideabi": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-apple-darwin": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-linux-android": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-pc-windows-msvc": [ "@vendor_ts__windows-targets-0.52.6//:windows_targets", # cfg(windows) ], "@rules_rust//rust/platform:i686-unknown-freebsd": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-apple-darwin": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-apple-ios": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-linux-android": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ "@vendor_ts__windows-targets-0.52.6//:windows_targets", # cfg(windows) ], "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "//conditions:default": [], }), diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pear_codegen-0.2.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pear_codegen-0.2.9.bazel index 44f538367d3..ce5597c6f7e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pear_codegen-0.2.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pear_codegen-0.2.9.bazel @@ -90,9 +90,9 @@ rust_proc_macro( }), version = "0.2.9", deps = [ - "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", "@vendor_ts__proc-macro2-diagnostics-0.10.1//:proc_macro2_diagnostics", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.104//:syn", + "@vendor_ts__syn-2.0.106//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.percent-encoding-2.3.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.percent-encoding-2.3.2.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.percent-encoding-2.3.1.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.percent-encoding-2.3.2.bazel index dae967123fc..06f5a6f9f7e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.percent-encoding-2.3.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.percent-encoding-2.3.2.bazel @@ -92,5 +92,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "2.3.1", + version = "2.3.2", ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-0.4.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-0.4.7.bazel index c6512969320..bd473ae5a3f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-0.4.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-0.4.7.bazel @@ -90,7 +90,7 @@ rust_library( }), version = "0.4.7", deps = [ - "@vendor_ts__libc-0.2.174//:libc", + "@vendor_ts__libc-0.2.175//:libc", "@vendor_ts__perf-event-open-sys-1.0.1//:perf_event_open_sys", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-open-sys-1.0.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-open-sys-1.0.1.bazel index 2f975dbab22..3f12c00274f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-open-sys-1.0.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-open-sys-1.0.1.bazel @@ -90,6 +90,6 @@ rust_library( }), version = "1.0.1", deps = [ - "@vendor_ts__libc-0.2.174//:libc", + "@vendor_ts__libc-0.2.175//:libc", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.petgraph-0.6.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.petgraph-0.6.5.bazel index aec5d8e678d..c643aefe2c7 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.petgraph-0.6.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.petgraph-0.6.5.bazel @@ -97,6 +97,6 @@ rust_library( version = "0.6.5", deps = [ "@vendor_ts__fixedbitset-0.4.2//:fixedbitset", - "@vendor_ts__indexmap-2.10.0//:indexmap", + "@vendor_ts__indexmap-2.11.1//:indexmap", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.potential_utf-0.1.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.potential_utf-0.1.3.bazel similarity index 98% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.potential_utf-0.1.2.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.potential_utf-0.1.3.bazel index 2c1aa625c77..f4fc2d5dee0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.potential_utf-0.1.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.potential_utf-0.1.3.bazel @@ -91,8 +91,8 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.1.2", + version = "0.1.3", deps = [ - "@vendor_ts__zerovec-0.11.2//:zerovec", + "@vendor_ts__zerovec-0.11.4//:zerovec", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ppv-lite86-0.2.21.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ppv-lite86-0.2.21.bazel index 1027543b5e7..68d235c3684 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ppv-lite86-0.2.21.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ppv-lite86-0.2.21.bazel @@ -94,6 +94,6 @@ rust_library( }), version = "0.2.21", deps = [ - "@vendor_ts__zerocopy-0.8.26//:zerocopy", + "@vendor_ts__zerocopy-0.8.27//:zerocopy", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-1.0.97.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-1.0.101.bazel similarity index 96% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-1.0.97.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-1.0.101.bazel index 393ebc5392b..e09b5045cc3 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-1.0.97.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-1.0.101.bazel @@ -96,10 +96,10 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.0.97", + version = "1.0.101", deps = [ - "@vendor_ts__proc-macro2-1.0.97//:build_script_build", - "@vendor_ts__unicode-ident-1.0.18//:unicode_ident", + "@vendor_ts__proc-macro2-1.0.101//:build_script_build", + "@vendor_ts__unicode-ident-1.0.19//:unicode_ident", ], ) @@ -155,7 +155,7 @@ cargo_build_script( "noclippy", "norustfmt", ], - version = "1.0.97", + version = "1.0.101", visibility = ["//visibility:private"], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-diagnostics-0.10.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-diagnostics-0.10.1.bazel index 7e1cf59384c..120c4d6c265 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-diagnostics-0.10.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-diagnostics-0.10.1.bazel @@ -99,10 +99,10 @@ rust_library( }), version = "0.10.1", deps = [ - "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", "@vendor_ts__proc-macro2-diagnostics-0.10.1//:build_script_build", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.104//:syn", + "@vendor_ts__syn-2.0.106//:syn", "@vendor_ts__yansi-1.0.1//:yansi", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.quote-1.0.40.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.quote-1.0.40.bazel index aa96a49c642..66b79239e47 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.quote-1.0.40.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.quote-1.0.40.bazel @@ -94,6 +94,6 @@ rust_library( }), version = "1.0.40", deps = [ - "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_abi-0.123.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_abi-0.123.0.bazel index df3ed9bebac..0d136750f61 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_abi-0.123.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_abi-0.123.0.bazel @@ -94,7 +94,7 @@ rust_library( }), version = "0.123.0", deps = [ - "@vendor_ts__bitflags-2.9.1//:bitflags", + "@vendor_ts__bitflags-2.9.4//:bitflags", "@vendor_ts__ra-ap-rustc_hashes-0.123.0//:ra_ap_rustc_hashes", "@vendor_ts__ra-ap-rustc_index-0.123.0//:ra_ap_rustc_index", "@vendor_ts__tracing-0.1.41//:tracing", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index_macros-0.123.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index_macros-0.123.0.bazel index 6bb6017e68d..b45b48ce2b9 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index_macros-0.123.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index_macros-0.123.0.bazel @@ -90,8 +90,8 @@ rust_proc_macro( }), version = "0.123.0", deps = [ - "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.104//:syn", + "@vendor_ts__syn-2.0.106//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_base_db-0.0.300.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_base_db-0.0.301.bazel similarity index 84% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_base_db-0.0.300.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_base_db-0.0.301.bazel index de5ec1e085d..3931158e4a1 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_base_db-0.0.300.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_base_db-0.0.301.bazel @@ -23,12 +23,12 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_cfg-0.0.300//:ra_ap_cfg": "cfg", - "@vendor_ts__ra_ap_intern-0.0.300//:ra_ap_intern": "intern", - "@vendor_ts__ra_ap_query-group-macro-0.0.300//:ra_ap_query_group_macro": "query_group", - "@vendor_ts__ra_ap_span-0.0.300//:ra_ap_span": "span", - "@vendor_ts__ra_ap_syntax-0.0.300//:ra_ap_syntax": "syntax", - "@vendor_ts__ra_ap_vfs-0.0.300//:ra_ap_vfs": "vfs", + "@vendor_ts__ra_ap_cfg-0.0.301//:ra_ap_cfg": "cfg", + "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern": "intern", + "@vendor_ts__ra_ap_query-group-macro-0.0.301//:ra_ap_query_group_macro": "query_group", + "@vendor_ts__ra_ap_span-0.0.301//:ra_ap_span": "span", + "@vendor_ts__ra_ap_syntax-0.0.301//:ra_ap_syntax": "syntax", + "@vendor_ts__ra_ap_vfs-0.0.301//:ra_ap_vfs": "vfs", }, compile_data = glob( include = ["**"], @@ -45,7 +45,7 @@ rust_library( crate_root = "src/lib.rs", edition = "2024", proc_macro_deps = [ - "@vendor_ts__ra_ap_query-group-macro-0.0.300//:ra_ap_query_group_macro", + "@vendor_ts__ra_ap_query-group-macro-0.0.301//:ra_ap_query_group_macro", "@vendor_ts__salsa-macros-0.23.0//:salsa_macros", ], rustc_env_files = [ @@ -100,16 +100,16 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.300", + version = "0.0.301", deps = [ "@vendor_ts__dashmap-6.1.0//:dashmap", - "@vendor_ts__indexmap-2.10.0//:indexmap", + "@vendor_ts__indexmap-2.11.1//:indexmap", "@vendor_ts__la-arena-0.3.1//:la_arena", - "@vendor_ts__ra_ap_cfg-0.0.300//:ra_ap_cfg", - "@vendor_ts__ra_ap_intern-0.0.300//:ra_ap_intern", - "@vendor_ts__ra_ap_span-0.0.300//:ra_ap_span", - "@vendor_ts__ra_ap_syntax-0.0.300//:ra_ap_syntax", - "@vendor_ts__ra_ap_vfs-0.0.300//:ra_ap_vfs", + "@vendor_ts__ra_ap_cfg-0.0.301//:ra_ap_cfg", + "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern", + "@vendor_ts__ra_ap_span-0.0.301//:ra_ap_span", + "@vendor_ts__ra_ap_syntax-0.0.301//:ra_ap_syntax", + "@vendor_ts__ra_ap_vfs-0.0.301//:ra_ap_vfs", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", "@vendor_ts__salsa-0.23.0//:salsa", "@vendor_ts__semver-1.0.26//:semver", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_cfg-0.0.300.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_cfg-0.0.301.bazel similarity index 93% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_cfg-0.0.300.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_cfg-0.0.301.bazel index 164407b7d4e..f36d971d226 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_cfg-0.0.300.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_cfg-0.0.301.bazel @@ -23,8 +23,8 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_intern-0.0.300//:ra_ap_intern": "intern", - "@vendor_ts__ra_ap_tt-0.0.300//:ra_ap_tt": "tt", + "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern": "intern", + "@vendor_ts__ra_ap_tt-0.0.301//:ra_ap_tt": "tt", }, compile_data = glob( include = ["**"], @@ -95,10 +95,10 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.300", + version = "0.0.301", deps = [ - "@vendor_ts__ra_ap_intern-0.0.300//:ra_ap_intern", - "@vendor_ts__ra_ap_tt-0.0.300//:ra_ap_tt", + "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern", + "@vendor_ts__ra_ap_tt-0.0.301//:ra_ap_tt", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", "@vendor_ts__tracing-0.1.41//:tracing", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_edition-0.0.300.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_edition-0.0.301.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_edition-0.0.300.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_edition-0.0.301.bazel index 43ed08a0c63..900a9365794 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_edition-0.0.300.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_edition-0.0.301.bazel @@ -88,5 +88,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.300", + version = "0.0.301", ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir-0.0.300.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir-0.0.301.bazel similarity index 76% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir-0.0.300.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir-0.0.301.bazel index 8ddcf402e83..3134859b4d2 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir-0.0.300.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir-0.0.301.bazel @@ -23,16 +23,16 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_base_db-0.0.300//:ra_ap_base_db": "base_db", - "@vendor_ts__ra_ap_cfg-0.0.300//:ra_ap_cfg": "cfg", - "@vendor_ts__ra_ap_hir_def-0.0.300//:ra_ap_hir_def": "hir_def", - "@vendor_ts__ra_ap_hir_expand-0.0.300//:ra_ap_hir_expand": "hir_expand", - "@vendor_ts__ra_ap_hir_ty-0.0.300//:ra_ap_hir_ty": "hir_ty", - "@vendor_ts__ra_ap_intern-0.0.300//:ra_ap_intern": "intern", - "@vendor_ts__ra_ap_span-0.0.300//:ra_ap_span": "span", - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx": "stdx", - "@vendor_ts__ra_ap_syntax-0.0.300//:ra_ap_syntax": "syntax", - "@vendor_ts__ra_ap_tt-0.0.300//:ra_ap_tt": "tt", + "@vendor_ts__ra_ap_base_db-0.0.301//:ra_ap_base_db": "base_db", + "@vendor_ts__ra_ap_cfg-0.0.301//:ra_ap_cfg": "cfg", + "@vendor_ts__ra_ap_hir_def-0.0.301//:ra_ap_hir_def": "hir_def", + "@vendor_ts__ra_ap_hir_expand-0.0.301//:ra_ap_hir_expand": "hir_expand", + "@vendor_ts__ra_ap_hir_ty-0.0.301//:ra_ap_hir_ty": "hir_ty", + "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern": "intern", + "@vendor_ts__ra_ap_span-0.0.301//:ra_ap_span": "span", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_syntax-0.0.301//:ra_ap_syntax": "syntax", + "@vendor_ts__ra_ap_tt-0.0.301//:ra_ap_tt": "tt", }, compile_data = glob( include = ["**"], @@ -100,22 +100,22 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.300", + version = "0.0.301", deps = [ "@vendor_ts__arrayvec-0.7.6//:arrayvec", "@vendor_ts__either-1.15.0//:either", - "@vendor_ts__indexmap-2.10.0//:indexmap", + "@vendor_ts__indexmap-2.11.1//:indexmap", "@vendor_ts__itertools-0.14.0//:itertools", - "@vendor_ts__ra_ap_base_db-0.0.300//:ra_ap_base_db", - "@vendor_ts__ra_ap_cfg-0.0.300//:ra_ap_cfg", - "@vendor_ts__ra_ap_hir_def-0.0.300//:ra_ap_hir_def", - "@vendor_ts__ra_ap_hir_expand-0.0.300//:ra_ap_hir_expand", - "@vendor_ts__ra_ap_hir_ty-0.0.300//:ra_ap_hir_ty", - "@vendor_ts__ra_ap_intern-0.0.300//:ra_ap_intern", - "@vendor_ts__ra_ap_span-0.0.300//:ra_ap_span", - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx", - "@vendor_ts__ra_ap_syntax-0.0.300//:ra_ap_syntax", - "@vendor_ts__ra_ap_tt-0.0.300//:ra_ap_tt", + "@vendor_ts__ra_ap_base_db-0.0.301//:ra_ap_base_db", + "@vendor_ts__ra_ap_cfg-0.0.301//:ra_ap_cfg", + "@vendor_ts__ra_ap_hir_def-0.0.301//:ra_ap_hir_def", + "@vendor_ts__ra_ap_hir_expand-0.0.301//:ra_ap_hir_expand", + "@vendor_ts__ra_ap_hir_ty-0.0.301//:ra_ap_hir_ty", + "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern", + "@vendor_ts__ra_ap_span-0.0.301//:ra_ap_span", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx", + "@vendor_ts__ra_ap_syntax-0.0.301//:ra_ap_syntax", + "@vendor_ts__ra_ap_tt-0.0.301//:ra_ap_tt", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", "@vendor_ts__smallvec-1.15.1//:smallvec", "@vendor_ts__tracing-0.1.41//:tracing", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_def-0.0.300.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_def-0.0.301.bazel similarity index 77% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_def-0.0.300.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_def-0.0.301.bazel index c44207c333d..e97671e1b1b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_def-0.0.300.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_def-0.0.301.bazel @@ -23,16 +23,16 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_base_db-0.0.300//:ra_ap_base_db": "base_db", - "@vendor_ts__ra_ap_cfg-0.0.300//:ra_ap_cfg": "cfg", - "@vendor_ts__ra_ap_hir_expand-0.0.300//:ra_ap_hir_expand": "hir_expand", - "@vendor_ts__ra_ap_intern-0.0.300//:ra_ap_intern": "intern", - "@vendor_ts__ra_ap_mbe-0.0.300//:ra_ap_mbe": "mbe", - "@vendor_ts__ra_ap_query-group-macro-0.0.300//:ra_ap_query_group_macro": "query_group", - "@vendor_ts__ra_ap_span-0.0.300//:ra_ap_span": "span", - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx": "stdx", - "@vendor_ts__ra_ap_syntax-0.0.300//:ra_ap_syntax": "syntax", - "@vendor_ts__ra_ap_tt-0.0.300//:ra_ap_tt": "tt", + "@vendor_ts__ra_ap_base_db-0.0.301//:ra_ap_base_db": "base_db", + "@vendor_ts__ra_ap_cfg-0.0.301//:ra_ap_cfg": "cfg", + "@vendor_ts__ra_ap_hir_expand-0.0.301//:ra_ap_hir_expand": "hir_expand", + "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern": "intern", + "@vendor_ts__ra_ap_mbe-0.0.301//:ra_ap_mbe": "mbe", + "@vendor_ts__ra_ap_query-group-macro-0.0.301//:ra_ap_query_group_macro": "query_group", + "@vendor_ts__ra_ap_span-0.0.301//:ra_ap_span": "span", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_syntax-0.0.301//:ra_ap_syntax": "syntax", + "@vendor_ts__ra_ap_tt-0.0.301//:ra_ap_tt": "tt", }, compile_data = glob( include = ["**"], @@ -49,7 +49,7 @@ rust_library( crate_root = "src/lib.rs", edition = "2024", proc_macro_deps = [ - "@vendor_ts__ra_ap_query-group-macro-0.0.300//:ra_ap_query_group_macro", + "@vendor_ts__ra_ap_query-group-macro-0.0.301//:ra_ap_query_group_macro", "@vendor_ts__salsa-macros-0.23.0//:salsa_macros", ], rustc_env_files = [ @@ -104,28 +104,28 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.300", + version = "0.0.301", deps = [ "@vendor_ts__arrayvec-0.7.6//:arrayvec", - "@vendor_ts__bitflags-2.9.1//:bitflags", - "@vendor_ts__cov-mark-2.0.0//:cov_mark", + "@vendor_ts__bitflags-2.9.4//:bitflags", + "@vendor_ts__cov-mark-2.1.0//:cov_mark", "@vendor_ts__drop_bomb-0.1.5//:drop_bomb", "@vendor_ts__either-1.15.0//:either", "@vendor_ts__fst-0.4.7//:fst", - "@vendor_ts__indexmap-2.10.0//:indexmap", + "@vendor_ts__indexmap-2.11.1//:indexmap", "@vendor_ts__itertools-0.14.0//:itertools", "@vendor_ts__la-arena-0.3.1//:la_arena", "@vendor_ts__ra-ap-rustc_abi-0.123.0//:ra_ap_rustc_abi", "@vendor_ts__ra-ap-rustc_parse_format-0.121.0//:ra_ap_rustc_parse_format", - "@vendor_ts__ra_ap_base_db-0.0.300//:ra_ap_base_db", - "@vendor_ts__ra_ap_cfg-0.0.300//:ra_ap_cfg", - "@vendor_ts__ra_ap_hir_expand-0.0.300//:ra_ap_hir_expand", - "@vendor_ts__ra_ap_intern-0.0.300//:ra_ap_intern", - "@vendor_ts__ra_ap_mbe-0.0.300//:ra_ap_mbe", - "@vendor_ts__ra_ap_span-0.0.300//:ra_ap_span", - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx", - "@vendor_ts__ra_ap_syntax-0.0.300//:ra_ap_syntax", - "@vendor_ts__ra_ap_tt-0.0.300//:ra_ap_tt", + "@vendor_ts__ra_ap_base_db-0.0.301//:ra_ap_base_db", + "@vendor_ts__ra_ap_cfg-0.0.301//:ra_ap_cfg", + "@vendor_ts__ra_ap_hir_expand-0.0.301//:ra_ap_hir_expand", + "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern", + "@vendor_ts__ra_ap_mbe-0.0.301//:ra_ap_mbe", + "@vendor_ts__ra_ap_span-0.0.301//:ra_ap_span", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx", + "@vendor_ts__ra_ap_syntax-0.0.301//:ra_ap_syntax", + "@vendor_ts__ra_ap_tt-0.0.301//:ra_ap_tt", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", "@vendor_ts__rustc_apfloat-0.2.3-llvm-462a31f5a5ab//:rustc_apfloat", "@vendor_ts__salsa-0.23.0//:salsa", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_expand-0.0.300.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_expand-0.0.301.bazel similarity index 75% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_expand-0.0.300.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_expand-0.0.301.bazel index af75f70ce67..f5ad3aa61e0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_expand-0.0.300.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_expand-0.0.301.bazel @@ -23,17 +23,17 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_base_db-0.0.300//:ra_ap_base_db": "base_db", - "@vendor_ts__ra_ap_cfg-0.0.300//:ra_ap_cfg": "cfg", - "@vendor_ts__ra_ap_intern-0.0.300//:ra_ap_intern": "intern", - "@vendor_ts__ra_ap_mbe-0.0.300//:ra_ap_mbe": "mbe", - "@vendor_ts__ra_ap_parser-0.0.300//:ra_ap_parser": "parser", - "@vendor_ts__ra_ap_query-group-macro-0.0.300//:ra_ap_query_group_macro": "query_group", - "@vendor_ts__ra_ap_span-0.0.300//:ra_ap_span": "span", - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx": "stdx", - "@vendor_ts__ra_ap_syntax-0.0.300//:ra_ap_syntax": "syntax", - "@vendor_ts__ra_ap_syntax-bridge-0.0.300//:ra_ap_syntax_bridge": "syntax_bridge", - "@vendor_ts__ra_ap_tt-0.0.300//:ra_ap_tt": "tt", + "@vendor_ts__ra_ap_base_db-0.0.301//:ra_ap_base_db": "base_db", + "@vendor_ts__ra_ap_cfg-0.0.301//:ra_ap_cfg": "cfg", + "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern": "intern", + "@vendor_ts__ra_ap_mbe-0.0.301//:ra_ap_mbe": "mbe", + "@vendor_ts__ra_ap_parser-0.0.301//:ra_ap_parser": "parser", + "@vendor_ts__ra_ap_query-group-macro-0.0.301//:ra_ap_query_group_macro": "query_group", + "@vendor_ts__ra_ap_span-0.0.301//:ra_ap_span": "span", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_syntax-0.0.301//:ra_ap_syntax": "syntax", + "@vendor_ts__ra_ap_syntax-bridge-0.0.301//:ra_ap_syntax_bridge": "syntax_bridge", + "@vendor_ts__ra_ap_tt-0.0.301//:ra_ap_tt": "tt", }, compile_data = glob( include = ["**"], @@ -50,7 +50,7 @@ rust_library( crate_root = "src/lib.rs", edition = "2024", proc_macro_deps = [ - "@vendor_ts__ra_ap_query-group-macro-0.0.300//:ra_ap_query_group_macro", + "@vendor_ts__ra_ap_query-group-macro-0.0.301//:ra_ap_query_group_macro", "@vendor_ts__salsa-macros-0.23.0//:salsa_macros", ], rustc_env_files = [ @@ -105,21 +105,21 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.300", + version = "0.0.301", deps = [ - "@vendor_ts__cov-mark-2.0.0//:cov_mark", + "@vendor_ts__cov-mark-2.1.0//:cov_mark", "@vendor_ts__either-1.15.0//:either", "@vendor_ts__itertools-0.14.0//:itertools", - "@vendor_ts__ra_ap_base_db-0.0.300//:ra_ap_base_db", - "@vendor_ts__ra_ap_cfg-0.0.300//:ra_ap_cfg", - "@vendor_ts__ra_ap_intern-0.0.300//:ra_ap_intern", - "@vendor_ts__ra_ap_mbe-0.0.300//:ra_ap_mbe", - "@vendor_ts__ra_ap_parser-0.0.300//:ra_ap_parser", - "@vendor_ts__ra_ap_span-0.0.300//:ra_ap_span", - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx", - "@vendor_ts__ra_ap_syntax-0.0.300//:ra_ap_syntax", - "@vendor_ts__ra_ap_syntax-bridge-0.0.300//:ra_ap_syntax_bridge", - "@vendor_ts__ra_ap_tt-0.0.300//:ra_ap_tt", + "@vendor_ts__ra_ap_base_db-0.0.301//:ra_ap_base_db", + "@vendor_ts__ra_ap_cfg-0.0.301//:ra_ap_cfg", + "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern", + "@vendor_ts__ra_ap_mbe-0.0.301//:ra_ap_mbe", + "@vendor_ts__ra_ap_parser-0.0.301//:ra_ap_parser", + "@vendor_ts__ra_ap_span-0.0.301//:ra_ap_span", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx", + "@vendor_ts__ra_ap_syntax-0.0.301//:ra_ap_syntax", + "@vendor_ts__ra_ap_syntax-bridge-0.0.301//:ra_ap_syntax_bridge", + "@vendor_ts__ra_ap_tt-0.0.301//:ra_ap_tt", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", "@vendor_ts__salsa-0.23.0//:salsa", "@vendor_ts__smallvec-1.15.1//:smallvec", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_ty-0.0.300.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_ty-0.0.301.bazel similarity index 81% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_ty-0.0.300.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_ty-0.0.301.bazel index 689b518ccf3..7190559d3d8 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_ty-0.0.300.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_ty-0.0.301.bazel @@ -23,14 +23,14 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_base_db-0.0.300//:ra_ap_base_db": "base_db", - "@vendor_ts__ra_ap_hir_def-0.0.300//:ra_ap_hir_def": "hir_def", - "@vendor_ts__ra_ap_hir_expand-0.0.300//:ra_ap_hir_expand": "hir_expand", - "@vendor_ts__ra_ap_intern-0.0.300//:ra_ap_intern": "intern", - "@vendor_ts__ra_ap_query-group-macro-0.0.300//:ra_ap_query_group_macro": "query_group", - "@vendor_ts__ra_ap_span-0.0.300//:ra_ap_span": "span", - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx": "stdx", - "@vendor_ts__ra_ap_syntax-0.0.300//:ra_ap_syntax": "syntax", + "@vendor_ts__ra_ap_base_db-0.0.301//:ra_ap_base_db": "base_db", + "@vendor_ts__ra_ap_hir_def-0.0.301//:ra_ap_hir_def": "hir_def", + "@vendor_ts__ra_ap_hir_expand-0.0.301//:ra_ap_hir_expand": "hir_expand", + "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern": "intern", + "@vendor_ts__ra_ap_query-group-macro-0.0.301//:ra_ap_query_group_macro": "query_group", + "@vendor_ts__ra_ap_span-0.0.301//:ra_ap_span": "span", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_syntax-0.0.301//:ra_ap_syntax": "syntax", }, compile_data = glob( include = ["**"], @@ -48,7 +48,7 @@ rust_library( edition = "2024", proc_macro_deps = [ "@vendor_ts__chalk-derive-0.103.0//:chalk_derive", - "@vendor_ts__ra_ap_query-group-macro-0.0.300//:ra_ap_query_group_macro", + "@vendor_ts__ra_ap_query-group-macro-0.0.301//:ra_ap_query_group_macro", "@vendor_ts__salsa-macros-0.23.0//:salsa_macros", ], rustc_env_files = [ @@ -103,30 +103,30 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.300", + version = "0.0.301", deps = [ "@vendor_ts__arrayvec-0.7.6//:arrayvec", - "@vendor_ts__bitflags-2.9.1//:bitflags", + "@vendor_ts__bitflags-2.9.4//:bitflags", "@vendor_ts__chalk-ir-0.103.0//:chalk_ir", "@vendor_ts__chalk-recursive-0.103.0//:chalk_recursive", "@vendor_ts__chalk-solve-0.103.0//:chalk_solve", - "@vendor_ts__cov-mark-2.0.0//:cov_mark", + "@vendor_ts__cov-mark-2.1.0//:cov_mark", "@vendor_ts__either-1.15.0//:either", "@vendor_ts__ena-0.14.3//:ena", - "@vendor_ts__indexmap-2.10.0//:indexmap", + "@vendor_ts__indexmap-2.11.1//:indexmap", "@vendor_ts__itertools-0.14.0//:itertools", "@vendor_ts__la-arena-0.3.1//:la_arena", "@vendor_ts__oorandom-11.1.5//:oorandom", "@vendor_ts__ra-ap-rustc_abi-0.123.0//:ra_ap_rustc_abi", "@vendor_ts__ra-ap-rustc_index-0.123.0//:ra_ap_rustc_index", "@vendor_ts__ra-ap-rustc_pattern_analysis-0.123.0//:ra_ap_rustc_pattern_analysis", - "@vendor_ts__ra_ap_base_db-0.0.300//:ra_ap_base_db", - "@vendor_ts__ra_ap_hir_def-0.0.300//:ra_ap_hir_def", - "@vendor_ts__ra_ap_hir_expand-0.0.300//:ra_ap_hir_expand", - "@vendor_ts__ra_ap_intern-0.0.300//:ra_ap_intern", - "@vendor_ts__ra_ap_span-0.0.300//:ra_ap_span", - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx", - "@vendor_ts__ra_ap_syntax-0.0.300//:ra_ap_syntax", + "@vendor_ts__ra_ap_base_db-0.0.301//:ra_ap_base_db", + "@vendor_ts__ra_ap_hir_def-0.0.301//:ra_ap_hir_def", + "@vendor_ts__ra_ap_hir_expand-0.0.301//:ra_ap_hir_expand", + "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern", + "@vendor_ts__ra_ap_span-0.0.301//:ra_ap_span", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx", + "@vendor_ts__ra_ap_syntax-0.0.301//:ra_ap_syntax", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", "@vendor_ts__rustc_apfloat-0.2.3-llvm-462a31f5a5ab//:rustc_apfloat", "@vendor_ts__salsa-0.23.0//:salsa", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_ide_db-0.0.300.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_ide_db-0.0.301.bazel similarity index 77% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_ide_db-0.0.300.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_ide_db-0.0.301.bazel index af1e936dc0c..9df94ba4165 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_ide_db-0.0.300.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_ide_db-0.0.301.bazel @@ -23,15 +23,15 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_base_db-0.0.300//:ra_ap_base_db": "base_db", - "@vendor_ts__ra_ap_hir-0.0.300//:ra_ap_hir": "hir", - "@vendor_ts__ra_ap_parser-0.0.300//:ra_ap_parser": "parser", - "@vendor_ts__ra_ap_profile-0.0.300//:ra_ap_profile": "profile", - "@vendor_ts__ra_ap_query-group-macro-0.0.300//:ra_ap_query_group_macro": "query_group", - "@vendor_ts__ra_ap_span-0.0.300//:ra_ap_span": "span", - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx": "stdx", - "@vendor_ts__ra_ap_syntax-0.0.300//:ra_ap_syntax": "syntax", - "@vendor_ts__ra_ap_vfs-0.0.300//:ra_ap_vfs": "vfs", + "@vendor_ts__ra_ap_base_db-0.0.301//:ra_ap_base_db": "base_db", + "@vendor_ts__ra_ap_hir-0.0.301//:ra_ap_hir": "hir", + "@vendor_ts__ra_ap_parser-0.0.301//:ra_ap_parser": "parser", + "@vendor_ts__ra_ap_profile-0.0.301//:ra_ap_profile": "profile", + "@vendor_ts__ra_ap_query-group-macro-0.0.301//:ra_ap_query_group_macro": "query_group", + "@vendor_ts__ra_ap_span-0.0.301//:ra_ap_span": "span", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_syntax-0.0.301//:ra_ap_syntax": "syntax", + "@vendor_ts__ra_ap_vfs-0.0.301//:ra_ap_vfs": "vfs", }, compile_data = glob( include = ["**"], @@ -48,7 +48,7 @@ rust_library( crate_root = "src/lib.rs", edition = "2024", proc_macro_deps = [ - "@vendor_ts__ra_ap_query-group-macro-0.0.300//:ra_ap_query_group_macro", + "@vendor_ts__ra_ap_query-group-macro-0.0.301//:ra_ap_query_group_macro", "@vendor_ts__salsa-macros-0.23.0//:salsa_macros", ], rustc_env_files = [ @@ -103,28 +103,28 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.300", + version = "0.0.301", deps = [ "@vendor_ts__arrayvec-0.7.6//:arrayvec", - "@vendor_ts__bitflags-2.9.1//:bitflags", - "@vendor_ts__cov-mark-2.0.0//:cov_mark", + "@vendor_ts__bitflags-2.9.4//:bitflags", + "@vendor_ts__cov-mark-2.1.0//:cov_mark", "@vendor_ts__crossbeam-channel-0.5.15//:crossbeam_channel", "@vendor_ts__either-1.15.0//:either", "@vendor_ts__fst-0.4.7//:fst", - "@vendor_ts__indexmap-2.10.0//:indexmap", + "@vendor_ts__indexmap-2.11.1//:indexmap", "@vendor_ts__itertools-0.14.0//:itertools", "@vendor_ts__line-index-0.1.2//:line_index", "@vendor_ts__memchr-2.7.5//:memchr", "@vendor_ts__nohash-hasher-0.2.0//:nohash_hasher", - "@vendor_ts__ra_ap_base_db-0.0.300//:ra_ap_base_db", - "@vendor_ts__ra_ap_hir-0.0.300//:ra_ap_hir", - "@vendor_ts__ra_ap_parser-0.0.300//:ra_ap_parser", - "@vendor_ts__ra_ap_profile-0.0.300//:ra_ap_profile", - "@vendor_ts__ra_ap_span-0.0.300//:ra_ap_span", - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx", - "@vendor_ts__ra_ap_syntax-0.0.300//:ra_ap_syntax", - "@vendor_ts__ra_ap_vfs-0.0.300//:ra_ap_vfs", - "@vendor_ts__rayon-1.10.0//:rayon", + "@vendor_ts__ra_ap_base_db-0.0.301//:ra_ap_base_db", + "@vendor_ts__ra_ap_hir-0.0.301//:ra_ap_hir", + "@vendor_ts__ra_ap_parser-0.0.301//:ra_ap_parser", + "@vendor_ts__ra_ap_profile-0.0.301//:ra_ap_profile", + "@vendor_ts__ra_ap_span-0.0.301//:ra_ap_span", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx", + "@vendor_ts__ra_ap_syntax-0.0.301//:ra_ap_syntax", + "@vendor_ts__ra_ap_vfs-0.0.301//:ra_ap_vfs", + "@vendor_ts__rayon-1.11.0//:rayon", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", "@vendor_ts__salsa-0.23.0//:salsa", "@vendor_ts__tracing-0.1.41//:tracing", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_intern-0.0.300.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_intern-0.0.301.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_intern-0.0.300.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_intern-0.0.301.bazel index 27f7bab382c..556a788d138 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_intern-0.0.300.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_intern-0.0.301.bazel @@ -88,7 +88,7 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.300", + version = "0.0.301", deps = [ "@vendor_ts__dashmap-6.1.0//:dashmap", "@vendor_ts__hashbrown-0.14.5//:hashbrown", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_load-cargo-0.0.300.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_load-cargo-0.0.301.bazel similarity index 78% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_load-cargo-0.0.300.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_load-cargo-0.0.301.bazel index 946a2dc743f..81cbfdd3eaf 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_load-cargo-0.0.300.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_load-cargo-0.0.301.bazel @@ -23,15 +23,15 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_hir_expand-0.0.300//:ra_ap_hir_expand": "hir_expand", - "@vendor_ts__ra_ap_ide_db-0.0.300//:ra_ap_ide_db": "ide_db", - "@vendor_ts__ra_ap_intern-0.0.300//:ra_ap_intern": "intern", - "@vendor_ts__ra_ap_proc_macro_api-0.0.300//:ra_ap_proc_macro_api": "proc_macro_api", - "@vendor_ts__ra_ap_project_model-0.0.300//:ra_ap_project_model": "project_model", - "@vendor_ts__ra_ap_span-0.0.300//:ra_ap_span": "span", - "@vendor_ts__ra_ap_tt-0.0.300//:ra_ap_tt": "tt", - "@vendor_ts__ra_ap_vfs-0.0.300//:ra_ap_vfs": "vfs", - "@vendor_ts__ra_ap_vfs-notify-0.0.300//:ra_ap_vfs_notify": "vfs_notify", + "@vendor_ts__ra_ap_hir_expand-0.0.301//:ra_ap_hir_expand": "hir_expand", + "@vendor_ts__ra_ap_ide_db-0.0.301//:ra_ap_ide_db": "ide_db", + "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern": "intern", + "@vendor_ts__ra_ap_proc_macro_api-0.0.301//:ra_ap_proc_macro_api": "proc_macro_api", + "@vendor_ts__ra_ap_project_model-0.0.301//:ra_ap_project_model": "project_model", + "@vendor_ts__ra_ap_span-0.0.301//:ra_ap_span": "span", + "@vendor_ts__ra_ap_tt-0.0.301//:ra_ap_tt": "tt", + "@vendor_ts__ra_ap_vfs-0.0.301//:ra_ap_vfs": "vfs", + "@vendor_ts__ra_ap_vfs-notify-0.0.301//:ra_ap_vfs_notify": "vfs_notify", }, compile_data = glob( include = ["**"], @@ -99,20 +99,20 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.300", + version = "0.0.301", deps = [ "@vendor_ts__anyhow-1.0.99//:anyhow", "@vendor_ts__crossbeam-channel-0.5.15//:crossbeam_channel", "@vendor_ts__itertools-0.14.0//:itertools", - "@vendor_ts__ra_ap_hir_expand-0.0.300//:ra_ap_hir_expand", - "@vendor_ts__ra_ap_ide_db-0.0.300//:ra_ap_ide_db", - "@vendor_ts__ra_ap_intern-0.0.300//:ra_ap_intern", - "@vendor_ts__ra_ap_proc_macro_api-0.0.300//:ra_ap_proc_macro_api", - "@vendor_ts__ra_ap_project_model-0.0.300//:ra_ap_project_model", - "@vendor_ts__ra_ap_span-0.0.300//:ra_ap_span", - "@vendor_ts__ra_ap_tt-0.0.300//:ra_ap_tt", - "@vendor_ts__ra_ap_vfs-0.0.300//:ra_ap_vfs", - "@vendor_ts__ra_ap_vfs-notify-0.0.300//:ra_ap_vfs_notify", + "@vendor_ts__ra_ap_hir_expand-0.0.301//:ra_ap_hir_expand", + "@vendor_ts__ra_ap_ide_db-0.0.301//:ra_ap_ide_db", + "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern", + "@vendor_ts__ra_ap_proc_macro_api-0.0.301//:ra_ap_proc_macro_api", + "@vendor_ts__ra_ap_project_model-0.0.301//:ra_ap_project_model", + "@vendor_ts__ra_ap_span-0.0.301//:ra_ap_span", + "@vendor_ts__ra_ap_tt-0.0.301//:ra_ap_tt", + "@vendor_ts__ra_ap_vfs-0.0.301//:ra_ap_vfs", + "@vendor_ts__ra_ap_vfs-notify-0.0.301//:ra_ap_vfs_notify", "@vendor_ts__tracing-0.1.41//:tracing", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_mbe-0.0.300.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_mbe-0.0.301.bazel similarity index 83% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_mbe-0.0.300.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_mbe-0.0.301.bazel index 5417da2031a..58d0a9a3d87 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_mbe-0.0.300.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_mbe-0.0.301.bazel @@ -23,12 +23,12 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_intern-0.0.300//:ra_ap_intern": "intern", - "@vendor_ts__ra_ap_parser-0.0.300//:ra_ap_parser": "parser", - "@vendor_ts__ra_ap_span-0.0.300//:ra_ap_span": "span", - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx": "stdx", - "@vendor_ts__ra_ap_syntax-bridge-0.0.300//:ra_ap_syntax_bridge": "syntax_bridge", - "@vendor_ts__ra_ap_tt-0.0.300//:ra_ap_tt": "tt", + "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern": "intern", + "@vendor_ts__ra_ap_parser-0.0.301//:ra_ap_parser": "parser", + "@vendor_ts__ra_ap_span-0.0.301//:ra_ap_span": "span", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_syntax-bridge-0.0.301//:ra_ap_syntax_bridge": "syntax_bridge", + "@vendor_ts__ra_ap_tt-0.0.301//:ra_ap_tt": "tt", }, compile_data = glob( include = ["**"], @@ -96,17 +96,17 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.300", + version = "0.0.301", deps = [ "@vendor_ts__arrayvec-0.7.6//:arrayvec", - "@vendor_ts__cov-mark-2.0.0//:cov_mark", + "@vendor_ts__cov-mark-2.1.0//:cov_mark", "@vendor_ts__ra-ap-rustc_lexer-0.123.0//:ra_ap_rustc_lexer", - "@vendor_ts__ra_ap_intern-0.0.300//:ra_ap_intern", - "@vendor_ts__ra_ap_parser-0.0.300//:ra_ap_parser", - "@vendor_ts__ra_ap_span-0.0.300//:ra_ap_span", - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx", - "@vendor_ts__ra_ap_syntax-bridge-0.0.300//:ra_ap_syntax_bridge", - "@vendor_ts__ra_ap_tt-0.0.300//:ra_ap_tt", + "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern", + "@vendor_ts__ra_ap_parser-0.0.301//:ra_ap_parser", + "@vendor_ts__ra_ap_span-0.0.301//:ra_ap_span", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx", + "@vendor_ts__ra_ap_syntax-bridge-0.0.301//:ra_ap_syntax_bridge", + "@vendor_ts__ra_ap_tt-0.0.301//:ra_ap_tt", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", "@vendor_ts__smallvec-1.15.1//:smallvec", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_parser-0.0.300.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_parser-0.0.301.bazel similarity index 96% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_parser-0.0.300.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_parser-0.0.301.bazel index 8ed11d91495..f27215feb49 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_parser-0.0.300.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_parser-0.0.301.bazel @@ -23,7 +23,7 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_edition-0.0.300//:ra_ap_edition": "edition", + "@vendor_ts__ra_ap_edition-0.0.301//:ra_ap_edition": "edition", }, compile_data = glob( include = ["**"], @@ -95,11 +95,11 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.300", + version = "0.0.301", deps = [ "@vendor_ts__drop_bomb-0.1.5//:drop_bomb", "@vendor_ts__ra-ap-rustc_lexer-0.123.0//:ra_ap_rustc_lexer", - "@vendor_ts__ra_ap_edition-0.0.300//:ra_ap_edition", + "@vendor_ts__ra_ap_edition-0.0.301//:ra_ap_edition", "@vendor_ts__rustc-literal-escaper-0.0.4//:rustc_literal_escaper", "@vendor_ts__tracing-0.1.41//:tracing", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_paths-0.0.300.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_paths-0.0.301.bazel similarity index 98% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_paths-0.0.300.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_paths-0.0.301.bazel index ecaa639c662..68cfd57af75 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_paths-0.0.300.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_paths-0.0.301.bazel @@ -91,8 +91,8 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.300", + version = "0.0.301", deps = [ - "@vendor_ts__camino-1.1.10//:camino", + "@vendor_ts__camino-1.1.12//:camino", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_proc_macro_api-0.0.300.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_proc_macro_api-0.0.301.bazel similarity index 84% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_proc_macro_api-0.0.300.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_proc_macro_api-0.0.301.bazel index 332966ee749..b2367547415 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_proc_macro_api-0.0.300.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_proc_macro_api-0.0.301.bazel @@ -23,11 +23,11 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_intern-0.0.300//:ra_ap_intern": "intern", - "@vendor_ts__ra_ap_paths-0.0.300//:ra_ap_paths": "paths", - "@vendor_ts__ra_ap_span-0.0.300//:ra_ap_span": "span", - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx": "stdx", - "@vendor_ts__ra_ap_tt-0.0.300//:ra_ap_tt": "tt", + "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern": "intern", + "@vendor_ts__ra_ap_paths-0.0.301//:ra_ap_paths": "paths", + "@vendor_ts__ra_ap_span-0.0.301//:ra_ap_span": "span", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_tt-0.0.301//:ra_ap_tt": "tt", }, compile_data = glob( include = ["**"], @@ -98,17 +98,17 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.300", + version = "0.0.301", deps = [ - "@vendor_ts__indexmap-2.10.0//:indexmap", - "@vendor_ts__ra_ap_intern-0.0.300//:ra_ap_intern", - "@vendor_ts__ra_ap_paths-0.0.300//:ra_ap_paths", - "@vendor_ts__ra_ap_span-0.0.300//:ra_ap_span", - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx", - "@vendor_ts__ra_ap_tt-0.0.300//:ra_ap_tt", + "@vendor_ts__indexmap-2.11.1//:indexmap", + "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern", + "@vendor_ts__ra_ap_paths-0.0.301//:ra_ap_paths", + "@vendor_ts__ra_ap_span-0.0.301//:ra_ap_span", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx", + "@vendor_ts__ra_ap_tt-0.0.301//:ra_ap_tt", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", "@vendor_ts__serde-1.0.219//:serde", - "@vendor_ts__serde_json-1.0.142//:serde_json", + "@vendor_ts__serde_json-1.0.143//:serde_json", "@vendor_ts__tracing-0.1.41//:tracing", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_profile-0.0.300.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_profile-0.0.301.bazel similarity index 90% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_profile-0.0.300.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_profile-0.0.301.bazel index c897e7748da..89463b1ab35 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_profile-0.0.300.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_profile-0.0.301.bazel @@ -88,53 +88,53 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.300", + version = "0.0.301", deps = [ - "@vendor_ts__cfg-if-1.0.1//:cfg_if", + "@vendor_ts__cfg-if-1.0.3//:cfg_if", ] + select({ "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ "@vendor_ts__windows-sys-0.60.2//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) + "@vendor_ts__libc-0.2.175//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) "@vendor_ts__perf-event-0.4.7//:perf_event", # cfg(all(target_os = "linux", not(target_env = "ohos"))) ], "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) + "@vendor_ts__libc-0.2.175//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) "@vendor_ts__perf-event-0.4.7//:perf_event", # cfg(all(target_os = "linux", not(target_env = "ohos"))) ], "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) + "@vendor_ts__libc-0.2.175//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) "@vendor_ts__perf-event-0.4.7//:perf_event", # cfg(all(target_os = "linux", not(target_env = "ohos"))) ], "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) + "@vendor_ts__libc-0.2.175//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) "@vendor_ts__perf-event-0.4.7//:perf_event", # cfg(all(target_os = "linux", not(target_env = "ohos"))) ], "@rules_rust//rust/platform:i686-pc-windows-msvc": [ "@vendor_ts__windows-sys-0.60.2//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) + "@vendor_ts__libc-0.2.175//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) "@vendor_ts__perf-event-0.4.7//:perf_event", # cfg(all(target_os = "linux", not(target_env = "ohos"))) ], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) + "@vendor_ts__libc-0.2.175//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) "@vendor_ts__perf-event-0.4.7//:perf_event", # cfg(all(target_os = "linux", not(target_env = "ohos"))) ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) + "@vendor_ts__libc-0.2.175//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) "@vendor_ts__perf-event-0.4.7//:perf_event", # cfg(all(target_os = "linux", not(target_env = "ohos"))) ], "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ "@vendor_ts__windows-sys-0.60.2//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) + "@vendor_ts__libc-0.2.175//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) "@vendor_ts__perf-event-0.4.7//:perf_event", # cfg(all(target_os = "linux", not(target_env = "ohos"))) ], "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) + "@vendor_ts__libc-0.2.175//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) "@vendor_ts__perf-event-0.4.7//:perf_event", # cfg(all(target_os = "linux", not(target_env = "ohos"))) ], "//conditions:default": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_project_model-0.0.300.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_project_model-0.0.301.bazel similarity index 82% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_project_model-0.0.300.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_project_model-0.0.301.bazel index fb930fafd0a..4332ecda1a7 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_project_model-0.0.300.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_project_model-0.0.301.bazel @@ -23,13 +23,13 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_base_db-0.0.300//:ra_ap_base_db": "base_db", - "@vendor_ts__ra_ap_cfg-0.0.300//:ra_ap_cfg": "cfg", - "@vendor_ts__ra_ap_intern-0.0.300//:ra_ap_intern": "intern", - "@vendor_ts__ra_ap_paths-0.0.300//:ra_ap_paths": "paths", - "@vendor_ts__ra_ap_span-0.0.300//:ra_ap_span": "span", - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx": "stdx", - "@vendor_ts__ra_ap_toolchain-0.0.300//:ra_ap_toolchain": "toolchain", + "@vendor_ts__ra_ap_base_db-0.0.301//:ra_ap_base_db": "base_db", + "@vendor_ts__ra_ap_cfg-0.0.301//:ra_ap_cfg": "cfg", + "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern": "intern", + "@vendor_ts__ra_ap_paths-0.0.301//:ra_ap_paths": "paths", + "@vendor_ts__ra_ap_span-0.0.301//:ra_ap_span": "span", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_toolchain-0.0.301//:ra_ap_toolchain": "toolchain", }, compile_data = glob( include = ["**"], @@ -100,23 +100,23 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.300", + version = "0.0.301", deps = [ "@vendor_ts__anyhow-1.0.99//:anyhow", "@vendor_ts__cargo_metadata-0.21.0//:cargo_metadata", "@vendor_ts__itertools-0.14.0//:itertools", "@vendor_ts__la-arena-0.3.1//:la_arena", - "@vendor_ts__ra_ap_base_db-0.0.300//:ra_ap_base_db", - "@vendor_ts__ra_ap_cfg-0.0.300//:ra_ap_cfg", - "@vendor_ts__ra_ap_intern-0.0.300//:ra_ap_intern", - "@vendor_ts__ra_ap_paths-0.0.300//:ra_ap_paths", - "@vendor_ts__ra_ap_span-0.0.300//:ra_ap_span", - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx", - "@vendor_ts__ra_ap_toolchain-0.0.300//:ra_ap_toolchain", + "@vendor_ts__ra_ap_base_db-0.0.301//:ra_ap_base_db", + "@vendor_ts__ra_ap_cfg-0.0.301//:ra_ap_cfg", + "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern", + "@vendor_ts__ra_ap_paths-0.0.301//:ra_ap_paths", + "@vendor_ts__ra_ap_span-0.0.301//:ra_ap_span", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx", + "@vendor_ts__ra_ap_toolchain-0.0.301//:ra_ap_toolchain", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", "@vendor_ts__semver-1.0.26//:semver", "@vendor_ts__serde-1.0.219//:serde", - "@vendor_ts__serde_json-1.0.142//:serde_json", + "@vendor_ts__serde_json-1.0.143//:serde_json", "@vendor_ts__temp-dir-0.1.16//:temp_dir", "@vendor_ts__tracing-0.1.41//:tracing", "@vendor_ts__triomphe-0.1.14//:triomphe", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_query-group-macro-0.0.300.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_query-group-macro-0.0.301.bazel similarity index 96% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_query-group-macro-0.0.300.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_query-group-macro-0.0.301.bazel index a5444525a4a..a4099d462ee 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_query-group-macro-0.0.300.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_query-group-macro-0.0.301.bazel @@ -88,10 +88,10 @@ rust_proc_macro( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.300", + version = "0.0.301", deps = [ - "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.104//:syn", + "@vendor_ts__syn-2.0.106//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_span-0.0.300.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_span-0.0.301.bazel similarity index 91% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_span-0.0.300.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_span-0.0.301.bazel index 888665c53d4..e9e64e5fa08 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_span-0.0.300.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_span-0.0.301.bazel @@ -23,9 +23,9 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx": "stdx", - "@vendor_ts__ra_ap_syntax-0.0.300//:ra_ap_syntax": "syntax", - "@vendor_ts__ra_ap_vfs-0.0.300//:ra_ap_vfs": "vfs", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_syntax-0.0.301//:ra_ap_syntax": "syntax", + "@vendor_ts__ra_ap_vfs-0.0.301//:ra_ap_vfs": "vfs", }, compile_data = glob( include = ["**"], @@ -97,13 +97,13 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.300", + version = "0.0.301", deps = [ "@vendor_ts__hashbrown-0.14.5//:hashbrown", "@vendor_ts__la-arena-0.3.1//:la_arena", - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx", - "@vendor_ts__ra_ap_syntax-0.0.300//:ra_ap_syntax", - "@vendor_ts__ra_ap_vfs-0.0.300//:ra_ap_vfs", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx", + "@vendor_ts__ra_ap_syntax-0.0.301//:ra_ap_syntax", + "@vendor_ts__ra_ap_vfs-0.0.301//:ra_ap_vfs", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", "@vendor_ts__salsa-0.23.0//:salsa", "@vendor_ts__text-size-1.1.1//:text_size", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_stdx-0.0.300.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_stdx-0.0.301.bazel similarity index 79% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_stdx-0.0.300.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_stdx-0.0.301.bazel index 0ec1196ed3f..71c7a91ccf4 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_stdx-0.0.300.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_stdx-0.0.301.bazel @@ -88,7 +88,7 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.300", + version = "0.0.301", deps = [ "@vendor_ts__crossbeam-channel-0.5.15//:crossbeam_channel", "@vendor_ts__crossbeam-utils-0.8.21//:crossbeam_utils", @@ -97,88 +97,88 @@ rust_library( "@vendor_ts__tracing-0.1.41//:tracing", ] + select({ "@rules_rust//rust/platform:aarch64-apple-darwin": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-apple-ios": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-apple-ios-sim": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-linux-android": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ - "@vendor_ts__miow-0.6.0//:miow", # cfg(windows) + "@vendor_ts__miow-0.6.1//:miow", # cfg(windows) "@vendor_ts__windows-sys-0.60.2//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:armv7-linux-androideabi": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-apple-darwin": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-linux-android": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-pc-windows-msvc": [ - "@vendor_ts__miow-0.6.0//:miow", # cfg(windows) + "@vendor_ts__miow-0.6.1//:miow", # cfg(windows) "@vendor_ts__windows-sys-0.60.2//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:i686-unknown-freebsd": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-apple-darwin": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-apple-ios": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-linux-android": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ - "@vendor_ts__miow-0.6.0//:miow", # cfg(windows) + "@vendor_ts__miow-0.6.1//:miow", # cfg(windows) "@vendor_ts__windows-sys-0.60.2//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], "//conditions:default": [], }), diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-0.0.300.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-0.0.301.bazel similarity index 94% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-0.0.300.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-0.0.301.bazel index 77c147097a4..277ab6b967c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-0.0.300.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-0.0.301.bazel @@ -23,8 +23,8 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_parser-0.0.300//:ra_ap_parser": "parser", - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_parser-0.0.301//:ra_ap_parser": "parser", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx": "stdx", }, compile_data = glob( include = ["**"], @@ -92,12 +92,12 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.300", + version = "0.0.301", deps = [ "@vendor_ts__either-1.15.0//:either", "@vendor_ts__itertools-0.14.0//:itertools", - "@vendor_ts__ra_ap_parser-0.0.300//:ra_ap_parser", - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx", + "@vendor_ts__ra_ap_parser-0.0.301//:ra_ap_parser", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx", "@vendor_ts__rowan-0.15.15//:rowan", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", "@vendor_ts__rustc-literal-escaper-0.0.4//:rustc_literal_escaper", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-bridge-0.0.300.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-bridge-0.0.301.bazel similarity index 84% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-bridge-0.0.300.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-bridge-0.0.301.bazel index b9741a866e0..9894d99260c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-bridge-0.0.300.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-bridge-0.0.301.bazel @@ -23,12 +23,12 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_intern-0.0.300//:ra_ap_intern": "intern", - "@vendor_ts__ra_ap_parser-0.0.300//:ra_ap_parser": "parser", - "@vendor_ts__ra_ap_span-0.0.300//:ra_ap_span": "span", - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx": "stdx", - "@vendor_ts__ra_ap_syntax-0.0.300//:ra_ap_syntax": "syntax", - "@vendor_ts__ra_ap_tt-0.0.300//:ra_ap_tt": "tt", + "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern": "intern", + "@vendor_ts__ra_ap_parser-0.0.301//:ra_ap_parser": "parser", + "@vendor_ts__ra_ap_span-0.0.301//:ra_ap_span": "span", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_syntax-0.0.301//:ra_ap_syntax": "syntax", + "@vendor_ts__ra_ap_tt-0.0.301//:ra_ap_tt": "tt", }, compile_data = glob( include = ["**"], @@ -96,14 +96,14 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.300", + version = "0.0.301", deps = [ - "@vendor_ts__ra_ap_intern-0.0.300//:ra_ap_intern", - "@vendor_ts__ra_ap_parser-0.0.300//:ra_ap_parser", - "@vendor_ts__ra_ap_span-0.0.300//:ra_ap_span", - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx", - "@vendor_ts__ra_ap_syntax-0.0.300//:ra_ap_syntax", - "@vendor_ts__ra_ap_tt-0.0.300//:ra_ap_tt", + "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern", + "@vendor_ts__ra_ap_parser-0.0.301//:ra_ap_parser", + "@vendor_ts__ra_ap_span-0.0.301//:ra_ap_span", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx", + "@vendor_ts__ra_ap_syntax-0.0.301//:ra_ap_syntax", + "@vendor_ts__ra_ap_tt-0.0.301//:ra_ap_tt", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_toolchain-0.0.300.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_toolchain-0.0.301.bazel similarity index 98% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_toolchain-0.0.300.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_toolchain-0.0.301.bazel index b077ab9b1ef..dd6e2e7de24 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_toolchain-0.0.300.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_toolchain-0.0.301.bazel @@ -88,9 +88,9 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.300", + version = "0.0.301", deps = [ - "@vendor_ts__camino-1.1.10//:camino", + "@vendor_ts__camino-1.1.12//:camino", "@vendor_ts__home-0.5.11//:home", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_tt-0.0.300.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_tt-0.0.301.bazel similarity index 93% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_tt-0.0.300.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_tt-0.0.301.bazel index a9dc4cbb42f..3eb42ebd019 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_tt-0.0.300.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_tt-0.0.301.bazel @@ -23,8 +23,8 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_intern-0.0.300//:ra_ap_intern": "intern", - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern": "intern", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx": "stdx", }, compile_data = glob( include = ["**"], @@ -92,12 +92,12 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.300", + version = "0.0.301", deps = [ "@vendor_ts__arrayvec-0.7.6//:arrayvec", "@vendor_ts__ra-ap-rustc_lexer-0.123.0//:ra_ap_rustc_lexer", - "@vendor_ts__ra_ap_intern-0.0.300//:ra_ap_intern", - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx", + "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx", "@vendor_ts__text-size-1.1.1//:text_size", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-0.0.300.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-0.0.301.bazel similarity index 92% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-0.0.300.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-0.0.301.bazel index 1ddf26373e2..33b4db4d356 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-0.0.300.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-0.0.301.bazel @@ -23,8 +23,8 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_paths-0.0.300//:ra_ap_paths": "paths", - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_paths-0.0.301//:ra_ap_paths": "paths", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx": "stdx", }, compile_data = glob( include = ["**"], @@ -92,14 +92,14 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.300", + version = "0.0.301", deps = [ "@vendor_ts__crossbeam-channel-0.5.15//:crossbeam_channel", "@vendor_ts__fst-0.4.7//:fst", - "@vendor_ts__indexmap-2.10.0//:indexmap", + "@vendor_ts__indexmap-2.11.1//:indexmap", "@vendor_ts__nohash-hasher-0.2.0//:nohash_hasher", - "@vendor_ts__ra_ap_paths-0.0.300//:ra_ap_paths", - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx", + "@vendor_ts__ra_ap_paths-0.0.301//:ra_ap_paths", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", "@vendor_ts__tracing-0.1.41//:tracing", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-notify-0.0.300.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-notify-0.0.301.bazel similarity index 89% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-notify-0.0.300.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-notify-0.0.301.bazel index 1c9c87f94bf..1e93e6aa96d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-notify-0.0.300.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-notify-0.0.301.bazel @@ -23,9 +23,9 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_paths-0.0.300//:ra_ap_paths": "paths", - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx": "stdx", - "@vendor_ts__ra_ap_vfs-0.0.300//:ra_ap_vfs": "vfs", + "@vendor_ts__ra_ap_paths-0.0.301//:ra_ap_paths": "paths", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_vfs-0.0.301//:ra_ap_vfs": "vfs", }, compile_data = glob( include = ["**"], @@ -93,14 +93,14 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.300", + version = "0.0.301", deps = [ "@vendor_ts__crossbeam-channel-0.5.15//:crossbeam_channel", - "@vendor_ts__notify-8.0.0//:notify", - "@vendor_ts__ra_ap_paths-0.0.300//:ra_ap_paths", - "@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx", - "@vendor_ts__ra_ap_vfs-0.0.300//:ra_ap_vfs", - "@vendor_ts__rayon-1.10.0//:rayon", + "@vendor_ts__notify-8.2.0//:notify", + "@vendor_ts__ra_ap_paths-0.0.301//:ra_ap_paths", + "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx", + "@vendor_ts__ra_ap_vfs-0.0.301//:ra_ap_vfs", + "@vendor_ts__rayon-1.11.0//:rayon", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", "@vendor_ts__tracing-0.1.41//:tracing", "@vendor_ts__walkdir-2.5.0//:walkdir", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-1.10.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-1.11.0.bazel similarity index 97% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-1.10.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-1.11.0.bazel index 54b0313af6f..25d4bda52c8 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-1.10.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-1.11.0.bazel @@ -88,9 +88,9 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.10.0", + version = "1.11.0", deps = [ "@vendor_ts__either-1.15.0//:either", - "@vendor_ts__rayon-core-1.12.1//:rayon_core", + "@vendor_ts__rayon-core-1.13.0//:rayon_core", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-core-1.12.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-core-1.13.0.bazel similarity index 97% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-core-1.12.1.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-core-1.13.0.bazel index 32592b58e8a..9925b0366bd 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-core-1.12.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-core-1.13.0.bazel @@ -92,11 +92,11 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.12.1", + version = "1.13.0", deps = [ "@vendor_ts__crossbeam-deque-0.8.6//:crossbeam_deque", "@vendor_ts__crossbeam-utils-0.8.21//:crossbeam_utils", - "@vendor_ts__rayon-core-1.12.1//:build_script_build", + "@vendor_ts__rayon-core-1.13.0//:build_script_build", ], ) @@ -149,7 +149,7 @@ cargo_build_script( "noclippy", "norustfmt", ], - version = "1.12.1", + version = "1.13.0", visibility = ["//visibility:private"], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.redox_syscall-0.5.13.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.redox_syscall-0.5.17.bazel similarity index 98% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.redox_syscall-0.5.13.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.redox_syscall-0.5.17.bazel index 2c22ff5a4c5..f9aa145a63c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.redox_syscall-0.5.13.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.redox_syscall-0.5.17.bazel @@ -88,8 +88,8 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.5.13", + version = "0.5.17", deps = [ - "@vendor_ts__bitflags-2.9.1//:bitflags", + "@vendor_ts__bitflags-2.9.4//:bitflags", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ref-cast-impl-1.0.24.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ref-cast-impl-1.0.24.bazel index 38fec2277f0..ba548e9113a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ref-cast-impl-1.0.24.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ref-cast-impl-1.0.24.bazel @@ -90,8 +90,8 @@ rust_proc_macro( }), version = "1.0.24", deps = [ - "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.104//:syn", + "@vendor_ts__syn-2.0.106//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-1.11.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-1.11.2.bazel similarity index 96% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-1.11.1.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-1.11.2.bazel index 92e631bc957..1c4f925a111 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-1.11.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-1.11.2.bazel @@ -107,11 +107,11 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.11.1", + version = "1.11.2", deps = [ "@vendor_ts__aho-corasick-1.1.3//:aho_corasick", "@vendor_ts__memchr-2.7.5//:memchr", - "@vendor_ts__regex-automata-0.4.9//:regex_automata", - "@vendor_ts__regex-syntax-0.8.5//:regex_syntax", + "@vendor_ts__regex-automata-0.4.10//:regex_automata", + "@vendor_ts__regex-syntax-0.8.6//:regex_syntax", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-automata-0.1.10.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-automata-0.1.10.bazel deleted file mode 100644 index 9b58dc74006..00000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-automata-0.1.10.bazel +++ /dev/null @@ -1,100 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -cargo_toml_env_vars( - name = "cargo_toml_env_vars", - src = "Cargo.toml", -) - -rust_library( - name = "regex_automata", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_features = [ - "default", - "regex-syntax", - "std", - ], - crate_root = "src/lib.rs", - edition = "2015", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=regex-automata", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "0.1.10", - deps = [ - "@vendor_ts__regex-syntax-0.6.29//:regex_syntax", - ], -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-automata-0.4.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-automata-0.4.10.bazel similarity index 97% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-automata-0.4.9.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-automata-0.4.10.bazel index bdfd5c10b87..4b17c645f34 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-automata-0.4.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-automata-0.4.10.bazel @@ -36,7 +36,9 @@ rust_library( ), crate_features = [ "alloc", + "dfa-build", "dfa-onepass", + "dfa-search", "hybrid", "meta", "nfa", @@ -114,10 +116,10 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.4.9", + version = "0.4.10", deps = [ "@vendor_ts__aho-corasick-1.1.3//:aho_corasick", "@vendor_ts__memchr-2.7.5//:memchr", - "@vendor_ts__regex-syntax-0.8.5//:regex_syntax", + "@vendor_ts__regex-syntax-0.8.6//:regex_syntax", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-syntax-0.6.29.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-syntax-0.6.29.bazel deleted file mode 100644 index dbfafb2e61f..00000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-syntax-0.6.29.bazel +++ /dev/null @@ -1,103 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -cargo_toml_env_vars( - name = "cargo_toml_env_vars", - src = "Cargo.toml", -) - -rust_library( - name = "regex_syntax", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_features = [ - "default", - "unicode", - "unicode-age", - "unicode-bool", - "unicode-case", - "unicode-gencat", - "unicode-perl", - "unicode-script", - "unicode-segment", - ], - crate_root = "src/lib.rs", - edition = "2018", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=regex-syntax", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "0.6.29", -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-syntax-0.8.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-syntax-0.8.6.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-syntax-0.8.5.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-syntax-0.8.6.bazel index 78a2a7ef6bc..678ff923f0b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-syntax-0.8.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-syntax-0.8.6.bazel @@ -100,5 +100,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.8.5", + version = "0.8.6", ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc_apfloat-0.2.3+llvm-462a31f5a5ab.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc_apfloat-0.2.3+llvm-462a31f5a5ab.bazel index c63cc2939ba..7947e6e3b80 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc_apfloat-0.2.3+llvm-462a31f5a5ab.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc_apfloat-0.2.3+llvm-462a31f5a5ab.bazel @@ -94,7 +94,7 @@ rust_library( }), version = "0.2.3+llvm-462a31f5a5ab", deps = [ - "@vendor_ts__bitflags-2.9.1//:bitflags", + "@vendor_ts__bitflags-2.9.4//:bitflags", "@vendor_ts__rustc_apfloat-0.2.3-llvm-462a31f5a5ab//:build_script_build", "@vendor_ts__smallvec-1.15.1//:smallvec", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustversion-1.0.21.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustversion-1.0.22.bazel similarity index 97% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustversion-1.0.21.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustversion-1.0.22.bazel index 53d7609768a..20ead5c4d95 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustversion-1.0.21.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustversion-1.0.22.bazel @@ -92,9 +92,9 @@ rust_proc_macro( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.0.21", + version = "1.0.22", deps = [ - "@vendor_ts__rustversion-1.0.21//:build_script_build", + "@vendor_ts__rustversion-1.0.22//:build_script_build", ], ) @@ -146,7 +146,7 @@ cargo_build_script( "noclippy", "norustfmt", ], - version = "1.0.21", + version = "1.0.22", visibility = ["//visibility:private"], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-0.23.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-0.23.0.bazel index 949a19b9b1b..a7a2366514f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-0.23.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-0.23.0.bazel @@ -99,17 +99,17 @@ rust_library( }), version = "0.23.0", deps = [ - "@vendor_ts__boxcar-0.2.13//:boxcar", + "@vendor_ts__boxcar-0.2.14//:boxcar", "@vendor_ts__crossbeam-queue-0.3.12//:crossbeam_queue", "@vendor_ts__crossbeam-utils-0.8.21//:crossbeam_utils", - "@vendor_ts__hashbrown-0.15.4//:hashbrown", + "@vendor_ts__hashbrown-0.15.5//:hashbrown", "@vendor_ts__hashlink-0.10.0//:hashlink", - "@vendor_ts__indexmap-2.10.0//:indexmap", + "@vendor_ts__indexmap-2.11.1//:indexmap", "@vendor_ts__intrusive-collections-0.9.7//:intrusive_collections", "@vendor_ts__papaya-0.2.3//:papaya", "@vendor_ts__parking_lot-0.12.4//:parking_lot", "@vendor_ts__portable-atomic-1.11.1//:portable_atomic", - "@vendor_ts__rayon-1.10.0//:rayon", + "@vendor_ts__rayon-1.11.0//:rayon", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", "@vendor_ts__salsa-macro-rules-0.23.0//:salsa_macro_rules", "@vendor_ts__smallvec-1.15.1//:smallvec", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macros-0.23.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macros-0.23.0.bazel index 72f1a5b649a..03a3ef58912 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macros-0.23.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macros-0.23.0.bazel @@ -90,9 +90,9 @@ rust_proc_macro( }), version = "0.23.0", deps = [ - "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.104//:syn", + "@vendor_ts__syn-2.0.106//:syn", "@vendor_ts__synstructure-0.13.2//:synstructure", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.same-file-1.0.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.same-file-1.0.6.bazel index 12659c8d66c..fd655a0ce78 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.same-file-1.0.6.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.same-file-1.0.6.bazel @@ -91,13 +91,13 @@ rust_library( version = "1.0.6", deps = select({ "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ - "@vendor_ts__winapi-util-0.1.9//:winapi_util", # cfg(windows) + "@vendor_ts__winapi-util-0.1.11//:winapi_util", # cfg(windows) ], "@rules_rust//rust/platform:i686-pc-windows-msvc": [ - "@vendor_ts__winapi-util-0.1.9//:winapi_util", # cfg(windows) + "@vendor_ts__winapi-util-0.1.11//:winapi_util", # cfg(windows) ], "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ - "@vendor_ts__winapi-util-0.1.9//:winapi_util", # cfg(windows) + "@vendor_ts__winapi-util-0.1.11//:winapi_util", # cfg(windows) ], "//conditions:default": [], }), diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-0.9.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-0.9.0.bazel index 3f8b85b2448..639b6c71a0d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-0.9.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-0.9.0.bazel @@ -90,9 +90,9 @@ rust_library( }), version = "0.9.0", deps = [ - "@vendor_ts__dyn-clone-1.0.19//:dyn_clone", + "@vendor_ts__dyn-clone-1.0.20//:dyn_clone", "@vendor_ts__ref-cast-1.0.24//:ref_cast", "@vendor_ts__serde-1.0.219//:serde", - "@vendor_ts__serde_json-1.0.142//:serde_json", + "@vendor_ts__serde_json-1.0.143//:serde_json", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-1.0.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-1.0.4.bazel index 1197212d2bc..dce895551c8 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-1.0.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-1.0.4.bazel @@ -90,9 +90,9 @@ rust_library( }), version = "1.0.4", deps = [ - "@vendor_ts__dyn-clone-1.0.19//:dyn_clone", + "@vendor_ts__dyn-clone-1.0.20//:dyn_clone", "@vendor_ts__ref-cast-1.0.24//:ref_cast", "@vendor_ts__serde-1.0.219//:serde", - "@vendor_ts__serde_json-1.0.142//:serde_json", + "@vendor_ts__serde_json-1.0.143//:serde_json", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.seize-0.5.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.seize-0.5.0.bazel index f7104958ace..b54e1b89da3 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.seize-0.5.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.seize-0.5.0.bazel @@ -96,7 +96,7 @@ rust_library( }), version = "0.5.0", deps = [ - "@vendor_ts__libc-0.2.174//:libc", + "@vendor_ts__libc-0.2.175//:libc", ] + select({ "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ "@vendor_ts__windows-sys-0.52.0//:windows_sys", # aarch64-pc-windows-msvc diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-untagged-0.1.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-untagged-0.1.8.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-untagged-0.1.7.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-untagged-0.1.8.bazel index 8336f37c318..0191982b73a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-untagged-0.1.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-untagged-0.1.8.bazel @@ -88,7 +88,7 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.1.7", + version = "0.1.8", deps = [ "@vendor_ts__erased-serde-0.4.6//:erased_serde", "@vendor_ts__serde-1.0.219//:serde", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_derive-1.0.219.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_derive-1.0.219.bazel index 54f67711a1e..f11ee965dba 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_derive-1.0.219.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_derive-1.0.219.bazel @@ -93,8 +93,8 @@ rust_proc_macro( }), version = "1.0.219", deps = [ - "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.104//:syn", + "@vendor_ts__syn-2.0.106//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_json-1.0.142.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_json-1.0.142.bazel deleted file mode 100644 index 2da5ba551f1..00000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_json-1.0.142.bazel +++ /dev/null @@ -1,171 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -load( - "@rules_rust//cargo:defs.bzl", - "cargo_build_script", - "cargo_toml_env_vars", -) -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -cargo_toml_env_vars( - name = "cargo_toml_env_vars", - src = "Cargo.toml", -) - -rust_library( - name = "serde_json", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_features = [ - "default", - "std", - "unbounded_depth", - ], - crate_root = "src/lib.rs", - edition = "2021", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=serde_json", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "1.0.142", - deps = [ - "@vendor_ts__itoa-1.0.15//:itoa", - "@vendor_ts__memchr-2.7.5//:memchr", - "@vendor_ts__ryu-1.0.20//:ryu", - "@vendor_ts__serde-1.0.219//:serde", - "@vendor_ts__serde_json-1.0.142//:build_script_build", - ], -) - -cargo_build_script( - name = "_bs", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - "**/*.rs", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_features = [ - "default", - "std", - "unbounded_depth", - ], - crate_name = "build_script_build", - crate_root = "build.rs", - data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - edition = "2021", - pkg_name = "serde_json", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=serde_json", - "manual", - "noclippy", - "norustfmt", - ], - version = "1.0.142", - visibility = ["//visibility:private"], -) - -alias( - name = "build_script_build", - actual = ":_bs", - tags = ["manual"], -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_json-1.0.143.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_json-1.0.143.bazel new file mode 100644 index 00000000000..1a4cca70a4f --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_json-1.0.143.bazel @@ -0,0 +1,331 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load( + "@rules_rust//cargo:defs.bzl", + "cargo_build_script", + "cargo_toml_env_vars", +) +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "serde_json", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "default", + "std", + "unbounded_depth", + ] + select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [ + "indexmap", # aarch64-apple-darwin + "preserve_order", # aarch64-apple-darwin + ], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ + "indexmap", # aarch64-pc-windows-msvc + "preserve_order", # aarch64-pc-windows-msvc + ], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ + "indexmap", # aarch64-unknown-linux-gnu + "preserve_order", # aarch64-unknown-linux-gnu + ], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ + "indexmap", # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu + "preserve_order", # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu + ], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ + "indexmap", # arm-unknown-linux-gnueabi + "preserve_order", # arm-unknown-linux-gnueabi + ], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [ + "indexmap", # i686-pc-windows-msvc + "preserve_order", # i686-pc-windows-msvc + ], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ + "indexmap", # i686-unknown-linux-gnu + "preserve_order", # i686-unknown-linux-gnu + ], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ + "indexmap", # powerpc-unknown-linux-gnu + "preserve_order", # powerpc-unknown-linux-gnu + ], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ + "indexmap", # s390x-unknown-linux-gnu + "preserve_order", # s390x-unknown-linux-gnu + ], + "@rules_rust//rust/platform:x86_64-apple-darwin": [ + "indexmap", # x86_64-apple-darwin + "preserve_order", # x86_64-apple-darwin + ], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ + "indexmap", # x86_64-pc-windows-msvc + "preserve_order", # x86_64-pc-windows-msvc + ], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ + "indexmap", # x86_64-unknown-freebsd + "preserve_order", # x86_64-unknown-freebsd + ], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ + "indexmap", # x86_64-unknown-linux-gnu + "preserve_order", # x86_64-unknown-linux-gnu + ], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ + "indexmap", # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu + "preserve_order", # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu + ], + "//conditions:default": [], + }), + crate_root = "src/lib.rs", + edition = "2021", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=serde_json", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "1.0.143", + deps = [ + "@vendor_ts__itoa-1.0.15//:itoa", + "@vendor_ts__memchr-2.7.5//:memchr", + "@vendor_ts__ryu-1.0.20//:ryu", + "@vendor_ts__serde-1.0.219//:serde", + "@vendor_ts__serde_json-1.0.143//:build_script_build", + ] + select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [ + "@vendor_ts__indexmap-2.11.1//:indexmap", # aarch64-apple-darwin + ], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ + "@vendor_ts__indexmap-2.11.1//:indexmap", # aarch64-pc-windows-msvc + ], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ + "@vendor_ts__indexmap-2.11.1//:indexmap", # aarch64-unknown-linux-gnu + ], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ + "@vendor_ts__indexmap-2.11.1//:indexmap", # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu + ], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ + "@vendor_ts__indexmap-2.11.1//:indexmap", # arm-unknown-linux-gnueabi + ], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [ + "@vendor_ts__indexmap-2.11.1//:indexmap", # i686-pc-windows-msvc + ], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ + "@vendor_ts__indexmap-2.11.1//:indexmap", # i686-unknown-linux-gnu + ], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ + "@vendor_ts__indexmap-2.11.1//:indexmap", # powerpc-unknown-linux-gnu + ], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ + "@vendor_ts__indexmap-2.11.1//:indexmap", # s390x-unknown-linux-gnu + ], + "@rules_rust//rust/platform:x86_64-apple-darwin": [ + "@vendor_ts__indexmap-2.11.1//:indexmap", # x86_64-apple-darwin + ], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ + "@vendor_ts__indexmap-2.11.1//:indexmap", # x86_64-pc-windows-msvc + ], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ + "@vendor_ts__indexmap-2.11.1//:indexmap", # x86_64-unknown-freebsd + ], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ + "@vendor_ts__indexmap-2.11.1//:indexmap", # x86_64-unknown-linux-gnu + ], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ + "@vendor_ts__indexmap-2.11.1//:indexmap", # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu + ], + "//conditions:default": [], + }), +) + +cargo_build_script( + name = "_bs", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + "**/*.rs", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "default", + "std", + "unbounded_depth", + ] + select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [ + "indexmap", # aarch64-apple-darwin + "preserve_order", # aarch64-apple-darwin + ], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ + "indexmap", # aarch64-pc-windows-msvc + "preserve_order", # aarch64-pc-windows-msvc + ], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ + "indexmap", # aarch64-unknown-linux-gnu + "preserve_order", # aarch64-unknown-linux-gnu + ], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ + "indexmap", # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu + "preserve_order", # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu + ], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ + "indexmap", # arm-unknown-linux-gnueabi + "preserve_order", # arm-unknown-linux-gnueabi + ], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [ + "indexmap", # i686-pc-windows-msvc + "preserve_order", # i686-pc-windows-msvc + ], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ + "indexmap", # i686-unknown-linux-gnu + "preserve_order", # i686-unknown-linux-gnu + ], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ + "indexmap", # powerpc-unknown-linux-gnu + "preserve_order", # powerpc-unknown-linux-gnu + ], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ + "indexmap", # s390x-unknown-linux-gnu + "preserve_order", # s390x-unknown-linux-gnu + ], + "@rules_rust//rust/platform:x86_64-apple-darwin": [ + "indexmap", # x86_64-apple-darwin + "preserve_order", # x86_64-apple-darwin + ], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ + "indexmap", # x86_64-pc-windows-msvc + "preserve_order", # x86_64-pc-windows-msvc + ], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ + "indexmap", # x86_64-unknown-freebsd + "preserve_order", # x86_64-unknown-freebsd + ], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ + "indexmap", # x86_64-unknown-linux-gnu + "preserve_order", # x86_64-unknown-linux-gnu + ], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ + "indexmap", # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu + "preserve_order", # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu + ], + "//conditions:default": [], + }), + crate_name = "build_script_build", + crate_root = "build.rs", + data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + edition = "2021", + pkg_name = "serde_json", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=serde_json", + "manual", + "noclippy", + "norustfmt", + ], + version = "1.0.143", + visibility = ["//visibility:private"], +) + +alias( + name = "build_script_build", + actual = ":_bs", + tags = ["manual"], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with_macros-3.14.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with_macros-3.14.0.bazel index e36f146513e..5ce2041aa7f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with_macros-3.14.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with_macros-3.14.0.bazel @@ -91,8 +91,8 @@ rust_proc_macro( version = "3.14.0", deps = [ "@vendor_ts__darling-0.20.11//:darling", - "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.104//:syn", + "@vendor_ts__syn-2.0.106//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_yaml-0.9.34+deprecated.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_yaml-0.9.34+deprecated.bazel index 9a4e6a30087..46287f3ed28 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_yaml-0.9.34+deprecated.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_yaml-0.9.34+deprecated.bazel @@ -90,7 +90,7 @@ rust_library( }), version = "0.9.34+deprecated", deps = [ - "@vendor_ts__indexmap-2.10.0//:indexmap", + "@vendor_ts__indexmap-2.11.1//:indexmap", "@vendor_ts__itoa-1.0.15//:itoa", "@vendor_ts__ryu-1.0.20//:ryu", "@vendor_ts__serde-1.0.219//:serde", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.syn-2.0.104.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.syn-2.0.106.bazel similarity index 96% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.syn-2.0.104.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.syn-2.0.106.bazel index d33a680bd2e..a4bd833e8e5 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.syn-2.0.104.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.syn-2.0.106.bazel @@ -101,10 +101,10 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "2.0.104", + version = "2.0.106", deps = [ - "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__unicode-ident-1.0.18//:unicode_ident", + "@vendor_ts__unicode-ident-1.0.19//:unicode_ident", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.synstructure-0.13.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.synstructure-0.13.2.bazel index 5b31bf98d6f..ed7ebbca401 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.synstructure-0.13.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.synstructure-0.13.2.bazel @@ -94,8 +94,8 @@ rust_library( }), version = "0.13.2", deps = [ - "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.104//:syn", + "@vendor_ts__syn-2.0.106//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-2.0.12.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-2.0.16.bazel similarity index 96% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-2.0.12.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-2.0.16.bazel index 22a50f358c8..e50ec05152d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-2.0.12.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-2.0.16.bazel @@ -45,7 +45,7 @@ rust_library( crate_root = "src/lib.rs", edition = "2021", proc_macro_deps = [ - "@vendor_ts__thiserror-impl-2.0.12//:thiserror_impl", + "@vendor_ts__thiserror-impl-2.0.16//:thiserror_impl", ], rustc_env_files = [ ":cargo_toml_env_vars", @@ -99,9 +99,9 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "2.0.12", + version = "2.0.16", deps = [ - "@vendor_ts__thiserror-2.0.12//:build_script_build", + "@vendor_ts__thiserror-2.0.16//:build_script_build", ], ) @@ -157,7 +157,7 @@ cargo_build_script( "noclippy", "norustfmt", ], - version = "2.0.12", + version = "2.0.16", visibility = ["//visibility:private"], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-2.0.12.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-2.0.16.bazel similarity index 96% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-2.0.12.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-2.0.16.bazel index ff86a30bb1c..4f363e2e5ca 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-2.0.12.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-2.0.16.bazel @@ -88,10 +88,10 @@ rust_proc_macro( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "2.0.12", + version = "2.0.16", deps = [ - "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.104//:syn", + "@vendor_ts__syn-2.0.106//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thread_local-1.1.8.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thread_local-1.1.9.bazel similarity index 96% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thread_local-1.1.8.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thread_local-1.1.9.bazel index fdb1e3df88c..649948406e7 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thread_local-1.1.8.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thread_local-1.1.9.bazel @@ -88,9 +88,8 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.1.8", + version = "1.1.9", deps = [ - "@vendor_ts__cfg-if-1.0.1//:cfg_if", - "@vendor_ts__once_cell-1.21.3//:once_cell", + "@vendor_ts__cfg-if-1.0.3//:cfg_if", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-0.3.41.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-0.3.43.bazel similarity index 96% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-0.3.41.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-0.3.43.bazel index 1b720393766..9df78d1b4b6 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-0.3.41.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-0.3.43.bazel @@ -88,11 +88,11 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.3.41", + version = "0.3.43", deps = [ - "@vendor_ts__deranged-0.4.0//:deranged", + "@vendor_ts__deranged-0.5.3//:deranged", "@vendor_ts__num-conv-0.1.0//:num_conv", "@vendor_ts__powerfmt-0.2.0//:powerfmt", - "@vendor_ts__time-core-0.1.4//:time_core", + "@vendor_ts__time-core-0.1.6//:time_core", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-core-0.1.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-core-0.1.6.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-core-0.1.4.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-core-0.1.6.bazel index ba20cfd5d04..31940c3f306 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-core-0.1.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-core-0.1.6.bazel @@ -88,5 +88,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.1.4", + version = "0.1.6", ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-macros-0.2.22.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-macros-0.2.24.bazel similarity index 98% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-macros-0.2.22.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-macros-0.2.24.bazel index 97ace68543e..3e3c5b921ab 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-macros-0.2.22.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-macros-0.2.24.bazel @@ -88,9 +88,9 @@ rust_proc_macro( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.2.22", + version = "0.2.24", deps = [ "@vendor_ts__num-conv-0.1.0//:num_conv", - "@vendor_ts__time-core-0.1.4//:time_core", + "@vendor_ts__time-core-0.1.6//:time_core", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tinystr-0.8.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tinystr-0.8.1.bazel index e59752c0787..c499cc1b680 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tinystr-0.8.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tinystr-0.8.1.bazel @@ -97,6 +97,6 @@ rust_library( }), version = "0.8.1", deps = [ - "@vendor_ts__zerovec-0.11.2//:zerovec", + "@vendor_ts__zerovec-0.11.4//:zerovec", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml-0.9.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml-0.9.5.bazel index 196f0c87a31..50e11857e38 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml-0.9.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml-0.9.5.bazel @@ -102,6 +102,6 @@ rust_library( "@vendor_ts__toml_datetime-0.7.0//:toml_datetime", "@vendor_ts__toml_parser-1.0.2//:toml_parser", "@vendor_ts__toml_writer-1.0.2//:toml_writer", - "@vendor_ts__winnow-0.7.11//:winnow", + "@vendor_ts__winnow-0.7.13//:winnow", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_edit-0.22.27.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_edit-0.22.27.bazel index 73e49a5bec1..dad3750bcfe 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_edit-0.22.27.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_edit-0.22.27.bazel @@ -95,11 +95,11 @@ rust_library( }), version = "0.22.27", deps = [ - "@vendor_ts__indexmap-2.10.0//:indexmap", + "@vendor_ts__indexmap-2.11.1//:indexmap", "@vendor_ts__serde-1.0.219//:serde", "@vendor_ts__serde_spanned-0.6.9//:serde_spanned", "@vendor_ts__toml_datetime-0.6.11//:toml_datetime", "@vendor_ts__toml_write-0.1.2//:toml_write", - "@vendor_ts__winnow-0.7.11//:winnow", + "@vendor_ts__winnow-0.7.13//:winnow", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_parser-1.0.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_parser-1.0.2.bazel index d5c30a26290..424946c20a6 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_parser-1.0.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_parser-1.0.2.bazel @@ -94,6 +94,6 @@ rust_library( }), version = "1.0.2", deps = [ - "@vendor_ts__winnow-0.7.11//:winnow", + "@vendor_ts__winnow-0.7.13//:winnow", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-attributes-0.1.30.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-attributes-0.1.30.bazel index fa6532ba1fd..f426539a31c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-attributes-0.1.30.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-attributes-0.1.30.bazel @@ -90,8 +90,8 @@ rust_proc_macro( }), version = "0.1.30", deps = [ - "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.104//:syn", + "@vendor_ts__syn-2.0.106//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-flame-0.2.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-flame-0.2.0.bazel index 7bc42503a2b..49318221b2f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-flame-0.2.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-flame-0.2.0.bazel @@ -96,6 +96,6 @@ rust_library( deps = [ "@vendor_ts__lazy_static-1.5.0//:lazy_static", "@vendor_ts__tracing-0.1.41//:tracing", - "@vendor_ts__tracing-subscriber-0.3.19//:tracing_subscriber", + "@vendor_ts__tracing-subscriber-0.3.20//:tracing_subscriber", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-log-0.2.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-log-0.2.0.bazel index afde86be945..884615bcabe 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-log-0.2.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-log-0.2.0.bazel @@ -94,7 +94,7 @@ rust_library( }), version = "0.2.0", deps = [ - "@vendor_ts__log-0.4.27//:log", + "@vendor_ts__log-0.4.28//:log", "@vendor_ts__once_cell-1.21.3//:once_cell", "@vendor_ts__tracing-core-0.1.34//:tracing_core", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-subscriber-0.3.19.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-subscriber-0.3.20.bazel similarity index 94% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-subscriber-0.3.19.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-subscriber-0.3.20.bazel index b66d0003b2a..13b54631970 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-subscriber-0.3.19.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-subscriber-0.3.20.bazel @@ -43,7 +43,6 @@ rust_library( "matchers", "nu-ansi-term", "once_cell", - "regex", "registry", "sharded-slab", "smallvec", @@ -106,15 +105,15 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.3.19", + version = "0.3.20", deps = [ - "@vendor_ts__matchers-0.1.0//:matchers", - "@vendor_ts__nu-ansi-term-0.46.0//:nu_ansi_term", + "@vendor_ts__matchers-0.2.0//:matchers", + "@vendor_ts__nu-ansi-term-0.50.1//:nu_ansi_term", "@vendor_ts__once_cell-1.21.3//:once_cell", - "@vendor_ts__regex-1.11.1//:regex", + "@vendor_ts__regex-automata-0.4.10//:regex_automata", "@vendor_ts__sharded-slab-0.1.7//:sharded_slab", "@vendor_ts__smallvec-1.15.1//:smallvec", - "@vendor_ts__thread_local-1.1.8//:thread_local", + "@vendor_ts__thread_local-1.1.9//:thread_local", "@vendor_ts__tracing-0.1.41//:tracing", "@vendor_ts__tracing-core-0.1.34//:tracing_core", "@vendor_ts__tracing-log-0.2.0//:tracing_log", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-0.24.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-0.25.9.bazel similarity index 93% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-0.24.6.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-0.25.9.bazel index cfa7b65f205..0cb981e4755 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-0.24.6.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-0.25.9.bazel @@ -96,13 +96,13 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.24.6", + version = "0.25.9", deps = [ - "@vendor_ts__regex-1.11.1//:regex", - "@vendor_ts__regex-syntax-0.8.5//:regex_syntax", + "@vendor_ts__regex-1.11.2//:regex", + "@vendor_ts__regex-syntax-0.8.6//:regex_syntax", "@vendor_ts__streaming-iterator-0.1.9//:streaming_iterator", - "@vendor_ts__tree-sitter-0.24.6//:build_script_build", - "@vendor_ts__tree-sitter-language-0.1.3//:tree_sitter_language", + "@vendor_ts__tree-sitter-0.25.9//:build_script_build", + "@vendor_ts__tree-sitter-language-0.1.5//:tree_sitter_language", ], ) @@ -159,10 +159,11 @@ cargo_build_script( "noclippy", "norustfmt", ], - version = "0.24.6", + version = "0.25.9", visibility = ["//visibility:private"], deps = [ - "@vendor_ts__cc-1.2.29//:cc", + "@vendor_ts__cc-1.2.37//:cc", + "@vendor_ts__serde_json-1.0.143//:serde_json", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-embedded-template-0.23.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-embedded-template-0.23.2.bazel index 47d76515ad1..a2cac2bd450 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-embedded-template-0.23.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-embedded-template-0.23.2.bazel @@ -95,7 +95,7 @@ rust_library( version = "0.23.2", deps = [ "@vendor_ts__tree-sitter-embedded-template-0.23.2//:build_script_build", - "@vendor_ts__tree-sitter-language-0.1.3//:tree_sitter_language", + "@vendor_ts__tree-sitter-language-0.1.5//:tree_sitter_language", ], ) @@ -150,7 +150,7 @@ cargo_build_script( version = "0.23.2", visibility = ["//visibility:private"], deps = [ - "@vendor_ts__cc-1.2.29//:cc", + "@vendor_ts__cc-1.2.37//:cc", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-json-0.24.8.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-json-0.24.8.bazel index daedbc6cdb5..ae6d02ae4eb 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-json-0.24.8.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-json-0.24.8.bazel @@ -95,7 +95,7 @@ rust_library( version = "0.24.8", deps = [ "@vendor_ts__tree-sitter-json-0.24.8//:build_script_build", - "@vendor_ts__tree-sitter-language-0.1.3//:tree_sitter_language", + "@vendor_ts__tree-sitter-language-0.1.5//:tree_sitter_language", ], ) @@ -150,7 +150,7 @@ cargo_build_script( version = "0.24.8", visibility = ["//visibility:private"], deps = [ - "@vendor_ts__cc-1.2.29//:cc", + "@vendor_ts__cc-1.2.37//:cc", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-language-0.1.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-language-0.1.5.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-language-0.1.3.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-language-0.1.5.bazel index c714fc492e3..8bc56f476d9 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-language-0.1.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-language-0.1.5.bazel @@ -88,5 +88,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.1.3", + version = "0.1.5", ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-ql-0.23.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-ql-0.23.1.bazel index d08108c5cc8..4377d9f8cb9 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-ql-0.23.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-ql-0.23.1.bazel @@ -94,7 +94,7 @@ rust_library( }), version = "0.23.1", deps = [ - "@vendor_ts__tree-sitter-language-0.1.3//:tree_sitter_language", + "@vendor_ts__tree-sitter-language-0.1.5//:tree_sitter_language", "@vendor_ts__tree-sitter-ql-0.23.1//:build_script_build", ], ) @@ -150,7 +150,7 @@ cargo_build_script( version = "0.23.1", visibility = ["//visibility:private"], deps = [ - "@vendor_ts__cc-1.2.29//:cc", + "@vendor_ts__cc-1.2.37//:cc", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-ruby-0.23.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-ruby-0.23.1.bazel index 6fb0fab3b2b..86f87e70022 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-ruby-0.23.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-ruby-0.23.1.bazel @@ -94,7 +94,7 @@ rust_library( }), version = "0.23.1", deps = [ - "@vendor_ts__tree-sitter-language-0.1.3//:tree_sitter_language", + "@vendor_ts__tree-sitter-language-0.1.5//:tree_sitter_language", "@vendor_ts__tree-sitter-ruby-0.23.1//:build_script_build", ], ) @@ -150,7 +150,7 @@ cargo_build_script( version = "0.23.1", visibility = ["//visibility:private"], deps = [ - "@vendor_ts__cc-1.2.29//:cc", + "@vendor_ts__cc-1.2.37//:cc", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-ident-1.0.18.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-ident-1.0.19.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-ident-1.0.18.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-ident-1.0.19.bazel index 39820863a2c..f0f3da9a94c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-ident-1.0.18.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-ident-1.0.19.bazel @@ -88,5 +88,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.0.18", + version = "1.0.19", ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.url-2.5.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.url-2.5.7.bazel similarity index 93% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.url-2.5.4.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.url-2.5.7.bazel index 58f034d5353..4ac8b9941e5 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.url-2.5.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.url-2.5.7.bazel @@ -36,6 +36,7 @@ rust_library( ), crate_features = [ "default", + "serde", "std", ], crate_root = "src/lib.rs", @@ -92,10 +93,11 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "2.5.4", + version = "2.5.7", deps = [ - "@vendor_ts__form_urlencoded-1.2.1//:form_urlencoded", - "@vendor_ts__idna-1.0.3//:idna", - "@vendor_ts__percent-encoding-2.3.1//:percent_encoding", + "@vendor_ts__form_urlencoded-1.2.2//:form_urlencoded", + "@vendor_ts__idna-1.1.0//:idna", + "@vendor_ts__percent-encoding-2.3.2//:percent_encoding", + "@vendor_ts__serde-1.0.219//:serde", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.walkdir-2.5.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.walkdir-2.5.0.bazel index 3ee13a3e6f7..14ba229e7fc 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.walkdir-2.5.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.walkdir-2.5.0.bazel @@ -93,13 +93,13 @@ rust_library( "@vendor_ts__same-file-1.0.6//:same_file", ] + select({ "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ - "@vendor_ts__winapi-util-0.1.9//:winapi_util", # cfg(windows) + "@vendor_ts__winapi-util-0.1.11//:winapi_util", # cfg(windows) ], "@rules_rust//rust/platform:i686-pc-windows-msvc": [ - "@vendor_ts__winapi-util-0.1.9//:winapi_util", # cfg(windows) + "@vendor_ts__winapi-util-0.1.11//:winapi_util", # cfg(windows) ], "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ - "@vendor_ts__winapi-util-0.1.9//:winapi_util", # cfg(windows) + "@vendor_ts__winapi-util-0.1.11//:winapi_util", # cfg(windows) ], "//conditions:default": [], }), diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasi-0.14.2+wasi-0.2.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasi-0.14.5+wasi-0.2.4.bazel similarity index 97% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasi-0.14.2+wasi-0.2.4.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasi-0.14.5+wasi-0.2.4.bazel index 9fc7384facd..81a3a287a54 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasi-0.14.2+wasi-0.2.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasi-0.14.5+wasi-0.2.4.bazel @@ -88,8 +88,8 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.14.2+wasi-0.2.4", + version = "0.14.5+wasi-0.2.4", deps = [ - "@vendor_ts__wit-bindgen-rt-0.39.0//:wit_bindgen_rt", + "@vendor_ts__wasip2-1.0.0-wasi-0.2.4//:wasip2", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasip2-1.0.0+wasi-0.2.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasip2-1.0.0+wasi-0.2.4.bazel new file mode 100644 index 00000000000..ce61edb001d --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasip2-1.0.0+wasi-0.2.4.bazel @@ -0,0 +1,95 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "wasip2", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=wasip2", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "1.0.0+wasi-0.2.4", + deps = [ + "@vendor_ts__wit-bindgen-0.45.1//:wit_bindgen", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-0.2.100.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-0.2.101.bazel similarity index 92% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-0.2.100.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-0.2.101.bazel index c707d350e7a..3debce4ea85 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-0.2.100.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-0.2.101.bazel @@ -47,8 +47,8 @@ rust_library( crate_root = "src/lib.rs", edition = "2021", proc_macro_deps = [ - "@vendor_ts__rustversion-1.0.21//:rustversion", - "@vendor_ts__wasm-bindgen-macro-0.2.100//:wasm_bindgen_macro", + "@vendor_ts__rustversion-1.0.22//:rustversion", + "@vendor_ts__wasm-bindgen-macro-0.2.101//:wasm_bindgen_macro", ], rustc_env_files = [ ":cargo_toml_env_vars", @@ -102,11 +102,12 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.2.100", + version = "0.2.101", deps = [ - "@vendor_ts__cfg-if-1.0.1//:cfg_if", + "@vendor_ts__cfg-if-1.0.3//:cfg_if", "@vendor_ts__once_cell-1.21.3//:once_cell", - "@vendor_ts__wasm-bindgen-0.2.100//:build_script_build", + "@vendor_ts__wasm-bindgen-0.2.101//:build_script_build", + "@vendor_ts__wasm-bindgen-shared-0.2.101//:wasm_bindgen_shared", ], ) @@ -150,6 +151,9 @@ cargo_build_script( ], ), edition = "2021", + link_deps = [ + "@vendor_ts__wasm-bindgen-shared-0.2.101//:wasm_bindgen_shared", + ], pkg_name = "wasm-bindgen", rustc_env_files = [ ":cargo_toml_env_vars", @@ -164,7 +168,7 @@ cargo_build_script( "noclippy", "norustfmt", ], - version = "0.2.100", + version = "0.2.101", visibility = ["//visibility:private"], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-backend-0.2.100.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-backend-0.2.101.bazel similarity index 94% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-backend-0.2.100.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-backend-0.2.101.bazel index 5459cb63446..5a85b0e104d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-backend-0.2.100.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-backend-0.2.101.bazel @@ -88,13 +88,13 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.2.100", + version = "0.2.101", deps = [ "@vendor_ts__bumpalo-3.19.0//:bumpalo", - "@vendor_ts__log-0.4.27//:log", - "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + "@vendor_ts__log-0.4.28//:log", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.104//:syn", - "@vendor_ts__wasm-bindgen-shared-0.2.100//:wasm_bindgen_shared", + "@vendor_ts__syn-2.0.106//:syn", + "@vendor_ts__wasm-bindgen-shared-0.2.101//:wasm_bindgen_shared", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-0.2.100.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-0.2.101.bazel similarity index 97% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-0.2.100.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-0.2.101.bazel index f6fb33e15f0..4b1549c57dd 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-0.2.100.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-0.2.101.bazel @@ -88,9 +88,9 @@ rust_proc_macro( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.2.100", + version = "0.2.101", deps = [ "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__wasm-bindgen-macro-support-0.2.100//:wasm_bindgen_macro_support", + "@vendor_ts__wasm-bindgen-macro-support-0.2.101//:wasm_bindgen_macro_support", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-support-0.2.100.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-support-0.2.101.bazel similarity index 93% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-support-0.2.100.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-support-0.2.101.bazel index 026a0784f83..c42233e4e24 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-support-0.2.100.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-support-0.2.101.bazel @@ -88,12 +88,12 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.2.100", + version = "0.2.101", deps = [ - "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.104//:syn", - "@vendor_ts__wasm-bindgen-backend-0.2.100//:wasm_bindgen_backend", - "@vendor_ts__wasm-bindgen-shared-0.2.100//:wasm_bindgen_shared", + "@vendor_ts__syn-2.0.106//:syn", + "@vendor_ts__wasm-bindgen-backend-0.2.101//:wasm_bindgen_backend", + "@vendor_ts__wasm-bindgen-shared-0.2.101//:wasm_bindgen_shared", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-shared-0.2.100.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-shared-0.2.101.bazel similarity index 96% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-shared-0.2.100.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-shared-0.2.101.bazel index 0be6d5b0e33..2c087bf3c82 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-shared-0.2.100.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-shared-0.2.101.bazel @@ -92,10 +92,10 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.2.100", + version = "0.2.101", deps = [ - "@vendor_ts__unicode-ident-1.0.18//:unicode_ident", - "@vendor_ts__wasm-bindgen-shared-0.2.100//:build_script_build", + "@vendor_ts__unicode-ident-1.0.19//:unicode_ident", + "@vendor_ts__wasm-bindgen-shared-0.2.101//:build_script_build", ], ) @@ -148,7 +148,7 @@ cargo_build_script( "noclippy", "norustfmt", ], - version = "0.2.100", + version = "0.2.101", visibility = ["//visibility:private"], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winapi-0.3.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winapi-0.3.9.bazel deleted file mode 100644 index bdfcc0a9347..00000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winapi-0.3.9.bazel +++ /dev/null @@ -1,171 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -load( - "@rules_rust//cargo:defs.bzl", - "cargo_build_script", - "cargo_toml_env_vars", -) -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -cargo_toml_env_vars( - name = "cargo_toml_env_vars", - src = "Cargo.toml", -) - -rust_library( - name = "winapi", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_features = [ - "consoleapi", - "errhandlingapi", - "fileapi", - "handleapi", - "processenv", - ], - crate_root = "src/lib.rs", - edition = "2015", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=winapi", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "0.3.9", - deps = [ - "@vendor_ts__winapi-0.3.9//:build_script_build", - ], -) - -cargo_build_script( - name = "_bs", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - "**/*.rs", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_features = [ - "consoleapi", - "errhandlingapi", - "fileapi", - "handleapi", - "processenv", - ], - crate_name = "build_script_build", - crate_root = "build.rs", - data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - edition = "2015", - pkg_name = "winapi", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=winapi", - "manual", - "noclippy", - "norustfmt", - ], - version = "0.3.9", - visibility = ["//visibility:private"], -) - -alias( - name = "build_script_build", - actual = ":_bs", - tags = ["manual"], -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel deleted file mode 100644 index 45130211eb6..00000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel +++ /dev/null @@ -1,157 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -load( - "@rules_rust//cargo:defs.bzl", - "cargo_build_script", - "cargo_toml_env_vars", -) -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -cargo_toml_env_vars( - name = "cargo_toml_env_vars", - src = "Cargo.toml", -) - -rust_library( - name = "winapi_i686_pc_windows_gnu", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_root = "src/lib.rs", - edition = "2015", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=winapi-i686-pc-windows-gnu", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "0.4.0", - deps = [ - "@vendor_ts__winapi-i686-pc-windows-gnu-0.4.0//:build_script_build", - ], -) - -cargo_build_script( - name = "_bs", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - "**/*.rs", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_name = "build_script_build", - crate_root = "build.rs", - data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - edition = "2015", - pkg_name = "winapi-i686-pc-windows-gnu", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=winapi-i686-pc-windows-gnu", - "manual", - "noclippy", - "norustfmt", - ], - version = "0.4.0", - visibility = ["//visibility:private"], -) - -alias( - name = "build_script_build", - actual = ":_bs", - tags = ["manual"], -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winapi-util-0.1.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winapi-util-0.1.11.bazel similarity index 94% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winapi-util-0.1.9.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winapi-util-0.1.11.bazel index 4699f73a72e..d31853499e8 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winapi-util-0.1.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winapi-util-0.1.11.bazel @@ -88,16 +88,16 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.1.9", + version = "0.1.11", deps = select({ "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ - "@vendor_ts__windows-sys-0.59.0//:windows_sys", # cfg(windows) + "@vendor_ts__windows-sys-0.61.0//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:i686-pc-windows-msvc": [ - "@vendor_ts__windows-sys-0.59.0//:windows_sys", # cfg(windows) + "@vendor_ts__windows-sys-0.61.0//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ - "@vendor_ts__windows-sys-0.59.0//:windows_sys", # cfg(windows) + "@vendor_ts__windows-sys-0.61.0//:windows_sys", # cfg(windows) ], "//conditions:default": [], }), diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel deleted file mode 100644 index 200e251f5bd..00000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel +++ /dev/null @@ -1,157 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -load( - "@rules_rust//cargo:defs.bzl", - "cargo_build_script", - "cargo_toml_env_vars", -) -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -cargo_toml_env_vars( - name = "cargo_toml_env_vars", - src = "Cargo.toml", -) - -rust_library( - name = "winapi_x86_64_pc_windows_gnu", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_root = "src/lib.rs", - edition = "2015", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=winapi-x86_64-pc-windows-gnu", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "0.4.0", - deps = [ - "@vendor_ts__winapi-x86_64-pc-windows-gnu-0.4.0//:build_script_build", - ], -) - -cargo_build_script( - name = "_bs", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - "**/*.rs", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_name = "build_script_build", - crate_root = "build.rs", - data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - edition = "2015", - pkg_name = "winapi-x86_64-pc-windows-gnu", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=winapi-x86_64-pc-windows-gnu", - "manual", - "noclippy", - "norustfmt", - ], - version = "0.4.0", - visibility = ["//visibility:private"], -) - -alias( - name = "build_script_build", - actual = ":_bs", - tags = ["manual"], -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-implement-0.60.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-implement-0.60.0.bazel index 4c5780af7b7..b851ac18725 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-implement-0.60.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-implement-0.60.0.bazel @@ -90,8 +90,8 @@ rust_proc_macro( }), version = "0.60.0", deps = [ - "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.104//:syn", + "@vendor_ts__syn-2.0.106//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-interface-0.59.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-interface-0.59.1.bazel index ad3593fff25..0d2150974e0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-interface-0.59.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-interface-0.59.1.bazel @@ -90,8 +90,8 @@ rust_proc_macro( }), version = "0.59.1", deps = [ - "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.104//:syn", + "@vendor_ts__syn-2.0.106//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-link-0.2.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-link-0.2.0.bazel new file mode 100644 index 00000000000..dc214f6dacb --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-link-0.2.0.bazel @@ -0,0 +1,92 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "windows_link", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=windows-link", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.2.0", +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.52.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.52.0.bazel index 98dc28b5fcf..8e8b30891c1 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.52.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.52.0.bazel @@ -36,7 +36,12 @@ rust_library( ), crate_features = [ "Win32", + "Win32_Foundation", + "Win32_Security", + "Win32_Storage", + "Win32_Storage_FileSystem", "Win32_System", + "Win32_System_Console", "Win32_System_Threading", "default", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.59.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.59.0.bazel index 3c282e594c9..429981ce040 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.59.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.59.0.bazel @@ -37,16 +37,8 @@ rust_library( crate_features = [ "Win32", "Win32_Foundation", - "Win32_Security", - "Win32_Storage", - "Win32_Storage_FileSystem", "Win32_System", "Win32_System_Com", - "Win32_System_Console", - "Win32_System_IO", - "Win32_System_SystemInformation", - "Win32_System_Threading", - "Win32_System_WindowsProgramming", "Win32_UI", "Win32_UI_Shell", "default", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.60.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.60.2.bazel index 02aff274771..6904a389097 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.60.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.60.2.bazel @@ -37,9 +37,15 @@ rust_library( crate_features = [ "Win32", "Win32_Foundation", + "Win32_Security", + "Win32_Storage", + "Win32_Storage_FileSystem", "Win32_System", + "Win32_System_Console", + "Win32_System_IO", "Win32_System_ProcessStatus", "Win32_System_Threading", + "Win32_System_WindowsProgramming", "default", ], crate_root = "src/lib.rs", @@ -98,6 +104,6 @@ rust_library( }), version = "0.60.2", deps = [ - "@vendor_ts__windows-targets-0.53.2//:windows_targets", + "@vendor_ts__windows-targets-0.53.3//:windows_targets", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.48.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.61.0.bazel similarity index 95% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.48.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.61.0.bazel index 5517c53feda..0e9f1f723ed 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.48.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.61.0.bazel @@ -43,13 +43,15 @@ rust_library( "Win32_Storage", "Win32_Storage_FileSystem", "Win32_System", + "Win32_System_Console", "Win32_System_IO", "Win32_System_Pipes", + "Win32_System_SystemInformation", "Win32_System_Threading", "default", ], crate_root = "src/lib.rs", - edition = "2018", + edition = "2021", rustc_env_files = [ ":cargo_toml_env_vars", ], @@ -102,8 +104,8 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.48.0", + version = "0.61.0", deps = [ - "@vendor_ts__windows-targets-0.48.5//:windows_targets", + "@vendor_ts__windows-link-0.2.0//:windows_link", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-targets-0.48.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-targets-0.48.5.bazel deleted file mode 100644 index ebe18b13d6e..00000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-targets-0.48.5.bazel +++ /dev/null @@ -1,113 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -cargo_toml_env_vars( - name = "cargo_toml_env_vars", - src = "Cargo.toml", -) - -rust_library( - name = "windows_targets", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_root = "src/lib.rs", - edition = "2018", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=windows-targets", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "0.48.5", - deps = select({ - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ - "@vendor_ts__windows_aarch64_msvc-0.48.5//:windows_aarch64_msvc", # cfg(all(target_arch = "aarch64", target_env = "msvc", not(windows_raw_dylib))) - ], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [ - "@vendor_ts__windows_i686_msvc-0.48.5//:windows_i686_msvc", # cfg(all(target_arch = "x86", target_env = "msvc", not(windows_raw_dylib))) - ], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ - "@vendor_ts__windows_i686_gnu-0.48.5//:windows_i686_gnu", # cfg(all(target_arch = "x86", target_env = "gnu", not(windows_raw_dylib))) - ], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ - "@vendor_ts__windows_x86_64_msvc-0.48.5//:windows_x86_64_msvc", # cfg(all(target_arch = "x86_64", target_env = "msvc", not(windows_raw_dylib))) - ], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ - "@vendor_ts__windows_x86_64_gnu-0.48.5//:windows_x86_64_gnu", # cfg(all(target_arch = "x86_64", target_env = "gnu", not(target_abi = "llvm"), not(windows_raw_dylib))) - ], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ - "@vendor_ts__windows_x86_64_gnu-0.48.5//:windows_x86_64_gnu", # cfg(all(target_arch = "x86_64", target_env = "gnu", not(target_abi = "llvm"), not(windows_raw_dylib))) - ], - "//conditions:default": [], - }), -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-targets-0.53.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-targets-0.53.3.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-targets-0.53.2.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-targets-0.53.3.bazel index 6f9255ba423..74f5aa79ab0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-targets-0.53.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-targets-0.53.3.bazel @@ -88,7 +88,7 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.53.2", + version = "0.53.3", deps = select({ "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ "@vendor_ts__windows_aarch64_msvc-0.53.0//:windows_aarch64_msvc", # cfg(all(target_arch = "aarch64", target_env = "msvc", not(windows_raw_dylib))) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_gnullvm-0.48.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_gnullvm-0.48.5.bazel deleted file mode 100644 index 76ee4c4ac63..00000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_gnullvm-0.48.5.bazel +++ /dev/null @@ -1,157 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -load( - "@rules_rust//cargo:defs.bzl", - "cargo_build_script", - "cargo_toml_env_vars", -) -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -cargo_toml_env_vars( - name = "cargo_toml_env_vars", - src = "Cargo.toml", -) - -rust_library( - name = "windows_aarch64_gnullvm", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_root = "src/lib.rs", - edition = "2018", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=windows_aarch64_gnullvm", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "0.48.5", - deps = [ - "@vendor_ts__windows_aarch64_gnullvm-0.48.5//:build_script_build", - ], -) - -cargo_build_script( - name = "_bs", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - "**/*.rs", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_name = "build_script_build", - crate_root = "build.rs", - data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - edition = "2018", - pkg_name = "windows_aarch64_gnullvm", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=windows_aarch64_gnullvm", - "manual", - "noclippy", - "norustfmt", - ], - version = "0.48.5", - visibility = ["//visibility:private"], -) - -alias( - name = "build_script_build", - actual = ":_bs", - tags = ["manual"], -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_msvc-0.48.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_msvc-0.48.5.bazel deleted file mode 100644 index 5d16d71c77e..00000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_msvc-0.48.5.bazel +++ /dev/null @@ -1,157 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -load( - "@rules_rust//cargo:defs.bzl", - "cargo_build_script", - "cargo_toml_env_vars", -) -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -cargo_toml_env_vars( - name = "cargo_toml_env_vars", - src = "Cargo.toml", -) - -rust_library( - name = "windows_aarch64_msvc", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_root = "src/lib.rs", - edition = "2018", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=windows_aarch64_msvc", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "0.48.5", - deps = [ - "@vendor_ts__windows_aarch64_msvc-0.48.5//:build_script_build", - ], -) - -cargo_build_script( - name = "_bs", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - "**/*.rs", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_name = "build_script_build", - crate_root = "build.rs", - data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - edition = "2018", - pkg_name = "windows_aarch64_msvc", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=windows_aarch64_msvc", - "manual", - "noclippy", - "norustfmt", - ], - version = "0.48.5", - visibility = ["//visibility:private"], -) - -alias( - name = "build_script_build", - actual = ":_bs", - tags = ["manual"], -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnu-0.48.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnu-0.48.5.bazel deleted file mode 100644 index 4e9c211e2f8..00000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnu-0.48.5.bazel +++ /dev/null @@ -1,157 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -load( - "@rules_rust//cargo:defs.bzl", - "cargo_build_script", - "cargo_toml_env_vars", -) -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -cargo_toml_env_vars( - name = "cargo_toml_env_vars", - src = "Cargo.toml", -) - -rust_library( - name = "windows_i686_gnu", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_root = "src/lib.rs", - edition = "2018", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=windows_i686_gnu", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "0.48.5", - deps = [ - "@vendor_ts__windows_i686_gnu-0.48.5//:build_script_build", - ], -) - -cargo_build_script( - name = "_bs", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - "**/*.rs", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_name = "build_script_build", - crate_root = "build.rs", - data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - edition = "2018", - pkg_name = "windows_i686_gnu", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=windows_i686_gnu", - "manual", - "noclippy", - "norustfmt", - ], - version = "0.48.5", - visibility = ["//visibility:private"], -) - -alias( - name = "build_script_build", - actual = ":_bs", - tags = ["manual"], -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_msvc-0.48.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_msvc-0.48.5.bazel deleted file mode 100644 index 8057157574e..00000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_msvc-0.48.5.bazel +++ /dev/null @@ -1,157 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -load( - "@rules_rust//cargo:defs.bzl", - "cargo_build_script", - "cargo_toml_env_vars", -) -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -cargo_toml_env_vars( - name = "cargo_toml_env_vars", - src = "Cargo.toml", -) - -rust_library( - name = "windows_i686_msvc", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_root = "src/lib.rs", - edition = "2018", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=windows_i686_msvc", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "0.48.5", - deps = [ - "@vendor_ts__windows_i686_msvc-0.48.5//:build_script_build", - ], -) - -cargo_build_script( - name = "_bs", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - "**/*.rs", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_name = "build_script_build", - crate_root = "build.rs", - data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - edition = "2018", - pkg_name = "windows_i686_msvc", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=windows_i686_msvc", - "manual", - "noclippy", - "norustfmt", - ], - version = "0.48.5", - visibility = ["//visibility:private"], -) - -alias( - name = "build_script_build", - actual = ":_bs", - tags = ["manual"], -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnu-0.48.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnu-0.48.5.bazel deleted file mode 100644 index 79ebf6c9ad7..00000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnu-0.48.5.bazel +++ /dev/null @@ -1,157 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -load( - "@rules_rust//cargo:defs.bzl", - "cargo_build_script", - "cargo_toml_env_vars", -) -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -cargo_toml_env_vars( - name = "cargo_toml_env_vars", - src = "Cargo.toml", -) - -rust_library( - name = "windows_x86_64_gnu", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_root = "src/lib.rs", - edition = "2018", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=windows_x86_64_gnu", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "0.48.5", - deps = [ - "@vendor_ts__windows_x86_64_gnu-0.48.5//:build_script_build", - ], -) - -cargo_build_script( - name = "_bs", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - "**/*.rs", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_name = "build_script_build", - crate_root = "build.rs", - data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - edition = "2018", - pkg_name = "windows_x86_64_gnu", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=windows_x86_64_gnu", - "manual", - "noclippy", - "norustfmt", - ], - version = "0.48.5", - visibility = ["//visibility:private"], -) - -alias( - name = "build_script_build", - actual = ":_bs", - tags = ["manual"], -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnullvm-0.48.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnullvm-0.48.5.bazel deleted file mode 100644 index 4a8f3a92123..00000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnullvm-0.48.5.bazel +++ /dev/null @@ -1,157 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -load( - "@rules_rust//cargo:defs.bzl", - "cargo_build_script", - "cargo_toml_env_vars", -) -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -cargo_toml_env_vars( - name = "cargo_toml_env_vars", - src = "Cargo.toml", -) - -rust_library( - name = "windows_x86_64_gnullvm", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_root = "src/lib.rs", - edition = "2018", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=windows_x86_64_gnullvm", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "0.48.5", - deps = [ - "@vendor_ts__windows_x86_64_gnullvm-0.48.5//:build_script_build", - ], -) - -cargo_build_script( - name = "_bs", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - "**/*.rs", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_name = "build_script_build", - crate_root = "build.rs", - data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - edition = "2018", - pkg_name = "windows_x86_64_gnullvm", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=windows_x86_64_gnullvm", - "manual", - "noclippy", - "norustfmt", - ], - version = "0.48.5", - visibility = ["//visibility:private"], -) - -alias( - name = "build_script_build", - actual = ":_bs", - tags = ["manual"], -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_msvc-0.48.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_msvc-0.48.5.bazel deleted file mode 100644 index 47c0fc5917b..00000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_msvc-0.48.5.bazel +++ /dev/null @@ -1,157 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -load( - "@rules_rust//cargo:defs.bzl", - "cargo_build_script", - "cargo_toml_env_vars", -) -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -cargo_toml_env_vars( - name = "cargo_toml_env_vars", - src = "Cargo.toml", -) - -rust_library( - name = "windows_x86_64_msvc", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_root = "src/lib.rs", - edition = "2018", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=windows_x86_64_msvc", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "0.48.5", - deps = [ - "@vendor_ts__windows_x86_64_msvc-0.48.5//:build_script_build", - ], -) - -cargo_build_script( - name = "_bs", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - "**/*.rs", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_name = "build_script_build", - crate_root = "build.rs", - data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - edition = "2018", - pkg_name = "windows_x86_64_msvc", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=windows_x86_64_msvc", - "manual", - "noclippy", - "norustfmt", - ], - version = "0.48.5", - visibility = ["//visibility:private"], -) - -alias( - name = "build_script_build", - actual = ":_bs", - tags = ["manual"], -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winnow-0.7.11.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winnow-0.7.13.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winnow-0.7.11.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winnow-0.7.13.bazel index ad39ba9d121..8ac650c5d96 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winnow-0.7.11.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winnow-0.7.13.bazel @@ -93,5 +93,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.7.11", + version = "0.7.13", ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wit-bindgen-rt-0.39.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wit-bindgen-0.45.1.bazel similarity index 95% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wit-bindgen-rt-0.39.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wit-bindgen-0.45.1.bazel index 44b325ec96c..a34a3e6b17d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wit-bindgen-rt-0.39.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wit-bindgen-0.45.1.bazel @@ -21,7 +21,7 @@ cargo_toml_env_vars( ) rust_library( - name = "wit_bindgen_rt", + name = "wit_bindgen", srcs = glob( include = ["**/*.rs"], allow_empty = True, @@ -48,7 +48,7 @@ rust_library( ], tags = [ "cargo-bazel", - "crate-name=wit-bindgen-rt", + "crate-name=wit-bindgen", "manual", "noclippy", "norustfmt", @@ -92,9 +92,9 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.39.0", + version = "0.45.1", deps = [ - "@vendor_ts__wit-bindgen-rt-0.39.0//:build_script_build", + "@vendor_ts__wit-bindgen-0.45.1//:build_script_build", ], ) @@ -132,7 +132,7 @@ cargo_build_script( ], ), edition = "2021", - pkg_name = "wit-bindgen-rt", + pkg_name = "wit-bindgen", rustc_env_files = [ ":cargo_toml_env_vars", ], @@ -141,12 +141,12 @@ cargo_build_script( ], tags = [ "cargo-bazel", - "crate-name=wit-bindgen-rt", + "crate-name=wit-bindgen", "manual", "noclippy", "norustfmt", ], - version = "0.39.0", + version = "0.45.1", visibility = ["//visibility:private"], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yoke-derive-0.8.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yoke-derive-0.8.0.bazel index 507697272f2..88b72641dcb 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yoke-derive-0.8.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yoke-derive-0.8.0.bazel @@ -90,9 +90,9 @@ rust_proc_macro( }), version = "0.8.0", deps = [ - "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.104//:syn", + "@vendor_ts__syn-2.0.106//:syn", "@vendor_ts__synstructure-0.13.2//:synstructure", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-0.8.26.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-0.8.27.bazel similarity index 97% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-0.8.26.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-0.8.27.bazel index 32d5cf2d5a3..a35e65a1f4d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-0.8.26.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-0.8.27.bazel @@ -95,9 +95,9 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.8.26", + version = "0.8.27", deps = [ - "@vendor_ts__zerocopy-0.8.26//:build_script_build", + "@vendor_ts__zerocopy-0.8.27//:build_script_build", ], ) @@ -152,7 +152,7 @@ cargo_build_script( "noclippy", "norustfmt", ], - version = "0.8.26", + version = "0.8.27", visibility = ["//visibility:private"], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-derive-0.8.26.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-derive-0.8.27.bazel similarity index 96% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-derive-0.8.26.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-derive-0.8.27.bazel index 136da86dc00..b3cddbaed90 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-derive-0.8.26.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-derive-0.8.27.bazel @@ -88,10 +88,10 @@ rust_proc_macro( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.8.26", + version = "0.8.27", deps = [ - "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.104//:syn", + "@vendor_ts__syn-2.0.106//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerofrom-derive-0.1.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerofrom-derive-0.1.6.bazel index 516b57bbff0..facba68b2c7 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerofrom-derive-0.1.6.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerofrom-derive-0.1.6.bazel @@ -90,9 +90,9 @@ rust_proc_macro( }), version = "0.1.6", deps = [ - "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.104//:syn", + "@vendor_ts__syn-2.0.106//:syn", "@vendor_ts__synstructure-0.13.2//:synstructure", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerovec-0.11.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerovec-0.11.4.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerovec-0.11.2.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerovec-0.11.4.bazel index 5a3209f87c0..5b82e659f32 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerovec-0.11.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerovec-0.11.4.bazel @@ -96,7 +96,7 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.11.2", + version = "0.11.4", deps = [ "@vendor_ts__yoke-0.8.0//:yoke", "@vendor_ts__zerofrom-0.1.6//:zerofrom", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerovec-derive-0.11.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerovec-derive-0.11.1.bazel index 2d416230e0c..06b27ed643f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerovec-derive-0.11.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerovec-derive-0.11.1.bazel @@ -90,8 +90,8 @@ rust_proc_macro( }), version = "0.11.1", deps = [ - "@vendor_ts__proc-macro2-1.0.97//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.104//:syn", + "@vendor_ts__syn-2.0.106//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-safe-7.2.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-safe-7.2.4.bazel index 449d88c74f2..4ac45c9e1ba 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-safe-7.2.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-safe-7.2.4.bazel @@ -101,7 +101,7 @@ rust_library( version = "7.2.4", deps = [ "@vendor_ts__zstd-safe-7.2.4//:build_script_build", - "@vendor_ts__zstd-sys-2.0.15-zstd.1.5.7//:zstd_sys", + "@vendor_ts__zstd-sys-2.0.16-zstd.1.5.7//:zstd_sys", ], ) @@ -146,7 +146,7 @@ cargo_build_script( ), edition = "2018", link_deps = [ - "@vendor_ts__zstd-sys-2.0.15-zstd.1.5.7//:zstd_sys", + "@vendor_ts__zstd-sys-2.0.16-zstd.1.5.7//:zstd_sys", ], pkg_name = "zstd-safe", rustc_env_files = [ diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-sys-2.0.15+zstd.1.5.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-sys-2.0.16+zstd.1.5.7.bazel similarity index 96% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-sys-2.0.15+zstd.1.5.7.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-sys-2.0.16+zstd.1.5.7.bazel index 0d8bdc16757..8f03d8a3bf7 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-sys-2.0.15+zstd.1.5.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-sys-2.0.16+zstd.1.5.7.bazel @@ -97,9 +97,9 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "2.0.15+zstd.1.5.7", + version = "2.0.16+zstd.1.5.7", deps = [ - "@vendor_ts__zstd-sys-2.0.15-zstd.1.5.7//:build_script_build", + "@vendor_ts__zstd-sys-2.0.16-zstd.1.5.7//:build_script_build", ], ) @@ -157,10 +157,10 @@ cargo_build_script( "noclippy", "norustfmt", ], - version = "2.0.15+zstd.1.5.7", + version = "2.0.16+zstd.1.5.7", visibility = ["//visibility:private"], deps = [ - "@vendor_ts__cc-1.2.29//:cc", + "@vendor_ts__cc-1.2.37//:cc", "@vendor_ts__pkg-config-0.3.32//:pkg_config", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/defs.bzl b/misc/bazel/3rdparty/tree_sitter_extractors_deps/defs.bzl index 1ac8707748c..6f5c2f2a7b2 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/defs.bzl +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/defs.bzl @@ -295,15 +295,15 @@ def aliases( _NORMAL_DEPENDENCIES = { "ruby/extractor": { _COMMON_CONDITION: { - "clap": Label("@vendor_ts__clap-4.5.44//:clap"), + "clap": Label("@vendor_ts__clap-4.5.47//:clap"), "encoding": Label("@vendor_ts__encoding-0.2.33//:encoding"), "lazy_static": Label("@vendor_ts__lazy_static-1.5.0//:lazy_static"), - "rayon": Label("@vendor_ts__rayon-1.10.0//:rayon"), - "regex": Label("@vendor_ts__regex-1.11.1//:regex"), - "serde_json": Label("@vendor_ts__serde_json-1.0.142//:serde_json"), + "rayon": Label("@vendor_ts__rayon-1.11.0//:rayon"), + "regex": Label("@vendor_ts__regex-1.11.2//:regex"), + "serde_json": Label("@vendor_ts__serde_json-1.0.143//:serde_json"), "tracing": Label("@vendor_ts__tracing-0.1.41//:tracing"), - "tracing-subscriber": Label("@vendor_ts__tracing-subscriber-0.3.19//:tracing_subscriber"), - "tree-sitter": Label("@vendor_ts__tree-sitter-0.24.6//:tree_sitter"), + "tracing-subscriber": Label("@vendor_ts__tracing-subscriber-0.3.20//:tracing_subscriber"), + "tree-sitter": Label("@vendor_ts__tree-sitter-0.25.9//:tree_sitter"), "tree-sitter-embedded-template": Label("@vendor_ts__tree-sitter-embedded-template-0.23.2//:tree_sitter_embedded_template"), "tree-sitter-ruby": Label("@vendor_ts__tree-sitter-ruby-0.23.1//:tree_sitter_ruby"), }, @@ -314,10 +314,10 @@ _NORMAL_DEPENDENCIES = { "either": Label("@vendor_ts__either-1.15.0//:either"), "itertools": Label("@vendor_ts__itertools-0.14.0//:itertools"), "mustache": Label("@vendor_ts__mustache-0.9.0//:mustache"), - "proc-macro2": Label("@vendor_ts__proc-macro2-1.0.97//:proc_macro2"), + "proc-macro2": Label("@vendor_ts__proc-macro2-1.0.101//:proc_macro2"), "quote": Label("@vendor_ts__quote-1.0.40//:quote"), "serde": Label("@vendor_ts__serde-1.0.219//:serde"), - "stdx": Label("@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx"), + "stdx": Label("@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx"), "ungrammar": Label("@vendor_ts__ungrammar-1.16.1//:ungrammar"), }, }, @@ -328,60 +328,60 @@ _NORMAL_DEPENDENCIES = { "anyhow": Label("@vendor_ts__anyhow-1.0.99//:anyhow"), "argfile": Label("@vendor_ts__argfile-0.2.1//:argfile"), "chalk-ir": Label("@vendor_ts__chalk-ir-0.104.0//:chalk_ir"), - "chrono": Label("@vendor_ts__chrono-0.4.41//:chrono"), - "clap": Label("@vendor_ts__clap-4.5.44//:clap"), + "chrono": Label("@vendor_ts__chrono-0.4.42//:chrono"), + "clap": Label("@vendor_ts__clap-4.5.47//:clap"), "dunce": Label("@vendor_ts__dunce-1.0.5//:dunce"), "figment": Label("@vendor_ts__figment-0.10.19//:figment"), "glob": Label("@vendor_ts__glob-0.3.3//:glob"), "itertools": Label("@vendor_ts__itertools-0.14.0//:itertools"), "mustache": Label("@vendor_ts__mustache-0.9.0//:mustache"), "num-traits": Label("@vendor_ts__num-traits-0.2.19//:num_traits"), - "ra_ap_base_db": Label("@vendor_ts__ra_ap_base_db-0.0.300//:ra_ap_base_db"), - "ra_ap_cfg": Label("@vendor_ts__ra_ap_cfg-0.0.300//:ra_ap_cfg"), - "ra_ap_hir": Label("@vendor_ts__ra_ap_hir-0.0.300//:ra_ap_hir"), - "ra_ap_hir_def": Label("@vendor_ts__ra_ap_hir_def-0.0.300//:ra_ap_hir_def"), - "ra_ap_hir_expand": Label("@vendor_ts__ra_ap_hir_expand-0.0.300//:ra_ap_hir_expand"), - "ra_ap_hir_ty": Label("@vendor_ts__ra_ap_hir_ty-0.0.300//:ra_ap_hir_ty"), - "ra_ap_ide_db": Label("@vendor_ts__ra_ap_ide_db-0.0.300//:ra_ap_ide_db"), - "ra_ap_intern": Label("@vendor_ts__ra_ap_intern-0.0.300//:ra_ap_intern"), - "ra_ap_load-cargo": Label("@vendor_ts__ra_ap_load-cargo-0.0.300//:ra_ap_load_cargo"), - "ra_ap_parser": Label("@vendor_ts__ra_ap_parser-0.0.300//:ra_ap_parser"), - "ra_ap_paths": Label("@vendor_ts__ra_ap_paths-0.0.300//:ra_ap_paths"), - "ra_ap_project_model": Label("@vendor_ts__ra_ap_project_model-0.0.300//:ra_ap_project_model"), - "ra_ap_span": Label("@vendor_ts__ra_ap_span-0.0.300//:ra_ap_span"), - "ra_ap_syntax": Label("@vendor_ts__ra_ap_syntax-0.0.300//:ra_ap_syntax"), - "ra_ap_vfs": Label("@vendor_ts__ra_ap_vfs-0.0.300//:ra_ap_vfs"), + "ra_ap_base_db": Label("@vendor_ts__ra_ap_base_db-0.0.301//:ra_ap_base_db"), + "ra_ap_cfg": Label("@vendor_ts__ra_ap_cfg-0.0.301//:ra_ap_cfg"), + "ra_ap_hir": Label("@vendor_ts__ra_ap_hir-0.0.301//:ra_ap_hir"), + "ra_ap_hir_def": Label("@vendor_ts__ra_ap_hir_def-0.0.301//:ra_ap_hir_def"), + "ra_ap_hir_expand": Label("@vendor_ts__ra_ap_hir_expand-0.0.301//:ra_ap_hir_expand"), + "ra_ap_hir_ty": Label("@vendor_ts__ra_ap_hir_ty-0.0.301//:ra_ap_hir_ty"), + "ra_ap_ide_db": Label("@vendor_ts__ra_ap_ide_db-0.0.301//:ra_ap_ide_db"), + "ra_ap_intern": Label("@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern"), + "ra_ap_load-cargo": Label("@vendor_ts__ra_ap_load-cargo-0.0.301//:ra_ap_load_cargo"), + "ra_ap_parser": Label("@vendor_ts__ra_ap_parser-0.0.301//:ra_ap_parser"), + "ra_ap_paths": Label("@vendor_ts__ra_ap_paths-0.0.301//:ra_ap_paths"), + "ra_ap_project_model": Label("@vendor_ts__ra_ap_project_model-0.0.301//:ra_ap_project_model"), + "ra_ap_span": Label("@vendor_ts__ra_ap_span-0.0.301//:ra_ap_span"), + "ra_ap_syntax": Label("@vendor_ts__ra_ap_syntax-0.0.301//:ra_ap_syntax"), + "ra_ap_vfs": Label("@vendor_ts__ra_ap_vfs-0.0.301//:ra_ap_vfs"), "serde": Label("@vendor_ts__serde-1.0.219//:serde"), - "serde_json": Label("@vendor_ts__serde_json-1.0.142//:serde_json"), + "serde_json": Label("@vendor_ts__serde_json-1.0.143//:serde_json"), "serde_with": Label("@vendor_ts__serde_with-3.14.0//:serde_with"), "toml": Label("@vendor_ts__toml-0.9.5//:toml"), "tracing": Label("@vendor_ts__tracing-0.1.41//:tracing"), "tracing-flame": Label("@vendor_ts__tracing-flame-0.2.0//:tracing_flame"), - "tracing-subscriber": Label("@vendor_ts__tracing-subscriber-0.3.19//:tracing_subscriber"), + "tracing-subscriber": Label("@vendor_ts__tracing-subscriber-0.3.20//:tracing_subscriber"), "triomphe": Label("@vendor_ts__triomphe-0.1.14//:triomphe"), }, }, "rust/extractor/macros": { _COMMON_CONDITION: { "quote": Label("@vendor_ts__quote-1.0.40//:quote"), - "syn": Label("@vendor_ts__syn-2.0.104//:syn"), + "syn": Label("@vendor_ts__syn-2.0.106//:syn"), }, }, "shared/tree-sitter-extractor": { _COMMON_CONDITION: { - "chrono": Label("@vendor_ts__chrono-0.4.41//:chrono"), + "chrono": Label("@vendor_ts__chrono-0.4.42//:chrono"), "encoding": Label("@vendor_ts__encoding-0.2.33//:encoding"), - "flate2": Label("@vendor_ts__flate2-1.1.0//:flate2"), - "globset": Label("@vendor_ts__globset-0.4.15//:globset"), + "flate2": Label("@vendor_ts__flate2-1.1.2//:flate2"), + "globset": Label("@vendor_ts__globset-0.4.16//:globset"), "lazy_static": Label("@vendor_ts__lazy_static-1.5.0//:lazy_static"), "num_cpus": Label("@vendor_ts__num_cpus-1.17.0//:num_cpus"), - "rayon": Label("@vendor_ts__rayon-1.10.0//:rayon"), - "regex": Label("@vendor_ts__regex-1.11.1//:regex"), + "rayon": Label("@vendor_ts__rayon-1.11.0//:rayon"), + "regex": Label("@vendor_ts__regex-1.11.2//:regex"), "serde": Label("@vendor_ts__serde-1.0.219//:serde"), - "serde_json": Label("@vendor_ts__serde_json-1.0.142//:serde_json"), + "serde_json": Label("@vendor_ts__serde_json-1.0.143//:serde_json"), "tracing": Label("@vendor_ts__tracing-0.1.41//:tracing"), - "tracing-subscriber": Label("@vendor_ts__tracing-subscriber-0.3.19//:tracing_subscriber"), - "tree-sitter": Label("@vendor_ts__tree-sitter-0.24.6//:tree_sitter"), + "tracing-subscriber": Label("@vendor_ts__tracing-subscriber-0.3.20//:tracing_subscriber"), + "tree-sitter": Label("@vendor_ts__tree-sitter-0.25.9//:tree_sitter"), "zstd": Label("@vendor_ts__zstd-0.13.3//:zstd"), }, }, @@ -394,7 +394,7 @@ _NORMAL_ALIASES = { }, "rust/ast-generator": { _COMMON_CONDITION: { - Label("@vendor_ts__ra_ap_stdx-0.0.300//:ra_ap_stdx"): "stdx", + Label("@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx"): "stdx", }, }, "rust/autobuild": { @@ -593,10 +593,8 @@ _CONDITIONS = { "cfg(all(target_arch = \"wasm32\", target_os = \"unknown\"))": ["@rules_rust//rust/platform:wasm32-unknown-unknown"], "cfg(all(target_arch = \"wasm32\", target_os = \"wasi\", target_env = \"p2\"))": [], "cfg(all(target_arch = \"x86\", target_env = \"gnu\", not(target_abi = \"llvm\"), not(windows_raw_dylib)))": ["@rules_rust//rust/platform:i686-unknown-linux-gnu"], - "cfg(all(target_arch = \"x86\", target_env = \"gnu\", not(windows_raw_dylib)))": ["@rules_rust//rust/platform:i686-unknown-linux-gnu"], "cfg(all(target_arch = \"x86\", target_env = \"msvc\", not(windows_raw_dylib)))": ["@rules_rust//rust/platform:i686-pc-windows-msvc"], "cfg(all(target_arch = \"x86_64\", target_env = \"gnu\", not(target_abi = \"llvm\"), not(windows_raw_dylib)))": ["@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"], - "cfg(all(target_arch = \"x86_64\", target_env = \"msvc\", not(windows_raw_dylib)))": ["@rules_rust//rust/platform:x86_64-pc-windows-msvc"], "cfg(all(target_os = \"linux\", not(target_env = \"ohos\")))": ["@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"], "cfg(all(target_os = \"linux\", target_env = \"gnu\"))": ["@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"], "cfg(all(target_os = \"uefi\", getrandom_backend = \"efi_rng\"))": [], @@ -622,9 +620,9 @@ _CONDITIONS = { "cfg(target_vendor = \"apple\")": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-ios"], "cfg(unix)": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:aarch64-unknown-fuchsia", "@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-unknown-freebsd", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-ios", "@rules_rust//rust/platform:x86_64-linux-android", "@rules_rust//rust/platform:x86_64-unknown-freebsd", "@rules_rust//rust/platform:x86_64-unknown-fuchsia", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"], "cfg(windows)": ["@rules_rust//rust/platform:aarch64-pc-windows-msvc", "@rules_rust//rust/platform:i686-pc-windows-msvc", "@rules_rust//rust/platform:x86_64-pc-windows-msvc"], + "cfg(windows_raw_dylib)": [], "i686-apple-darwin": ["@rules_rust//rust/platform:i686-apple-darwin"], "i686-linux-android": ["@rules_rust//rust/platform:i686-linux-android"], - "i686-pc-windows-gnu": [], "i686-pc-windows-gnullvm": [], "i686-pc-windows-msvc": ["@rules_rust//rust/platform:i686-pc-windows-msvc"], "i686-unknown-freebsd": ["@rules_rust//rust/platform:i686-unknown-freebsd"], @@ -640,7 +638,6 @@ _CONDITIONS = { "x86_64-apple-darwin": ["@rules_rust//rust/platform:x86_64-apple-darwin"], "x86_64-apple-ios": ["@rules_rust//rust/platform:x86_64-apple-ios"], "x86_64-linux-android": ["@rules_rust//rust/platform:x86_64-linux-android"], - "x86_64-pc-windows-gnu": [], "x86_64-pc-windows-gnullvm": [], "x86_64-pc-windows-msvc": ["@rules_rust//rust/platform:x86_64-pc-windows-msvc"], "x86_64-unknown-freebsd": ["@rules_rust//rust/platform:x86_64-unknown-freebsd"], @@ -661,12 +658,12 @@ def crate_repositories(): """ maybe( http_archive, - name = "vendor_ts__adler2-2.0.0", - sha256 = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627", + name = "vendor_ts__adler2-2.0.1", + sha256 = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa", type = "tar.gz", - urls = ["https://static.crates.io/crates/adler2/2.0.0/download"], - strip_prefix = "adler2-2.0.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.adler2-2.0.0.bazel"), + urls = ["https://static.crates.io/crates/adler2/2.0.1/download"], + strip_prefix = "adler2-2.0.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.adler2-2.0.1.bazel"), ) maybe( @@ -689,16 +686,6 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.allocator-api2-0.2.21.bazel"), ) - maybe( - http_archive, - name = "vendor_ts__android-tzdata-0.1.1", - sha256 = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0", - type = "tar.gz", - urls = ["https://static.crates.io/crates/android-tzdata/0.1.1/download"], - strip_prefix = "android-tzdata-0.1.1", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.android-tzdata-0.1.1.bazel"), - ) - maybe( http_archive, name = "vendor_ts__android_system_properties-0.1.5", @@ -711,12 +698,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__anstream-0.6.19", - sha256 = "301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933", + name = "vendor_ts__anstream-0.6.20", + sha256 = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192", type = "tar.gz", - urls = ["https://static.crates.io/crates/anstream/0.6.19/download"], - strip_prefix = "anstream-0.6.19", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.anstream-0.6.19.bazel"), + urls = ["https://static.crates.io/crates/anstream/0.6.20/download"], + strip_prefix = "anstream-0.6.20", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.anstream-0.6.20.bazel"), ) maybe( @@ -741,22 +728,22 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__anstyle-query-1.1.3", - sha256 = "6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9", + name = "vendor_ts__anstyle-query-1.1.4", + sha256 = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2", type = "tar.gz", - urls = ["https://static.crates.io/crates/anstyle-query/1.1.3/download"], - strip_prefix = "anstyle-query-1.1.3", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.anstyle-query-1.1.3.bazel"), + urls = ["https://static.crates.io/crates/anstyle-query/1.1.4/download"], + strip_prefix = "anstyle-query-1.1.4", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.anstyle-query-1.1.4.bazel"), ) maybe( http_archive, - name = "vendor_ts__anstyle-wincon-3.0.9", - sha256 = "403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882", + name = "vendor_ts__anstyle-wincon-3.0.10", + sha256 = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a", type = "tar.gz", - urls = ["https://static.crates.io/crates/anstyle-wincon/3.0.9/download"], - strip_prefix = "anstyle-wincon-3.0.9", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.anstyle-wincon-3.0.9.bazel"), + urls = ["https://static.crates.io/crates/anstyle-wincon/3.0.10/download"], + strip_prefix = "anstyle-wincon-3.0.10", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.anstyle-wincon-3.0.10.bazel"), ) maybe( @@ -791,12 +778,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__atomic-0.6.0", - sha256 = "8d818003e740b63afc82337e3160717f4f63078720a810b7b903e70a5d1d2994", + name = "vendor_ts__atomic-0.6.1", + sha256 = "a89cbf775b137e9b968e67227ef7f775587cde3fd31b0d8599dbd0f598a48340", type = "tar.gz", - urls = ["https://static.crates.io/crates/atomic/0.6.0/download"], - strip_prefix = "atomic-0.6.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.atomic-0.6.0.bazel"), + urls = ["https://static.crates.io/crates/atomic/0.6.1/download"], + strip_prefix = "atomic-0.6.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.atomic-0.6.1.bazel"), ) maybe( @@ -831,12 +818,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__bitflags-2.9.1", - sha256 = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967", + name = "vendor_ts__bitflags-2.9.4", + sha256 = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394", type = "tar.gz", - urls = ["https://static.crates.io/crates/bitflags/2.9.1/download"], - strip_prefix = "bitflags-2.9.1", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.bitflags-2.9.1.bazel"), + urls = ["https://static.crates.io/crates/bitflags/2.9.4/download"], + strip_prefix = "bitflags-2.9.4", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.bitflags-2.9.4.bazel"), ) maybe( @@ -851,22 +838,22 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__boxcar-0.2.13", - sha256 = "26c4925bc979b677330a8c7fe7a8c94af2dbb4a2d37b4a20a80d884400f46baa", + name = "vendor_ts__boxcar-0.2.14", + sha256 = "36f64beae40a84da1b4b26ff2761a5b895c12adc41dc25aaee1c4f2bbfe97a6e", type = "tar.gz", - urls = ["https://static.crates.io/crates/boxcar/0.2.13/download"], - strip_prefix = "boxcar-0.2.13", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.boxcar-0.2.13.bazel"), + urls = ["https://static.crates.io/crates/boxcar/0.2.14/download"], + strip_prefix = "boxcar-0.2.14", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.boxcar-0.2.14.bazel"), ) maybe( http_archive, - name = "vendor_ts__bstr-1.11.3", - sha256 = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0", + name = "vendor_ts__bstr-1.12.0", + sha256 = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4", type = "tar.gz", - urls = ["https://static.crates.io/crates/bstr/1.11.3/download"], - strip_prefix = "bstr-1.11.3", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.bstr-1.11.3.bazel"), + urls = ["https://static.crates.io/crates/bstr/1.12.0/download"], + strip_prefix = "bstr-1.12.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.bstr-1.12.0.bazel"), ) maybe( @@ -881,22 +868,22 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__bytemuck-1.21.0", - sha256 = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3", + name = "vendor_ts__bytemuck-1.23.2", + sha256 = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677", type = "tar.gz", - urls = ["https://static.crates.io/crates/bytemuck/1.21.0/download"], - strip_prefix = "bytemuck-1.21.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.bytemuck-1.21.0.bazel"), + urls = ["https://static.crates.io/crates/bytemuck/1.23.2/download"], + strip_prefix = "bytemuck-1.23.2", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.bytemuck-1.23.2.bazel"), ) maybe( http_archive, - name = "vendor_ts__camino-1.1.10", - sha256 = "0da45bc31171d8d6960122e222a67740df867c1dd53b4d51caa297084c185cab", + name = "vendor_ts__camino-1.1.12", + sha256 = "dd0b03af37dad7a14518b7691d81acb0f8222604ad3d1b02f6b4bed5188c0cd5", type = "tar.gz", - urls = ["https://static.crates.io/crates/camino/1.1.10/download"], - strip_prefix = "camino-1.1.10", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.camino-1.1.10.bazel"), + urls = ["https://static.crates.io/crates/camino/1.1.12/download"], + strip_prefix = "camino-1.1.12", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.camino-1.1.12.bazel"), ) maybe( @@ -931,22 +918,22 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__cc-1.2.29", - sha256 = "5c1599538de2394445747c8cf7935946e3cc27e9625f889d979bfb2aaf569362", + name = "vendor_ts__cc-1.2.37", + sha256 = "65193589c6404eb80b450d618eaf9a2cafaaafd57ecce47370519ef674a7bd44", type = "tar.gz", - urls = ["https://static.crates.io/crates/cc/1.2.29/download"], - strip_prefix = "cc-1.2.29", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.cc-1.2.29.bazel"), + urls = ["https://static.crates.io/crates/cc/1.2.37/download"], + strip_prefix = "cc-1.2.37", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.cc-1.2.37.bazel"), ) maybe( http_archive, - name = "vendor_ts__cfg-if-1.0.1", - sha256 = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268", + name = "vendor_ts__cfg-if-1.0.3", + sha256 = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9", type = "tar.gz", - urls = ["https://static.crates.io/crates/cfg-if/1.0.1/download"], - strip_prefix = "cfg-if-1.0.1", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.cfg-if-1.0.1.bazel"), + urls = ["https://static.crates.io/crates/cfg-if/1.0.3/download"], + strip_prefix = "cfg-if-1.0.3", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.cfg-if-1.0.3.bazel"), ) maybe( @@ -1021,42 +1008,42 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__chrono-0.4.41", - sha256 = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d", + name = "vendor_ts__chrono-0.4.42", + sha256 = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2", type = "tar.gz", - urls = ["https://static.crates.io/crates/chrono/0.4.41/download"], - strip_prefix = "chrono-0.4.41", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.chrono-0.4.41.bazel"), + urls = ["https://static.crates.io/crates/chrono/0.4.42/download"], + strip_prefix = "chrono-0.4.42", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.chrono-0.4.42.bazel"), ) maybe( http_archive, - name = "vendor_ts__clap-4.5.44", - sha256 = "1c1f056bae57e3e54c3375c41ff79619ddd13460a17d7438712bd0d83fda4ff8", + name = "vendor_ts__clap-4.5.47", + sha256 = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931", type = "tar.gz", - urls = ["https://static.crates.io/crates/clap/4.5.44/download"], - strip_prefix = "clap-4.5.44", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.clap-4.5.44.bazel"), + urls = ["https://static.crates.io/crates/clap/4.5.47/download"], + strip_prefix = "clap-4.5.47", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.clap-4.5.47.bazel"), ) maybe( http_archive, - name = "vendor_ts__clap_builder-4.5.44", - sha256 = "b3e7f4214277f3c7aa526a59dd3fbe306a370daee1f8b7b8c987069cd8e888a8", + name = "vendor_ts__clap_builder-4.5.47", + sha256 = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6", type = "tar.gz", - urls = ["https://static.crates.io/crates/clap_builder/4.5.44/download"], - strip_prefix = "clap_builder-4.5.44", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.clap_builder-4.5.44.bazel"), + urls = ["https://static.crates.io/crates/clap_builder/4.5.47/download"], + strip_prefix = "clap_builder-4.5.47", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.clap_builder-4.5.47.bazel"), ) maybe( http_archive, - name = "vendor_ts__clap_derive-4.5.41", - sha256 = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491", + name = "vendor_ts__clap_derive-4.5.47", + sha256 = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c", type = "tar.gz", - urls = ["https://static.crates.io/crates/clap_derive/4.5.41/download"], - strip_prefix = "clap_derive-4.5.41", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.clap_derive-4.5.41.bazel"), + urls = ["https://static.crates.io/crates/clap_derive/4.5.47/download"], + strip_prefix = "clap_derive-4.5.47", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.clap_derive-4.5.47.bazel"), ) maybe( @@ -1101,22 +1088,22 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__cov-mark-2.0.0", - sha256 = "0570650661aa447e7335f1d5e4f499d8e58796e617bedc9267d971e51c8b49d4", + name = "vendor_ts__cov-mark-2.1.0", + sha256 = "3f1d92727879fb4f24cec33a35e3bff74035541326cbc12ad44ba8886d1927b0", type = "tar.gz", - urls = ["https://static.crates.io/crates/cov-mark/2.0.0/download"], - strip_prefix = "cov-mark-2.0.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.cov-mark-2.0.0.bazel"), + urls = ["https://static.crates.io/crates/cov-mark/2.1.0/download"], + strip_prefix = "cov-mark-2.1.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.cov-mark-2.1.0.bazel"), ) maybe( http_archive, - name = "vendor_ts__crc32fast-1.4.2", - sha256 = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3", + name = "vendor_ts__crc32fast-1.5.0", + sha256 = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511", type = "tar.gz", - urls = ["https://static.crates.io/crates/crc32fast/1.4.2/download"], - strip_prefix = "crc32fast-1.4.2", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.crc32fast-1.4.2.bazel"), + urls = ["https://static.crates.io/crates/crc32fast/1.5.0/download"], + strip_prefix = "crc32fast-1.5.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.crc32fast-1.5.0.bazel"), ) maybe( @@ -1211,12 +1198,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__deranged-0.4.0", - sha256 = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e", + name = "vendor_ts__deranged-0.5.3", + sha256 = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc", type = "tar.gz", - urls = ["https://static.crates.io/crates/deranged/0.4.0/download"], - strip_prefix = "deranged-0.4.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.deranged-0.4.0.bazel"), + urls = ["https://static.crates.io/crates/deranged/0.5.3/download"], + strip_prefix = "deranged-0.5.3", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.deranged-0.5.3.bazel"), ) maybe( @@ -1251,12 +1238,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__dyn-clone-1.0.19", - sha256 = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005", + name = "vendor_ts__dyn-clone-1.0.20", + sha256 = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555", type = "tar.gz", - urls = ["https://static.crates.io/crates/dyn-clone/1.0.19/download"], - strip_prefix = "dyn-clone-1.0.19", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.dyn-clone-1.0.19.bazel"), + urls = ["https://static.crates.io/crates/dyn-clone/1.0.20/download"], + strip_prefix = "dyn-clone-1.0.20", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.dyn-clone-1.0.20.bazel"), ) maybe( @@ -1381,12 +1368,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__filetime-0.2.25", - sha256 = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586", + name = "vendor_ts__find-msvc-tools-0.1.1", + sha256 = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d", type = "tar.gz", - urls = ["https://static.crates.io/crates/filetime/0.2.25/download"], - strip_prefix = "filetime-0.2.25", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.filetime-0.2.25.bazel"), + urls = ["https://static.crates.io/crates/find-msvc-tools/0.1.1/download"], + strip_prefix = "find-msvc-tools-0.1.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.find-msvc-tools-0.1.1.bazel"), ) maybe( @@ -1401,12 +1388,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__flate2-1.1.0", - sha256 = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc", + name = "vendor_ts__flate2-1.1.2", + sha256 = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d", type = "tar.gz", - urls = ["https://static.crates.io/crates/flate2/1.1.0/download"], - strip_prefix = "flate2-1.1.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.flate2-1.1.0.bazel"), + urls = ["https://static.crates.io/crates/flate2/1.1.2/download"], + strip_prefix = "flate2-1.1.2", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.flate2-1.1.2.bazel"), ) maybe( @@ -1431,12 +1418,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__form_urlencoded-1.2.1", - sha256 = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456", + name = "vendor_ts__form_urlencoded-1.2.2", + sha256 = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf", type = "tar.gz", - urls = ["https://static.crates.io/crates/form_urlencoded/1.2.1/download"], - strip_prefix = "form_urlencoded-1.2.1", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.form_urlencoded-1.2.1.bazel"), + urls = ["https://static.crates.io/crates/form_urlencoded/1.2.2/download"], + strip_prefix = "form_urlencoded-1.2.2", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.form_urlencoded-1.2.2.bazel"), ) maybe( @@ -1491,12 +1478,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__globset-0.4.15", - sha256 = "15f1ce686646e7f1e19bf7d5533fe443a45dbfb990e00629110797578b42fb19", + name = "vendor_ts__globset-0.4.16", + sha256 = "54a1028dfc5f5df5da8a56a73e6c153c9a9708ec57232470703592a3f18e49f5", type = "tar.gz", - urls = ["https://static.crates.io/crates/globset/0.4.15/download"], - strip_prefix = "globset-0.4.15", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.globset-0.4.15.bazel"), + urls = ["https://static.crates.io/crates/globset/0.4.16/download"], + strip_prefix = "globset-0.4.16", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.globset-0.4.16.bazel"), ) maybe( @@ -1521,12 +1508,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__hashbrown-0.15.4", - sha256 = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5", + name = "vendor_ts__hashbrown-0.15.5", + sha256 = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1", type = "tar.gz", - urls = ["https://static.crates.io/crates/hashbrown/0.15.4/download"], - strip_prefix = "hashbrown-0.15.4", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.hashbrown-0.15.4.bazel"), + urls = ["https://static.crates.io/crates/hashbrown/0.15.5/download"], + strip_prefix = "hashbrown-0.15.5", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.hashbrown-0.15.5.bazel"), ) maybe( @@ -1681,12 +1668,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__idna-1.0.3", - sha256 = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e", + name = "vendor_ts__idna-1.1.0", + sha256 = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de", type = "tar.gz", - urls = ["https://static.crates.io/crates/idna/1.0.3/download"], - strip_prefix = "idna-1.0.3", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.idna-1.0.3.bazel"), + urls = ["https://static.crates.io/crates/idna/1.1.0/download"], + strip_prefix = "idna-1.1.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.idna-1.1.0.bazel"), ) maybe( @@ -1711,12 +1698,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__indexmap-2.10.0", - sha256 = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661", + name = "vendor_ts__indexmap-2.11.1", + sha256 = "206a8042aec68fa4a62e8d3f7aa4ceb508177d9324faf261e1959e495b7a1921", type = "tar.gz", - urls = ["https://static.crates.io/crates/indexmap/2.10.0/download"], - strip_prefix = "indexmap-2.10.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.indexmap-2.10.0.bazel"), + urls = ["https://static.crates.io/crates/indexmap/2.11.1/download"], + strip_prefix = "indexmap-2.11.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.indexmap-2.11.1.bazel"), ) maybe( @@ -1801,12 +1788,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__jobserver-0.1.32", - sha256 = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0", + name = "vendor_ts__jobserver-0.1.34", + sha256 = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33", type = "tar.gz", - urls = ["https://static.crates.io/crates/jobserver/0.1.32/download"], - strip_prefix = "jobserver-0.1.32", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.jobserver-0.1.32.bazel"), + urls = ["https://static.crates.io/crates/jobserver/0.1.34/download"], + strip_prefix = "jobserver-0.1.34", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.jobserver-0.1.34.bazel"), ) maybe( @@ -1821,12 +1808,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__js-sys-0.3.77", - sha256 = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f", + name = "vendor_ts__js-sys-0.3.78", + sha256 = "0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738", type = "tar.gz", - urls = ["https://static.crates.io/crates/js-sys/0.3.77/download"], - strip_prefix = "js-sys-0.3.77", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.js-sys-0.3.77.bazel"), + urls = ["https://static.crates.io/crates/js-sys/0.3.78/download"], + strip_prefix = "js-sys-0.3.78", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.js-sys-0.3.78.bazel"), ) maybe( @@ -1871,22 +1858,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__libc-0.2.174", - sha256 = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776", + name = "vendor_ts__libc-0.2.175", + sha256 = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543", type = "tar.gz", - urls = ["https://static.crates.io/crates/libc/0.2.174/download"], - strip_prefix = "libc-0.2.174", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.libc-0.2.174.bazel"), - ) - - maybe( - http_archive, - name = "vendor_ts__libredox-0.1.4", - sha256 = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638", - type = "tar.gz", - urls = ["https://static.crates.io/crates/libredox/0.1.4/download"], - strip_prefix = "libredox-0.1.4", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.libredox-0.1.4.bazel"), + urls = ["https://static.crates.io/crates/libc/0.2.175/download"], + strip_prefix = "libc-0.2.175", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.libc-0.2.175.bazel"), ) maybe( @@ -1931,22 +1908,22 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__log-0.4.27", - sha256 = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94", + name = "vendor_ts__log-0.4.28", + sha256 = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432", type = "tar.gz", - urls = ["https://static.crates.io/crates/log/0.4.27/download"], - strip_prefix = "log-0.4.27", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.log-0.4.27.bazel"), + urls = ["https://static.crates.io/crates/log/0.4.28/download"], + strip_prefix = "log-0.4.28", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.log-0.4.28.bazel"), ) maybe( http_archive, - name = "vendor_ts__matchers-0.1.0", - sha256 = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558", + name = "vendor_ts__matchers-0.2.0", + sha256 = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9", type = "tar.gz", - urls = ["https://static.crates.io/crates/matchers/0.1.0/download"], - strip_prefix = "matchers-0.1.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.matchers-0.1.0.bazel"), + urls = ["https://static.crates.io/crates/matchers/0.2.0/download"], + strip_prefix = "matchers-0.2.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.matchers-0.2.0.bazel"), ) maybe( @@ -1971,12 +1948,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__miniz_oxide-0.8.5", - sha256 = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5", + name = "vendor_ts__miniz_oxide-0.8.9", + sha256 = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316", type = "tar.gz", - urls = ["https://static.crates.io/crates/miniz_oxide/0.8.5/download"], - strip_prefix = "miniz_oxide-0.8.5", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.miniz_oxide-0.8.5.bazel"), + urls = ["https://static.crates.io/crates/miniz_oxide/0.8.9/download"], + strip_prefix = "miniz_oxide-0.8.9", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.miniz_oxide-0.8.9.bazel"), ) maybe( @@ -1991,12 +1968,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__miow-0.6.0", - sha256 = "359f76430b20a79f9e20e115b3428614e654f04fab314482fc0fda0ebd3c6044", + name = "vendor_ts__miow-0.6.1", + sha256 = "536bfad37a309d62069485248eeaba1e8d9853aaf951caaeaed0585a95346f08", type = "tar.gz", - urls = ["https://static.crates.io/crates/miow/0.6.0/download"], - strip_prefix = "miow-0.6.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.miow-0.6.0.bazel"), + urls = ["https://static.crates.io/crates/miow/0.6.1/download"], + strip_prefix = "miow-0.6.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.miow-0.6.1.bazel"), ) maybe( @@ -2021,12 +1998,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__notify-8.0.0", - sha256 = "2fee8403b3d66ac7b26aee6e40a897d85dc5ce26f44da36b8b73e987cc52e943", + name = "vendor_ts__notify-8.2.0", + sha256 = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3", type = "tar.gz", - urls = ["https://static.crates.io/crates/notify/8.0.0/download"], - strip_prefix = "notify-8.0.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.notify-8.0.0.bazel"), + urls = ["https://static.crates.io/crates/notify/8.2.0/download"], + strip_prefix = "notify-8.2.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.notify-8.2.0.bazel"), ) maybe( @@ -2041,12 +2018,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__nu-ansi-term-0.46.0", - sha256 = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84", + name = "vendor_ts__nu-ansi-term-0.50.1", + sha256 = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399", type = "tar.gz", - urls = ["https://static.crates.io/crates/nu-ansi-term/0.46.0/download"], - strip_prefix = "nu-ansi-term-0.46.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.nu-ansi-term-0.46.0.bazel"), + urls = ["https://static.crates.io/crates/nu-ansi-term/0.50.1/download"], + strip_prefix = "nu-ansi-term-0.50.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.nu-ansi-term-0.50.1.bazel"), ) maybe( @@ -2121,22 +2098,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__os_str_bytes-7.0.0", - sha256 = "7ac44c994af577c799b1b4bd80dc214701e349873ad894d6cdf96f4f7526e0b9", + name = "vendor_ts__os_str_bytes-7.1.1", + sha256 = "63eceb7b5d757011a87d08eb2123db15d87fb0c281f65d101ce30a1e96c3ad5c", type = "tar.gz", - urls = ["https://static.crates.io/crates/os_str_bytes/7.0.0/download"], - strip_prefix = "os_str_bytes-7.0.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.os_str_bytes-7.0.0.bazel"), - ) - - maybe( - http_archive, - name = "vendor_ts__overload-0.1.1", - sha256 = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39", - type = "tar.gz", - urls = ["https://static.crates.io/crates/overload/0.1.1/download"], - strip_prefix = "overload-0.1.1", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.overload-0.1.1.bazel"), + urls = ["https://static.crates.io/crates/os_str_bytes/7.1.1/download"], + strip_prefix = "os_str_bytes-7.1.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.os_str_bytes-7.1.1.bazel"), ) maybe( @@ -2191,12 +2158,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__percent-encoding-2.3.1", - sha256 = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e", + name = "vendor_ts__percent-encoding-2.3.2", + sha256 = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220", type = "tar.gz", - urls = ["https://static.crates.io/crates/percent-encoding/2.3.1/download"], - strip_prefix = "percent-encoding-2.3.1", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.percent-encoding-2.3.1.bazel"), + urls = ["https://static.crates.io/crates/percent-encoding/2.3.2/download"], + strip_prefix = "percent-encoding-2.3.2", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.percent-encoding-2.3.2.bazel"), ) maybe( @@ -2261,12 +2228,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__potential_utf-0.1.2", - sha256 = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585", + name = "vendor_ts__potential_utf-0.1.3", + sha256 = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a", type = "tar.gz", - urls = ["https://static.crates.io/crates/potential_utf/0.1.2/download"], - strip_prefix = "potential_utf-0.1.2", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.potential_utf-0.1.2.bazel"), + urls = ["https://static.crates.io/crates/potential_utf/0.1.3/download"], + strip_prefix = "potential_utf-0.1.3", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.potential_utf-0.1.3.bazel"), ) maybe( @@ -2291,12 +2258,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__proc-macro2-1.0.97", - sha256 = "d61789d7719defeb74ea5fe81f2fdfdbd28a803847077cecce2ff14e1472f6f1", + name = "vendor_ts__proc-macro2-1.0.101", + sha256 = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de", type = "tar.gz", - urls = ["https://static.crates.io/crates/proc-macro2/1.0.97/download"], - strip_prefix = "proc-macro2-1.0.97", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.proc-macro2-1.0.97.bazel"), + urls = ["https://static.crates.io/crates/proc-macro2/1.0.101/download"], + strip_prefix = "proc-macro2-1.0.101", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.proc-macro2-1.0.101.bazel"), ) maybe( @@ -2411,252 +2378,252 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__ra_ap_base_db-0.0.300", - sha256 = "47cac371778785196064f1a347fbbac0aafb1053786f17378bb138be59e57fc2", + name = "vendor_ts__ra_ap_base_db-0.0.301", + sha256 = "e876bb2c3e52a8d4e6684526a2d4e81f9d028b939ee4dc5dc775fe10deb44d59", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_base_db/0.0.300/download"], - strip_prefix = "ra_ap_base_db-0.0.300", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_base_db-0.0.300.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_base_db/0.0.301/download"], + strip_prefix = "ra_ap_base_db-0.0.301", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_base_db-0.0.301.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_cfg-0.0.300", - sha256 = "6789ed14467e6625bef45b29555844d0168d8af1bea9edb0f1d44f0a9b69f398", + name = "vendor_ts__ra_ap_cfg-0.0.301", + sha256 = "3a0b56eb4536ce6d2431932c4d337aeeaf7bb22c9249b38cbe80677b5881228f", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_cfg/0.0.300/download"], - strip_prefix = "ra_ap_cfg-0.0.300", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_cfg-0.0.300.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_cfg/0.0.301/download"], + strip_prefix = "ra_ap_cfg-0.0.301", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_cfg-0.0.301.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_edition-0.0.300", - sha256 = "637b74c692dc9d9b44394f8c0f91c063e1b6223c6e54f4ee89c943db2f2ee26e", + name = "vendor_ts__ra_ap_edition-0.0.301", + sha256 = "1bdc6cbe42c63ca78611bae82bfc8db24864f33dccc813697c5fde43a0907285", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_edition/0.0.300/download"], - strip_prefix = "ra_ap_edition-0.0.300", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_edition-0.0.300.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_edition/0.0.301/download"], + strip_prefix = "ra_ap_edition-0.0.301", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_edition-0.0.301.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_hir-0.0.300", - sha256 = "a94c69a3830f0b6fbc36c1d098fcc9430f63c8d47ee6f93e3d6810c3bf440296", + name = "vendor_ts__ra_ap_hir-0.0.301", + sha256 = "ebffdc134eccabc17209d7760cfff7fd12ed18ab6e21188c5e084b97aa38504c", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_hir/0.0.300/download"], - strip_prefix = "ra_ap_hir-0.0.300", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_hir-0.0.300.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_hir/0.0.301/download"], + strip_prefix = "ra_ap_hir-0.0.301", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_hir-0.0.301.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_hir_def-0.0.300", - sha256 = "7d94fcf7743db2f4f7e2c2911563847eb8efe2b7fb9fa430c107f0ac05962254", + name = "vendor_ts__ra_ap_hir_def-0.0.301", + sha256 = "81d2337ef59550392d42aa997aa1105a3d6d1c2b3a583c777786bc4a0a074fd5", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_hir_def/0.0.300/download"], - strip_prefix = "ra_ap_hir_def-0.0.300", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_hir_def-0.0.300.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_hir_def/0.0.301/download"], + strip_prefix = "ra_ap_hir_def-0.0.301", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_hir_def-0.0.301.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_hir_expand-0.0.300", - sha256 = "67ea3f6a0ba0c1e8b63f4a41bc596c07aeb2db2f99b67fa077820cfb5fce58bd", + name = "vendor_ts__ra_ap_hir_expand-0.0.301", + sha256 = "97cf8ececb2743a819d8299a408e17f164dd1a1004d65936b3d5493b55330326", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_hir_expand/0.0.300/download"], - strip_prefix = "ra_ap_hir_expand-0.0.300", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_hir_expand-0.0.300.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_hir_expand/0.0.301/download"], + strip_prefix = "ra_ap_hir_expand-0.0.301", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_hir_expand-0.0.301.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_hir_ty-0.0.300", - sha256 = "eccf6c291a88892e59e7591e081da8b9158f8c0b1ed9cb9b73d02d29a0d3d6d9", + name = "vendor_ts__ra_ap_hir_ty-0.0.301", + sha256 = "bc004e1099ba766a61500c27d34eb5cd336430d0a89a9620315a90d7a202a73a", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_hir_ty/0.0.300/download"], - strip_prefix = "ra_ap_hir_ty-0.0.300", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_hir_ty-0.0.300.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_hir_ty/0.0.301/download"], + strip_prefix = "ra_ap_hir_ty-0.0.301", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_hir_ty-0.0.301.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_ide_db-0.0.300", - sha256 = "0bbbc97cc9837f91100711b65fb0d8ce9d7ed8da0dc418e08678d973d53da6a3", + name = "vendor_ts__ra_ap_ide_db-0.0.301", + sha256 = "d2acb572d6dbeb1c96d0339890ba91298b8f5f0ab22648da4ee2b4ab77dbc3fe", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_ide_db/0.0.300/download"], - strip_prefix = "ra_ap_ide_db-0.0.300", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_ide_db-0.0.300.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_ide_db/0.0.301/download"], + strip_prefix = "ra_ap_ide_db-0.0.301", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_ide_db-0.0.301.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_intern-0.0.300", - sha256 = "10f4785a674a41f9f52414fb7f19ab9a1d6886cad572e68721a883b0b85c256b", + name = "vendor_ts__ra_ap_intern-0.0.301", + sha256 = "14586c2c4781b69fdd0c505972d9bff8c162a8740537a3ee506faff686d9a20d", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_intern/0.0.300/download"], - strip_prefix = "ra_ap_intern-0.0.300", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_intern-0.0.300.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_intern/0.0.301/download"], + strip_prefix = "ra_ap_intern-0.0.301", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_intern-0.0.301.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_load-cargo-0.0.300", - sha256 = "f3be9990782fd2c2d90b67e2e0b4a86e7412ec8a0719950d9a68292924e85691", + name = "vendor_ts__ra_ap_load-cargo-0.0.301", + sha256 = "50ce5546b3e3414507ab4d12348d0a28748062e33a1448895c68466d0b015503", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_load-cargo/0.0.300/download"], - strip_prefix = "ra_ap_load-cargo-0.0.300", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_load-cargo-0.0.300.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_load-cargo/0.0.301/download"], + strip_prefix = "ra_ap_load-cargo-0.0.301", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_load-cargo-0.0.301.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_mbe-0.0.300", - sha256 = "5b713f4d927f9d86391f66237019b8e5dbcad4ddbbe37c91c2e21adca258b9aa", + name = "vendor_ts__ra_ap_mbe-0.0.301", + sha256 = "67333c6405797cb64aafb994b9a179157b30beeda2352e203e800be2b184a22d", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_mbe/0.0.300/download"], - strip_prefix = "ra_ap_mbe-0.0.300", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_mbe-0.0.300.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_mbe/0.0.301/download"], + strip_prefix = "ra_ap_mbe-0.0.301", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_mbe-0.0.301.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_parser-0.0.300", - sha256 = "0d3fb8a5891c1c1d6fba5e58caa86b88f831990c878e361c54c1c1ff44ca8401", + name = "vendor_ts__ra_ap_parser-0.0.301", + sha256 = "3a3b92b8b147c0826b83e70ad44e3c98e94201fc93e1f09396c43b4d7958c22a", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_parser/0.0.300/download"], - strip_prefix = "ra_ap_parser-0.0.300", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_parser-0.0.300.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_parser/0.0.301/download"], + strip_prefix = "ra_ap_parser-0.0.301", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_parser-0.0.301.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_paths-0.0.300", - sha256 = "9ccd5cfd0dae89ab2c70c4e5aa646f64bb8b5591622477342863c23a5f32dabc", + name = "vendor_ts__ra_ap_paths-0.0.301", + sha256 = "d4991f3d57fac0def7822bebfeb159c8d7b58c824bf82044b765c54f2c0971e2", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_paths/0.0.300/download"], - strip_prefix = "ra_ap_paths-0.0.300", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_paths-0.0.300.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_paths/0.0.301/download"], + strip_prefix = "ra_ap_paths-0.0.301", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_paths-0.0.301.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_proc_macro_api-0.0.300", - sha256 = "dae43c707bfb78f1b841ffb3731cc7876550463306c3b3986c20abd31033e7a2", + name = "vendor_ts__ra_ap_proc_macro_api-0.0.301", + sha256 = "45db9e2df587d56f0738afa89fb2c100ff7c1e9cbe49e07f6a8b62342832211b", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_proc_macro_api/0.0.300/download"], - strip_prefix = "ra_ap_proc_macro_api-0.0.300", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_proc_macro_api-0.0.300.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_proc_macro_api/0.0.301/download"], + strip_prefix = "ra_ap_proc_macro_api-0.0.301", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_proc_macro_api-0.0.301.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_profile-0.0.300", - sha256 = "95a7b93ca94cf0821e8bcac6bf8464cc94d7b3cbe63ffb74946a58ad03991fae", + name = "vendor_ts__ra_ap_profile-0.0.301", + sha256 = "19981637b8ee4160e228c815a7fef3944b5c0555d6af41a931be92d68978bc6c", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_profile/0.0.300/download"], - strip_prefix = "ra_ap_profile-0.0.300", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_profile-0.0.300.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_profile/0.0.301/download"], + strip_prefix = "ra_ap_profile-0.0.301", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_profile-0.0.301.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_project_model-0.0.300", - sha256 = "0751b9433a0dd49c6ae58c9572faf9557d2b53818370d72112b3adeaae5eabc4", + name = "vendor_ts__ra_ap_project_model-0.0.301", + sha256 = "5bda0769fd6ca949fdd5917acb68ddc2c143745614ddd94ef38b376838611cf8", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_project_model/0.0.300/download"], - strip_prefix = "ra_ap_project_model-0.0.300", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_project_model-0.0.300.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_project_model/0.0.301/download"], + strip_prefix = "ra_ap_project_model-0.0.301", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_project_model-0.0.301.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_query-group-macro-0.0.300", - sha256 = "5a82732eb8f5dc592d1d8d9bee23c1d66532e39293f02e23c7a546b60b35072b", + name = "vendor_ts__ra_ap_query-group-macro-0.0.301", + sha256 = "5f182a4b05f004eabaa83250a5de7ea3a13a92c88f3cbe98bfa1880cd9fbce0a", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_query-group-macro/0.0.300/download"], - strip_prefix = "ra_ap_query-group-macro-0.0.300", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_query-group-macro-0.0.300.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_query-group-macro/0.0.301/download"], + strip_prefix = "ra_ap_query-group-macro-0.0.301", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_query-group-macro-0.0.301.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_span-0.0.300", - sha256 = "c498ddf2d71705dcef9fb142269c0027c959a5eb17c435eea5466af7c3b9c47c", + name = "vendor_ts__ra_ap_span-0.0.301", + sha256 = "ca6f9fa2de07f5cccf431674b90e82c1fe1ea2339db3b3869eec44d135de09a4", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_span/0.0.300/download"], - strip_prefix = "ra_ap_span-0.0.300", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_span-0.0.300.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_span/0.0.301/download"], + strip_prefix = "ra_ap_span-0.0.301", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_span-0.0.301.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_stdx-0.0.300", - sha256 = "26ade567b0d692c7efd4ceb921cdbe182beca0b5af9a5cf05c07cf0e14db512a", + name = "vendor_ts__ra_ap_stdx-0.0.301", + sha256 = "aa770adb32896fcba934b464ac3bd179163ba2b0766e275eed5b4e262e08492b", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_stdx/0.0.300/download"], - strip_prefix = "ra_ap_stdx-0.0.300", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_stdx-0.0.300.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_stdx/0.0.301/download"], + strip_prefix = "ra_ap_stdx-0.0.301", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_stdx-0.0.301.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_syntax-0.0.300", - sha256 = "dba62d25b0296eb095d9db77e56d096417a89db4f4de1956add0d472ebcaf922", + name = "vendor_ts__ra_ap_syntax-0.0.301", + sha256 = "6e9e1393281ad5c635239d353ed3cfbf28c8d0af03d0c61a3b24b31d1143b17f", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_syntax/0.0.300/download"], - strip_prefix = "ra_ap_syntax-0.0.300", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_syntax-0.0.300.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_syntax/0.0.301/download"], + strip_prefix = "ra_ap_syntax-0.0.301", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_syntax-0.0.301.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_syntax-bridge-0.0.300", - sha256 = "664466f2e824e285b671366f81128aa4a91b501fedbf7956a6bfb1f13d8b0b39", + name = "vendor_ts__ra_ap_syntax-bridge-0.0.301", + sha256 = "684e6ff1008ee5340335888f0453d94bb38950f110059a51f1818c7f6a56a807", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_syntax-bridge/0.0.300/download"], - strip_prefix = "ra_ap_syntax-bridge-0.0.300", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_syntax-bridge-0.0.300.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_syntax-bridge/0.0.301/download"], + strip_prefix = "ra_ap_syntax-bridge-0.0.301", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_syntax-bridge-0.0.301.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_toolchain-0.0.300", - sha256 = "2ef82cfc5eb8f9d4a3be9876ce019b78fbfdb8ff4f7e4dee9e384d65122096ab", + name = "vendor_ts__ra_ap_toolchain-0.0.301", + sha256 = "61969c5f72af03a9837e077c2d939d87a5c863623725c461777c352664a3bb03", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_toolchain/0.0.300/download"], - strip_prefix = "ra_ap_toolchain-0.0.300", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_toolchain-0.0.300.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_toolchain/0.0.301/download"], + strip_prefix = "ra_ap_toolchain-0.0.301", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_toolchain-0.0.301.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_tt-0.0.300", - sha256 = "cbc858f5208f0d00f8638d14ab5ffab5d1bc79ad7fe1db5c5e0d478b9a02155c", + name = "vendor_ts__ra_ap_tt-0.0.301", + sha256 = "fb87c7b35572c18a580ea811e970b94875fad5ac7cfa8644266a59081044f959", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_tt/0.0.300/download"], - strip_prefix = "ra_ap_tt-0.0.300", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_tt-0.0.300.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_tt/0.0.301/download"], + strip_prefix = "ra_ap_tt-0.0.301", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_tt-0.0.301.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_vfs-0.0.300", - sha256 = "e065b27829f5281d2ffc41de72551a0e4c4f49a9989ba7721676f414100c8af2", + name = "vendor_ts__ra_ap_vfs-0.0.301", + sha256 = "6c174d6b9b7a7f54687df7e00c3e75ed6f082a7943a9afb1d54f33c0c12773de", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_vfs/0.0.300/download"], - strip_prefix = "ra_ap_vfs-0.0.300", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_vfs-0.0.300.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_vfs/0.0.301/download"], + strip_prefix = "ra_ap_vfs-0.0.301", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_vfs-0.0.301.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_vfs-notify-0.0.300", - sha256 = "5a3c795e86c9b5fcdbb99145e401a0d6348ed471ac96f1b7de151c0abe07a5af", + name = "vendor_ts__ra_ap_vfs-notify-0.0.301", + sha256 = "04f6fce8d47c7ce9b8f2cd0e5a55f8fc4878d6043e61f46cde4391d3a5c6086f", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_vfs-notify/0.0.300/download"], - strip_prefix = "ra_ap_vfs-notify-0.0.300", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_vfs-notify-0.0.300.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_vfs-notify/0.0.301/download"], + strip_prefix = "ra_ap_vfs-notify-0.0.301", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_vfs-notify-0.0.301.bazel"), ) maybe( @@ -2691,32 +2658,32 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__rayon-1.10.0", - sha256 = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa", + name = "vendor_ts__rayon-1.11.0", + sha256 = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f", type = "tar.gz", - urls = ["https://static.crates.io/crates/rayon/1.10.0/download"], - strip_prefix = "rayon-1.10.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.rayon-1.10.0.bazel"), + urls = ["https://static.crates.io/crates/rayon/1.11.0/download"], + strip_prefix = "rayon-1.11.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.rayon-1.11.0.bazel"), ) maybe( http_archive, - name = "vendor_ts__rayon-core-1.12.1", - sha256 = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2", + name = "vendor_ts__rayon-core-1.13.0", + sha256 = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91", type = "tar.gz", - urls = ["https://static.crates.io/crates/rayon-core/1.12.1/download"], - strip_prefix = "rayon-core-1.12.1", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.rayon-core-1.12.1.bazel"), + urls = ["https://static.crates.io/crates/rayon-core/1.13.0/download"], + strip_prefix = "rayon-core-1.13.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.rayon-core-1.13.0.bazel"), ) maybe( http_archive, - name = "vendor_ts__redox_syscall-0.5.13", - sha256 = "0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6", + name = "vendor_ts__redox_syscall-0.5.17", + sha256 = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77", type = "tar.gz", - urls = ["https://static.crates.io/crates/redox_syscall/0.5.13/download"], - strip_prefix = "redox_syscall-0.5.13", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.redox_syscall-0.5.13.bazel"), + urls = ["https://static.crates.io/crates/redox_syscall/0.5.17/download"], + strip_prefix = "redox_syscall-0.5.17", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.redox_syscall-0.5.17.bazel"), ) maybe( @@ -2741,52 +2708,32 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__regex-1.11.1", - sha256 = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191", + name = "vendor_ts__regex-1.11.2", + sha256 = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912", type = "tar.gz", - urls = ["https://static.crates.io/crates/regex/1.11.1/download"], - strip_prefix = "regex-1.11.1", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.regex-1.11.1.bazel"), + urls = ["https://static.crates.io/crates/regex/1.11.2/download"], + strip_prefix = "regex-1.11.2", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.regex-1.11.2.bazel"), ) maybe( http_archive, - name = "vendor_ts__regex-automata-0.1.10", - sha256 = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132", + name = "vendor_ts__regex-automata-0.4.10", + sha256 = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6", type = "tar.gz", - urls = ["https://static.crates.io/crates/regex-automata/0.1.10/download"], - strip_prefix = "regex-automata-0.1.10", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.regex-automata-0.1.10.bazel"), + urls = ["https://static.crates.io/crates/regex-automata/0.4.10/download"], + strip_prefix = "regex-automata-0.4.10", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.regex-automata-0.4.10.bazel"), ) maybe( http_archive, - name = "vendor_ts__regex-automata-0.4.9", - sha256 = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908", + name = "vendor_ts__regex-syntax-0.8.6", + sha256 = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001", type = "tar.gz", - urls = ["https://static.crates.io/crates/regex-automata/0.4.9/download"], - strip_prefix = "regex-automata-0.4.9", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.regex-automata-0.4.9.bazel"), - ) - - maybe( - http_archive, - name = "vendor_ts__regex-syntax-0.6.29", - sha256 = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1", - type = "tar.gz", - urls = ["https://static.crates.io/crates/regex-syntax/0.6.29/download"], - strip_prefix = "regex-syntax-0.6.29", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.regex-syntax-0.6.29.bazel"), - ) - - maybe( - http_archive, - name = "vendor_ts__regex-syntax-0.8.5", - sha256 = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c", - type = "tar.gz", - urls = ["https://static.crates.io/crates/regex-syntax/0.8.5/download"], - strip_prefix = "regex-syntax-0.8.5", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.regex-syntax-0.8.5.bazel"), + urls = ["https://static.crates.io/crates/regex-syntax/0.8.6/download"], + strip_prefix = "regex-syntax-0.8.6", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.regex-syntax-0.8.6.bazel"), ) maybe( @@ -2851,12 +2798,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__rustversion-1.0.21", - sha256 = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d", + name = "vendor_ts__rustversion-1.0.22", + sha256 = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d", type = "tar.gz", - urls = ["https://static.crates.io/crates/rustversion/1.0.21/download"], - strip_prefix = "rustversion-1.0.21", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.rustversion-1.0.21.bazel"), + urls = ["https://static.crates.io/crates/rustversion/1.0.22/download"], + strip_prefix = "rustversion-1.0.22", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.rustversion-1.0.22.bazel"), ) maybe( @@ -2981,12 +2928,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__serde-untagged-0.1.7", - sha256 = "299d9c19d7d466db4ab10addd5703e4c615dec2a5a16dbbafe191045e87ee66e", + name = "vendor_ts__serde-untagged-0.1.8", + sha256 = "34836a629bcbc6f1afdf0907a744870039b1e14c0561cb26094fa683b158eff3", type = "tar.gz", - urls = ["https://static.crates.io/crates/serde-untagged/0.1.7/download"], - strip_prefix = "serde-untagged-0.1.7", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.serde-untagged-0.1.7.bazel"), + urls = ["https://static.crates.io/crates/serde-untagged/0.1.8/download"], + strip_prefix = "serde-untagged-0.1.8", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.serde-untagged-0.1.8.bazel"), ) maybe( @@ -3011,12 +2958,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__serde_json-1.0.142", - sha256 = "030fedb782600dcbd6f02d479bf0d817ac3bb40d644745b769d6a96bc3afc5a7", + name = "vendor_ts__serde_json-1.0.143", + sha256 = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a", type = "tar.gz", - urls = ["https://static.crates.io/crates/serde_json/1.0.142/download"], - strip_prefix = "serde_json-1.0.142", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.serde_json-1.0.142.bazel"), + urls = ["https://static.crates.io/crates/serde_json/1.0.143/download"], + strip_prefix = "serde_json-1.0.143", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.serde_json-1.0.143.bazel"), ) maybe( @@ -3141,12 +3088,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__syn-2.0.104", - sha256 = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40", + name = "vendor_ts__syn-2.0.106", + sha256 = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6", type = "tar.gz", - urls = ["https://static.crates.io/crates/syn/2.0.104/download"], - strip_prefix = "syn-2.0.104", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.syn-2.0.104.bazel"), + urls = ["https://static.crates.io/crates/syn/2.0.106/download"], + strip_prefix = "syn-2.0.106", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.syn-2.0.106.bazel"), ) maybe( @@ -3191,62 +3138,62 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__thiserror-2.0.12", - sha256 = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708", + name = "vendor_ts__thiserror-2.0.16", + sha256 = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0", type = "tar.gz", - urls = ["https://static.crates.io/crates/thiserror/2.0.12/download"], - strip_prefix = "thiserror-2.0.12", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.thiserror-2.0.12.bazel"), + urls = ["https://static.crates.io/crates/thiserror/2.0.16/download"], + strip_prefix = "thiserror-2.0.16", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.thiserror-2.0.16.bazel"), ) maybe( http_archive, - name = "vendor_ts__thiserror-impl-2.0.12", - sha256 = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d", + name = "vendor_ts__thiserror-impl-2.0.16", + sha256 = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960", type = "tar.gz", - urls = ["https://static.crates.io/crates/thiserror-impl/2.0.12/download"], - strip_prefix = "thiserror-impl-2.0.12", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.thiserror-impl-2.0.12.bazel"), + urls = ["https://static.crates.io/crates/thiserror-impl/2.0.16/download"], + strip_prefix = "thiserror-impl-2.0.16", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.thiserror-impl-2.0.16.bazel"), ) maybe( http_archive, - name = "vendor_ts__thread_local-1.1.8", - sha256 = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c", + name = "vendor_ts__thread_local-1.1.9", + sha256 = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185", type = "tar.gz", - urls = ["https://static.crates.io/crates/thread_local/1.1.8/download"], - strip_prefix = "thread_local-1.1.8", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.thread_local-1.1.8.bazel"), + urls = ["https://static.crates.io/crates/thread_local/1.1.9/download"], + strip_prefix = "thread_local-1.1.9", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.thread_local-1.1.9.bazel"), ) maybe( http_archive, - name = "vendor_ts__time-0.3.41", - sha256 = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40", + name = "vendor_ts__time-0.3.43", + sha256 = "83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031", type = "tar.gz", - urls = ["https://static.crates.io/crates/time/0.3.41/download"], - strip_prefix = "time-0.3.41", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.time-0.3.41.bazel"), + urls = ["https://static.crates.io/crates/time/0.3.43/download"], + strip_prefix = "time-0.3.43", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.time-0.3.43.bazel"), ) maybe( http_archive, - name = "vendor_ts__time-core-0.1.4", - sha256 = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c", + name = "vendor_ts__time-core-0.1.6", + sha256 = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b", type = "tar.gz", - urls = ["https://static.crates.io/crates/time-core/0.1.4/download"], - strip_prefix = "time-core-0.1.4", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.time-core-0.1.4.bazel"), + urls = ["https://static.crates.io/crates/time-core/0.1.6/download"], + strip_prefix = "time-core-0.1.6", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.time-core-0.1.6.bazel"), ) maybe( http_archive, - name = "vendor_ts__time-macros-0.2.22", - sha256 = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49", + name = "vendor_ts__time-macros-0.2.24", + sha256 = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3", type = "tar.gz", - urls = ["https://static.crates.io/crates/time-macros/0.2.22/download"], - strip_prefix = "time-macros-0.2.22", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.time-macros-0.2.22.bazel"), + urls = ["https://static.crates.io/crates/time-macros/0.2.24/download"], + strip_prefix = "time-macros-0.2.24", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.time-macros-0.2.24.bazel"), ) maybe( @@ -3391,22 +3338,22 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__tracing-subscriber-0.3.19", - sha256 = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008", + name = "vendor_ts__tracing-subscriber-0.3.20", + sha256 = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5", type = "tar.gz", - urls = ["https://static.crates.io/crates/tracing-subscriber/0.3.19/download"], - strip_prefix = "tracing-subscriber-0.3.19", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.tracing-subscriber-0.3.19.bazel"), + urls = ["https://static.crates.io/crates/tracing-subscriber/0.3.20/download"], + strip_prefix = "tracing-subscriber-0.3.20", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.tracing-subscriber-0.3.20.bazel"), ) maybe( http_archive, - name = "vendor_ts__tree-sitter-0.24.6", - sha256 = "5f2434c86ba59ed15af56039cc5bf1acf8ba76ce301e32ef08827388ef285ec5", + name = "vendor_ts__tree-sitter-0.25.9", + sha256 = "ccd2a058a86cfece0bf96f7cce1021efef9c8ed0e892ab74639173e5ed7a34fa", type = "tar.gz", - urls = ["https://static.crates.io/crates/tree-sitter/0.24.6/download"], - strip_prefix = "tree-sitter-0.24.6", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.tree-sitter-0.24.6.bazel"), + urls = ["https://static.crates.io/crates/tree-sitter/0.25.9/download"], + strip_prefix = "tree-sitter-0.25.9", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.tree-sitter-0.25.9.bazel"), ) maybe( @@ -3431,12 +3378,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__tree-sitter-language-0.1.3", - sha256 = "c199356c799a8945965bb5f2c55b2ad9d9aa7c4b4f6e587fe9dea0bc715e5f9c", + name = "vendor_ts__tree-sitter-language-0.1.5", + sha256 = "c4013970217383f67b18aef68f6fb2e8d409bc5755227092d32efb0422ba24b8", type = "tar.gz", - urls = ["https://static.crates.io/crates/tree-sitter-language/0.1.3/download"], - strip_prefix = "tree-sitter-language-0.1.3", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.tree-sitter-language-0.1.3.bazel"), + urls = ["https://static.crates.io/crates/tree-sitter-language/0.1.5/download"], + strip_prefix = "tree-sitter-language-0.1.5", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.tree-sitter-language-0.1.5.bazel"), ) maybe( @@ -3511,12 +3458,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__unicode-ident-1.0.18", - sha256 = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512", + name = "vendor_ts__unicode-ident-1.0.19", + sha256 = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d", type = "tar.gz", - urls = ["https://static.crates.io/crates/unicode-ident/1.0.18/download"], - strip_prefix = "unicode-ident-1.0.18", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.unicode-ident-1.0.18.bazel"), + urls = ["https://static.crates.io/crates/unicode-ident/1.0.19/download"], + strip_prefix = "unicode-ident-1.0.19", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.unicode-ident-1.0.19.bazel"), ) maybe( @@ -3551,12 +3498,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__url-2.5.4", - sha256 = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60", + name = "vendor_ts__url-2.5.7", + sha256 = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b", type = "tar.gz", - urls = ["https://static.crates.io/crates/url/2.5.4/download"], - strip_prefix = "url-2.5.4", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.url-2.5.4.bazel"), + urls = ["https://static.crates.io/crates/url/2.5.7/download"], + strip_prefix = "url-2.5.7", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.url-2.5.7.bazel"), ) maybe( @@ -3621,102 +3568,82 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__wasi-0.14.2-wasi-0.2.4", - sha256 = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3", + name = "vendor_ts__wasi-0.14.5-wasi-0.2.4", + sha256 = "a4494f6290a82f5fe584817a676a34b9d6763e8d9d18204009fb31dceca98fd4", type = "tar.gz", - urls = ["https://static.crates.io/crates/wasi/0.14.2+wasi-0.2.4/download"], - strip_prefix = "wasi-0.14.2+wasi-0.2.4", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.wasi-0.14.2+wasi-0.2.4.bazel"), + urls = ["https://static.crates.io/crates/wasi/0.14.5+wasi-0.2.4/download"], + strip_prefix = "wasi-0.14.5+wasi-0.2.4", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.wasi-0.14.5+wasi-0.2.4.bazel"), ) maybe( http_archive, - name = "vendor_ts__wasm-bindgen-0.2.100", - sha256 = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5", + name = "vendor_ts__wasip2-1.0.0-wasi-0.2.4", + sha256 = "03fa2761397e5bd52002cd7e73110c71af2109aca4e521a9f40473fe685b0a24", type = "tar.gz", - urls = ["https://static.crates.io/crates/wasm-bindgen/0.2.100/download"], - strip_prefix = "wasm-bindgen-0.2.100", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.wasm-bindgen-0.2.100.bazel"), + urls = ["https://static.crates.io/crates/wasip2/1.0.0+wasi-0.2.4/download"], + strip_prefix = "wasip2-1.0.0+wasi-0.2.4", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.wasip2-1.0.0+wasi-0.2.4.bazel"), ) maybe( http_archive, - name = "vendor_ts__wasm-bindgen-backend-0.2.100", - sha256 = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6", + name = "vendor_ts__wasm-bindgen-0.2.101", + sha256 = "7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b", type = "tar.gz", - urls = ["https://static.crates.io/crates/wasm-bindgen-backend/0.2.100/download"], - strip_prefix = "wasm-bindgen-backend-0.2.100", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.wasm-bindgen-backend-0.2.100.bazel"), + urls = ["https://static.crates.io/crates/wasm-bindgen/0.2.101/download"], + strip_prefix = "wasm-bindgen-0.2.101", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.wasm-bindgen-0.2.101.bazel"), ) maybe( http_archive, - name = "vendor_ts__wasm-bindgen-macro-0.2.100", - sha256 = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407", + name = "vendor_ts__wasm-bindgen-backend-0.2.101", + sha256 = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb", type = "tar.gz", - urls = ["https://static.crates.io/crates/wasm-bindgen-macro/0.2.100/download"], - strip_prefix = "wasm-bindgen-macro-0.2.100", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.wasm-bindgen-macro-0.2.100.bazel"), + urls = ["https://static.crates.io/crates/wasm-bindgen-backend/0.2.101/download"], + strip_prefix = "wasm-bindgen-backend-0.2.101", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.wasm-bindgen-backend-0.2.101.bazel"), ) maybe( http_archive, - name = "vendor_ts__wasm-bindgen-macro-support-0.2.100", - sha256 = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de", + name = "vendor_ts__wasm-bindgen-macro-0.2.101", + sha256 = "7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d", type = "tar.gz", - urls = ["https://static.crates.io/crates/wasm-bindgen-macro-support/0.2.100/download"], - strip_prefix = "wasm-bindgen-macro-support-0.2.100", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.wasm-bindgen-macro-support-0.2.100.bazel"), + urls = ["https://static.crates.io/crates/wasm-bindgen-macro/0.2.101/download"], + strip_prefix = "wasm-bindgen-macro-0.2.101", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.wasm-bindgen-macro-0.2.101.bazel"), ) maybe( http_archive, - name = "vendor_ts__wasm-bindgen-shared-0.2.100", - sha256 = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d", + name = "vendor_ts__wasm-bindgen-macro-support-0.2.101", + sha256 = "7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa", type = "tar.gz", - urls = ["https://static.crates.io/crates/wasm-bindgen-shared/0.2.100/download"], - strip_prefix = "wasm-bindgen-shared-0.2.100", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.wasm-bindgen-shared-0.2.100.bazel"), + urls = ["https://static.crates.io/crates/wasm-bindgen-macro-support/0.2.101/download"], + strip_prefix = "wasm-bindgen-macro-support-0.2.101", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.wasm-bindgen-macro-support-0.2.101.bazel"), ) maybe( http_archive, - name = "vendor_ts__winapi-0.3.9", - sha256 = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419", + name = "vendor_ts__wasm-bindgen-shared-0.2.101", + sha256 = "f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1", type = "tar.gz", - urls = ["https://static.crates.io/crates/winapi/0.3.9/download"], - strip_prefix = "winapi-0.3.9", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.winapi-0.3.9.bazel"), + urls = ["https://static.crates.io/crates/wasm-bindgen-shared/0.2.101/download"], + strip_prefix = "wasm-bindgen-shared-0.2.101", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.wasm-bindgen-shared-0.2.101.bazel"), ) maybe( http_archive, - name = "vendor_ts__winapi-i686-pc-windows-gnu-0.4.0", - sha256 = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6", + name = "vendor_ts__winapi-util-0.1.11", + sha256 = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22", type = "tar.gz", - urls = ["https://static.crates.io/crates/winapi-i686-pc-windows-gnu/0.4.0/download"], - strip_prefix = "winapi-i686-pc-windows-gnu-0.4.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel"), - ) - - maybe( - http_archive, - name = "vendor_ts__winapi-util-0.1.9", - sha256 = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb", - type = "tar.gz", - urls = ["https://static.crates.io/crates/winapi-util/0.1.9/download"], - strip_prefix = "winapi-util-0.1.9", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.winapi-util-0.1.9.bazel"), - ) - - maybe( - http_archive, - name = "vendor_ts__winapi-x86_64-pc-windows-gnu-0.4.0", - sha256 = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f", - type = "tar.gz", - urls = ["https://static.crates.io/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download"], - strip_prefix = "winapi-x86_64-pc-windows-gnu-0.4.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel"), + urls = ["https://static.crates.io/crates/winapi-util/0.1.11/download"], + strip_prefix = "winapi-util-0.1.11", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.winapi-util-0.1.11.bazel"), ) maybe( @@ -3759,6 +3686,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows-link-0.1.3.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__windows-link-0.2.0", + sha256 = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65", + type = "tar.gz", + urls = ["https://static.crates.io/crates/windows-link/0.2.0/download"], + strip_prefix = "windows-link-0.2.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows-link-0.2.0.bazel"), + ) + maybe( http_archive, name = "vendor_ts__windows-result-0.3.4", @@ -3779,16 +3716,6 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows-strings-0.4.2.bazel"), ) - maybe( - http_archive, - name = "vendor_ts__windows-sys-0.48.0", - sha256 = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9", - type = "tar.gz", - urls = ["https://static.crates.io/crates/windows-sys/0.48.0/download"], - strip_prefix = "windows-sys-0.48.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows-sys-0.48.0.bazel"), - ) - maybe( http_archive, name = "vendor_ts__windows-sys-0.52.0", @@ -3821,12 +3748,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__windows-targets-0.48.5", - sha256 = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c", + name = "vendor_ts__windows-sys-0.61.0", + sha256 = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa", type = "tar.gz", - urls = ["https://static.crates.io/crates/windows-targets/0.48.5/download"], - strip_prefix = "windows-targets-0.48.5", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows-targets-0.48.5.bazel"), + urls = ["https://static.crates.io/crates/windows-sys/0.61.0/download"], + strip_prefix = "windows-sys-0.61.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows-sys-0.61.0.bazel"), ) maybe( @@ -3841,22 +3768,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__windows-targets-0.53.2", - sha256 = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef", + name = "vendor_ts__windows-targets-0.53.3", + sha256 = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91", type = "tar.gz", - urls = ["https://static.crates.io/crates/windows-targets/0.53.2/download"], - strip_prefix = "windows-targets-0.53.2", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows-targets-0.53.2.bazel"), - ) - - maybe( - http_archive, - name = "vendor_ts__windows_aarch64_gnullvm-0.48.5", - sha256 = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8", - type = "tar.gz", - urls = ["https://static.crates.io/crates/windows_aarch64_gnullvm/0.48.5/download"], - strip_prefix = "windows_aarch64_gnullvm-0.48.5", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_aarch64_gnullvm-0.48.5.bazel"), + urls = ["https://static.crates.io/crates/windows-targets/0.53.3/download"], + strip_prefix = "windows-targets-0.53.3", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows-targets-0.53.3.bazel"), ) maybe( @@ -3879,16 +3796,6 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_aarch64_gnullvm-0.53.0.bazel"), ) - maybe( - http_archive, - name = "vendor_ts__windows_aarch64_msvc-0.48.5", - sha256 = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc", - type = "tar.gz", - urls = ["https://static.crates.io/crates/windows_aarch64_msvc/0.48.5/download"], - strip_prefix = "windows_aarch64_msvc-0.48.5", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_aarch64_msvc-0.48.5.bazel"), - ) - maybe( http_archive, name = "vendor_ts__windows_aarch64_msvc-0.52.6", @@ -3909,16 +3816,6 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_aarch64_msvc-0.53.0.bazel"), ) - maybe( - http_archive, - name = "vendor_ts__windows_i686_gnu-0.48.5", - sha256 = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e", - type = "tar.gz", - urls = ["https://static.crates.io/crates/windows_i686_gnu/0.48.5/download"], - strip_prefix = "windows_i686_gnu-0.48.5", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_i686_gnu-0.48.5.bazel"), - ) - maybe( http_archive, name = "vendor_ts__windows_i686_gnu-0.52.6", @@ -3959,16 +3856,6 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_i686_gnullvm-0.53.0.bazel"), ) - maybe( - http_archive, - name = "vendor_ts__windows_i686_msvc-0.48.5", - sha256 = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406", - type = "tar.gz", - urls = ["https://static.crates.io/crates/windows_i686_msvc/0.48.5/download"], - strip_prefix = "windows_i686_msvc-0.48.5", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_i686_msvc-0.48.5.bazel"), - ) - maybe( http_archive, name = "vendor_ts__windows_i686_msvc-0.52.6", @@ -3989,16 +3876,6 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_i686_msvc-0.53.0.bazel"), ) - maybe( - http_archive, - name = "vendor_ts__windows_x86_64_gnu-0.48.5", - sha256 = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e", - type = "tar.gz", - urls = ["https://static.crates.io/crates/windows_x86_64_gnu/0.48.5/download"], - strip_prefix = "windows_x86_64_gnu-0.48.5", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_x86_64_gnu-0.48.5.bazel"), - ) - maybe( http_archive, name = "vendor_ts__windows_x86_64_gnu-0.52.6", @@ -4019,16 +3896,6 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_x86_64_gnu-0.53.0.bazel"), ) - maybe( - http_archive, - name = "vendor_ts__windows_x86_64_gnullvm-0.48.5", - sha256 = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc", - type = "tar.gz", - urls = ["https://static.crates.io/crates/windows_x86_64_gnullvm/0.48.5/download"], - strip_prefix = "windows_x86_64_gnullvm-0.48.5", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_x86_64_gnullvm-0.48.5.bazel"), - ) - maybe( http_archive, name = "vendor_ts__windows_x86_64_gnullvm-0.52.6", @@ -4049,16 +3916,6 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_x86_64_gnullvm-0.53.0.bazel"), ) - maybe( - http_archive, - name = "vendor_ts__windows_x86_64_msvc-0.48.5", - sha256 = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538", - type = "tar.gz", - urls = ["https://static.crates.io/crates/windows_x86_64_msvc/0.48.5/download"], - strip_prefix = "windows_x86_64_msvc-0.48.5", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_x86_64_msvc-0.48.5.bazel"), - ) - maybe( http_archive, name = "vendor_ts__windows_x86_64_msvc-0.52.6", @@ -4081,22 +3938,22 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__winnow-0.7.11", - sha256 = "74c7b26e3480b707944fc872477815d29a8e429d2f93a1ce000f5fa84a15cbcd", + name = "vendor_ts__winnow-0.7.13", + sha256 = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf", type = "tar.gz", - urls = ["https://static.crates.io/crates/winnow/0.7.11/download"], - strip_prefix = "winnow-0.7.11", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.winnow-0.7.11.bazel"), + urls = ["https://static.crates.io/crates/winnow/0.7.13/download"], + strip_prefix = "winnow-0.7.13", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.winnow-0.7.13.bazel"), ) maybe( http_archive, - name = "vendor_ts__wit-bindgen-rt-0.39.0", - sha256 = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1", + name = "vendor_ts__wit-bindgen-0.45.1", + sha256 = "5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36", type = "tar.gz", - urls = ["https://static.crates.io/crates/wit-bindgen-rt/0.39.0/download"], - strip_prefix = "wit-bindgen-rt-0.39.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.wit-bindgen-rt-0.39.0.bazel"), + urls = ["https://static.crates.io/crates/wit-bindgen/0.45.1/download"], + strip_prefix = "wit-bindgen-0.45.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.wit-bindgen-0.45.1.bazel"), ) maybe( @@ -4141,22 +3998,22 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__zerocopy-0.8.26", - sha256 = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f", + name = "vendor_ts__zerocopy-0.8.27", + sha256 = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c", type = "tar.gz", - urls = ["https://static.crates.io/crates/zerocopy/0.8.26/download"], - strip_prefix = "zerocopy-0.8.26", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.zerocopy-0.8.26.bazel"), + urls = ["https://static.crates.io/crates/zerocopy/0.8.27/download"], + strip_prefix = "zerocopy-0.8.27", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.zerocopy-0.8.27.bazel"), ) maybe( http_archive, - name = "vendor_ts__zerocopy-derive-0.8.26", - sha256 = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181", + name = "vendor_ts__zerocopy-derive-0.8.27", + sha256 = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831", type = "tar.gz", - urls = ["https://static.crates.io/crates/zerocopy-derive/0.8.26/download"], - strip_prefix = "zerocopy-derive-0.8.26", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.zerocopy-derive-0.8.26.bazel"), + urls = ["https://static.crates.io/crates/zerocopy-derive/0.8.27/download"], + strip_prefix = "zerocopy-derive-0.8.27", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.zerocopy-derive-0.8.27.bazel"), ) maybe( @@ -4191,12 +4048,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__zerovec-0.11.2", - sha256 = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428", + name = "vendor_ts__zerovec-0.11.4", + sha256 = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b", type = "tar.gz", - urls = ["https://static.crates.io/crates/zerovec/0.11.2/download"], - strip_prefix = "zerovec-0.11.2", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.zerovec-0.11.2.bazel"), + urls = ["https://static.crates.io/crates/zerovec/0.11.4/download"], + strip_prefix = "zerovec-0.11.4", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.zerovec-0.11.4.bazel"), ) maybe( @@ -4231,61 +4088,61 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__zstd-sys-2.0.15-zstd.1.5.7", - sha256 = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237", + name = "vendor_ts__zstd-sys-2.0.16-zstd.1.5.7", + sha256 = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748", type = "tar.gz", - urls = ["https://static.crates.io/crates/zstd-sys/2.0.15+zstd.1.5.7/download"], - strip_prefix = "zstd-sys-2.0.15+zstd.1.5.7", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.zstd-sys-2.0.15+zstd.1.5.7.bazel"), + urls = ["https://static.crates.io/crates/zstd-sys/2.0.16+zstd.1.5.7/download"], + strip_prefix = "zstd-sys-2.0.16+zstd.1.5.7", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.zstd-sys-2.0.16+zstd.1.5.7.bazel"), ) return [ struct(repo = "vendor_ts__anyhow-1.0.99", is_dev_dep = False), struct(repo = "vendor_ts__argfile-0.2.1", is_dev_dep = False), struct(repo = "vendor_ts__chalk-ir-0.104.0", is_dev_dep = False), - struct(repo = "vendor_ts__chrono-0.4.41", is_dev_dep = False), - struct(repo = "vendor_ts__clap-4.5.44", is_dev_dep = False), + struct(repo = "vendor_ts__chrono-0.4.42", is_dev_dep = False), + struct(repo = "vendor_ts__clap-4.5.47", is_dev_dep = False), struct(repo = "vendor_ts__dunce-1.0.5", is_dev_dep = False), struct(repo = "vendor_ts__either-1.15.0", is_dev_dep = False), struct(repo = "vendor_ts__encoding-0.2.33", is_dev_dep = False), struct(repo = "vendor_ts__figment-0.10.19", is_dev_dep = False), - struct(repo = "vendor_ts__flate2-1.1.0", is_dev_dep = False), + struct(repo = "vendor_ts__flate2-1.1.2", is_dev_dep = False), struct(repo = "vendor_ts__glob-0.3.3", is_dev_dep = False), - struct(repo = "vendor_ts__globset-0.4.15", is_dev_dep = False), + struct(repo = "vendor_ts__globset-0.4.16", is_dev_dep = False), struct(repo = "vendor_ts__itertools-0.14.0", is_dev_dep = False), struct(repo = "vendor_ts__lazy_static-1.5.0", is_dev_dep = False), struct(repo = "vendor_ts__mustache-0.9.0", is_dev_dep = False), struct(repo = "vendor_ts__num-traits-0.2.19", is_dev_dep = False), struct(repo = "vendor_ts__num_cpus-1.17.0", is_dev_dep = False), - struct(repo = "vendor_ts__proc-macro2-1.0.97", is_dev_dep = False), + struct(repo = "vendor_ts__proc-macro2-1.0.101", is_dev_dep = False), struct(repo = "vendor_ts__quote-1.0.40", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_base_db-0.0.300", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_cfg-0.0.300", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_hir-0.0.300", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_hir_def-0.0.300", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_hir_expand-0.0.300", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_hir_ty-0.0.300", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_ide_db-0.0.300", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_intern-0.0.300", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_load-cargo-0.0.300", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_parser-0.0.300", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_paths-0.0.300", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_project_model-0.0.300", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_span-0.0.300", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_stdx-0.0.300", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_syntax-0.0.300", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_vfs-0.0.300", is_dev_dep = False), - struct(repo = "vendor_ts__rayon-1.10.0", is_dev_dep = False), - struct(repo = "vendor_ts__regex-1.11.1", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_base_db-0.0.301", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_cfg-0.0.301", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_hir-0.0.301", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_hir_def-0.0.301", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_hir_expand-0.0.301", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_hir_ty-0.0.301", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_ide_db-0.0.301", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_intern-0.0.301", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_load-cargo-0.0.301", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_parser-0.0.301", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_paths-0.0.301", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_project_model-0.0.301", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_span-0.0.301", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_stdx-0.0.301", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_syntax-0.0.301", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_vfs-0.0.301", is_dev_dep = False), + struct(repo = "vendor_ts__rayon-1.11.0", is_dev_dep = False), + struct(repo = "vendor_ts__regex-1.11.2", is_dev_dep = False), struct(repo = "vendor_ts__serde-1.0.219", is_dev_dep = False), - struct(repo = "vendor_ts__serde_json-1.0.142", is_dev_dep = False), + struct(repo = "vendor_ts__serde_json-1.0.143", is_dev_dep = False), struct(repo = "vendor_ts__serde_with-3.14.0", is_dev_dep = False), - struct(repo = "vendor_ts__syn-2.0.104", is_dev_dep = False), + struct(repo = "vendor_ts__syn-2.0.106", is_dev_dep = False), struct(repo = "vendor_ts__toml-0.9.5", is_dev_dep = False), struct(repo = "vendor_ts__tracing-0.1.41", is_dev_dep = False), struct(repo = "vendor_ts__tracing-flame-0.2.0", is_dev_dep = False), - struct(repo = "vendor_ts__tracing-subscriber-0.3.19", is_dev_dep = False), - struct(repo = "vendor_ts__tree-sitter-0.24.6", is_dev_dep = False), + struct(repo = "vendor_ts__tracing-subscriber-0.3.20", is_dev_dep = False), + struct(repo = "vendor_ts__tree-sitter-0.25.9", is_dev_dep = False), struct(repo = "vendor_ts__tree-sitter-embedded-template-0.23.2", is_dev_dep = False), struct(repo = "vendor_ts__tree-sitter-ruby-0.23.1", is_dev_dep = False), struct(repo = "vendor_ts__triomphe-0.1.14", is_dev_dep = False), diff --git a/misc/suite-helpers/CHANGELOG.md b/misc/suite-helpers/CHANGELOG.md index 4a5e75cac92..6b54042fef3 100644 --- a/misc/suite-helpers/CHANGELOG.md +++ b/misc/suite-helpers/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.31 + +No user-facing changes. + ## 1.0.30 No user-facing changes. diff --git a/misc/suite-helpers/change-notes/released/1.0.31.md b/misc/suite-helpers/change-notes/released/1.0.31.md new file mode 100644 index 00000000000..b2642bbb5f8 --- /dev/null +++ b/misc/suite-helpers/change-notes/released/1.0.31.md @@ -0,0 +1,3 @@ +## 1.0.31 + +No user-facing changes. diff --git a/misc/suite-helpers/codeql-pack.release.yml b/misc/suite-helpers/codeql-pack.release.yml index f04640951de..f5bdc98ffc8 100644 --- a/misc/suite-helpers/codeql-pack.release.yml +++ b/misc/suite-helpers/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.30 +lastReleaseVersion: 1.0.31 diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index 16add0c5464..72c2f165759 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 1.0.31-dev +version: 1.0.32-dev groups: shared warnOnImplicitThis: true diff --git a/python/extractor/semmle/util.py b/python/extractor/semmle/util.py index 56f7889ae23..8196f76e437 100644 --- a/python/extractor/semmle/util.py +++ b/python/extractor/semmle/util.py @@ -10,7 +10,7 @@ from io import BytesIO #Semantic version of extractor. #Update this if any changes are made -VERSION = "7.1.3" +VERSION = "7.1.4" PY_EXTENSIONS = ".py", ".pyw" diff --git a/python/extractor/tests/parser/types_new.expected b/python/extractor/tests/parser/types_new.expected index a390ed1aae2..de4f4486280 100644 --- a/python/extractor/tests/parser/types_new.expected +++ b/python/extractor/tests/parser/types_new.expected @@ -308,47 +308,6 @@ Module: [1, 0] - [23, 0] ] ctx: Load ctx: Load - TypeAlias: [20, 0] - [20, 41] - name: - Name: [20, 5] - [20, 9] - variable: Variable('Baz2', None) - ctx: Store - type_parameters: [ - ParamSpec: [20, 10] - [20, 27] - name: - Name: [20, 12] - [20, 14] - variable: Variable('P2', None) - ctx: Store - default: - List: [20, 17] - [20, 27] - elts: [ - Name: [20, 18] - [20, 21] - variable: Variable('int', None) - ctx: Load - Name: [20, 23] - [20, 26] - variable: Variable('str', None) - ctx: Load - ] - ctx: Load - ] - value: - Subscript: [20, 31] - [20, 41] - value: - Name: [20, 31] - [20, 35] - variable: Variable('Spam', None) - ctx: Load - index: - BinOp: [20, 36] - [20, 40] - left: - Name: [20, 36] - [20, 36] - variable: Variable('', None) - ctx: Load - op: Pow - right: - Name: [20, 38] - [20, 40] - variable: Variable('P2', None) - ctx: Load - ctx: Load TypeAlias: [21, 0] - [21, 41] name: Name: [21, 5] - [21, 9] diff --git a/python/extractor/tests/parser/types_new.py b/python/extractor/tests/parser/types_new.py index 12e5eac0556..9709d0f3044 100644 --- a/python/extractor/tests/parser/types_new.py +++ b/python/extractor/tests/parser/types_new.py @@ -17,6 +17,6 @@ class Qux1[*Ts1 = *tuple[int, bool]]: ... # TypeAliases type Foo2[T15, U1 = str] = Bar1[T15, U1] -type Baz2[**P2 = [int, str]] = Spam[**P2] +# type Baz2[**P2 = [int, str]] = Spam[**P2] # From the PEP, but this is not actually valid syntax! type Qux2[*Ts2 = *tuple[str]] = Ham[*Ts2] type Rab[U2, T15 = str] = Bar2[T15, U2] diff --git a/python/extractor/tsg-python/Cargo.lock b/python/extractor/tsg-python/Cargo.lock index 16849dc7f4d..f3604d1a387 100644 --- a/python/extractor/tsg-python/Cargo.lock +++ b/python/extractor/tsg-python/Cargo.lock @@ -1,12 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 - -[[package]] -name = "ahash" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0453232ace82dee0dd0b4c87a59bd90f7b53b314f3e0f61fe2ee7c8a16482289" +version = 4 [[package]] name = "aho-corasick" @@ -82,12 +76,6 @@ dependencies = [ "shlex", ] -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - [[package]] name = "clap" version = "4.5.30" @@ -121,15 +109,6 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" -[[package]] -name = "hashbrown" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" -dependencies = [ - "ahash", -] - [[package]] name = "is_terminal_polyfill" version = "1.70.1" @@ -258,14 +237,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" [[package]] -name = "string-interner" -version = "0.12.2" +name = "streaming-iterator" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "383196d1876517ee6f9f0864d1fc1070331b803335d3c6daaa04bbcccd823c08" -dependencies = [ - "cfg-if", - "hashbrown", -] +checksum = "2b2231b7c3057d5e4ad0156fb3dc807d900806020c5ffa3ee6ff2c8c76fb8520" [[package]] name = "strsim" @@ -306,30 +281,39 @@ dependencies = [ [[package]] name = "tree-sitter" -version = "0.20.4" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e34327f8eac545e3f037382471b2b19367725a242bba7bc45edb9efb49fe39a" +checksum = "a5387dffa7ffc7d2dae12b50c6f7aab8ff79d6210147c6613561fc3d474c6f75" dependencies = [ "cc", "regex", + "regex-syntax", + "streaming-iterator", + "tree-sitter-language", ] [[package]] name = "tree-sitter-graph" -version = "0.7.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "639d21e886f581d293de5f5081f09af003c54607ff3fa85efa159b243ba1f97a" +checksum = "63f86eb73c7d891c4b9b6fe4d4e63dd94c506e4788af7c2296afdcfbeea626cc" dependencies = [ "log", "regex", "serde", "serde_json", "smallvec", - "string-interner", + "streaming-iterator", "thiserror", "tree-sitter", ] +[[package]] +name = "tree-sitter-language" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4013970217383f67b18aef68f6fb2e8d409bc5755227092d32efb0422ba24b8" + [[package]] name = "tsg-python" version = "0.1.0" diff --git a/python/extractor/tsg-python/Cargo.toml b/python/extractor/tsg-python/Cargo.toml index 7ad2c1c949e..f02fb06931b 100644 --- a/python/extractor/tsg-python/Cargo.toml +++ b/python/extractor/tsg-python/Cargo.toml @@ -10,7 +10,7 @@ edition = "2024" [dependencies] anyhow = "1.0" regex = "1" -tree-sitter = "=0.20.4" -tree-sitter-graph = "0.7.0" +tree-sitter = "=0.24.7" +tree-sitter-graph = "0.12.0" tsp = {path = "tsp"} clap = "4.5" diff --git a/python/extractor/tsg-python/python.tsg b/python/extractor/tsg-python/python.tsg index 00e231ee6d5..50a59d4c27c 100644 --- a/python/extractor/tsg-python/python.tsg +++ b/python/extractor/tsg-python/python.tsg @@ -6,16 +6,6 @@ (module) @mod { let @mod.node = (ast-node @mod "Module") } -(_) @anynode -{ - scan (node-type @anynode) { - "^(ERROR|MISSING)$" { - let @anynode.node = (ast-node @anynode "SyntaxErrorNode") - attr (@anynode.node) source = (source-text @anynode) - } - } -} - (parenthesized_expression) @nd { let @nd.node = (ast-node @nd "Expr") } @@ -416,13 +406,13 @@ attr (@if.node) _location_end = (location-end @expr) } -(generator_expression . "(" . (comment)* . (expression) @start (for_in_clause) @child [(for_in_clause) (if_clause)] @end . (comment)* . ")" .) @genexpr +(generator_expression . "(" . (comment)* . (expression) @start (for_in_clause) @child [(for_in_clause) (if_clause)] @end . (comment)* . ")" .) @_genexpr { attr (@child.node) _location_start = (location-start @start) attr (@child.node) _location_end = (location-end @end) } -(generator_expression . "(" . (comment)* . (expression) @start (for_in_clause) @end . (comment)* . ")" .) @genexpr +(generator_expression . "(" . (comment)* . (expression) @start (for_in_clause) @end . (comment)* . ")" .) @_genexpr { attr (@end.node) _location_start = (location-start @start) attr (@end.node) _location_end = (location-end @end) @@ -524,7 +514,7 @@ attr (@del.node -> @target.node) targets = (named-child-index @target) } -(delete_statement target: (_) @target) @del +(delete_statement target: (_) @target) @_del { attr (@target.node) ctx = "del" } @@ -798,8 +788,8 @@ (dictionary_comprehension body: (pair - key: (_) @key - value: (_) @value + key: (_) @_key + value: (_) @_value ) ) @genexpr { @@ -1299,7 +1289,7 @@ ; the index of the left-hand side of the current assignment. ; Base case, for the outermost assignment we set the outermost node to this node, and the index to zero. -(expression_statement (assignment !type) @assign) @expr +(expression_statement (assignment !type) @assign) @_expr { let @assign.outermost_assignment = @assign.node let @assign.target_index = 0 @@ -1358,7 +1348,7 @@ } (assignment - left: (_) @target + left: (_) @_target type: (_) right: (_) @value ) @assign @@ -2330,7 +2320,7 @@ attr (@operand.node) ctx = "load" } -(unary_operator "~" @op) @unaryop +(unary_operator "~" @_op) @unaryop { attr (@unaryop.node) op = "~" } @@ -2614,7 +2604,7 @@ ; Async status ; NOTE: We only set the `is_async` field on the _first_ clause of the `with` statement, ; as this is the behaviour of the old parser. -(with_statement "async" "with" @with_keyword (with_clause . (with_item) @with)) +(with_statement "async" "with" @_with_keyword (with_clause . (with_item) @with)) { attr (@with.node) is_async = #true } @@ -2800,7 +2790,7 @@ (identifier) @obj . (identifier) @attr -) @match_value_pattern +) @_match_value_pattern { let attribute = (ast-node @attr "Attribute") attr (@attr.node) _skip_to = attribute @@ -2814,7 +2804,7 @@ (match_value_pattern . (identifier) @id -) @match_value_pattern +) @_match_value_pattern { attr (@id.node) ctx = "load" } @@ -3267,8 +3257,8 @@ (decorated_definition (decorator (expression) @exp1) @dec1 . (comment)* . - (decorator (expression) @exp2) @dec2 -) @decorator + (decorator (expression) @_exp2) @dec2 +) @_decorator { attr (@dec1.node) func = @exp1.node edge @dec1.node -> @dec2.node @@ -3279,7 +3269,7 @@ (decorator (expression) @exp) @last . (comment)* . definition: (function_definition) @funcdef -) @decorator +) @_decorator { attr (@last.node) func = @exp.node edge @last.node -> @funcdef.funcexpr @@ -3291,7 +3281,7 @@ (decorator (expression) @exp) @last . (comment)* . definition: (class_definition) @class -) @decorator +) @_decorator { attr (@last.node) func = @exp.node edge @last.node -> @class.class_expr diff --git a/python/extractor/tsg-python/src/main.rs b/python/extractor/tsg-python/src/main.rs index 6b72efdb6ef..d71c93d7f2c 100644 --- a/python/extractor/tsg-python/src/main.rs +++ b/python/extractor/tsg-python/src/main.rs @@ -480,6 +480,102 @@ pub mod extra_functions { } } +struct TreeIterator<'a> { + nodes_to_visit: Vec>, +} + +impl<'a> TreeIterator<'a> { + fn new(root: tree_sitter::Node<'a>) -> Self { + Self { + nodes_to_visit: vec![root], + } + } +} + +impl<'a> Iterator for TreeIterator<'a> { + type Item = tree_sitter::Node<'a>; + + fn next(&mut self) -> Option { + if let Some(node) = self.nodes_to_visit.pop() { + // Add all children to the queue for processing + let children: Vec<_> = (0..node.child_count()) + .rev() + .filter_map(|i| node.child(i)) + .collect(); + self.nodes_to_visit.extend(children); + Some(node) + } else { + None + } + } +} + +#[derive(Debug, Clone)] +struct SyntaxError { + start_pos: tree_sitter::Point, + end_pos: tree_sitter::Point, + source: String, +} + +fn syntax_errors_from_tree<'a>( + root: tree_sitter::Node<'a>, + source: &'a str, +) -> impl Iterator + 'a { + TreeIterator::new(root) + .filter(|&node| node.is_error() || node.is_missing()) + .map(move |node| { + let start_pos = node.start_position(); + let end_pos = node.end_position(); + let text = &source.get(node.byte_range()).unwrap_or(""); + SyntaxError { + start_pos, + end_pos, + source: text.to_string(), + } + }) +} + +fn add_syntax_error_nodes(graph: &mut tree_sitter_graph::graph::Graph, errors: &[SyntaxError]) { + for error in errors { + let error_node = graph.add_graph_node(); + + // Add _kind attribute + graph[error_node] + .attributes + .add( + tree_sitter_graph::Identifier::from("_kind"), + tree_sitter_graph::graph::Value::String("SyntaxErrorNode".to_string()), + ) + .expect("Fresh node should not have duplicate attributes"); + + // Add _location attribute + let location = tree_sitter_graph::graph::Value::List( + vec![ + error.start_pos.row, + error.start_pos.column, + error.end_pos.row, + error.end_pos.column, + ] + .into_iter() + .map(|v| tree_sitter_graph::graph::Value::from(v as u32)) + .collect(), + ); + graph[error_node] + .attributes + .add(tree_sitter_graph::Identifier::from("_location"), location) + .expect("Fresh node should not have duplicate attributes"); + + // Add source attribute + graph[error_node] + .attributes + .add( + tree_sitter_graph::Identifier::from("source"), + tree_sitter_graph::graph::Value::String(error.source.clone()), + ) + .expect("Fresh node should not have duplicate attributes"); + } +} + fn main() -> Result<()> { let matches = Command::new("tsg-python") .version(BUILD_VERSION) @@ -502,7 +598,7 @@ fn main() -> Result<()> { let source_path = Path::new(matches.get_one::("source").unwrap()); let language = tsp::language(); let mut parser = Parser::new(); - parser.set_language(language)?; + parser.set_language(&language)?; // Statically include `python.tsg`: let tsg = if matches.contains_id("tsg") { std::fs::read(&tsg_path).with_context(|| format!("Error reading TSG file {}", tsg_path))? @@ -581,10 +677,18 @@ fn main() -> Result<()> { ); let globals = Variables::new(); - let mut config = ExecutionConfig::new(&mut functions, &globals).lazy(false); - let graph = file - .execute(&tree, &source, &mut config, &NoCancellation) + let config = ExecutionConfig::new(&functions, &globals).lazy(false); + let mut graph = file + .execute(&tree, &source, &config, &NoCancellation) .with_context(|| format!("Could not execute TSG file {}", tsg_path))?; + + // Collect and add syntax error nodes to the graph + if tree.root_node().has_error() { + let syntax_errors: Vec = + syntax_errors_from_tree(tree.root_node(), &source).collect(); + add_syntax_error_nodes(&mut graph, &syntax_errors); + } + print!("{}", graph.pretty_print()); Ok(()) } diff --git a/python/extractor/tsg-python/tsp/Cargo.toml b/python/extractor/tsg-python/tsp/Cargo.toml index e3614456662..3d8587bbe5a 100644 --- a/python/extractor/tsg-python/tsp/Cargo.toml +++ b/python/extractor/tsg-python/tsp/Cargo.toml @@ -26,7 +26,7 @@ path = "bindings/rust/lib.rs" ## When updating these dependencies, run `misc/bazel/3rdparty/update_cargo_deps.sh` [dependencies] -tree-sitter = ">= 0.20, < 0.21" +tree-sitter = "=0.24.7" [build-dependencies] cc = "1.2" diff --git a/python/ql/integration-tests/query-suite/not_included_in_qls.expected b/python/ql/integration-tests/query-suite/not_included_in_qls.expected index 05108abc206..8d0e0814d53 100644 --- a/python/ql/integration-tests/query-suite/not_included_in_qls.expected +++ b/python/ql/integration-tests/query-suite/not_included_in_qls.expected @@ -1,11 +1,7 @@ ql/python/ql/src/AlertSuppression.ql ql/python/ql/src/Classes/MaybeUndefinedClassAttribute.ql -ql/python/ql/src/Classes/ShouldBeContextManager.ql ql/python/ql/src/Classes/UndefinedClassAttribute.ql -ql/python/ql/src/Classes/UselessClass.ql -ql/python/ql/src/Expressions/NonPortableComparisonUsingIs.ql ql/python/ql/src/Filters/ClassifyFiles.ql -ql/python/ql/src/Functions/ReturnValueIgnored.ql ql/python/ql/src/Imports/ImportShadowedByLoopVar.ql ql/python/ql/src/Imports/ImportStarUsed.ql ql/python/ql/src/Imports/Imports.ql @@ -59,16 +55,12 @@ ql/python/ql/src/Metrics/TransitiveImports.ql ql/python/ql/src/Security/CWE-020-ExternalAPIs/ExternalAPIsUsedWithUntrustedData.ql ql/python/ql/src/Security/CWE-020-ExternalAPIs/UntrustedDataToExternalAPI.ql ql/python/ql/src/Security/CWE-798/HardcodedCredentials.ql -ql/python/ql/src/Statements/AssertLiteralConstant.ql ql/python/ql/src/Statements/C_StyleParentheses.ql ql/python/ql/src/Statements/DocStrings.ql ql/python/ql/src/Statements/ExecUsed.ql ql/python/ql/src/Statements/StringConcatenationInLoop.ql ql/python/ql/src/Variables/Global.ql -ql/python/ql/src/Variables/ShadowBuiltin.ql -ql/python/ql/src/Variables/ShadowGlobal.ql ql/python/ql/src/Variables/UndefinedGlobal.ql -ql/python/ql/src/Variables/UnusedParameter.ql ql/python/ql/src/analysis/CallGraphEfficiency.ql ql/python/ql/src/analysis/CallGraphMarginalEfficiency.ql ql/python/ql/src/analysis/Consistency.ql diff --git a/python/ql/integration-tests/query-suite/python-code-quality-extended.qls.expected b/python/ql/integration-tests/query-suite/python-code-quality-extended.qls.expected index b0cb4532541..cc8d0fd7f5e 100644 --- a/python/ql/integration-tests/query-suite/python-code-quality-extended.qls.expected +++ b/python/ql/integration-tests/query-suite/python-code-quality-extended.qls.expected @@ -10,7 +10,10 @@ ql/python/ql/src/Classes/DefineEqualsWhenAddingAttributes.ql ql/python/ql/src/Classes/InconsistentMRO.ql ql/python/ql/src/Classes/InitCallsSubclass/InitCallsSubclassMethod.ql ql/python/ql/src/Classes/MutatingDescriptor.ql +ql/python/ql/src/Classes/OverwritingAttributeInSuperClass.ql +ql/python/ql/src/Classes/ShouldBeContextManager.ql ql/python/ql/src/Classes/SubclassShadowing/SubclassShadowing.ql +ql/python/ql/src/Classes/UselessClass.ql ql/python/ql/src/Classes/WrongNameForArgumentInClassInstantiation.ql ql/python/ql/src/Classes/WrongNumberArgumentsInClassInstantiation.ql ql/python/ql/src/Exceptions/CatchingBaseException.ql @@ -37,6 +40,7 @@ ql/python/ql/src/Expressions/Formatting/WrongNumberArgumentsFor3101Format.ql ql/python/ql/src/Expressions/HashedButNoHash.ql ql/python/ql/src/Expressions/IncorrectComparisonUsingIs.ql ql/python/ql/src/Expressions/NonCallableCalled.ql +ql/python/ql/src/Expressions/NonPortableComparisonUsingIs.ql ql/python/ql/src/Expressions/Regex/BackspaceEscape.ql ql/python/ql/src/Expressions/Regex/DuplicateCharacterInSet.ql ql/python/ql/src/Expressions/Regex/MissingPartSpecialGroup.ql @@ -61,10 +65,12 @@ ql/python/ql/src/Functions/NonCls.ql ql/python/ql/src/Functions/NonSelf.ql ql/python/ql/src/Functions/OverlyComplexDelMethod.ql ql/python/ql/src/Functions/ReturnConsistentTupleSizes.ql +ql/python/ql/src/Functions/ReturnValueIgnored.ql ql/python/ql/src/Functions/SignatureOverriddenMethod.ql ql/python/ql/src/Functions/SignatureSpecialMethods.ql ql/python/ql/src/Functions/UseImplicitNoneReturnValue.ql ql/python/ql/src/Imports/EncodingError.ql +ql/python/ql/src/Imports/FromImportOfMutableAttribute.ql ql/python/ql/src/Imports/ImportandImportFrom.ql ql/python/ql/src/Imports/ModuleImportsItself.ql ql/python/ql/src/Imports/MultipleImports.ql @@ -73,7 +79,9 @@ ql/python/ql/src/Imports/UnintentionalImport.ql ql/python/ql/src/Imports/UnusedImport.ql ql/python/ql/src/Lexical/CommentedOutCode.ql ql/python/ql/src/Resources/FileNotAlwaysClosed.ql +ql/python/ql/src/Statements/AssertLiteralConstant.ql ql/python/ql/src/Statements/AssertOnTuple.ql +ql/python/ql/src/Statements/BreakOrReturnInFinally.ql ql/python/ql/src/Statements/ConstantInConditional.ql ql/python/ql/src/Statements/IterableStringOrSequence.ql ql/python/ql/src/Statements/MismatchInMultipleAssignment.ql @@ -82,6 +90,7 @@ ql/python/ql/src/Statements/NestedLoopsSameVariable.ql ql/python/ql/src/Statements/NestedLoopsSameVariableWithReuse.ql ql/python/ql/src/Statements/NonIteratorInForLoop.ql ql/python/ql/src/Statements/RedundantAssignment.ql +ql/python/ql/src/Statements/ReturnOrYieldOutsideFunction.ql ql/python/ql/src/Statements/ShouldUseWithStatement.ql ql/python/ql/src/Statements/SideEffectInAssert.ql ql/python/ql/src/Statements/StatementNoEffect.ql @@ -95,7 +104,12 @@ ql/python/ql/src/Testing/ImpreciseAssert.ql ql/python/ql/src/Variables/GlobalAtModuleLevel.ql ql/python/ql/src/Variables/LoopVariableCapture/LoopVariableCapture.ql ql/python/ql/src/Variables/MultiplyDefined.ql +ql/python/ql/src/Variables/ShadowBuiltin.ql +ql/python/ql/src/Variables/ShadowGlobal.ql ql/python/ql/src/Variables/SuspiciousUnusedLoopIterationVariable.ql ql/python/ql/src/Variables/UndefinedExport.ql +ql/python/ql/src/Variables/UndefinedPlaceHolder.ql +ql/python/ql/src/Variables/UninitializedLocal.ql ql/python/ql/src/Variables/UnusedLocalVariable.ql ql/python/ql/src/Variables/UnusedModuleVariable.ql +ql/python/ql/src/Variables/UnusedParameter.ql diff --git a/python/ql/lib/CHANGELOG.md b/python/ql/lib/CHANGELOG.md index eddd592be74..6a4fefd4446 100644 --- a/python/ql/lib/CHANGELOG.md +++ b/python/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 4.0.15 + +No user-facing changes. + ## 4.0.14 ### Minor Analysis Improvements diff --git a/python/ql/lib/change-notes/2025-08-11-jump-step-global-nested.md b/python/ql/lib/change-notes/2025-08-11-jump-step-global-nested.md new file mode 100644 index 00000000000..4109bb78825 --- /dev/null +++ b/python/ql/lib/change-notes/2025-08-11-jump-step-global-nested.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Data flow tracking through global variables now supports nested field access patterns such as `global_var.obj.field`. This improves the precision of taint tracking analysis when data flows through complex global variable structures. \ No newline at end of file diff --git a/python/ql/lib/change-notes/released/4.0.15.md b/python/ql/lib/change-notes/released/4.0.15.md new file mode 100644 index 00000000000..de5387e3da3 --- /dev/null +++ b/python/ql/lib/change-notes/released/4.0.15.md @@ -0,0 +1,3 @@ +## 4.0.15 + +No user-facing changes. diff --git a/python/ql/lib/codeql-pack.release.yml b/python/ql/lib/codeql-pack.release.yml index 5e4c777a339..eef62765883 100644 --- a/python/ql/lib/codeql-pack.release.yml +++ b/python/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 4.0.14 +lastReleaseVersion: 4.0.15 diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index 71746d34c4e..61875fc7f4e 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 4.0.15-dev +version: 4.0.16-dev groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/Attributes.qll b/python/ql/lib/semmle/python/dataflow/new/internal/Attributes.qll index 51dccc29312..42c0c862e89 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/Attributes.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/Attributes.qll @@ -64,6 +64,15 @@ abstract class AttrRef extends Node { abstract class AttrWrite extends AttrRef { /** Gets the data flow node corresponding to the value that is written to the attribute. */ abstract Node getValue(); + + /** + * Holds if this attribute write writes the attribute named `attrName` on object `object` with + * value `value`. + */ + predicate writes(Node object, string attrName, Node value) { + this.accesses(object, attrName) and + this.getValue() = value + } } /** @@ -225,7 +234,10 @@ private class ClassDefinitionAsAttrWrite extends AttrWrite, CfgNode { * - Dynamic attribute reads using `getattr`: `getattr(object, attr)` * - Qualified imports: `from module import attr as name` */ -abstract class AttrRead extends AttrRef, Node, LocalSourceNode { } +abstract class AttrRead extends AttrRef, Node, LocalSourceNode { + /** Holds if this attribute read reads the attribute named `attrName` on the object `object`. */ + predicate reads(Node object, string attrName) { this.accesses(object, attrName) } +} /** A simple attribute read, e.g. `object.attr` */ private class AttributeReadAsAttrRead extends AttrRead, CfgNode { diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPrivate.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPrivate.qll index 724ae82aa0d..2322539995b 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPrivate.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPrivate.qll @@ -556,6 +556,75 @@ predicate runtimeJumpStep(Node nodeFrom, Node nodeTo) { nodeFrom.asCfgNode() = param.getDefault() and nodeTo.asCfgNode() = param.getDefiningNode() ) + or + // Enhanced global variable field access tracking + globalVariableNestedFieldJumpStep(nodeFrom, nodeTo) +} + +/** Helper predicate for `globalVariableNestedFieldJumpStep`. */ +pragma[nomagic] +private predicate globalVariableAttrPathRead( + ModuleVariableNode globalVar, string accessPath, AttrRead r, string attrName +) { + globalVariableAttrPathAtDepth(globalVar, accessPath, r.getObject(), _) and + attrName = r.getAttributeName() +} + +/** Helper predicate for `globalVariableNestedFieldJumpStep`. */ +pragma[nomagic] +private predicate globalVariableAttrPathWrite( + ModuleVariableNode globalVar, string accessPath, AttrWrite w, string attrName +) { + globalVariableAttrPathAtDepth(globalVar, accessPath, w.getObject(), _) and + attrName = w.getAttributeName() +} + +/** + * Holds if there is a jump step from `nodeFrom` to `nodeTo` through global variable field access. + * This supports tracking nested object field access through global variables like `app.obj.foo`. + */ +pragma[nomagic] +private predicate globalVariableNestedFieldJumpStep(Node nodeFrom, Node nodeTo) { + exists(ModuleVariableNode globalVar, AttrWrite write, AttrRead read | + // Match writes and reads on the same global variable attribute path + exists(string accessPath, string attrName | + globalVariableAttrPathRead(globalVar, accessPath, read, attrName) and + globalVariableAttrPathWrite(globalVar, accessPath, write, attrName) + ) and + nodeFrom = write.getValue() and + nodeTo = read + ) +} + +/** + * Maximum depth for global variable nested attribute access. + * Depth 1 = globalVar.foo, depth 2 = globalVar.foo.bar, depth 3 = globalVar.foo.bar.baz, etc. + */ +private int getMaxGlobalVariableDepth() { result = 2 } + +/** + * Holds if `node` is an attribute access path starting from global variable `globalVar` at specific `depth`. + */ +private predicate globalVariableAttrPathAtDepth( + ModuleVariableNode globalVar, string accessPath, Node node, int depth +) { + // Base case: Direct global variable access (depth 0) + depth = 0 and + // We use `globalVar` instead of `globalVar.getAWrite()` due to some weirdness with how + // attribute writes are handled in the global scope (see `GlobalAttributeAssignmentAsAttrWrite`). + node in [globalVar.getARead(), globalVar] and + accessPath = "" + or + exists(Node obj, string attrName, string parentAccessPath, int parentDepth | + node.(AttrRead).reads(obj, attrName) + or + any(AttrWrite aw).writes(obj, attrName, node) + | + globalVariableAttrPathAtDepth(globalVar, parentAccessPath, obj, parentDepth) and + accessPath = parentAccessPath + "." + attrName and + depth = parentDepth + 1 and + depth <= getMaxGlobalVariableDepth() + ) } //-------- diff --git a/python/ql/src/CHANGELOG.md b/python/ql/src/CHANGELOG.md index 0c22d526f39..de3fc1ddf2b 100644 --- a/python/ql/src/CHANGELOG.md +++ b/python/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 1.6.5 + +### Minor Analysis Improvements + +* The queries `py/missing-call-to-init`, `py/missing-calls-to-del`, `py/multiple-calls-to-init`, and `py/multiple-calls-to-del` queries have been modernized; no longer relying on outdated libraries, producing more precise results with more descriptive alert messages, and improved documentation. + ## 1.6.4 ### Minor Analysis Improvements diff --git a/python/ql/src/Classes/OverwritingAttributeInSuperClass.ql b/python/ql/src/Classes/OverwritingAttributeInSuperClass.ql index 24887221141..699e4387a14 100644 --- a/python/ql/src/Classes/OverwritingAttributeInSuperClass.ql +++ b/python/ql/src/Classes/OverwritingAttributeInSuperClass.ql @@ -2,9 +2,9 @@ * @name Overwriting attribute in super-class or sub-class * @description Assignment to self attribute overwrites attribute previously defined in subclass or superclass `__init__` method. * @kind problem - * @tags reliability - * maintainability - * modularity + * @tags quality + * reliability + * correctness * @problem.severity warning * @sub-severity low * @precision medium diff --git a/python/ql/src/Classes/ShouldBeContextManager.ql b/python/ql/src/Classes/ShouldBeContextManager.ql index bdcc6dc2863..2423206e3cf 100644 --- a/python/ql/src/Classes/ShouldBeContextManager.ql +++ b/python/ql/src/Classes/ShouldBeContextManager.ql @@ -3,9 +3,10 @@ * @description Making a class a context manager allows instances to be used in a 'with' statement. * This improves resource handling and code readability. * @kind problem - * @tags maintainability + * @tags quality + * maintainability * readability - * convention + * performance * @problem.severity recommendation * @sub-severity high * @precision medium diff --git a/python/ql/src/Classes/UselessClass.ql b/python/ql/src/Classes/UselessClass.ql index 19d21c7e7ca..7e33660dafc 100644 --- a/python/ql/src/Classes/UselessClass.ql +++ b/python/ql/src/Classes/UselessClass.ql @@ -2,8 +2,10 @@ * @name Useless class * @description Class only defines one public method (apart from `__init__` or `__new__`) and should be replaced by a function * @kind problem - * @tags maintainability + * @tags quality + * maintainability * useless-code + * complexity * @problem.severity recommendation * @sub-severity low * @precision medium diff --git a/python/ql/src/Expressions/NonPortableComparisonUsingIs.ql b/python/ql/src/Expressions/NonPortableComparisonUsingIs.ql index d9a0f701635..894cc78c8f4 100644 --- a/python/ql/src/Expressions/NonPortableComparisonUsingIs.ql +++ b/python/ql/src/Expressions/NonPortableComparisonUsingIs.ql @@ -2,8 +2,9 @@ * @name Non-portable comparison using is when operands support `__eq__` * @description Comparison using 'is' when equivalence is not the same as identity and may not be portable. * @kind problem - * @tags portability - * maintainability + * @tags quality + * reliability + * correctness * @problem.severity recommendation * @sub-severity low * @precision medium diff --git a/python/ql/src/Functions/IncorrectlyOverriddenMethod.ql b/python/ql/src/Functions/IncorrectlyOverriddenMethod.ql index a46a2370c0e..a4e3bd6e0ce 100644 --- a/python/ql/src/Functions/IncorrectlyOverriddenMethod.ql +++ b/python/ql/src/Functions/IncorrectlyOverriddenMethod.ql @@ -1,4 +1,5 @@ /** + * @deprecated * @name Mismatch between signature and use of an overriding method * @description Method has a different signature from the overridden method and, if it were called, would be likely to cause an error. * @kind problem diff --git a/python/ql/src/Functions/ReturnValueIgnored.ql b/python/ql/src/Functions/ReturnValueIgnored.ql index b7f272dcc2d..d8f81534b8a 100644 --- a/python/ql/src/Functions/ReturnValueIgnored.ql +++ b/python/ql/src/Functions/ReturnValueIgnored.ql @@ -2,11 +2,10 @@ * @name Ignored return value * @description Ignoring return values may result in discarding errors or loss of information. * @kind problem - * @tags reliability + * @tags quality + * reliability + * correctness * readability - * convention - * statistical - * non-attributable * external/cwe/cwe-252 * @problem.severity recommendation * @sub-severity high diff --git a/python/ql/src/Functions/SignatureOverriddenMethod.py b/python/ql/src/Functions/SignatureOverriddenMethod.py index 7beddcb9e95..e3522351fc0 100644 --- a/python/ql/src/Functions/SignatureOverriddenMethod.py +++ b/python/ql/src/Functions/SignatureOverriddenMethod.py @@ -1,9 +1,12 @@ -# Base class method -def runsource(self, source, filename="", symbol="single"): - ... # Definition +class Base: + def runsource(self, source, filename=""): + ... -# Extend base class method -def runsource(self, source): - ... # Definition \ No newline at end of file +class Sub(Base): + def runsource(self, source): # BAD: Does not match the signature of overridden method. + ... + +def run(obj: Base): + obj.runsource("source", filename="foo.txt") \ No newline at end of file diff --git a/python/ql/src/Functions/SignatureOverriddenMethod.qhelp b/python/ql/src/Functions/SignatureOverriddenMethod.qhelp index b7da2678e3d..0575d967d3e 100644 --- a/python/ql/src/Functions/SignatureOverriddenMethod.qhelp +++ b/python/ql/src/Functions/SignatureOverriddenMethod.qhelp @@ -5,32 +5,25 @@ -

There are one (or more) legal parameters for an overridden method that are -not legal for an overriding method. This will cause an error when the overriding -method is called with a number of parameters that is legal for the overridden method. -This violates the Liskov substitution principle. +

When the signature of a method of a base class and a method of a subclass that overrides it don't match, a call to the base class method +may not be a valid call to the subclass method, and thus raise an exception if an instance of the subclass is passed instead. +If following the Liskov Substitution Principle, in which an instance of a subclass should be usable in every context as though it were an +instance of the base class, this behavior breaks the principle.

-

Ensure that the overriding method accepts all the parameters that are legal for -overridden method.

+

Ensure that the overriding method in the subclass accepts the same parameters as the base method.

-

In this example there is a mismatch between the legal parameters for the base -class method (self, source, filename, symbol) and the extension method -(self, source). The extension method can be used to override the base -method as long as values are not specified for the filename and -symbol parameters. If the extension method was passed the additional -parameters accepted by the base method then an error would occur.

+

In the following example, Base.runsource takes an optional filename argument. However, the overriding method +Sub.runsource does not. This means the run function will fail if passed an instance of Sub. +

-

The extension method should be updated to support the filename and -symbol parameters supported by the overridden method.

-
diff --git a/python/ql/src/Functions/SignatureOverriddenMethod.ql b/python/ql/src/Functions/SignatureOverriddenMethod.ql index 3e3877bc139..15b3fa70640 100644 --- a/python/ql/src/Functions/SignatureOverriddenMethod.ql +++ b/python/ql/src/Functions/SignatureOverriddenMethod.ql @@ -13,23 +13,254 @@ */ import python -import Expressions.CallArgs +import semmle.python.dataflow.new.DataFlow +import semmle.python.dataflow.new.internal.DataFlowDispatch +import codeql.util.Option -from FunctionValue base, PythonFunctionValue derived -where - not exists(base.getACall()) and - not exists(FunctionValue a_derived | - a_derived.overrides(base) and - exists(a_derived.getACall()) - ) and - not derived.getScope().isSpecialMethod() and - derived.getName() != "__init__" and - derived.isNormalMethod() and - // call to overrides distributed for efficiency - ( - derived.overrides(base) and derived.minParameters() > base.maxParameters() - or - derived.overrides(base) and derived.maxParameters() < base.minParameters() +/** Holds if `base` is overridden by `sub` */ +predicate overrides(Function base, Function sub) { + base.getName() = sub.getName() and + base.getScope() = getADirectSuperclass+(sub.getScope()) +} + +/** Constructs a string to pluralize `str` depending on `num`. */ +bindingset[num, str] +string plural(int num, string str) { + num = 1 and result = "1 " + str + or + num != 1 and result = num.toString() + " " + str + "s" +} + +/** Describes the minimum number of arguments `func` can accept, using "at least" if it may accept more. */ +string describeMin(Function func) { + exists(string descr | descr = plural(func.getMinPositionalArguments(), "positional argument") | + if func.getMinPositionalArguments() = func.getMaxPositionalArguments() + then result = descr + else result = "at least " + descr ) -select derived, "Overriding method '" + derived.getName() + "' has signature mismatch with $@.", - base, "overridden method" +} + +/** Described the maximum number of arguments `func` can accept, using "at most" if it may accept fewer, and "arbitrarily many" if it has a vararg. */ +string describeMax(Function func) { + if func.hasVarArg() + then result = "arbitrarily many positional arguments" + else + exists(string descr | descr = plural(func.getMaxPositionalArguments(), "positional argument") | + if func.getMinPositionalArguments() = func.getMaxPositionalArguments() + then result = descr + else result = "at most " + descr + ) +} + +/** Describes the minimum number of arguments `func` can accept, without repeating "positional arguments". */ +string describeMinShort(Function func) { + exists(string descr | descr = func.getMinPositionalArguments().toString() | + if func.getMinPositionalArguments() = func.getMaxPositionalArguments() + then result = descr + else result = "at least " + descr + ) +} + +/** Describes the maximum number of arguments `func` can accept, without repeating "positional arguments". */ +string describeMaxShort(Function func) { + if func.hasVarArg() + then result = "arbitrarily many" + else + exists(string descr | descr = func.getMaxPositionalArguments().toString() | + if func.getMinPositionalArguments() = func.getMaxPositionalArguments() + then result = descr + else result = "at most " + descr + ) +} + +/** Describe an upper bound on the number of arguments `func` may accept, without specifying "at most". */ +string describeMaxBound(Function func) { + if func.hasVarArg() + then result = "arbitrarily many" + else result = func.getMaxPositionalArguments().toString() +} + +/** Holds if no way to call `base` would be valid for `sub`. The `msg` applies to the `sub method. */ +predicate strongSignatureMismatch(Function base, Function sub, string msg) { + overrides(base, sub) and + ( + sub.getMinPositionalArguments() > base.getMaxPositionalArguments() and + msg = + "requires " + describeMin(sub) + ", whereas overridden $@ requires " + describeMaxShort(base) + + "." + or + sub.getMaxPositionalArguments() < base.getMinPositionalArguments() and + msg = + "requires " + describeMax(sub) + ", whereas overridden $@ requires " + describeMinShort(base) + + "." + ) +} + +/** Holds if there may be some ways to call `base` that would not be valid for `sub`. The `msg` applies to the `sub` method. */ +predicate weakSignatureMismatch(Function base, Function sub, string msg) { + overrides(base, sub) and + ( + sub.getMinPositionalArguments() > base.getMinPositionalArguments() and + msg = + "requires " + describeMin(sub) + ", whereas overridden $@ may be called with " + + base.getMinPositionalArguments().toString() + "." + or + sub.getMaxPositionalArguments() < base.getMaxPositionalArguments() and + msg = + "requires " + describeMax(sub) + ", whereas overridden $@ may be called with " + + describeMaxBound(base) + "." + or + sub.getMinPositionalArguments() <= base.getMinPositionalArguments() and + sub.getMaxPositionalArguments() >= base.getMaxPositionalArguments() and + exists(string arg | + // TODO: positional-only args not considered + // e.g. `def foo(x, y, /, z):` has x,y as positional only args, should not be considered as possible kw args + // However, this likely does not create FPs, as we require a 'witness' call to generate an alert. + arg = base.getAnArg().getName() and + not arg = sub.getAnArg().getName() and + not exists(sub.getKwarg()) and + msg = "does not accept keyword argument `" + arg + "`, which overridden $@ does." + ) + or + exists(base.getKwarg()) and + not exists(sub.getKwarg()) and + msg = "does not accept arbitrary keyword arguments, which overridden $@ does." + ) +} + +/** Holds if `f` should be ignored for considering signature mismatches. */ +predicate ignore(Function f) { + isClassmethod(f) + or + exists( + Function g // other functions with the same name, e.g. @property getters/setters. + | + g.getScope() = f.getScope() and + g.getName() = f.getName() and + g != f + ) +} + +/** Gets a function that `call` may resolve to. */ +Function resolveCall(Call call) { + exists(DataFlowCall dfc | call = dfc.getNode().(CallNode).getNode() | + result = viableCallable(dfc).(DataFlowFunction).getScope() + ) +} + +/** Holds if `call` may resolve to either `base` or `sub`, and `base` is overridden by `sub`. */ +predicate callViableForEitherOverride(Function base, Function sub, Call call) { + overrides(base, sub) and + base = resolveCall(call) and + sub = resolveCall(call) +} + +/** Holds if either both `base` and `sub` are static methods, or both are not static methods, and `base` is overridden by `sub`. */ +predicate matchingStatic(Function base, Function sub) { + overrides(base, sub) and + ( + isStaticmethod(base) and + isStaticmethod(sub) + or + not isStaticmethod(base) and + not isStaticmethod(sub) + ) +} + +int extraSelfArg(Function func) { if isStaticmethod(func) then result = 0 else result = 1 } + +/** Holds if the call `call` matches the signature for `func`. */ +predicate callMatchesSignature(Function func, Call call) { + func = resolveCall(call) and + ( + // Each parameter of the function is accounted for in the call + forall(Parameter param, int i | param = func.getArg(i) | + // self arg + i = 0 and not isStaticmethod(func) + or + // positional arg + i - extraSelfArg(func) < call.getPositionalArgumentCount() + or + // has default + exists(param.getDefault()) + or + // keyword arg + call.getANamedArgumentName() = param.getName() + ) + or + // arbitrary varargs or kwargs + exists(call.getStarArg()) + or + exists(call.getKwargs()) + ) and + // No excess parameters + call.getPositionalArgumentCount() + extraSelfArg(func) <= func.getMaxPositionalArguments() and + ( + exists(func.getKwarg()) + or + forall(string name | name = call.getANamedArgumentName() | exists(func.getArgByName(name))) + ) +} + +pragma[nomagic] +private File getFunctionFile(Function f) { result = f.getLocation().getFile() } + +/** Gets a call which matches the signature of `base`, but not of overridden `sub`. */ +Call getASignatureMismatchWitness(Function base, Function sub) { + callViableForEitherOverride(base, sub, result) and + callMatchesSignature(base, result) and + not callMatchesSignature(sub, result) +} + +pragma[inline] +string preferredFile(File callFile, Function base, Function sub) { + if callFile = getFunctionFile(base) + then result = " A" + else + if callFile = getFunctionFile(sub) + then result = " B" + else result = callFile.getAbsolutePath() +} + +/** Choose a 'witnessing' call that matches the signature of `base` but not of overridden `sub`. */ +Call chooseASignatureMismatchWitness(Function base, Function sub) { + exists(getASignatureMismatchWitness(base, sub)) and + result = + min(Call c | + c = getASignatureMismatchWitness(base, sub) + | + c + order by + preferredFile(c.getLocation().getFile(), base, sub), c.getLocation().getStartLine(), + c.getLocation().getStartColumn() + ) +} + +module CallOption = LocatableOption; + +from Function base, Function sub, string msg, string extraMsg, CallOption::Option call +where + not sub.isSpecialMethod() and + sub.getName() != "__init__" and + not ignore(sub) and + not ignore(base) and + matchingStatic(base, sub) and + ( + // If we have a witness, alert for a 'weak' mismatch, but prefer the message for a 'strong' mismatch if that holds. + call.asSome() = chooseASignatureMismatchWitness(base, sub) and + extraMsg = + " $@ correctly calls the base method, but does not match the signature of the overriding method." and + ( + strongSignatureMismatch(base, sub, msg) + or + not strongSignatureMismatch(base, sub, _) and + weakSignatureMismatch(base, sub, msg) + ) + or + // With no witness, only alert for 'strong' mismatches. + not exists(getASignatureMismatchWitness(base, sub)) and + call.isNone() and + strongSignatureMismatch(base, sub, msg) and + extraMsg = "" + ) +select sub, "This method " + msg + extraMsg, base, base.getQualifiedName(), call, "This call" diff --git a/python/ql/src/Imports/FromImportOfMutableAttribute.ql b/python/ql/src/Imports/FromImportOfMutableAttribute.ql index cbb74977a03..c66a7578de6 100644 --- a/python/ql/src/Imports/FromImportOfMutableAttribute.ql +++ b/python/ql/src/Imports/FromImportOfMutableAttribute.ql @@ -2,9 +2,9 @@ * @name Importing value of mutable attribute * @description Importing the value of a mutable attribute directly means that changes in global state will not be observed locally. * @kind problem - * @tags reliability - * maintainability - * modularity + * @tags quality + * reliability + * correctness * @problem.severity warning * @sub-severity high * @precision medium diff --git a/python/ql/src/Statements/AssertLiteralConstant.ql b/python/ql/src/Statements/AssertLiteralConstant.ql index 73bd1645858..60c09951c06 100644 --- a/python/ql/src/Statements/AssertLiteralConstant.ql +++ b/python/ql/src/Statements/AssertLiteralConstant.ql @@ -3,7 +3,8 @@ * @description An assert statement testing a literal constant value may exhibit * different behavior when optimizations are enabled. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * @problem.severity recommendation * @sub-severity low diff --git a/python/ql/src/Statements/BreakOrReturnInFinally.ql b/python/ql/src/Statements/BreakOrReturnInFinally.ql index 02f501e0bfd..dc9800eba8a 100644 --- a/python/ql/src/Statements/BreakOrReturnInFinally.ql +++ b/python/ql/src/Statements/BreakOrReturnInFinally.ql @@ -3,8 +3,10 @@ * @description Using a Break or Return statement in a finally block causes the * Try-finally block to exit, discarding the exception. * @kind problem - * @tags reliability - * maintainability + * @tags quality + * reliability + * error-handling + * correctness * external/cwe/cwe-584 * @problem.severity warning * @sub-severity low diff --git a/python/ql/src/Statements/DocStrings.ql b/python/ql/src/Statements/DocStrings.ql index 355aff93f17..903207f7ccb 100644 --- a/python/ql/src/Statements/DocStrings.ql +++ b/python/ql/src/Statements/DocStrings.ql @@ -4,6 +4,7 @@ * makes it more difficult for other developers to maintain the code. * @kind problem * @tags maintainability + * readability * @problem.severity recommendation * @sub-severity low * @precision medium diff --git a/python/ql/src/Statements/ReturnOrYieldOutsideFunction.ql b/python/ql/src/Statements/ReturnOrYieldOutsideFunction.ql index a940dc60123..7bb0161f130 100644 --- a/python/ql/src/Statements/ReturnOrYieldOutsideFunction.ql +++ b/python/ql/src/Statements/ReturnOrYieldOutsideFunction.ql @@ -2,7 +2,8 @@ * @name Use of 'return' or 'yield' outside a function * @description Using 'return' or 'yield' outside a function causes a 'SyntaxError' at runtime. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * @problem.severity error * @sub-severity low diff --git a/python/ql/src/Variables/ShadowBuiltin.ql b/python/ql/src/Variables/ShadowBuiltin.ql index 7e4a8580a93..51b74b7109c 100644 --- a/python/ql/src/Variables/ShadowBuiltin.ql +++ b/python/ql/src/Variables/ShadowBuiltin.ql @@ -4,8 +4,10 @@ * makes the built-in object unusable within the current scope and makes the code * more difficult to read. * @kind problem - * @tags maintainability + * @tags quality + * maintainability * readability + * correctness * @problem.severity recommendation * @sub-severity low * @precision medium diff --git a/python/ql/src/Variables/ShadowGlobal.ql b/python/ql/src/Variables/ShadowGlobal.ql index 79d74d272ae..2f06e4fe57d 100644 --- a/python/ql/src/Variables/ShadowGlobal.ql +++ b/python/ql/src/Variables/ShadowGlobal.ql @@ -4,8 +4,10 @@ * makes the global variable unusable within the current scope and makes the code * more difficult to read. * @kind problem - * @tags maintainability + * @tags quality + * maintainability * readability + * correctness * @problem.severity recommendation * @sub-severity low * @precision medium diff --git a/python/ql/src/Variables/UndefinedPlaceHolder.ql b/python/ql/src/Variables/UndefinedPlaceHolder.ql index 7f7794e60a1..b0eeeda871a 100644 --- a/python/ql/src/Variables/UndefinedPlaceHolder.ql +++ b/python/ql/src/Variables/UndefinedPlaceHolder.ql @@ -2,7 +2,8 @@ * @name Use of an undefined placeholder variable * @description Using a variable before it is initialized causes an exception. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * @problem.severity error * @sub-severity low diff --git a/python/ql/src/Variables/UninitializedLocal.ql b/python/ql/src/Variables/UninitializedLocal.ql index 3a2461ee3e7..a6ac7d490ce 100644 --- a/python/ql/src/Variables/UninitializedLocal.ql +++ b/python/ql/src/Variables/UninitializedLocal.ql @@ -2,7 +2,8 @@ * @name Potentially uninitialized local variable * @description Using a local variable before it is initialized causes an UnboundLocalError. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * @problem.severity error * @sub-severity low diff --git a/python/ql/src/Variables/UnusedParameter.ql b/python/ql/src/Variables/UnusedParameter.ql index 74e1c2ac536..7228974b7c7 100644 --- a/python/ql/src/Variables/UnusedParameter.ql +++ b/python/ql/src/Variables/UnusedParameter.ql @@ -2,7 +2,10 @@ * @name Unused parameter * @description Parameter is defined but not used * @kind problem - * @tags maintainability + * @tags quality + * reliability + * correctness + * readability * @problem.severity recommendation * @sub-severity high * @precision medium diff --git a/python/ql/src/change-notes/2025-08-19-signature-mismatch.md b/python/ql/src/change-notes/2025-08-19-signature-mismatch.md new file mode 100644 index 00000000000..60c3efa32eb --- /dev/null +++ b/python/ql/src/change-notes/2025-08-19-signature-mismatch.md @@ -0,0 +1,5 @@ +--- +category: minorAnalysis +--- +* The `py/inheritance/signature-mismatch` query has been modernized. It produces more precise results and more descriptive alert messages. +* The `py/inheritance/incorrect-overriding-signature` query has been deprecated. Its results have been consolidated into the `py/inheritance/signature-mismatch` query. \ No newline at end of file diff --git a/python/ql/src/change-notes/2025-06-04-missing-multiple-calls-to-init-del.md b/python/ql/src/change-notes/released/1.6.5.md similarity index 75% rename from python/ql/src/change-notes/2025-06-04-missing-multiple-calls-to-init-del.md rename to python/ql/src/change-notes/released/1.6.5.md index 5dfe5c2b841..e9e53221424 100644 --- a/python/ql/src/change-notes/2025-06-04-missing-multiple-calls-to-init-del.md +++ b/python/ql/src/change-notes/released/1.6.5.md @@ -1,4 +1,5 @@ ---- -category: minorAnalysis ---- -* The queries `py/missing-call-to-init`, `py/missing-calls-to-del`, `py/multiple-calls-to-init`, and `py/multiple-calls-to-del` queries have been modernized; no longer relying on outdated libraries, producing more precise results with more descriptive alert messages, and improved documentation. \ No newline at end of file +## 1.6.5 + +### Minor Analysis Improvements + +* The queries `py/missing-call-to-init`, `py/missing-calls-to-del`, `py/multiple-calls-to-init`, and `py/multiple-calls-to-del` queries have been modernized; no longer relying on outdated libraries, producing more precise results with more descriptive alert messages, and improved documentation. diff --git a/python/ql/src/codeql-pack.release.yml b/python/ql/src/codeql-pack.release.yml index 1910e09d6a6..03153270557 100644 --- a/python/ql/src/codeql-pack.release.yml +++ b/python/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.6.4 +lastReleaseVersion: 1.6.5 diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index 3cc58c14faf..edf6366c64b 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 1.6.5-dev +version: 1.6.6-dev groups: - python - queries diff --git a/python/ql/test/library-tests/dataflow/fieldflow/test.py b/python/ql/test/library-tests/dataflow/fieldflow/test.py index 1ce049917f0..f0152ad38a8 100644 --- a/python/ql/test/library-tests/dataflow/fieldflow/test.py +++ b/python/ql/test/library-tests/dataflow/fieldflow/test.py @@ -301,12 +301,12 @@ def set_to_source(): @expects(4) # $ unresolved_call=expects(..) unresolved_call=expects(..)(..) def test_global_flow_to_class_attribute(): inst = WithTuple2() - SINK_F(WithTuple2.my_tuple[0]) + SINK_F(WithTuple2.my_tuple[0]) # $ SPURIOUS: flow="SOURCE, l:-5 -> WithTuple2.my_tuple[0]" SINK_F(inst.my_tuple[0]) set_to_source() - SINK(WithTuple2.my_tuple[0]) # $ MISSING: flow="SOURCE, l:-10 -> WithTuple2.my_tuple[0]" + SINK(WithTuple2.my_tuple[0]) # $ flow="SOURCE, l:-10 -> WithTuple2.my_tuple[0]" SINK(inst.my_tuple[0]) # $ MISSING: flow="SOURCE, l:-11 -> inst.my_tuple[0]" diff --git a/python/ql/test/library-tests/dataflow/fieldflow/test_global.py b/python/ql/test/library-tests/dataflow/fieldflow/test_global.py index 0e96b37dc33..9970c47c962 100644 --- a/python/ql/test/library-tests/dataflow/fieldflow/test_global.py +++ b/python/ql/test/library-tests/dataflow/fieldflow/test_global.py @@ -146,6 +146,7 @@ SINK(fields_with_local_flow(SOURCE)) # $ flow="SOURCE -> fields_with_local_flow( class NestedObj(object): def __init__(self): self.obj = MyObj("OK") + self.obj.foo = "default" def getObj(self): return self.obj @@ -163,17 +164,31 @@ x2 = SOURCE a2 = NestedObj() a2.getObj().foo = x2 SINK(a2.obj.foo) # $ flow="SOURCE, l:-3 -> a2.obj.foo" + +# Global variable +app = NestedObj() + +def init_global(): + app.obj.foo = SOURCE + +def read_global(): + return app.obj.foo + +def test_global_nested_attributes(): + init_global() + result = read_global() + SINK(result) # $ flow="SOURCE, l:-8 -> result" # ------------------------------------------------------------------------------ # Global scope interaction # ------------------------------------------------------------------------------ def func_defined_before(): - SINK(global_obj.foo) # $ MISSING: flow="SOURCE, l:+3 -> global_obj.foo" + SINK(global_obj.foo) # $ flow="SOURCE, l:+3 -> global_obj.foo" global_obj = MyObj(NONSOURCE) global_obj.foo = SOURCE SINK(global_obj.foo) # $ flow="SOURCE, l:-1 -> global_obj.foo" def func_defined_after(): - SINK(global_obj.foo) # $ MISSING: flow="SOURCE, l:-4 -> global_obj.foo" + SINK(global_obj.foo) # $ flow="SOURCE, l:-4 -> global_obj.foo" diff --git a/python/ql/test/query-tests/Functions/general/SignatureOverriddenMethod.expected b/python/ql/test/query-tests/Functions/general/SignatureOverriddenMethod.expected index 81c45ab8abe..21b11212075 100644 --- a/python/ql/test/query-tests/Functions/general/SignatureOverriddenMethod.expected +++ b/python/ql/test/query-tests/Functions/general/SignatureOverriddenMethod.expected @@ -1,2 +1,2 @@ -| om_test.py:32:5:32:35 | Function Derived.grossly_wrong1 | Overriding method 'grossly_wrong1' has signature mismatch with $@. | om_test.py:12:5:12:41 | Function Base.grossly_wrong1 | overridden method | -| om_test.py:35:5:35:47 | Function Derived.grossly_wrong2 | Overriding method 'grossly_wrong2' has signature mismatch with $@. | om_test.py:15:5:15:41 | Function Base.grossly_wrong2 | overridden method | +| om_test.py:32:5:32:35 | Function grossly_wrong1 | This method requires 2 positional arguments, whereas overridden $@ requires 3. | om_test.py:12:5:12:41 | Function grossly_wrong1 | Base.grossly_wrong1 | file://:0:0:0:0 | (none) | This call | +| om_test.py:35:5:35:47 | Function grossly_wrong2 | This method requires 4 positional arguments, whereas overridden $@ requires 3. | om_test.py:15:5:15:41 | Function grossly_wrong2 | Base.grossly_wrong2 | file://:0:0:0:0 | (none) | This call | diff --git a/python/ql/test/query-tests/Functions/overriding/SignatureOverriddenMethod.expected b/python/ql/test/query-tests/Functions/overriding/SignatureOverriddenMethod.expected index bcb9363a55a..07756ee4600 100644 --- a/python/ql/test/query-tests/Functions/overriding/SignatureOverriddenMethod.expected +++ b/python/ql/test/query-tests/Functions/overriding/SignatureOverriddenMethod.expected @@ -1 +1,13 @@ -| test.py:30:5:30:26 | Function Derived.meth3 | Overriding method 'meth3' has signature mismatch with $@. | test.py:11:5:11:20 | Function Base.meth3 | overridden method | +| test.py:24:5:24:26 | Function meth1 | This method requires 2 positional arguments, whereas overridden $@ requires 1. $@ correctly calls the base method, but does not match the signature of the overriding method. | test.py:5:5:5:20 | Function meth1 | Base.meth1 | test.py:15:9:15:20 | Attribute() | This call | +| test.py:27:5:27:20 | Function meth2 | This method requires 1 positional argument, whereas overridden $@ requires 2. $@ correctly calls the base method, but does not match the signature of the overriding method. | test.py:8:5:8:26 | Function meth2 | Base.meth2 | test.py:18:9:18:21 | Attribute() | This call | +| test.py:30:5:30:26 | Function meth3 | This method requires 2 positional arguments, whereas overridden $@ requires 1. | test.py:11:5:11:20 | Function meth3 | Base.meth3 | file://:0:0:0:0 | (none) | This call | +| test.py:69:5:69:24 | Function meth | This method requires 2 positional arguments, whereas overridden $@ requires 1. | test.py:64:5:64:19 | Function meth | BlameBase.meth | file://:0:0:0:0 | (none) | This call | +| test.py:74:5:74:24 | Function meth | This method requires 2 positional arguments, whereas overridden $@ requires 1. | test.py:64:5:64:19 | Function meth | BlameBase.meth | file://:0:0:0:0 | (none) | This call | +| test.py:125:5:125:20 | Function meth1 | This method requires 1 positional argument, whereas overridden $@ may be called with 2. $@ correctly calls the base method, but does not match the signature of the overriding method. | test.py:82:5:82:25 | Function meth1 | Base2.meth1 | test.py:110:9:110:23 | Attribute() | This call | +| test.py:131:5:131:31 | Function meth4 | This method requires at least 3 positional arguments, whereas overridden $@ requires at most 2. | test.py:88:5:88:25 | Function meth4 | Base2.meth4 | file://:0:0:0:0 | (none) | This call | +| test.py:133:5:133:28 | Function meth5 | This method requires at most 3 positional arguments, whereas overridden $@ requires at least 4. | test.py:90:5:90:34 | Function meth5 | Base2.meth5 | file://:0:0:0:0 | (none) | This call | +| test.py:135:5:135:23 | Function meth6 | This method requires 2 positional arguments, whereas overridden $@ may be called with arbitrarily many. $@ correctly calls the base method, but does not match the signature of the overriding method. | test.py:92:5:92:28 | Function meth6 | Base2.meth6 | test.py:113:9:113:27 | Attribute() | This call | +| test.py:137:5:137:28 | Function meth7 | This method requires at least 2 positional arguments, whereas overridden $@ may be called with 1. $@ correctly calls the base method, but does not match the signature of the overriding method. | test.py:94:5:94:25 | Function meth7 | Base2.meth7 | test.py:114:9:114:20 | Attribute() | This call | +| test.py:139:5:139:26 | Function meth8 | This method does not accept keyword argument `y`, which overridden $@ does. $@ correctly calls the base method, but does not match the signature of the overriding method. | test.py:96:5:96:26 | Function meth8 | Base2.meth8 | test.py:115:9:115:25 | Attribute() | This call | +| test.py:147:5:147:21 | Function meth12 | This method does not accept arbitrary keyword arguments, which overridden $@ does. $@ correctly calls the base method, but does not match the signature of the overriding method. | test.py:104:5:104:31 | Function meth12 | Base2.meth12 | test.py:119:9:119:24 | Attribute() | This call | +| test.py:149:5:149:27 | Function meth13 | This method does not accept keyword argument `x`, which overridden $@ does. $@ correctly calls the base method, but does not match the signature of the overriding method. | test.py:106:5:106:27 | Function meth13 | Base2.meth13 | test.py:120:9:120:24 | Attribute() | This call | diff --git a/python/ql/test/query-tests/Functions/overriding/SignatureOverriddenMethod.qlref b/python/ql/test/query-tests/Functions/overriding/SignatureOverriddenMethod.qlref index a306477b3b4..5470a05e0e4 100644 --- a/python/ql/test/query-tests/Functions/overriding/SignatureOverriddenMethod.qlref +++ b/python/ql/test/query-tests/Functions/overriding/SignatureOverriddenMethod.qlref @@ -1 +1,2 @@ -Functions/SignatureOverriddenMethod.ql +query: Functions/SignatureOverriddenMethod.ql +postprocess: utils/test/InlineExpectationsTestQuery.ql diff --git a/python/ql/test/query-tests/Functions/overriding/WrongNameForArgumentInCall.expected b/python/ql/test/query-tests/Functions/overriding/WrongNameForArgumentInCall.expected index d2fc2ef6784..0cadf5e5fbf 100644 --- a/python/ql/test/query-tests/Functions/overriding/WrongNameForArgumentInCall.expected +++ b/python/ql/test/query-tests/Functions/overriding/WrongNameForArgumentInCall.expected @@ -1 +1,2 @@ | test.py:19:9:19:31 | Attribute() | Keyword argument 'spam' is not a supported parameter name of $@. | test.py:5:5:5:20 | Function meth1 | method Base.meth1 | +| test.py:112:9:112:23 | Attribute() | Keyword argument 'x' is not a supported parameter name of $@. | test.py:86:5:86:20 | Function meth3 | method Base2.meth3 | diff --git a/python/ql/test/query-tests/Functions/overriding/test.py b/python/ql/test/query-tests/Functions/overriding/test.py index c4c7caaa1aa..63ee50e820c 100644 --- a/python/ql/test/query-tests/Functions/overriding/test.py +++ b/python/ql/test/query-tests/Functions/overriding/test.py @@ -21,13 +21,13 @@ class Base(object): class Derived(Base): - def meth1(self, spam): + def meth1(self, spam): # $Alert[py/inheritance/signature-mismatch] # Has 1 more arg, base called in Base.foo pass - def meth2(self): + def meth2(self): # $Alert[py/inheritance/signature-mismatch] # Has 1 fewer arg, base called in Base.foo pass - def meth3(self, eggs): #Incorrectly overridden and not called. + def meth3(self, eggs): # $Alert[py/inheritance/signature-mismatch] # Has 1 more arg. Method is not called. pass def bar(self): @@ -66,13 +66,84 @@ class BlameBase(object): class Correct1(BlameBase): - def meth(self, arg): + def meth(self, arg): # $Alert[py/inheritance/signature-mismatch] # Has 1 more arg. The incorrect-overridden-method query would alert for the base method in this case. pass class Correct2(BlameBase): - def meth(self, arg): + def meth(self, arg): # $Alert[py/inheritance/signature-mismatch] # Has 1 more arg pass c = Correct2() c.meth("hi") + +class Base2: + + def meth1(self, x=1): pass + + def meth2(self, x=1): pass + + def meth3(self): pass + + def meth4(self, x=1): pass + + def meth5(self, x, y, z, w=1): pass + + def meth6(self, x, *ys): pass + + def meth7(self, *ys): pass + + def meth8(self, x, y): pass + + def meth9(self, x, y): pass + + def meth10(self, x, *, y=3): pass + + def meth11(self, x, y): pass + + def meth12(self, **kwargs): pass + + def meth13(self, /, x): pass + + def call_some(self): + self.meth1() + self.meth1(x=2) + self.meth3() + self.meth3(x=2) + self.meth6(2, 3, 4) + self.meth7() + self.meth8(1,y=3) + self.meth9(1,2) + self.meth10(1,y=3) + self.meth11(1,y=3) + self.meth12(x=2) + self.meth13(x=2) + + +class Derrived2(Base2): + + def meth1(self): pass # $Alert[py/inheritance/signature-mismatch] # Weak mismatch (base may be called with 2 args. only alert if mismatching call exists) + + def meth2(self): pass # No alert (weak mismatch, but not called) + + def meth3(self, x=1): pass # No alert (no mismatch - all base calls are valid for sub) + + def meth4(self, x, y, z=1): pass # $Alert[py/inheritance/signature-mismatch] # sub min > base max (strong mismatch) + + def meth5(self, x, y=1): pass # $Alert[py/inheritance/signature-mismatch] + + def meth6(self, x): pass # $Alert[py/inheritance/signature-mismatch] # weak mismatch (base may be called with 3+ args) + + def meth7(self, x, *ys): pass # $Alert[py/inheritance/signature-mismatch] # weak mismatch (base may be called with 1 arg only) + + def meth8(self, x, z): pass # $Alert[py/inheritance/signature-mismatch] # weak mismatch (base may be called with arg named y) + + def meth9(self, x, z): pass # No alert (never called with wrong keyword arg) + + def meth10(self, x, **kwargs): pass # No alert (y is kw-only arg in base, calls that use it are valid for sub) + + def meth11(self, x, z, **kwargs): pass # $MISSING:Alert[py/inheritance/signature-mismatch] # call using y kw-arg is invalid due to not specifying z, but this is not detected. Likely a fairly niche situation. + + def meth12(self): pass # $Alert[py/inheritance/signature-mismatch] # call including extra kwarg invalid + + def meth13(self, /, y): pass # $Alert[py/inheritance/signature-mismatch] # weak mismatch (base may be called with arg named x), however meth13 is incorrectly detected as having 2 minimum positional arguments, whereas x is kw-only; resulting in the witness call not being detected as a valid call to Base2.meth13. diff --git a/python/ql/test/query-tests/Security/CWE-022-PathInjection/DataflowQueryTest.expected b/python/ql/test/query-tests/Security/CWE-022-PathInjection/DataflowQueryTest.expected deleted file mode 100644 index 2fad7bb9a84..00000000000 --- a/python/ql/test/query-tests/Security/CWE-022-PathInjection/DataflowQueryTest.expected +++ /dev/null @@ -1,2 +0,0 @@ -missingAnnotationOnSink -testFailures diff --git a/python/ql/test/query-tests/Security/CWE-022-PathInjection/DataflowQueryTest.ql b/python/ql/test/query-tests/Security/CWE-022-PathInjection/DataflowQueryTest.ql deleted file mode 100644 index e4720596a37..00000000000 --- a/python/ql/test/query-tests/Security/CWE-022-PathInjection/DataflowQueryTest.ql +++ /dev/null @@ -1,4 +0,0 @@ -import python -import utils.test.dataflow.DataflowQueryTest -import semmle.python.security.dataflow.PathInjectionQuery -import FromTaintTrackingStateConfig diff --git a/python/ql/test/query-tests/Security/CWE-022-PathInjection/PathInjection.expected b/python/ql/test/query-tests/Security/CWE-022-PathInjection/PathInjection.expected index 37e4dd927d8..79b36070c01 100644 --- a/python/ql/test/query-tests/Security/CWE-022-PathInjection/PathInjection.expected +++ b/python/ql/test/query-tests/Security/CWE-022-PathInjection/PathInjection.expected @@ -1,4 +1,38 @@ +#select +| fastapi_path_injection.py:7:19:7:26 | ControlFlowNode for filepath | fastapi_path_injection.py:17:21:17:24 | ControlFlowNode for path | fastapi_path_injection.py:7:19:7:26 | ControlFlowNode for filepath | This path depends on a $@. | fastapi_path_injection.py:17:21:17:24 | ControlFlowNode for path | user-provided value | +| fastapi_path_injection.py:7:19:7:26 | ControlFlowNode for filepath | fastapi_path_injection.py:26:21:26:24 | ControlFlowNode for path | fastapi_path_injection.py:7:19:7:26 | ControlFlowNode for filepath | This path depends on a $@. | fastapi_path_injection.py:26:21:26:24 | ControlFlowNode for path | user-provided value | +| fastapi_path_injection.py:7:19:7:26 | ControlFlowNode for filepath | fastapi_path_injection.py:31:21:31:24 | ControlFlowNode for path | fastapi_path_injection.py:7:19:7:26 | ControlFlowNode for filepath | This path depends on a $@. | fastapi_path_injection.py:31:21:31:24 | ControlFlowNode for path | user-provided value | +| fastapi_path_injection.py:7:19:7:26 | ControlFlowNode for filepath | fastapi_path_injection.py:48:21:48:24 | ControlFlowNode for path | fastapi_path_injection.py:7:19:7:26 | ControlFlowNode for filepath | This path depends on a $@. | fastapi_path_injection.py:48:21:48:24 | ControlFlowNode for path | user-provided value | +| flask_path_injection.py:21:32:21:38 | ControlFlowNode for dirname | flask_path_injection.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_path_injection.py:21:32:21:38 | ControlFlowNode for dirname | This path depends on a $@. | flask_path_injection.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | +| path_injection.py:13:14:13:47 | ControlFlowNode for Attribute() | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | path_injection.py:13:14:13:47 | ControlFlowNode for Attribute() | This path depends on a $@. | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | +| path_injection.py:21:14:21:18 | ControlFlowNode for npath | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | path_injection.py:21:14:21:18 | ControlFlowNode for npath | This path depends on a $@. | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | +| path_injection.py:31:14:31:18 | ControlFlowNode for npath | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | path_injection.py:31:14:31:18 | ControlFlowNode for npath | This path depends on a $@. | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | +| path_injection.py:48:14:48:18 | ControlFlowNode for npath | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | path_injection.py:48:14:48:18 | ControlFlowNode for npath | This path depends on a $@. | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | +| path_injection.py:65:14:65:18 | ControlFlowNode for npath | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | path_injection.py:65:14:65:18 | ControlFlowNode for npath | This path depends on a $@. | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | +| path_injection.py:87:18:87:37 | ControlFlowNode for possibly_unsafe_path | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | path_injection.py:87:18:87:37 | ControlFlowNode for possibly_unsafe_path | This path depends on a $@. | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | +| path_injection.py:94:14:94:17 | ControlFlowNode for path | path_injection.py:91:20:91:25 | ControlFlowNode for foo_id | path_injection.py:94:14:94:17 | ControlFlowNode for path | This path depends on a $@. | path_injection.py:91:20:91:25 | ControlFlowNode for foo_id | user-provided value | +| path_injection.py:102:14:102:17 | ControlFlowNode for path | path_injection.py:98:20:98:22 | ControlFlowNode for foo | path_injection.py:102:14:102:17 | ControlFlowNode for path | This path depends on a $@. | path_injection.py:98:20:98:22 | ControlFlowNode for foo | user-provided value | +| path_injection.py:113:14:113:17 | ControlFlowNode for path | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | path_injection.py:113:14:113:17 | ControlFlowNode for path | This path depends on a $@. | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | +| path_injection.py:124:14:124:17 | ControlFlowNode for path | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | path_injection.py:124:14:124:17 | ControlFlowNode for path | This path depends on a $@. | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | +| path_injection.py:132:14:132:22 | ControlFlowNode for sanitized | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | path_injection.py:132:14:132:22 | ControlFlowNode for sanitized | This path depends on a $@. | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | +| path_injection.py:142:14:142:17 | ControlFlowNode for path | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | path_injection.py:142:14:142:17 | ControlFlowNode for path | This path depends on a $@. | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | +| path_injection.py:152:18:152:21 | ControlFlowNode for path | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | path_injection.py:152:18:152:21 | ControlFlowNode for path | This path depends on a $@. | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | +| pathlib_use.py:14:5:14:5 | ControlFlowNode for p | pathlib_use.py:3:26:3:32 | ControlFlowNode for ImportMember | pathlib_use.py:14:5:14:5 | ControlFlowNode for p | This path depends on a $@. | pathlib_use.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | +| pathlib_use.py:17:5:17:6 | ControlFlowNode for p2 | pathlib_use.py:3:26:3:32 | ControlFlowNode for ImportMember | pathlib_use.py:17:5:17:6 | ControlFlowNode for p2 | This path depends on a $@. | pathlib_use.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | +| test.py:19:10:19:10 | ControlFlowNode for x | test.py:3:26:3:32 | ControlFlowNode for ImportMember | test.py:19:10:19:10 | ControlFlowNode for x | This path depends on a $@. | test.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | +| test.py:26:10:26:10 | ControlFlowNode for y | test.py:3:26:3:32 | ControlFlowNode for ImportMember | test.py:26:10:26:10 | ControlFlowNode for y | This path depends on a $@. | test.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | +| test.py:33:14:33:14 | ControlFlowNode for x | test.py:3:26:3:32 | ControlFlowNode for ImportMember | test.py:33:14:33:14 | ControlFlowNode for x | This path depends on a $@. | test.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | +| test.py:49:14:49:14 | ControlFlowNode for y | test.py:3:26:3:32 | ControlFlowNode for ImportMember | test.py:49:14:49:14 | ControlFlowNode for y | This path depends on a $@. | test.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | edges +| fastapi_path_injection.py:6:24:6:31 | ControlFlowNode for filepath | fastapi_path_injection.py:7:19:7:26 | ControlFlowNode for filepath | provenance | | +| fastapi_path_injection.py:17:21:17:24 | ControlFlowNode for path | fastapi_path_injection.py:20:34:20:37 | ControlFlowNode for path | provenance | | +| fastapi_path_injection.py:20:34:20:37 | ControlFlowNode for path | fastapi_path_injection.py:6:24:6:31 | ControlFlowNode for filepath | provenance | | +| fastapi_path_injection.py:26:21:26:24 | ControlFlowNode for path | fastapi_path_injection.py:27:34:27:37 | ControlFlowNode for path | provenance | | +| fastapi_path_injection.py:27:34:27:37 | ControlFlowNode for path | fastapi_path_injection.py:6:24:6:31 | ControlFlowNode for filepath | provenance | | +| fastapi_path_injection.py:31:21:31:24 | ControlFlowNode for path | fastapi_path_injection.py:32:34:32:37 | ControlFlowNode for path | provenance | | +| fastapi_path_injection.py:32:34:32:37 | ControlFlowNode for path | fastapi_path_injection.py:6:24:6:31 | ControlFlowNode for filepath | provenance | | +| fastapi_path_injection.py:48:21:48:24 | ControlFlowNode for path | fastapi_path_injection.py:49:45:49:48 | ControlFlowNode for path | provenance | | +| fastapi_path_injection.py:49:45:49:48 | ControlFlowNode for path | fastapi_path_injection.py:6:24:6:31 | ControlFlowNode for filepath | provenance | | | flask_path_injection.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_path_injection.py:1:26:1:32 | ControlFlowNode for request | provenance | | | flask_path_injection.py:1:26:1:32 | ControlFlowNode for request | flask_path_injection.py:19:15:19:21 | ControlFlowNode for request | provenance | | | flask_path_injection.py:19:5:19:11 | ControlFlowNode for dirname | flask_path_injection.py:21:32:21:38 | ControlFlowNode for dirname | provenance | | @@ -122,6 +156,16 @@ edges | test.py:48:23:48:23 | ControlFlowNode for x | test.py:12:15:12:15 | ControlFlowNode for x | provenance | | | test.py:48:23:48:23 | ControlFlowNode for x | test.py:48:13:48:24 | ControlFlowNode for normalize() | provenance | Config | nodes +| fastapi_path_injection.py:6:24:6:31 | ControlFlowNode for filepath | semmle.label | ControlFlowNode for filepath | +| fastapi_path_injection.py:7:19:7:26 | ControlFlowNode for filepath | semmle.label | ControlFlowNode for filepath | +| fastapi_path_injection.py:17:21:17:24 | ControlFlowNode for path | semmle.label | ControlFlowNode for path | +| fastapi_path_injection.py:20:34:20:37 | ControlFlowNode for path | semmle.label | ControlFlowNode for path | +| fastapi_path_injection.py:26:21:26:24 | ControlFlowNode for path | semmle.label | ControlFlowNode for path | +| fastapi_path_injection.py:27:34:27:37 | ControlFlowNode for path | semmle.label | ControlFlowNode for path | +| fastapi_path_injection.py:31:21:31:24 | ControlFlowNode for path | semmle.label | ControlFlowNode for path | +| fastapi_path_injection.py:32:34:32:37 | ControlFlowNode for path | semmle.label | ControlFlowNode for path | +| fastapi_path_injection.py:48:21:48:24 | ControlFlowNode for path | semmle.label | ControlFlowNode for path | +| fastapi_path_injection.py:49:45:49:48 | ControlFlowNode for path | semmle.label | ControlFlowNode for path | | flask_path_injection.py:1:26:1:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | flask_path_injection.py:1:26:1:32 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | | flask_path_injection.py:19:5:19:11 | ControlFlowNode for dirname | semmle.label | ControlFlowNode for dirname | @@ -252,24 +296,3 @@ nodes subpaths | test.py:25:19:25:19 | ControlFlowNode for x | test.py:12:15:12:15 | ControlFlowNode for x | test.py:13:12:13:30 | ControlFlowNode for Attribute() | test.py:25:9:25:20 | ControlFlowNode for normalize() | | test.py:48:23:48:23 | ControlFlowNode for x | test.py:12:15:12:15 | ControlFlowNode for x | test.py:13:12:13:30 | ControlFlowNode for Attribute() | test.py:48:13:48:24 | ControlFlowNode for normalize() | -#select -| flask_path_injection.py:21:32:21:38 | ControlFlowNode for dirname | flask_path_injection.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_path_injection.py:21:32:21:38 | ControlFlowNode for dirname | This path depends on a $@. | flask_path_injection.py:1:26:1:32 | ControlFlowNode for ImportMember | user-provided value | -| path_injection.py:13:14:13:47 | ControlFlowNode for Attribute() | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | path_injection.py:13:14:13:47 | ControlFlowNode for Attribute() | This path depends on a $@. | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | -| path_injection.py:21:14:21:18 | ControlFlowNode for npath | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | path_injection.py:21:14:21:18 | ControlFlowNode for npath | This path depends on a $@. | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | -| path_injection.py:31:14:31:18 | ControlFlowNode for npath | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | path_injection.py:31:14:31:18 | ControlFlowNode for npath | This path depends on a $@. | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | -| path_injection.py:48:14:48:18 | ControlFlowNode for npath | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | path_injection.py:48:14:48:18 | ControlFlowNode for npath | This path depends on a $@. | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | -| path_injection.py:65:14:65:18 | ControlFlowNode for npath | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | path_injection.py:65:14:65:18 | ControlFlowNode for npath | This path depends on a $@. | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | -| path_injection.py:87:18:87:37 | ControlFlowNode for possibly_unsafe_path | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | path_injection.py:87:18:87:37 | ControlFlowNode for possibly_unsafe_path | This path depends on a $@. | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | -| path_injection.py:94:14:94:17 | ControlFlowNode for path | path_injection.py:91:20:91:25 | ControlFlowNode for foo_id | path_injection.py:94:14:94:17 | ControlFlowNode for path | This path depends on a $@. | path_injection.py:91:20:91:25 | ControlFlowNode for foo_id | user-provided value | -| path_injection.py:102:14:102:17 | ControlFlowNode for path | path_injection.py:98:20:98:22 | ControlFlowNode for foo | path_injection.py:102:14:102:17 | ControlFlowNode for path | This path depends on a $@. | path_injection.py:98:20:98:22 | ControlFlowNode for foo | user-provided value | -| path_injection.py:113:14:113:17 | ControlFlowNode for path | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | path_injection.py:113:14:113:17 | ControlFlowNode for path | This path depends on a $@. | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | -| path_injection.py:124:14:124:17 | ControlFlowNode for path | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | path_injection.py:124:14:124:17 | ControlFlowNode for path | This path depends on a $@. | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | -| path_injection.py:132:14:132:22 | ControlFlowNode for sanitized | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | path_injection.py:132:14:132:22 | ControlFlowNode for sanitized | This path depends on a $@. | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | -| path_injection.py:142:14:142:17 | ControlFlowNode for path | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | path_injection.py:142:14:142:17 | ControlFlowNode for path | This path depends on a $@. | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | -| path_injection.py:152:18:152:21 | ControlFlowNode for path | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | path_injection.py:152:18:152:21 | ControlFlowNode for path | This path depends on a $@. | path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | -| pathlib_use.py:14:5:14:5 | ControlFlowNode for p | pathlib_use.py:3:26:3:32 | ControlFlowNode for ImportMember | pathlib_use.py:14:5:14:5 | ControlFlowNode for p | This path depends on a $@. | pathlib_use.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | -| pathlib_use.py:17:5:17:6 | ControlFlowNode for p2 | pathlib_use.py:3:26:3:32 | ControlFlowNode for ImportMember | pathlib_use.py:17:5:17:6 | ControlFlowNode for p2 | This path depends on a $@. | pathlib_use.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | -| test.py:19:10:19:10 | ControlFlowNode for x | test.py:3:26:3:32 | ControlFlowNode for ImportMember | test.py:19:10:19:10 | ControlFlowNode for x | This path depends on a $@. | test.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | -| test.py:26:10:26:10 | ControlFlowNode for y | test.py:3:26:3:32 | ControlFlowNode for ImportMember | test.py:26:10:26:10 | ControlFlowNode for y | This path depends on a $@. | test.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | -| test.py:33:14:33:14 | ControlFlowNode for x | test.py:3:26:3:32 | ControlFlowNode for ImportMember | test.py:33:14:33:14 | ControlFlowNode for x | This path depends on a $@. | test.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | -| test.py:49:14:49:14 | ControlFlowNode for y | test.py:3:26:3:32 | ControlFlowNode for ImportMember | test.py:49:14:49:14 | ControlFlowNode for y | This path depends on a $@. | test.py:3:26:3:32 | ControlFlowNode for ImportMember | user-provided value | diff --git a/python/ql/test/query-tests/Security/CWE-022-PathInjection/PathInjection.qlref b/python/ql/test/query-tests/Security/CWE-022-PathInjection/PathInjection.qlref index d43482cc509..6a680f6d5ff 100644 --- a/python/ql/test/query-tests/Security/CWE-022-PathInjection/PathInjection.qlref +++ b/python/ql/test/query-tests/Security/CWE-022-PathInjection/PathInjection.qlref @@ -1 +1,2 @@ -Security/CWE-022/PathInjection.ql +query: Security/CWE-022/PathInjection.ql +postprocess: utils/test/InlineExpectationsTestQuery.ql diff --git a/python/ql/test/query-tests/Security/CWE-022-PathInjection/fastapi_path_injection.py b/python/ql/test/query-tests/Security/CWE-022-PathInjection/fastapi_path_injection.py new file mode 100644 index 00000000000..e5d7cae762c --- /dev/null +++ b/python/ql/test/query-tests/Security/CWE-022-PathInjection/fastapi_path_injection.py @@ -0,0 +1,49 @@ +from fastapi import FastAPI, Depends + +app = FastAPI() + +class FileHandler: + def get_data(self, filepath: str): + with open(filepath, "r") as f: # $ Alert + return f.readline() + +file_handler = None + +def init_file_handler(): + global file_handler + file_handler = FileHandler() + +@app.get("/file/") +async def read_item(path: str): # $ Source + if file_handler is None: + init_file_handler() + return file_handler.get_data(path) + +def init_file_handler(): + return FileHandler() + +@app.get("/file2/", dependencies=[Depends(init_file_handler)]) +async def read_item(path: str, file_handler: FileHandler = Depends()): # $ Source + return file_handler.get_data(path) + + +@app.get("/file3/", dependencies=[Depends(init_file_handler)]) +async def read_item(path: str): # $ Source + return file_handler.get_data(path) + + +@app.on_event("startup") +def init_file_handler(): + app.state.file_handler1 = FileHandler() + app.state.file_handler2 = FileHandler() + +def get_data_source(): + return app.state.file_handler1 + +@app.get("/file4/") +async def read_item(path: str, data_source=Depends(get_data_source)): # $ MISSING: Source + return data_source.get_data(path) + +@app.get("/file5/", dependencies=[Depends(init_file_handler)]) +async def read_item(path: str): # $ Source + return app.state.file_handler2.get_data(path) diff --git a/python/ql/test/query-tests/Security/CWE-022-PathInjection/flask_path_injection.py b/python/ql/test/query-tests/Security/CWE-022-PathInjection/flask_path_injection.py index f64d76a3b4d..f289bcc94ec 100644 --- a/python/ql/test/query-tests/Security/CWE-022-PathInjection/flask_path_injection.py +++ b/python/ql/test/query-tests/Security/CWE-022-PathInjection/flask_path_injection.py @@ -1,4 +1,4 @@ -from flask import Flask, request, send_from_directory +from flask import Flask, request, send_from_directory # $Source app = Flask(__name__) @@ -18,4 +18,4 @@ def download_file(): def download_file(): dirname = request.args.get('dirname', '') filename = request.args.get('filename', '') - return send_from_directory(dirname, filename) # $result=BAD result=OK(filename) + return send_from_directory(dirname, filename) # $ Alert diff --git a/python/ql/test/query-tests/Security/CWE-022-PathInjection/path_injection.py b/python/ql/test/query-tests/Security/CWE-022-PathInjection/path_injection.py index 39c17037480..37ff20b7de1 100644 --- a/python/ql/test/query-tests/Security/CWE-022-PathInjection/path_injection.py +++ b/python/ql/test/query-tests/Security/CWE-022-PathInjection/path_injection.py @@ -1,6 +1,6 @@ import os -from flask import Flask, request +from flask import Flask, request # $ Source app = Flask(__name__) @@ -10,7 +10,7 @@ STATIC_DIR = "/server/static/" @app.route("/path1") def path_injection(): filename = request.args.get('filename', '') - f = open(os.path.join(STATIC_DIR, filename)) # $result=BAD + f = open(os.path.join(STATIC_DIR, filename)) # $ Alert @app.route("/path2") @@ -18,7 +18,7 @@ def path_injection(): # Normalized, but not checked filename = request.args.get('filename', '') npath = os.path.normpath(os.path.join(STATIC_DIR, filename)) - f = open(npath) # $result=BAD + f = open(npath) # $ Alert @app.route("/path3") @@ -28,7 +28,7 @@ def unsafe_path_normpath(): npath = os.path.normpath(os.path.join(STATIC_DIR, filename)) if npath.startswith(STATIC_DIR): pass - f = open(npath) # $result=BAD + f = open(npath) # $ Alert @app.route("/path4") @@ -45,7 +45,7 @@ def unsafe_path_realpath(): # Normalized (by `realpath` that also follows symlinks), but not checked properly filename = request.args.get('filename', '') npath = os.path.realpath(os.path.join(STATIC_DIR, filename)) - f = open(npath) # $result=BAD + f = open(npath) # $ Alert @app.route("/path6") @@ -62,7 +62,7 @@ def unsafe_path_abspath(): # Normalized (by `abspath`), but not checked properly filename = request.args.get('filename', '') npath = os.path.abspath(os.path.join(STATIC_DIR, filename)) - f = open(npath) # $result=BAD + f = open(npath) # $ Alert @app.route("/path7") @@ -84,22 +84,22 @@ def safe_path_abspath_tricky(): filename = request.args.get('filename', '') possibly_unsafe_path = os.path.join(STATIC_DIR, filename) if os.path.abspath(possibly_unsafe_path).startswith(STATIC_DIR): - f = open(possibly_unsafe_path) # $SPURIOUS: result=BAD + f = open(possibly_unsafe_path) # $ SPURIOUS: Alert @app.route("/int-only/") -def flask_int_only(foo_id): +def flask_int_only(foo_id): # $ SPURIOUS: Source # This is OK, since the flask routing ensures that `foo_id` MUST be an integer. path = os.path.join(STATIC_DIR, foo_id) - f = open(path) # $spurious: result=BAD + f = open(path) # $ SPURIOUS: Alert @app.route("/not-path/") -def flask_not_path(foo): +def flask_not_path(foo): # $ Source # On UNIX systems, this is OK, since without being marked as ``, flask # routing ensures that `foo` cannot contain forward slashes (not by using %2F either). path = os.path.join(STATIC_DIR, foo) - f = open(path) # $result=BAD // OK if only running on UNIX systems, NOT OK if could be running on windows + f = open(path) # $ Alert // OK if only running on UNIX systems, NOT OK if could be running on windows @app.route("/no-dot-dot") @@ -110,7 +110,7 @@ def no_dot_dot(): # handle if `filename` is an absolute path if '../' in path: return "not this time" - f = open(path) # $result=BAD + f = open(path) # $ Alert @app.route("/no-dot-dot-with-prefix") @@ -121,7 +121,7 @@ def no_dot_dot_with_prefix(): # Therefore, for UNIX-only programs, the `../` check is enough to stop path injections. if '../' in path: return "not this time" - f = open(path) # $result=BAD // OK if only running on UNIX systems, NOT OK if could be running on windows + f = open(path) # $ Alert // OK if only running on UNIX systems, NOT OK if could be running on windows @app.route("/replace-slash") @@ -129,7 +129,7 @@ def replace_slash(): filename = request.args.get('filename', '') path = os.path.join(STATIC_DIR, filename) sanitized = path.replace("/", "_") - f = open(sanitized) # $result=BAD // OK if only running on UNIX systems, NOT OK if could be running on windows + f = open(sanitized) # $ Alert // OK if only running on UNIX systems, NOT OK if could be running on windows @app.route("/stackoverflow-solution") @@ -139,7 +139,7 @@ def stackoverflow_solution(): path = os.path.join(STATIC_DIR, filename) if os.path.commonprefix((os.path.realpath(path), STATIC_DIR)) != STATIC_DIR: return "not this time" - f = open(path) # $SPURIOUS: result=BAD + f = open(path) # $ SPURIOUS: Alert SAFE_FILES = ['foo', 'bar', 'baz'] @@ -149,4 +149,4 @@ def safe_set_of_files(): filename = request.args.get('filename', '') if filename in SAFE_FILES: path = os.path.join(STATIC_DIR, filename) - f = open(path) # $SPURIOUS: result=BAD + f = open(path) # $ SPURIOUS: Alert diff --git a/python/ql/test/query-tests/Security/CWE-022-PathInjection/pathlib_use.py b/python/ql/test/query-tests/Security/CWE-022-PathInjection/pathlib_use.py index 6f703f903dc..76ce1d1cc99 100644 --- a/python/ql/test/query-tests/Security/CWE-022-PathInjection/pathlib_use.py +++ b/python/ql/test/query-tests/Security/CWE-022-PathInjection/pathlib_use.py @@ -1,6 +1,6 @@ import pathlib -from flask import Flask, request +from flask import Flask, request # $ Source app = Flask(__name__) @@ -11,7 +11,7 @@ STATIC_DIR = pathlib.Path("/server/static/") def path_injection(): filename = request.args.get('filename', '') p = STATIC_DIR / filename - p.open() # $ result=BAD + p.open() # $ Alert p2 = pathlib.Path(STATIC_DIR, filename) - p2.open() # $ result=BAD + p2.open() # $ Alert diff --git a/python/ql/test/query-tests/Security/CWE-022-PathInjection/test.py b/python/ql/test/query-tests/Security/CWE-022-PathInjection/test.py index 7200cd78f45..c10c257dae5 100644 --- a/python/ql/test/query-tests/Security/CWE-022-PathInjection/test.py +++ b/python/ql/test/query-tests/Security/CWE-022-PathInjection/test.py @@ -1,6 +1,6 @@ import os.path -from flask import Flask, request +from flask import Flask, request # $ Source app = Flask(__name__) @@ -16,21 +16,21 @@ def normalize(x): @app.route("/path") def simple(): x = source() - open(x) # $result=BAD + open(x) # $ Alert @app.route("/path") def normalization(): x = source() y = normalize(x) - open(y) # $result=BAD + open(y) # $ Alert @app.route("/path") def check(): x = source() if x.startswith("subfolder/"): - open(x) # $result=BAD + open(x) # $ Alert @app.route("/path") @@ -46,4 +46,4 @@ def check_then_normalize(): x = source() if x.startswith("subfolder/"): y = normalize(x) - open(y) # $result=BAD + open(y) # $ Alert diff --git a/ruby/extractor/Cargo.toml b/ruby/extractor/Cargo.toml index 63c6d16d53c..f4de37e8512 100644 --- a/ruby/extractor/Cargo.toml +++ b/ruby/extractor/Cargo.toml @@ -12,11 +12,11 @@ tree-sitter-embedded-template = "0.23.2" tree-sitter-ruby = "0.23.1" clap = { version = "4.5", features = ["derive"] } tracing = "0.1" -tracing-subscriber = { version = "0.3.19", features = ["env-filter"] } -rayon = "1.10.0" -regex = "1.11.1" +tracing-subscriber = { version = "0.3.20", features = ["env-filter"] } +rayon = "1.11.0" +regex = "1.11.2" encoding = "0.2" lazy_static = "1.5.0" -serde_json = "1.0.142" +serde_json = "1.0.143" codeql-extractor = { path = "../../shared/tree-sitter-extractor" } diff --git a/ruby/ql/lib/CHANGELOG.md b/ruby/ql/lib/CHANGELOG.md index 560bf17bc51..b9333de9c5d 100644 --- a/ruby/ql/lib/CHANGELOG.md +++ b/ruby/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.0.4 + +No user-facing changes. + ## 5.0.3 No user-facing changes. diff --git a/ruby/ql/lib/change-notes/released/5.0.4.md b/ruby/ql/lib/change-notes/released/5.0.4.md new file mode 100644 index 00000000000..5c625c33d52 --- /dev/null +++ b/ruby/ql/lib/change-notes/released/5.0.4.md @@ -0,0 +1,3 @@ +## 5.0.4 + +No user-facing changes. diff --git a/ruby/ql/lib/codeql-pack.release.yml b/ruby/ql/lib/codeql-pack.release.yml index 6997554f6dd..8cb0167caf0 100644 --- a/ruby/ql/lib/codeql-pack.release.yml +++ b/ruby/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.0.3 +lastReleaseVersion: 5.0.4 diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index 89f162e0ed9..a2288bd3799 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 5.0.4-dev +version: 5.0.5-dev groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/CHANGELOG.md b/ruby/ql/src/CHANGELOG.md index 29b4ff27bc0..40209ec84bd 100644 --- a/ruby/ql/src/CHANGELOG.md +++ b/ruby/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.4.5 + +No user-facing changes. + ## 1.4.4 No user-facing changes. diff --git a/ruby/ql/src/change-notes/released/1.4.5.md b/ruby/ql/src/change-notes/released/1.4.5.md new file mode 100644 index 00000000000..930163bb5ae --- /dev/null +++ b/ruby/ql/src/change-notes/released/1.4.5.md @@ -0,0 +1,3 @@ +## 1.4.5 + +No user-facing changes. diff --git a/ruby/ql/src/codeql-pack.release.yml b/ruby/ql/src/codeql-pack.release.yml index 1dfca6daa3b..a74b6b08d86 100644 --- a/ruby/ql/src/codeql-pack.release.yml +++ b/ruby/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.4.4 +lastReleaseVersion: 1.4.5 diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index da157badc90..084d64e8b02 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 1.4.5-dev +version: 1.4.6-dev groups: - ruby - queries diff --git a/rust/ast-generator/Cargo.toml b/rust/ast-generator/Cargo.toml index 1c079952f71..a5270923722 100644 --- a/rust/ast-generator/Cargo.toml +++ b/rust/ast-generator/Cargo.toml @@ -7,10 +7,10 @@ license = "MIT" # When updating these dependencies, run `rust/update_cargo_deps.sh` [dependencies] ungrammar = "1.16.1" -proc-macro2 = "1.0.97" +proc-macro2 = "1.0.101" quote = "1.0.40" either = "1.15.0" -stdx = {package = "ra_ap_stdx", version = "0.0.300"} +stdx = {package = "ra_ap_stdx", version = "0.0.301"} itertools = "0.14.0" mustache = "0.9.0" serde = { version = "1.0.219", features = ["derive"] } diff --git a/rust/extractor/Cargo.toml b/rust/extractor/Cargo.toml index ed9915b2877..0f87bc22f9e 100644 --- a/rust/extractor/Cargo.toml +++ b/rust/extractor/Cargo.toml @@ -7,24 +7,24 @@ license = "MIT" # When updating these dependencies, run `rust/update_cargo_deps.sh` [dependencies] anyhow = "1.0.99" -clap = { version = "4.5.44", features = ["derive"] } +clap = { version = "4.5.47", features = ["derive"] } figment = { version = "0.10.19", features = ["env", "yaml"] } num-traits = "0.2.19" -ra_ap_base_db = "0.0.300" -ra_ap_hir = "0.0.300" -ra_ap_hir_def = "0.0.300" -ra_ap_ide_db = "0.0.300" -ra_ap_hir_ty = "0.0.300" -ra_ap_hir_expand = "0.0.300" -ra_ap_load-cargo = "0.0.300" -ra_ap_paths = "0.0.300" -ra_ap_project_model = "0.0.300" -ra_ap_syntax = "0.0.300" -ra_ap_vfs = "0.0.300" -ra_ap_parser = "0.0.300" -ra_ap_span = "0.0.300" -ra_ap_cfg = "0.0.300" -ra_ap_intern = "0.0.300" +ra_ap_base_db = "0.0.301" +ra_ap_hir = "0.0.301" +ra_ap_hir_def = "0.0.301" +ra_ap_ide_db = "0.0.301" +ra_ap_hir_ty = "0.0.301" +ra_ap_hir_expand = "0.0.301" +ra_ap_load-cargo = "0.0.301" +ra_ap_paths = "0.0.301" +ra_ap_project_model = "0.0.301" +ra_ap_syntax = "0.0.301" +ra_ap_vfs = "0.0.301" +ra_ap_parser = "0.0.301" +ra_ap_span = "0.0.301" +ra_ap_cfg = "0.0.301" +ra_ap_intern = "0.0.301" serde = "1.0.219" serde_with = "3.14.0" triomphe = "0.1.14" @@ -33,12 +33,12 @@ codeql-extractor = { path = "../../shared/tree-sitter-extractor" } rust-extractor-macros = { path = "macros" } itertools = "0.14.0" glob = "0.3.3" -chrono = { version = "0.4.41", features = ["serde"] } -serde_json = "1.0.142" +chrono = { version = "0.4.42", features = ["serde"] } +serde_json = "1.0.143" dunce = "1.0.5" toml = "0.9.5" tracing = "0.1.41" tracing-flame = "0.2.0" -tracing-subscriber = "0.3.19" +tracing-subscriber = "0.3.20" chalk-ir = "0.104.0" mustache = "0.9.0" diff --git a/rust/extractor/macros/Cargo.toml b/rust/extractor/macros/Cargo.toml index e666bf75510..013ebd986b4 100644 --- a/rust/extractor/macros/Cargo.toml +++ b/rust/extractor/macros/Cargo.toml @@ -10,4 +10,4 @@ proc-macro = true # When updating these dependencies, run `rust/update_cargo_deps.sh` [dependencies] quote = "1.0.40" -syn = { version = "2.0.104", features = ["full"] } +syn = { version = "2.0.106", features = ["full"] } diff --git a/rust/ql/lib/CHANGELOG.md b/rust/ql/lib/CHANGELOG.md index 6ff2f1072c7..809479e5fec 100644 --- a/rust/ql/lib/CHANGELOG.md +++ b/rust/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.1.16 + +### Minor Analysis Improvements + +* Added cryptography related models for the `cookie` and `biscotti` crates. + ## 0.1.15 ### Major Analysis Improvements diff --git a/rust/ql/lib/change-notes/2025-09-12-cookie.md b/rust/ql/lib/change-notes/released/0.1.16.md similarity index 63% rename from rust/ql/lib/change-notes/2025-09-12-cookie.md rename to rust/ql/lib/change-notes/released/0.1.16.md index 04fa37d1d2d..eb630642345 100644 --- a/rust/ql/lib/change-notes/2025-09-12-cookie.md +++ b/rust/ql/lib/change-notes/released/0.1.16.md @@ -1,4 +1,5 @@ ---- -category: minorAnalysis ---- +## 0.1.16 + +### Minor Analysis Improvements + * Added cryptography related models for the `cookie` and `biscotti` crates. diff --git a/rust/ql/lib/codeql-pack.release.yml b/rust/ql/lib/codeql-pack.release.yml index 74719634743..a01dca92161 100644 --- a/rust/ql/lib/codeql-pack.release.yml +++ b/rust/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.15 +lastReleaseVersion: 0.1.16 diff --git a/rust/ql/lib/codeql/rust/controlflow/CfgNodes.qll b/rust/ql/lib/codeql/rust/controlflow/CfgNodes.qll index 1aed1cfa026..96ae6f8fdbc 100644 --- a/rust/ql/lib/codeql/rust/controlflow/CfgNodes.qll +++ b/rust/ql/lib/codeql/rust/controlflow/CfgNodes.qll @@ -16,6 +16,36 @@ class ExitCfgNode = CfgImpl::ExitNode; class AnnotatedExitCfgNode = CfgImpl::AnnotatedExitNode; +/** A variable access. */ +final class VariableAccessCfgNode extends PathExprBaseCfgNode { + private VariableAccess a; + + VariableAccessCfgNode() { a = this.getAstNode() } + + /** Gets the underlying `VariableAccess`. */ + VariableAccess getAccess() { result = a } +} + +/** A variable write. */ +final class VariableWriteAccessCfgNode extends VariableAccessCfgNode { + private VariableWriteAccess a; + + VariableWriteAccessCfgNode() { a = this.getAstNode() } + + /** Gets the underlying `VariableWriteAccess`. */ + VariableWriteAccess getAccess() { result = a } +} + +/** A variable read. */ +final class VariableReadAccessCfgNode extends VariableAccessCfgNode { + private VariableReadAccess a; + + VariableReadAccessCfgNode() { a = this.getAstNode() } + + /** Gets the underlying `VariableReadAccess`. */ + VariableReadAccess getAccess() { result = a } +} + /** * An assignment expression, for example * @@ -24,12 +54,42 @@ class AnnotatedExitCfgNode = CfgImpl::AnnotatedExitNode; * ``` */ final class AssignmentExprCfgNode extends BinaryExprCfgNode { - AssignmentExpr a; + AssignmentExprChildMapping a; AssignmentExprCfgNode() { a = this.getBinaryExpr() } /** Gets the underlying `AssignmentExpr`. */ AssignmentExpr getAssignmentExpr() { result = a } + + /** + * Gets a write access that occurs in the left-hand side of this assignment expression. + */ + VariableWriteAccessCfgNode getAWriteAccess() { + a = result.getAccess().getAssignmentExpr() and + any(ChildMapping mapping).hasCfgChild(a, result.getAccess(), this, result) + } +} + +/** + * A compound assignment expression, for example: + * ```rust + * x += y; + * ``` + * + * Note that compound assignment expressions are syntatic sugar for + * trait invocations, i.e., the above actually means + * + * ```rust + * (&mut x).add_assign(y); + * ``` + */ +final class CompoundAssignmentExprCfgNode extends BinaryExprCfgNode { + CompoundAssignmentExpr a; + + CompoundAssignmentExprCfgNode() { a = this.getBinaryExpr() } + + /** Gets the underlying `CompoundAssignmentExpr`. */ + CompoundAssignmentExpr getCompoundAssignmentExpr() { result = a } } /** diff --git a/rust/ql/lib/codeql/rust/controlflow/internal/CfgNodes.qll b/rust/ql/lib/codeql/rust/controlflow/internal/CfgNodes.qll index bb29047cb92..eb4d665436e 100644 --- a/rust/ql/lib/codeql/rust/controlflow/internal/CfgNodes.qll +++ b/rust/ql/lib/codeql/rust/controlflow/internal/CfgNodes.qll @@ -81,6 +81,12 @@ class FormatArgsExprChildMapping extends ParentAstNode, CfgImpl::ExprTrees::Form override predicate relevantChild(AstNode child) { child = this.getChildNode(_) } } +class AssignmentExprChildMapping extends ParentAstNode, AssignmentExpr { + override predicate relevantChild(AstNode child) { + child.(VariableWriteAccess).getAssignmentExpr() = this + } +} + private class ChildMappingImpl extends ChildMapping { /** Gets a CFG node for `child`, where `child` is a relevant child node of `parent`. */ private CfgNode getRelevantChildCfgNode(AstNode parent, AstNode child) { diff --git a/rust/ql/lib/codeql/rust/dataflow/Ssa.qll b/rust/ql/lib/codeql/rust/dataflow/Ssa.qll index d2b97d7c2e7..badbef9e420 100644 --- a/rust/ql/lib/codeql/rust/dataflow/Ssa.qll +++ b/rust/ql/lib/codeql/rust/dataflow/Ssa.qll @@ -171,9 +171,20 @@ module Ssa { private CfgNode write; WriteDefinition() { - exists(BasicBlock bb, int i, Variable v | + exists(BasicBlock bb, int i, Variable v, CfgNode n | this.definesAt(v, bb, i) and - SsaImpl::variableWriteActual(bb, i, v, write) + SsaImpl::variableWriteActual(bb, i, v, n) + | + write.(VariableAccessCfgNode).getAccess().getVariable() = v and + ( + write = n.(AssignmentExprCfgNode).getAWriteAccess() + or + write = n.(CompoundAssignmentExprCfgNode).getLhs() + ) + or + not n instanceof AssignmentExprCfgNode and + not n instanceof CompoundAssignmentExprCfgNode and + write = n ) } diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll index c63d2330ca2..1d7a3d49cf4 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll @@ -263,7 +263,7 @@ module LocalFlow { or // An edge from a pattern/expression to its corresponding SSA definition. nodeFrom.(AstCfgFlowNode).getCfgNode() = - nodeTo.(SsaNode).asDefinition().(Ssa::WriteDefinition).getControlFlowNode() + nodeTo.(SsaNode).asDefinition().(Ssa::WriteDefinition).getWriteAccess() or nodeFrom.(SourceParameterNode).getParameter().(ParamCfgNode).getPat() = nodeTo.asPat() or diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/SsaImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/SsaImpl.qll index df0824fcdfc..49b40474c98 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/SsaImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/SsaImpl.qll @@ -18,23 +18,22 @@ private predicate isInUninitializedLet(Name name) { ) } -/** Holds if `write` writes to variable `v`. */ -predicate variableWrite(AstNode write, Variable v) { +/** Holds if `write` writes to variable `v` via `access`. */ +predicate variableWrite(AstNode write, AstNode access, Variable v) { exists(Name name | name = write and + access = write and name = v.getName() and not isInUninitializedLet(name) ) or - exists(VariableAccess access | - access = write and - access.getVariable() = v - | - access instanceof VariableWriteAccess + v = access.(VariableAccess).getVariable() and + ( + write = access.(VariableWriteAccess).getAssignmentExpr() or // Although compound assignments, like `x += y`, may in fact not update `x`, // it makes sense to treat them as such - access = any(CompoundAssignmentExpr cae).getLhs() + access = write.(CompoundAssignmentExpr).getLhs() ) } @@ -226,7 +225,7 @@ private module Cached { cached predicate variableWriteActual(BasicBlock bb, int i, Variable v, CfgNode write) { bb.getNode(i) = write and - variableWrite(write.getAstNode(), v) + variableWrite(write.getAstNode(), _, v) } cached diff --git a/rust/ql/lib/codeql/rust/elements/internal/VariableImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/VariableImpl.qll index 02fe1f2ad7f..eaced654b01 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/VariableImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/VariableImpl.qll @@ -679,11 +679,11 @@ module Impl { } /** Holds if `e` occurs in the LHS of an assignment or compound assignment. */ - private predicate assignmentExprDescendant(Expr e) { - e = any(AssignmentExpr ae).getLhs() + private predicate assignmentExprDescendant(AssignmentExpr ae, Expr e) { + e = ae.getLhs() or exists(Expr mid | - assignmentExprDescendant(mid) and + assignmentExprDescendant(ae, mid) and getImmediateParentAdj(e) = mid and not mid instanceof DerefExpr and not mid instanceof FieldExpr and @@ -693,11 +693,16 @@ module Impl { /** A variable write. */ class VariableWriteAccess extends VariableAccess { + private AssignmentExpr ae; + cached VariableWriteAccess() { Cached::ref() and - assignmentExprDescendant(this) + assignmentExprDescendant(ae, this) } + + /** Gets the assignment expression that has this write access in the left-hand side. */ + AssignmentExpr getAssignmentExpr() { result = ae } } /** A variable read. */ diff --git a/rust/ql/lib/codeql/rust/frameworks/warp.model.yml b/rust/ql/lib/codeql/rust/frameworks/warp.model.yml new file mode 100644 index 00000000000..5071b4dea86 --- /dev/null +++ b/rust/ql/lib/codeql/rust/frameworks/warp.model.yml @@ -0,0 +1,8 @@ +extensions: + - addsTo: + pack: codeql/rust-all + extensible: sourceModel + data: + - ["<_ as warp::filter::Filter>::then", "Argument[0].Parameter[0..7]", "remote", "manual"] + - ["<_ as warp::filter::Filter>::map", "Argument[0].Parameter[0..7]", "remote", "manual"] + - ["<_ as warp::filter::Filter>::and_then", "Argument[0].Parameter[0..7]", "remote", "manual"] \ No newline at end of file diff --git a/rust/ql/lib/qlpack.yml b/rust/ql/lib/qlpack.yml index 6b78c2d50ad..421a604aa3d 100644 --- a/rust/ql/lib/qlpack.yml +++ b/rust/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-all -version: 0.1.16-dev +version: 0.1.17-dev groups: rust extractor: rust dbscheme: rust.dbscheme diff --git a/rust/ql/src/CHANGELOG.md b/rust/ql/src/CHANGELOG.md index b8ca5b71568..48f64efbcdb 100644 --- a/rust/ql/src/CHANGELOG.md +++ b/rust/ql/src/CHANGELOG.md @@ -1,3 +1,13 @@ +## 0.1.16 + +### New Queries + +* Added a new query, `rust/request-forgery`, for detecting server-side request forgery vulnerabilities. + +### Bug Fixes + +* The message for `rust/diagnostic/database-quality` has been updated to include detailed database health metrics. These changes are visible on the tool status page. + ## 0.1.15 ### New Queries diff --git a/rust/ql/src/change-notes/2025-09-09-request-forgery.md b/rust/ql/src/change-notes/2025-09-09-request-forgery.md deleted file mode 100644 index 991dd0918cd..00000000000 --- a/rust/ql/src/change-notes/2025-09-09-request-forgery.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: newQuery ---- -* Added a new query, `rust/request-forgery`, for detecting server-side request forgery vulnerabilities. \ No newline at end of file diff --git a/rust/ql/src/change-notes/2025-09-04-database-diagnostics.md b/rust/ql/src/change-notes/released/0.1.16.md similarity index 52% rename from rust/ql/src/change-notes/2025-09-04-database-diagnostics.md rename to rust/ql/src/change-notes/released/0.1.16.md index b578fcef141..97666aba677 100644 --- a/rust/ql/src/change-notes/2025-09-04-database-diagnostics.md +++ b/rust/ql/src/change-notes/released/0.1.16.md @@ -1,4 +1,9 @@ ---- -category: fix ---- +## 0.1.16 + +### New Queries + +* Added a new query, `rust/request-forgery`, for detecting server-side request forgery vulnerabilities. + +### Bug Fixes + * The message for `rust/diagnostic/database-quality` has been updated to include detailed database health metrics. These changes are visible on the tool status page. diff --git a/rust/ql/src/codeql-pack.release.yml b/rust/ql/src/codeql-pack.release.yml index 74719634743..a01dca92161 100644 --- a/rust/ql/src/codeql-pack.release.yml +++ b/rust/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.15 +lastReleaseVersion: 0.1.16 diff --git a/rust/ql/src/qlpack.yml b/rust/ql/src/qlpack.yml index 54c742df0b5..3c122e1853b 100644 --- a/rust/ql/src/qlpack.yml +++ b/rust/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-queries -version: 0.1.16-dev +version: 0.1.17-dev groups: - rust - queries diff --git a/rust/ql/src/queries/unusedentities/UnusedValue.ql b/rust/ql/src/queries/unusedentities/UnusedValue.ql index 11e29d475e4..14204a2273b 100644 --- a/rust/ql/src/queries/unusedentities/UnusedValue.ql +++ b/rust/ql/src/queries/unusedentities/UnusedValue.ql @@ -16,7 +16,7 @@ import UnusedVariable from AstNode write, Ssa::Variable v where - variableWrite(write, v) and + variableWrite(_, write, v) and not v instanceof DiscardVariable and not write.isInMacroExpansion() and not isAllowableUnused(v) and diff --git a/rust/ql/test/library-tests/dataflow/sources/Cargo.lock b/rust/ql/test/library-tests/dataflow/sources/Cargo.lock index 5bdbe2c0ebb..887f9016bc7 100644 --- a/rust/ql/test/library-tests/dataflow/sources/Cargo.lock +++ b/rust/ql/test/library-tests/dataflow/sources/Cargo.lock @@ -1514,6 +1514,16 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" +[[package]] +name = "mime_guess" +version = "2.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" +dependencies = [ + "mime", + "unicase", +] + [[package]] name = "minimal-lexical" version = "0.2.1" @@ -1680,6 +1690,26 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +[[package]] +name = "pin-project" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "pin-project-lite" version = "0.2.16" @@ -2069,6 +2099,12 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + [[package]] name = "scopeguard" version = "1.2.0" @@ -2297,6 +2333,7 @@ dependencies = [ "serde", "serde_json", "tokio", + "warp", ] [[package]] @@ -2538,6 +2575,12 @@ dependencies = [ "version_check", ] +[[package]] +name = "unicase" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" + [[package]] name = "unicode-ident" version = "1.0.18" @@ -2600,6 +2643,35 @@ dependencies = [ "try-lock", ] +[[package]] +name = "warp" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d06d9202adc1f15d709c4f4a2069be5428aa912cc025d6f268ac441ab066b0" +dependencies = [ + "bytes", + "futures-util", + "headers", + "http 1.3.1", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "log", + "mime", + "mime_guess", + "percent-encoding", + "pin-project", + "scoped-tls", + "serde", + "serde_json", + "serde_urlencoded", + "tokio", + "tokio-util", + "tower-service", + "tracing", +] + [[package]] name = "wasi" version = "0.11.1+wasi-snapshot-preview1" diff --git a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected index 59f1e9b4e0c..96b6426baf4 100644 --- a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected +++ b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected @@ -100,3 +100,67 @@ | web_frameworks.rs:58:14:58:15 | ms | Flow source 'RemoteSource' of type remote (DEFAULT). | | web_frameworks.rs:68:15:68:15 | a | Flow source 'RemoteSource' of type remote (DEFAULT). | | web_frameworks.rs:68:15:68:15 | a | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | diff --git a/rust/ql/test/library-tests/dataflow/sources/options.yml b/rust/ql/test/library-tests/dataflow/sources/options.yml index a05a970f7b8..1fc6475170a 100644 --- a/rust/ql/test/library-tests/dataflow/sources/options.yml +++ b/rust/ql/test/library-tests/dataflow/sources/options.yml @@ -16,3 +16,4 @@ qltest_dependencies: - rustls = { version = "0.23.27" } - futures-rustls = { version = "0.26.0" } - async-std = { version = "1.13.1" } + - warp = { version = "0.4.2", features = ["server"] } diff --git a/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs b/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs index 32cae626593..857fc3b479e 100644 --- a/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs +++ b/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs @@ -229,3 +229,61 @@ mod axum_test { // ... } } + +mod warp_test { + use super::sink; + use warp::Filter; + + #[tokio::main] + #[rustfmt::skip] + async fn test_warp() { + // A route with parameter and `map` + let map_route = + warp::path::param().map(|a: String| // $ Alert[rust/summary/taint-sources] + { + sink(a); // $ MISSING: hasTaintFlow + + "".to_string() + }); + + // A route with parameter and `then` + let then_route = warp::path::param().then( // $ Alert[rust/summary/taint-sources] + async move |a: String| { + sink(a); // $ MISSING: hasTaintFlow + + "".to_string() + }, + ); + + // A route with parameter and `and_then` + let and_then_route = warp::path::param().and_then( // $ Alert[rust/summary/taint-sources] + async move | id: u64 | + { + if id != 0 { + sink(id); // $ MISSING: hasTaintFlow + Ok("".to_string()) + } else { + Err(warp::reject::not_found()) + } + }, + ); + + // A route with path, parameter, and `and_then` + let path_and_map_route = warp::path("1").and(warp::path::param()).map( // $ Alert[rust/summary/taint-sources] + | a: String | + { + sink(a); // $ MISSING: hasTaintFlow + + "".to_string() + }, + ); + + let routes = warp::get().and( + map_route + .or(then_route) + .or(and_then_route) + .or(path_and_map_route), + ); + warp::serve(routes).run(([127, 0, 0, 1], 3030)).await; + } +} diff --git a/rust/ql/test/library-tests/variables/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/variables/CONSISTENCY/PathResolutionConsistency.expected index ec1a29e40c8..6b4022b86e5 100644 --- a/rust/ql/test/library-tests/variables/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/variables/CONSISTENCY/PathResolutionConsistency.expected @@ -1,3 +1,3 @@ multipleCallTargets -| main.rs:89:19:89:40 | ...::from(...) | -| main.rs:111:19:111:40 | ...::from(...) | +| main.rs:91:19:91:40 | ...::from(...) | +| main.rs:113:19:113:40 | ...::from(...) | diff --git a/rust/ql/test/library-tests/variables/Cfg.expected b/rust/ql/test/library-tests/variables/Cfg.expected index 0097a12e398..6b3f0e0e93d 100644 --- a/rust/ql/test/library-tests/variables/Cfg.expected +++ b/rust/ql/test/library-tests/variables/Cfg.expected @@ -58,9 +58,9 @@ edges | main.rs:21:5:21:17 | print_str(...) | main.rs:19:25:22:1 | { ... } | | | main.rs:21:5:21:18 | ExprStmt | main.rs:21:5:21:13 | print_str | | | main.rs:21:15:21:16 | x1 | main.rs:21:5:21:17 | print_str(...) | | -| main.rs:24:1:29:1 | enter fn mutable_variable | main.rs:25:5:25:19 | let ... = 4 | | -| main.rs:24:1:29:1 | exit fn mutable_variable (normal) | main.rs:24:1:29:1 | exit fn mutable_variable | | -| main.rs:24:23:29:1 | { ... } | main.rs:24:1:29:1 | exit fn mutable_variable (normal) | | +| main.rs:24:1:31:1 | enter fn mutable_variable | main.rs:25:5:25:19 | let ... = 4 | | +| main.rs:24:1:31:1 | exit fn mutable_variable (normal) | main.rs:24:1:31:1 | exit fn mutable_variable | | +| main.rs:24:23:31:1 | { ... } | main.rs:24:1:31:1 | exit fn mutable_variable (normal) | | | main.rs:25:5:25:19 | let ... = 4 | main.rs:25:18:25:18 | 4 | | | main.rs:25:9:25:14 | mut x2 | main.rs:26:5:26:18 | ExprStmt | match | | main.rs:25:13:25:14 | x2 | main.rs:25:9:25:14 | mut x2 | | @@ -74,1807 +74,1815 @@ edges | main.rs:27:5:27:11 | ExprStmt | main.rs:27:5:27:6 | x2 | | | main.rs:27:10:27:10 | 5 | main.rs:27:5:27:10 | ... = ... | | | main.rs:28:5:28:13 | print_i64 | main.rs:28:15:28:16 | x2 | | -| main.rs:28:5:28:17 | print_i64(...) | main.rs:24:23:29:1 | { ... } | | +| main.rs:28:5:28:17 | print_i64(...) | main.rs:29:5:29:12 | ExprStmt | | | main.rs:28:5:28:18 | ExprStmt | main.rs:28:5:28:13 | print_i64 | | | main.rs:28:15:28:16 | x2 | main.rs:28:5:28:17 | print_i64(...) | | -| main.rs:31:1:36:1 | enter fn mutable_variable_immutable_borrow | main.rs:32:5:32:18 | let ... = 1 | | -| main.rs:31:1:36:1 | exit fn mutable_variable_immutable_borrow (normal) | main.rs:31:1:36:1 | exit fn mutable_variable_immutable_borrow | | -| main.rs:31:40:36:1 | { ... } | main.rs:31:1:36:1 | exit fn mutable_variable_immutable_borrow (normal) | | -| main.rs:32:5:32:18 | let ... = 1 | main.rs:32:17:32:17 | 1 | | -| main.rs:32:9:32:13 | mut x | main.rs:33:5:33:22 | ExprStmt | match | -| main.rs:32:13:32:13 | x | main.rs:32:9:32:13 | mut x | | -| main.rs:32:17:32:17 | 1 | main.rs:32:13:32:13 | x | | -| main.rs:33:5:33:17 | print_i64_ref | main.rs:33:20:33:20 | x | | -| main.rs:33:5:33:21 | print_i64_ref(...) | main.rs:34:5:34:10 | ExprStmt | | -| main.rs:33:5:33:22 | ExprStmt | main.rs:33:5:33:17 | print_i64_ref | | -| main.rs:33:19:33:20 | &x | main.rs:33:5:33:21 | print_i64_ref(...) | | -| main.rs:33:20:33:20 | x | main.rs:33:19:33:20 | &x | | -| main.rs:34:5:34:5 | x | main.rs:34:9:34:9 | 2 | | -| main.rs:34:5:34:9 | ... = ... | main.rs:35:5:35:22 | ExprStmt | | -| main.rs:34:5:34:10 | ExprStmt | main.rs:34:5:34:5 | x | | -| main.rs:34:9:34:9 | 2 | main.rs:34:5:34:9 | ... = ... | | +| main.rs:29:5:29:6 | x2 | main.rs:29:10:29:11 | x2 | | +| main.rs:29:5:29:11 | ... = ... | main.rs:30:5:30:18 | ExprStmt | | +| main.rs:29:5:29:12 | ExprStmt | main.rs:29:5:29:6 | x2 | | +| main.rs:29:10:29:11 | x2 | main.rs:29:5:29:11 | ... = ... | | +| main.rs:30:5:30:13 | print_i64 | main.rs:30:15:30:16 | x2 | | +| main.rs:30:5:30:17 | print_i64(...) | main.rs:24:23:31:1 | { ... } | | +| main.rs:30:5:30:18 | ExprStmt | main.rs:30:5:30:13 | print_i64 | | +| main.rs:30:15:30:16 | x2 | main.rs:30:5:30:17 | print_i64(...) | | +| main.rs:33:1:38:1 | enter fn mutable_variable_immutable_borrow | main.rs:34:5:34:18 | let ... = 1 | | +| main.rs:33:1:38:1 | exit fn mutable_variable_immutable_borrow (normal) | main.rs:33:1:38:1 | exit fn mutable_variable_immutable_borrow | | +| main.rs:33:40:38:1 | { ... } | main.rs:33:1:38:1 | exit fn mutable_variable_immutable_borrow (normal) | | +| main.rs:34:5:34:18 | let ... = 1 | main.rs:34:17:34:17 | 1 | | +| main.rs:34:9:34:13 | mut x | main.rs:35:5:35:22 | ExprStmt | match | +| main.rs:34:13:34:13 | x | main.rs:34:9:34:13 | mut x | | +| main.rs:34:17:34:17 | 1 | main.rs:34:13:34:13 | x | | | main.rs:35:5:35:17 | print_i64_ref | main.rs:35:20:35:20 | x | | -| main.rs:35:5:35:21 | print_i64_ref(...) | main.rs:31:40:36:1 | { ... } | | +| main.rs:35:5:35:21 | print_i64_ref(...) | main.rs:36:5:36:10 | ExprStmt | | | main.rs:35:5:35:22 | ExprStmt | main.rs:35:5:35:17 | print_i64_ref | | | main.rs:35:19:35:20 | &x | main.rs:35:5:35:21 | print_i64_ref(...) | | | main.rs:35:20:35:20 | x | main.rs:35:19:35:20 | &x | | -| main.rs:38:1:44:1 | enter fn variable_shadow1 | main.rs:39:5:39:15 | let ... = 1 | | -| main.rs:38:1:44:1 | exit fn variable_shadow1 (normal) | main.rs:38:1:44:1 | exit fn variable_shadow1 | | -| main.rs:38:23:44:1 | { ... } | main.rs:38:1:44:1 | exit fn variable_shadow1 (normal) | | -| main.rs:39:5:39:15 | let ... = 1 | main.rs:39:14:39:14 | 1 | | -| main.rs:39:9:39:10 | x3 | main.rs:39:9:39:10 | x3 | | -| main.rs:39:9:39:10 | x3 | main.rs:40:5:40:18 | ExprStmt | match | -| main.rs:39:14:39:14 | 1 | main.rs:39:9:39:10 | x3 | | -| main.rs:40:5:40:13 | print_i64 | main.rs:40:15:40:16 | x3 | | -| main.rs:40:5:40:17 | print_i64(...) | main.rs:41:5:42:15 | let ... = ... | | -| main.rs:40:5:40:18 | ExprStmt | main.rs:40:5:40:13 | print_i64 | | -| main.rs:40:15:40:16 | x3 | main.rs:40:5:40:17 | print_i64(...) | | -| main.rs:41:5:42:15 | let ... = ... | main.rs:42:9:42:10 | x3 | | +| main.rs:36:5:36:5 | x | main.rs:36:9:36:9 | 2 | | +| main.rs:36:5:36:9 | ... = ... | main.rs:37:5:37:22 | ExprStmt | | +| main.rs:36:5:36:10 | ExprStmt | main.rs:36:5:36:5 | x | | +| main.rs:36:9:36:9 | 2 | main.rs:36:5:36:9 | ... = ... | | +| main.rs:37:5:37:17 | print_i64_ref | main.rs:37:20:37:20 | x | | +| main.rs:37:5:37:21 | print_i64_ref(...) | main.rs:33:40:38:1 | { ... } | | +| main.rs:37:5:37:22 | ExprStmt | main.rs:37:5:37:17 | print_i64_ref | | +| main.rs:37:19:37:20 | &x | main.rs:37:5:37:21 | print_i64_ref(...) | | +| main.rs:37:20:37:20 | x | main.rs:37:19:37:20 | &x | | +| main.rs:40:1:46:1 | enter fn variable_shadow1 | main.rs:41:5:41:15 | let ... = 1 | | +| main.rs:40:1:46:1 | exit fn variable_shadow1 (normal) | main.rs:40:1:46:1 | exit fn variable_shadow1 | | +| main.rs:40:23:46:1 | { ... } | main.rs:40:1:46:1 | exit fn variable_shadow1 (normal) | | +| main.rs:41:5:41:15 | let ... = 1 | main.rs:41:14:41:14 | 1 | | | main.rs:41:9:41:10 | x3 | main.rs:41:9:41:10 | x3 | | -| main.rs:41:9:41:10 | x3 | main.rs:43:5:43:18 | ExprStmt | match | -| main.rs:42:9:42:10 | x3 | main.rs:42:14:42:14 | 1 | | -| main.rs:42:9:42:14 | ... + ... | main.rs:41:9:41:10 | x3 | | -| main.rs:42:14:42:14 | 1 | main.rs:42:9:42:14 | ... + ... | | -| main.rs:43:5:43:13 | print_i64 | main.rs:43:15:43:16 | x3 | | -| main.rs:43:5:43:17 | print_i64(...) | main.rs:38:23:44:1 | { ... } | | -| main.rs:43:5:43:18 | ExprStmt | main.rs:43:5:43:13 | print_i64 | | -| main.rs:43:15:43:16 | x3 | main.rs:43:5:43:17 | print_i64(...) | | -| main.rs:46:1:54:1 | enter fn variable_shadow2 | main.rs:47:5:47:17 | let ... = "a" | | -| main.rs:46:1:54:1 | exit fn variable_shadow2 (normal) | main.rs:46:1:54:1 | exit fn variable_shadow2 | | -| main.rs:46:23:54:1 | { ... } | main.rs:46:1:54:1 | exit fn variable_shadow2 (normal) | | -| main.rs:47:5:47:17 | let ... = "a" | main.rs:47:14:47:16 | "a" | | -| main.rs:47:9:47:10 | x4 | main.rs:47:9:47:10 | x4 | | -| main.rs:47:9:47:10 | x4 | main.rs:48:5:48:18 | ExprStmt | match | -| main.rs:47:14:47:16 | "a" | main.rs:47:9:47:10 | x4 | | -| main.rs:48:5:48:13 | print_str | main.rs:48:15:48:16 | x4 | | -| main.rs:48:5:48:17 | print_str(...) | main.rs:49:5:52:5 | ExprStmt | | -| main.rs:48:5:48:18 | ExprStmt | main.rs:48:5:48:13 | print_str | | -| main.rs:48:15:48:16 | x4 | main.rs:48:5:48:17 | print_str(...) | | -| main.rs:49:5:52:5 | ExprStmt | main.rs:50:9:50:21 | let ... = "b" | | -| main.rs:49:5:52:5 | { ... } | main.rs:53:5:53:18 | ExprStmt | | -| main.rs:50:9:50:21 | let ... = "b" | main.rs:50:18:50:20 | "b" | | -| main.rs:50:13:50:14 | x4 | main.rs:50:13:50:14 | x4 | | -| main.rs:50:13:50:14 | x4 | main.rs:51:9:51:22 | ExprStmt | match | -| main.rs:50:18:50:20 | "b" | main.rs:50:13:50:14 | x4 | | -| main.rs:51:9:51:17 | print_str | main.rs:51:19:51:20 | x4 | | -| main.rs:51:9:51:21 | print_str(...) | main.rs:49:5:52:5 | { ... } | | -| main.rs:51:9:51:22 | ExprStmt | main.rs:51:9:51:17 | print_str | | -| main.rs:51:19:51:20 | x4 | main.rs:51:9:51:21 | print_str(...) | | -| main.rs:53:5:53:13 | print_str | main.rs:53:15:53:16 | x4 | | -| main.rs:53:5:53:17 | print_str(...) | main.rs:46:23:54:1 | { ... } | | -| main.rs:53:5:53:18 | ExprStmt | main.rs:53:5:53:13 | print_str | | -| main.rs:53:15:53:16 | x4 | main.rs:53:5:53:17 | print_str(...) | | -| main.rs:61:1:76:1 | enter fn let_pattern1 | main.rs:62:5:71:47 | let ... = ... | | -| main.rs:61:1:76:1 | exit fn let_pattern1 (normal) | main.rs:61:1:76:1 | exit fn let_pattern1 | | -| main.rs:61:19:76:1 | { ... } | main.rs:61:1:76:1 | exit fn let_pattern1 (normal) | | -| main.rs:62:5:71:47 | let ... = ... | main.rs:71:11:71:13 | "a" | | -| main.rs:62:9:71:5 | TuplePat | main.rs:63:9:66:9 | TuplePat | match | -| main.rs:63:9:66:9 | TuplePat | main.rs:64:13:64:14 | a1 | match | -| main.rs:64:13:64:14 | a1 | main.rs:64:13:64:14 | a1 | | -| main.rs:64:13:64:14 | a1 | main.rs:65:13:65:14 | b1 | match | -| main.rs:65:13:65:14 | b1 | main.rs:65:13:65:14 | b1 | | -| main.rs:65:13:65:14 | b1 | main.rs:67:9:70:9 | Point {...} | match | -| main.rs:67:9:70:9 | Point {...} | main.rs:68:13:68:13 | x | match | -| main.rs:68:13:68:13 | x | main.rs:68:13:68:13 | x | | -| main.rs:68:13:68:13 | x | main.rs:69:13:69:13 | y | match | -| main.rs:69:13:69:13 | y | main.rs:69:13:69:13 | y | | -| main.rs:69:13:69:13 | y | main.rs:72:5:72:18 | ExprStmt | match | -| main.rs:71:9:71:46 | TupleExpr | main.rs:62:9:71:5 | TuplePat | | -| main.rs:71:10:71:19 | TupleExpr | main.rs:71:33:71:35 | "x" | | -| main.rs:71:11:71:13 | "a" | main.rs:71:16:71:18 | "b" | | -| main.rs:71:16:71:18 | "b" | main.rs:71:10:71:19 | TupleExpr | | -| main.rs:71:22:71:45 | Point {...} | main.rs:71:9:71:46 | TupleExpr | | -| main.rs:71:33:71:35 | "x" | main.rs:71:41:71:43 | "y" | | -| main.rs:71:41:71:43 | "y" | main.rs:71:22:71:45 | Point {...} | | -| main.rs:72:5:72:13 | print_str | main.rs:72:15:72:16 | a1 | | -| main.rs:72:5:72:17 | print_str(...) | main.rs:73:5:73:18 | ExprStmt | | -| main.rs:72:5:72:18 | ExprStmt | main.rs:72:5:72:13 | print_str | | -| main.rs:72:15:72:16 | a1 | main.rs:72:5:72:17 | print_str(...) | | -| main.rs:73:5:73:13 | print_str | main.rs:73:15:73:16 | b1 | | -| main.rs:73:5:73:17 | print_str(...) | main.rs:74:5:74:17 | ExprStmt | | -| main.rs:73:5:73:18 | ExprStmt | main.rs:73:5:73:13 | print_str | | -| main.rs:73:15:73:16 | b1 | main.rs:73:5:73:17 | print_str(...) | | -| main.rs:74:5:74:13 | print_str | main.rs:74:15:74:15 | x | | -| main.rs:74:5:74:16 | print_str(...) | main.rs:75:5:75:17 | ExprStmt | | -| main.rs:74:5:74:17 | ExprStmt | main.rs:74:5:74:13 | print_str | | -| main.rs:74:15:74:15 | x | main.rs:74:5:74:16 | print_str(...) | | -| main.rs:75:5:75:13 | print_str | main.rs:75:15:75:15 | y | | -| main.rs:75:5:75:16 | print_str(...) | main.rs:61:19:76:1 | { ... } | | -| main.rs:75:5:75:17 | ExprStmt | main.rs:75:5:75:13 | print_str | | -| main.rs:75:15:75:15 | y | main.rs:75:5:75:16 | print_str(...) | | -| main.rs:78:1:86:1 | enter fn let_pattern2 | main.rs:79:5:79:38 | let ... = ... | | -| main.rs:78:1:86:1 | exit fn let_pattern2 (normal) | main.rs:78:1:86:1 | exit fn let_pattern2 | | -| main.rs:78:19:86:1 | { ... } | main.rs:78:1:86:1 | exit fn let_pattern2 (normal) | | -| main.rs:79:5:79:38 | let ... = ... | main.rs:79:25:79:27 | "a" | | -| main.rs:79:9:79:10 | p1 | main.rs:79:9:79:10 | p1 | | -| main.rs:79:9:79:10 | p1 | main.rs:80:5:83:11 | let ... = p1 | match | -| main.rs:79:14:79:37 | Point {...} | main.rs:79:9:79:10 | p1 | | -| main.rs:79:25:79:27 | "a" | main.rs:79:33:79:35 | "b" | | -| main.rs:79:33:79:35 | "b" | main.rs:79:14:79:37 | Point {...} | | -| main.rs:80:5:83:11 | let ... = p1 | main.rs:83:9:83:10 | p1 | | -| main.rs:80:9:83:5 | Point {...} | main.rs:81:12:81:13 | a2 | match | -| main.rs:81:12:81:13 | a2 | main.rs:81:12:81:13 | a2 | | -| main.rs:81:12:81:13 | a2 | main.rs:82:12:82:13 | b2 | match | -| main.rs:82:12:82:13 | b2 | main.rs:82:12:82:13 | b2 | | -| main.rs:82:12:82:13 | b2 | main.rs:84:5:84:18 | ExprStmt | match | -| main.rs:83:9:83:10 | p1 | main.rs:80:9:83:5 | Point {...} | | -| main.rs:84:5:84:13 | print_str | main.rs:84:15:84:16 | a2 | | -| main.rs:84:5:84:17 | print_str(...) | main.rs:85:5:85:18 | ExprStmt | | -| main.rs:84:5:84:18 | ExprStmt | main.rs:84:5:84:13 | print_str | | -| main.rs:84:15:84:16 | a2 | main.rs:84:5:84:17 | print_str(...) | | -| main.rs:85:5:85:13 | print_str | main.rs:85:15:85:16 | b2 | | -| main.rs:85:5:85:17 | print_str(...) | main.rs:78:19:86:1 | { ... } | | -| main.rs:85:5:85:18 | ExprStmt | main.rs:85:5:85:13 | print_str | | -| main.rs:85:15:85:16 | b2 | main.rs:85:5:85:17 | print_str(...) | | -| main.rs:88:1:95:1 | enter fn let_pattern3 | main.rs:89:5:89:42 | let ... = ... | | -| main.rs:88:1:95:1 | exit fn let_pattern3 (normal) | main.rs:88:1:95:1 | exit fn let_pattern3 | | -| main.rs:88:19:95:1 | { ... } | main.rs:88:1:95:1 | exit fn let_pattern3 (normal) | | -| main.rs:89:5:89:42 | let ... = ... | main.rs:89:14:89:17 | Some | | -| main.rs:89:9:89:10 | s1 | main.rs:89:9:89:10 | s1 | | -| main.rs:89:9:89:10 | s1 | main.rs:92:11:92:12 | s1 | match | -| main.rs:89:14:89:17 | Some | main.rs:89:19:89:30 | ...::from | | -| main.rs:89:14:89:41 | Some(...) | main.rs:89:9:89:10 | s1 | | -| main.rs:89:19:89:30 | ...::from | main.rs:89:32:89:39 | "Hello!" | | -| main.rs:89:19:89:40 | ...::from(...) | main.rs:89:14:89:41 | Some(...) | | -| main.rs:89:32:89:39 | "Hello!" | main.rs:89:19:89:40 | ...::from(...) | | -| main.rs:91:5:94:5 | if ... {...} | main.rs:88:19:95:1 | { ... } | | -| main.rs:91:8:92:12 | [boolean(false)] let ... = s1 | main.rs:91:5:94:5 | if ... {...} | false | -| main.rs:91:8:92:12 | [boolean(true)] let ... = s1 | main.rs:93:9:93:22 | ExprStmt | true | -| main.rs:91:12:91:23 | Some(...) | main.rs:91:8:92:12 | [boolean(false)] let ... = s1 | no-match | -| main.rs:91:12:91:23 | Some(...) | main.rs:91:21:91:22 | s2 | match | -| main.rs:91:17:91:22 | ref s2 | main.rs:91:8:92:12 | [boolean(true)] let ... = s1 | match | -| main.rs:91:21:91:22 | s2 | main.rs:91:17:91:22 | ref s2 | | -| main.rs:92:11:92:12 | s1 | main.rs:91:12:91:23 | Some(...) | | -| main.rs:92:14:94:5 | { ... } | main.rs:91:5:94:5 | if ... {...} | | -| main.rs:93:9:93:17 | print_str | main.rs:93:19:93:20 | s2 | | -| main.rs:93:9:93:21 | print_str(...) | main.rs:92:14:94:5 | { ... } | | -| main.rs:93:9:93:22 | ExprStmt | main.rs:93:9:93:17 | print_str | | -| main.rs:93:19:93:20 | s2 | main.rs:93:9:93:21 | print_str(...) | | -| main.rs:97:1:108:1 | enter fn let_pattern4 | main.rs:98:5:98:23 | let ... = ... | | -| main.rs:97:1:108:1 | exit fn let_pattern4 (normal) | main.rs:97:1:108:1 | exit fn let_pattern4 | | -| main.rs:97:19:108:1 | { ... } | main.rs:97:1:108:1 | exit fn let_pattern4 (normal) | | -| main.rs:98:5:98:23 | let ... = ... | main.rs:98:13:98:16 | Some | | -| main.rs:98:9:98:9 | x | main.rs:98:9:98:9 | x | | -| main.rs:98:9:98:9 | x | main.rs:99:5:106:6 | let ... = x else {...} | match | -| main.rs:98:13:98:16 | Some | main.rs:98:18:98:21 | "x5" | | -| main.rs:98:13:98:22 | Some(...) | main.rs:98:9:98:9 | x | | -| main.rs:98:18:98:21 | "x5" | main.rs:98:13:98:22 | Some(...) | | -| main.rs:99:5:106:6 | let ... = x else {...} | main.rs:100:7:100:7 | x | | -| main.rs:99:9:99:15 | Some(...) | main.rs:99:14:99:14 | x | match | -| main.rs:99:9:99:15 | Some(...) | main.rs:102:9:103:14 | let ... = x | no-match | -| main.rs:99:14:99:14 | x | main.rs:99:14:99:14 | x | | -| main.rs:99:14:99:14 | x | main.rs:107:5:107:17 | ExprStmt | match | -| main.rs:100:7:100:7 | x | main.rs:99:9:99:15 | Some(...) | | -| main.rs:102:9:103:14 | let ... = x | main.rs:103:13:103:13 | x | | -| main.rs:102:13:102:13 | x | main.rs:102:13:102:13 | x | | -| main.rs:102:13:102:13 | x | main.rs:104:9:104:30 | ExprStmt | match | -| main.rs:103:13:103:13 | x | main.rs:102:13:102:13 | x | | -| main.rs:104:9:104:17 | print_str | main.rs:104:19:104:19 | x | | -| main.rs:104:9:104:29 | print_str(...) | main.rs:105:9:105:13 | ...::panic | | -| main.rs:104:9:104:30 | ExprStmt | main.rs:104:9:104:17 | print_str | | -| main.rs:104:19:104:19 | x | main.rs:104:19:104:28 | x.unwrap() | | -| main.rs:104:19:104:28 | x.unwrap() | main.rs:104:9:104:29 | print_str(...) | | -| main.rs:105:9:105:13 | "not yet implemented" | main.rs:105:9:105:13 | ...::panic(...) | | -| main.rs:105:9:105:13 | ...::panic | main.rs:105:9:105:13 | "not yet implemented" | | -| main.rs:105:9:105:13 | ...::panic(...) | main.rs:105:9:105:13 | MacroBlockExpr | | -| main.rs:105:9:105:13 | MacroBlockExpr | main.rs:105:9:105:15 | todo!... | | -| main.rs:105:9:105:15 | MacroExpr | main.rs:101:10:106:5 | { ... } | | -| main.rs:105:9:105:15 | todo!... | main.rs:105:9:105:15 | MacroExpr | | -| main.rs:107:5:107:13 | print_str | main.rs:107:15:107:15 | x | | -| main.rs:107:5:107:16 | print_str(...) | main.rs:97:19:108:1 | { ... } | | -| main.rs:107:5:107:17 | ExprStmt | main.rs:107:5:107:13 | print_str | | -| main.rs:107:15:107:15 | x | main.rs:107:5:107:16 | print_str(...) | | -| main.rs:110:1:117:1 | enter fn let_pattern5 | main.rs:111:5:111:42 | let ... = ... | | -| main.rs:110:1:117:1 | exit fn let_pattern5 (normal) | main.rs:110:1:117:1 | exit fn let_pattern5 | | -| main.rs:110:19:117:1 | { ... } | main.rs:110:1:117:1 | exit fn let_pattern5 (normal) | | -| main.rs:111:5:111:42 | let ... = ... | main.rs:111:14:111:17 | Some | | -| main.rs:111:9:111:10 | s1 | main.rs:111:9:111:10 | s1 | | -| main.rs:111:9:111:10 | s1 | main.rs:114:11:114:12 | s1 | match | -| main.rs:111:14:111:17 | Some | main.rs:111:19:111:30 | ...::from | | -| main.rs:111:14:111:41 | Some(...) | main.rs:111:9:111:10 | s1 | | -| main.rs:111:19:111:30 | ...::from | main.rs:111:32:111:39 | "Hello!" | | -| main.rs:111:19:111:40 | ...::from(...) | main.rs:111:14:111:41 | Some(...) | | -| main.rs:111:32:111:39 | "Hello!" | main.rs:111:19:111:40 | ...::from(...) | | -| main.rs:113:5:116:5 | while ... { ... } | main.rs:110:19:117:1 | { ... } | | -| main.rs:113:11:114:12 | [boolean(false)] let ... = s1 | main.rs:113:5:116:5 | while ... { ... } | false | -| main.rs:113:11:114:12 | [boolean(true)] let ... = s1 | main.rs:115:9:115:22 | ExprStmt | true | -| main.rs:113:15:113:26 | Some(...) | main.rs:113:11:114:12 | [boolean(false)] let ... = s1 | no-match | -| main.rs:113:15:113:26 | Some(...) | main.rs:113:24:113:25 | s2 | match | -| main.rs:113:20:113:25 | ref s2 | main.rs:113:11:114:12 | [boolean(true)] let ... = s1 | match | -| main.rs:113:24:113:25 | s2 | main.rs:113:20:113:25 | ref s2 | | -| main.rs:114:11:114:12 | s1 | main.rs:113:15:113:26 | Some(...) | | -| main.rs:114:14:116:5 | { ... } | main.rs:114:11:114:12 | s1 | | -| main.rs:115:9:115:17 | print_str | main.rs:115:19:115:20 | s2 | | -| main.rs:115:9:115:21 | print_str(...) | main.rs:114:14:116:5 | { ... } | | -| main.rs:115:9:115:22 | ExprStmt | main.rs:115:9:115:17 | print_str | | -| main.rs:115:19:115:20 | s2 | main.rs:115:9:115:21 | print_str(...) | | -| main.rs:119:1:134:1 | enter fn match_pattern1 | main.rs:120:5:120:21 | let ... = ... | | -| main.rs:119:1:134:1 | exit fn match_pattern1 (normal) | main.rs:119:1:134:1 | exit fn match_pattern1 | | -| main.rs:119:21:134:1 | { ... } | main.rs:119:1:134:1 | exit fn match_pattern1 (normal) | | -| main.rs:120:5:120:21 | let ... = ... | main.rs:120:14:120:17 | Some | | -| main.rs:120:9:120:10 | x6 | main.rs:120:9:120:10 | x6 | | -| main.rs:120:9:120:10 | x6 | main.rs:121:5:121:16 | let ... = 10 | match | -| main.rs:120:14:120:17 | Some | main.rs:120:19:120:19 | 5 | | -| main.rs:120:14:120:20 | Some(...) | main.rs:120:9:120:10 | x6 | | -| main.rs:120:19:120:19 | 5 | main.rs:120:14:120:20 | Some(...) | | -| main.rs:121:5:121:16 | let ... = 10 | main.rs:121:14:121:15 | 10 | | -| main.rs:121:9:121:10 | y1 | main.rs:121:9:121:10 | y1 | | -| main.rs:121:9:121:10 | y1 | main.rs:123:5:131:5 | ExprStmt | match | -| main.rs:121:14:121:15 | 10 | main.rs:121:9:121:10 | y1 | | -| main.rs:123:5:131:5 | ExprStmt | main.rs:123:11:123:12 | x6 | | -| main.rs:123:5:131:5 | match x6 { ... } | main.rs:133:5:133:18 | ExprStmt | | -| main.rs:123:11:123:12 | x6 | main.rs:124:9:124:16 | Some(...) | | -| main.rs:124:9:124:16 | Some(...) | main.rs:124:14:124:15 | 50 | match | -| main.rs:124:9:124:16 | Some(...) | main.rs:125:9:125:16 | Some(...) | no-match | -| main.rs:124:14:124:15 | 50 | main.rs:124:14:124:15 | 50 | | -| main.rs:124:14:124:15 | 50 | main.rs:124:21:124:29 | print_str | match | -| main.rs:124:14:124:15 | 50 | main.rs:125:9:125:16 | Some(...) | no-match | -| main.rs:124:21:124:29 | print_str | main.rs:124:31:124:38 | "Got 50" | | -| main.rs:124:21:124:39 | print_str(...) | main.rs:123:5:131:5 | match x6 { ... } | | -| main.rs:124:31:124:38 | "Got 50" | main.rs:124:21:124:39 | print_str(...) | | -| main.rs:125:9:125:16 | Some(...) | main.rs:125:14:125:15 | y1 | match | -| main.rs:125:9:125:16 | Some(...) | main.rs:130:9:130:12 | None | no-match | -| main.rs:125:14:125:15 | y1 | main.rs:125:14:125:15 | y1 | | -| main.rs:125:14:125:15 | y1 | main.rs:128:13:128:21 | print_i64 | match | -| main.rs:127:9:129:9 | { ... } | main.rs:123:5:131:5 | match x6 { ... } | | -| main.rs:128:13:128:21 | print_i64 | main.rs:128:23:128:24 | y1 | | -| main.rs:128:13:128:25 | print_i64(...) | main.rs:127:9:129:9 | { ... } | | -| main.rs:128:23:128:24 | y1 | main.rs:128:13:128:25 | print_i64(...) | | -| main.rs:130:9:130:12 | None | main.rs:130:9:130:12 | None | | -| main.rs:130:9:130:12 | None | main.rs:130:17:130:25 | print_str | match | -| main.rs:130:17:130:25 | print_str | main.rs:130:27:130:32 | "NONE" | | -| main.rs:130:17:130:33 | print_str(...) | main.rs:123:5:131:5 | match x6 { ... } | | -| main.rs:130:27:130:32 | "NONE" | main.rs:130:17:130:33 | print_str(...) | | -| main.rs:133:5:133:13 | print_i64 | main.rs:133:15:133:16 | y1 | | -| main.rs:133:5:133:17 | print_i64(...) | main.rs:119:21:134:1 | { ... } | | -| main.rs:133:5:133:18 | ExprStmt | main.rs:133:5:133:13 | print_i64 | | -| main.rs:133:15:133:16 | y1 | main.rs:133:5:133:17 | print_i64(...) | | -| main.rs:136:1:165:1 | enter fn match_pattern2 | main.rs:137:5:137:36 | let ... = ... | | -| main.rs:136:1:165:1 | exit fn match_pattern2 (normal) | main.rs:136:1:165:1 | exit fn match_pattern2 | | -| main.rs:136:21:165:1 | { ... } | main.rs:136:1:165:1 | exit fn match_pattern2 (normal) | | -| main.rs:137:5:137:36 | let ... = ... | main.rs:137:20:137:20 | 2 | | -| main.rs:137:9:137:15 | numbers | main.rs:137:9:137:15 | numbers | | -| main.rs:137:9:137:15 | numbers | main.rs:139:5:152:5 | ExprStmt | match | -| main.rs:137:19:137:35 | TupleExpr | main.rs:137:9:137:15 | numbers | | -| main.rs:137:20:137:20 | 2 | main.rs:137:23:137:23 | 4 | | -| main.rs:137:23:137:23 | 4 | main.rs:137:26:137:26 | 8 | | -| main.rs:137:26:137:26 | 8 | main.rs:137:29:137:30 | 16 | | -| main.rs:137:29:137:30 | 16 | main.rs:137:33:137:34 | 32 | | -| main.rs:137:33:137:34 | 32 | main.rs:137:19:137:35 | TupleExpr | | -| main.rs:139:5:152:5 | ExprStmt | main.rs:139:11:139:17 | numbers | | -| main.rs:139:5:152:5 | match numbers { ... } | main.rs:154:11:154:17 | numbers | | -| main.rs:139:11:139:17 | numbers | main.rs:141:9:147:9 | TuplePat | | -| main.rs:141:9:147:9 | TuplePat | main.rs:142:13:142:17 | first | match | -| main.rs:142:13:142:17 | first | main.rs:142:13:142:17 | first | | -| main.rs:142:13:142:17 | first | main.rs:143:13:143:13 | _ | match | -| main.rs:143:13:143:13 | _ | main.rs:144:13:144:17 | third | match | -| main.rs:144:13:144:17 | third | main.rs:144:13:144:17 | third | | -| main.rs:144:13:144:17 | third | main.rs:145:13:145:13 | _ | match | -| main.rs:145:13:145:13 | _ | main.rs:146:13:146:17 | fifth | match | -| main.rs:146:13:146:17 | fifth | main.rs:146:13:146:17 | fifth | | -| main.rs:146:13:146:17 | fifth | main.rs:148:13:148:29 | ExprStmt | match | -| main.rs:147:14:151:9 | { ... } | main.rs:139:5:152:5 | match numbers { ... } | | -| main.rs:148:13:148:21 | print_i64 | main.rs:148:23:148:27 | first | | -| main.rs:148:13:148:28 | print_i64(...) | main.rs:149:13:149:29 | ExprStmt | | -| main.rs:148:13:148:29 | ExprStmt | main.rs:148:13:148:21 | print_i64 | | -| main.rs:148:23:148:27 | first | main.rs:148:13:148:28 | print_i64(...) | | -| main.rs:149:13:149:21 | print_i64 | main.rs:149:23:149:27 | third | | -| main.rs:149:13:149:28 | print_i64(...) | main.rs:150:13:150:29 | ExprStmt | | -| main.rs:149:13:149:29 | ExprStmt | main.rs:149:13:149:21 | print_i64 | | -| main.rs:149:23:149:27 | third | main.rs:149:13:149:28 | print_i64(...) | | -| main.rs:150:13:150:21 | print_i64 | main.rs:150:23:150:27 | fifth | | -| main.rs:150:13:150:28 | print_i64(...) | main.rs:147:14:151:9 | { ... } | | +| main.rs:41:9:41:10 | x3 | main.rs:42:5:42:18 | ExprStmt | match | +| main.rs:41:14:41:14 | 1 | main.rs:41:9:41:10 | x3 | | +| main.rs:42:5:42:13 | print_i64 | main.rs:42:15:42:16 | x3 | | +| main.rs:42:5:42:17 | print_i64(...) | main.rs:43:5:44:15 | let ... = ... | | +| main.rs:42:5:42:18 | ExprStmt | main.rs:42:5:42:13 | print_i64 | | +| main.rs:42:15:42:16 | x3 | main.rs:42:5:42:17 | print_i64(...) | | +| main.rs:43:5:44:15 | let ... = ... | main.rs:44:9:44:10 | x3 | | +| main.rs:43:9:43:10 | x3 | main.rs:43:9:43:10 | x3 | | +| main.rs:43:9:43:10 | x3 | main.rs:45:5:45:18 | ExprStmt | match | +| main.rs:44:9:44:10 | x3 | main.rs:44:14:44:14 | 1 | | +| main.rs:44:9:44:14 | ... + ... | main.rs:43:9:43:10 | x3 | | +| main.rs:44:14:44:14 | 1 | main.rs:44:9:44:14 | ... + ... | | +| main.rs:45:5:45:13 | print_i64 | main.rs:45:15:45:16 | x3 | | +| main.rs:45:5:45:17 | print_i64(...) | main.rs:40:23:46:1 | { ... } | | +| main.rs:45:5:45:18 | ExprStmt | main.rs:45:5:45:13 | print_i64 | | +| main.rs:45:15:45:16 | x3 | main.rs:45:5:45:17 | print_i64(...) | | +| main.rs:48:1:56:1 | enter fn variable_shadow2 | main.rs:49:5:49:17 | let ... = "a" | | +| main.rs:48:1:56:1 | exit fn variable_shadow2 (normal) | main.rs:48:1:56:1 | exit fn variable_shadow2 | | +| main.rs:48:23:56:1 | { ... } | main.rs:48:1:56:1 | exit fn variable_shadow2 (normal) | | +| main.rs:49:5:49:17 | let ... = "a" | main.rs:49:14:49:16 | "a" | | +| main.rs:49:9:49:10 | x4 | main.rs:49:9:49:10 | x4 | | +| main.rs:49:9:49:10 | x4 | main.rs:50:5:50:18 | ExprStmt | match | +| main.rs:49:14:49:16 | "a" | main.rs:49:9:49:10 | x4 | | +| main.rs:50:5:50:13 | print_str | main.rs:50:15:50:16 | x4 | | +| main.rs:50:5:50:17 | print_str(...) | main.rs:51:5:54:5 | ExprStmt | | +| main.rs:50:5:50:18 | ExprStmt | main.rs:50:5:50:13 | print_str | | +| main.rs:50:15:50:16 | x4 | main.rs:50:5:50:17 | print_str(...) | | +| main.rs:51:5:54:5 | ExprStmt | main.rs:52:9:52:21 | let ... = "b" | | +| main.rs:51:5:54:5 | { ... } | main.rs:55:5:55:18 | ExprStmt | | +| main.rs:52:9:52:21 | let ... = "b" | main.rs:52:18:52:20 | "b" | | +| main.rs:52:13:52:14 | x4 | main.rs:52:13:52:14 | x4 | | +| main.rs:52:13:52:14 | x4 | main.rs:53:9:53:22 | ExprStmt | match | +| main.rs:52:18:52:20 | "b" | main.rs:52:13:52:14 | x4 | | +| main.rs:53:9:53:17 | print_str | main.rs:53:19:53:20 | x4 | | +| main.rs:53:9:53:21 | print_str(...) | main.rs:51:5:54:5 | { ... } | | +| main.rs:53:9:53:22 | ExprStmt | main.rs:53:9:53:17 | print_str | | +| main.rs:53:19:53:20 | x4 | main.rs:53:9:53:21 | print_str(...) | | +| main.rs:55:5:55:13 | print_str | main.rs:55:15:55:16 | x4 | | +| main.rs:55:5:55:17 | print_str(...) | main.rs:48:23:56:1 | { ... } | | +| main.rs:55:5:55:18 | ExprStmt | main.rs:55:5:55:13 | print_str | | +| main.rs:55:15:55:16 | x4 | main.rs:55:5:55:17 | print_str(...) | | +| main.rs:63:1:78:1 | enter fn let_pattern1 | main.rs:64:5:73:47 | let ... = ... | | +| main.rs:63:1:78:1 | exit fn let_pattern1 (normal) | main.rs:63:1:78:1 | exit fn let_pattern1 | | +| main.rs:63:19:78:1 | { ... } | main.rs:63:1:78:1 | exit fn let_pattern1 (normal) | | +| main.rs:64:5:73:47 | let ... = ... | main.rs:73:11:73:13 | "a" | | +| main.rs:64:9:73:5 | TuplePat | main.rs:65:9:68:9 | TuplePat | match | +| main.rs:65:9:68:9 | TuplePat | main.rs:66:13:66:14 | a1 | match | +| main.rs:66:13:66:14 | a1 | main.rs:66:13:66:14 | a1 | | +| main.rs:66:13:66:14 | a1 | main.rs:67:13:67:14 | b1 | match | +| main.rs:67:13:67:14 | b1 | main.rs:67:13:67:14 | b1 | | +| main.rs:67:13:67:14 | b1 | main.rs:69:9:72:9 | Point {...} | match | +| main.rs:69:9:72:9 | Point {...} | main.rs:70:13:70:13 | x | match | +| main.rs:70:13:70:13 | x | main.rs:70:13:70:13 | x | | +| main.rs:70:13:70:13 | x | main.rs:71:13:71:13 | y | match | +| main.rs:71:13:71:13 | y | main.rs:71:13:71:13 | y | | +| main.rs:71:13:71:13 | y | main.rs:74:5:74:18 | ExprStmt | match | +| main.rs:73:9:73:46 | TupleExpr | main.rs:64:9:73:5 | TuplePat | | +| main.rs:73:10:73:19 | TupleExpr | main.rs:73:33:73:35 | "x" | | +| main.rs:73:11:73:13 | "a" | main.rs:73:16:73:18 | "b" | | +| main.rs:73:16:73:18 | "b" | main.rs:73:10:73:19 | TupleExpr | | +| main.rs:73:22:73:45 | Point {...} | main.rs:73:9:73:46 | TupleExpr | | +| main.rs:73:33:73:35 | "x" | main.rs:73:41:73:43 | "y" | | +| main.rs:73:41:73:43 | "y" | main.rs:73:22:73:45 | Point {...} | | +| main.rs:74:5:74:13 | print_str | main.rs:74:15:74:16 | a1 | | +| main.rs:74:5:74:17 | print_str(...) | main.rs:75:5:75:18 | ExprStmt | | +| main.rs:74:5:74:18 | ExprStmt | main.rs:74:5:74:13 | print_str | | +| main.rs:74:15:74:16 | a1 | main.rs:74:5:74:17 | print_str(...) | | +| main.rs:75:5:75:13 | print_str | main.rs:75:15:75:16 | b1 | | +| main.rs:75:5:75:17 | print_str(...) | main.rs:76:5:76:17 | ExprStmt | | +| main.rs:75:5:75:18 | ExprStmt | main.rs:75:5:75:13 | print_str | | +| main.rs:75:15:75:16 | b1 | main.rs:75:5:75:17 | print_str(...) | | +| main.rs:76:5:76:13 | print_str | main.rs:76:15:76:15 | x | | +| main.rs:76:5:76:16 | print_str(...) | main.rs:77:5:77:17 | ExprStmt | | +| main.rs:76:5:76:17 | ExprStmt | main.rs:76:5:76:13 | print_str | | +| main.rs:76:15:76:15 | x | main.rs:76:5:76:16 | print_str(...) | | +| main.rs:77:5:77:13 | print_str | main.rs:77:15:77:15 | y | | +| main.rs:77:5:77:16 | print_str(...) | main.rs:63:19:78:1 | { ... } | | +| main.rs:77:5:77:17 | ExprStmt | main.rs:77:5:77:13 | print_str | | +| main.rs:77:15:77:15 | y | main.rs:77:5:77:16 | print_str(...) | | +| main.rs:80:1:88:1 | enter fn let_pattern2 | main.rs:81:5:81:38 | let ... = ... | | +| main.rs:80:1:88:1 | exit fn let_pattern2 (normal) | main.rs:80:1:88:1 | exit fn let_pattern2 | | +| main.rs:80:19:88:1 | { ... } | main.rs:80:1:88:1 | exit fn let_pattern2 (normal) | | +| main.rs:81:5:81:38 | let ... = ... | main.rs:81:25:81:27 | "a" | | +| main.rs:81:9:81:10 | p1 | main.rs:81:9:81:10 | p1 | | +| main.rs:81:9:81:10 | p1 | main.rs:82:5:85:11 | let ... = p1 | match | +| main.rs:81:14:81:37 | Point {...} | main.rs:81:9:81:10 | p1 | | +| main.rs:81:25:81:27 | "a" | main.rs:81:33:81:35 | "b" | | +| main.rs:81:33:81:35 | "b" | main.rs:81:14:81:37 | Point {...} | | +| main.rs:82:5:85:11 | let ... = p1 | main.rs:85:9:85:10 | p1 | | +| main.rs:82:9:85:5 | Point {...} | main.rs:83:12:83:13 | a2 | match | +| main.rs:83:12:83:13 | a2 | main.rs:83:12:83:13 | a2 | | +| main.rs:83:12:83:13 | a2 | main.rs:84:12:84:13 | b2 | match | +| main.rs:84:12:84:13 | b2 | main.rs:84:12:84:13 | b2 | | +| main.rs:84:12:84:13 | b2 | main.rs:86:5:86:18 | ExprStmt | match | +| main.rs:85:9:85:10 | p1 | main.rs:82:9:85:5 | Point {...} | | +| main.rs:86:5:86:13 | print_str | main.rs:86:15:86:16 | a2 | | +| main.rs:86:5:86:17 | print_str(...) | main.rs:87:5:87:18 | ExprStmt | | +| main.rs:86:5:86:18 | ExprStmt | main.rs:86:5:86:13 | print_str | | +| main.rs:86:15:86:16 | a2 | main.rs:86:5:86:17 | print_str(...) | | +| main.rs:87:5:87:13 | print_str | main.rs:87:15:87:16 | b2 | | +| main.rs:87:5:87:17 | print_str(...) | main.rs:80:19:88:1 | { ... } | | +| main.rs:87:5:87:18 | ExprStmt | main.rs:87:5:87:13 | print_str | | +| main.rs:87:15:87:16 | b2 | main.rs:87:5:87:17 | print_str(...) | | +| main.rs:90:1:97:1 | enter fn let_pattern3 | main.rs:91:5:91:42 | let ... = ... | | +| main.rs:90:1:97:1 | exit fn let_pattern3 (normal) | main.rs:90:1:97:1 | exit fn let_pattern3 | | +| main.rs:90:19:97:1 | { ... } | main.rs:90:1:97:1 | exit fn let_pattern3 (normal) | | +| main.rs:91:5:91:42 | let ... = ... | main.rs:91:14:91:17 | Some | | +| main.rs:91:9:91:10 | s1 | main.rs:91:9:91:10 | s1 | | +| main.rs:91:9:91:10 | s1 | main.rs:94:11:94:12 | s1 | match | +| main.rs:91:14:91:17 | Some | main.rs:91:19:91:30 | ...::from | | +| main.rs:91:14:91:41 | Some(...) | main.rs:91:9:91:10 | s1 | | +| main.rs:91:19:91:30 | ...::from | main.rs:91:32:91:39 | "Hello!" | | +| main.rs:91:19:91:40 | ...::from(...) | main.rs:91:14:91:41 | Some(...) | | +| main.rs:91:32:91:39 | "Hello!" | main.rs:91:19:91:40 | ...::from(...) | | +| main.rs:93:5:96:5 | if ... {...} | main.rs:90:19:97:1 | { ... } | | +| main.rs:93:8:94:12 | [boolean(false)] let ... = s1 | main.rs:93:5:96:5 | if ... {...} | false | +| main.rs:93:8:94:12 | [boolean(true)] let ... = s1 | main.rs:95:9:95:22 | ExprStmt | true | +| main.rs:93:12:93:23 | Some(...) | main.rs:93:8:94:12 | [boolean(false)] let ... = s1 | no-match | +| main.rs:93:12:93:23 | Some(...) | main.rs:93:21:93:22 | s2 | match | +| main.rs:93:17:93:22 | ref s2 | main.rs:93:8:94:12 | [boolean(true)] let ... = s1 | match | +| main.rs:93:21:93:22 | s2 | main.rs:93:17:93:22 | ref s2 | | +| main.rs:94:11:94:12 | s1 | main.rs:93:12:93:23 | Some(...) | | +| main.rs:94:14:96:5 | { ... } | main.rs:93:5:96:5 | if ... {...} | | +| main.rs:95:9:95:17 | print_str | main.rs:95:19:95:20 | s2 | | +| main.rs:95:9:95:21 | print_str(...) | main.rs:94:14:96:5 | { ... } | | +| main.rs:95:9:95:22 | ExprStmt | main.rs:95:9:95:17 | print_str | | +| main.rs:95:19:95:20 | s2 | main.rs:95:9:95:21 | print_str(...) | | +| main.rs:99:1:110:1 | enter fn let_pattern4 | main.rs:100:5:100:23 | let ... = ... | | +| main.rs:99:1:110:1 | exit fn let_pattern4 (normal) | main.rs:99:1:110:1 | exit fn let_pattern4 | | +| main.rs:99:19:110:1 | { ... } | main.rs:99:1:110:1 | exit fn let_pattern4 (normal) | | +| main.rs:100:5:100:23 | let ... = ... | main.rs:100:13:100:16 | Some | | +| main.rs:100:9:100:9 | x | main.rs:100:9:100:9 | x | | +| main.rs:100:9:100:9 | x | main.rs:101:5:108:6 | let ... = x else {...} | match | +| main.rs:100:13:100:16 | Some | main.rs:100:18:100:21 | "x5" | | +| main.rs:100:13:100:22 | Some(...) | main.rs:100:9:100:9 | x | | +| main.rs:100:18:100:21 | "x5" | main.rs:100:13:100:22 | Some(...) | | +| main.rs:101:5:108:6 | let ... = x else {...} | main.rs:102:7:102:7 | x | | +| main.rs:101:9:101:15 | Some(...) | main.rs:101:14:101:14 | x | match | +| main.rs:101:9:101:15 | Some(...) | main.rs:104:9:105:14 | let ... = x | no-match | +| main.rs:101:14:101:14 | x | main.rs:101:14:101:14 | x | | +| main.rs:101:14:101:14 | x | main.rs:109:5:109:17 | ExprStmt | match | +| main.rs:102:7:102:7 | x | main.rs:101:9:101:15 | Some(...) | | +| main.rs:104:9:105:14 | let ... = x | main.rs:105:13:105:13 | x | | +| main.rs:104:13:104:13 | x | main.rs:104:13:104:13 | x | | +| main.rs:104:13:104:13 | x | main.rs:106:9:106:30 | ExprStmt | match | +| main.rs:105:13:105:13 | x | main.rs:104:13:104:13 | x | | +| main.rs:106:9:106:17 | print_str | main.rs:106:19:106:19 | x | | +| main.rs:106:9:106:29 | print_str(...) | main.rs:107:9:107:13 | ...::panic | | +| main.rs:106:9:106:30 | ExprStmt | main.rs:106:9:106:17 | print_str | | +| main.rs:106:19:106:19 | x | main.rs:106:19:106:28 | x.unwrap() | | +| main.rs:106:19:106:28 | x.unwrap() | main.rs:106:9:106:29 | print_str(...) | | +| main.rs:107:9:107:13 | "not yet implemented" | main.rs:107:9:107:13 | ...::panic(...) | | +| main.rs:107:9:107:13 | ...::panic | main.rs:107:9:107:13 | "not yet implemented" | | +| main.rs:107:9:107:13 | ...::panic(...) | main.rs:107:9:107:13 | MacroBlockExpr | | +| main.rs:107:9:107:13 | MacroBlockExpr | main.rs:107:9:107:15 | todo!... | | +| main.rs:107:9:107:15 | MacroExpr | main.rs:103:10:108:5 | { ... } | | +| main.rs:107:9:107:15 | todo!... | main.rs:107:9:107:15 | MacroExpr | | +| main.rs:109:5:109:13 | print_str | main.rs:109:15:109:15 | x | | +| main.rs:109:5:109:16 | print_str(...) | main.rs:99:19:110:1 | { ... } | | +| main.rs:109:5:109:17 | ExprStmt | main.rs:109:5:109:13 | print_str | | +| main.rs:109:15:109:15 | x | main.rs:109:5:109:16 | print_str(...) | | +| main.rs:112:1:119:1 | enter fn let_pattern5 | main.rs:113:5:113:42 | let ... = ... | | +| main.rs:112:1:119:1 | exit fn let_pattern5 (normal) | main.rs:112:1:119:1 | exit fn let_pattern5 | | +| main.rs:112:19:119:1 | { ... } | main.rs:112:1:119:1 | exit fn let_pattern5 (normal) | | +| main.rs:113:5:113:42 | let ... = ... | main.rs:113:14:113:17 | Some | | +| main.rs:113:9:113:10 | s1 | main.rs:113:9:113:10 | s1 | | +| main.rs:113:9:113:10 | s1 | main.rs:116:11:116:12 | s1 | match | +| main.rs:113:14:113:17 | Some | main.rs:113:19:113:30 | ...::from | | +| main.rs:113:14:113:41 | Some(...) | main.rs:113:9:113:10 | s1 | | +| main.rs:113:19:113:30 | ...::from | main.rs:113:32:113:39 | "Hello!" | | +| main.rs:113:19:113:40 | ...::from(...) | main.rs:113:14:113:41 | Some(...) | | +| main.rs:113:32:113:39 | "Hello!" | main.rs:113:19:113:40 | ...::from(...) | | +| main.rs:115:5:118:5 | while ... { ... } | main.rs:112:19:119:1 | { ... } | | +| main.rs:115:11:116:12 | [boolean(false)] let ... = s1 | main.rs:115:5:118:5 | while ... { ... } | false | +| main.rs:115:11:116:12 | [boolean(true)] let ... = s1 | main.rs:117:9:117:22 | ExprStmt | true | +| main.rs:115:15:115:26 | Some(...) | main.rs:115:11:116:12 | [boolean(false)] let ... = s1 | no-match | +| main.rs:115:15:115:26 | Some(...) | main.rs:115:24:115:25 | s2 | match | +| main.rs:115:20:115:25 | ref s2 | main.rs:115:11:116:12 | [boolean(true)] let ... = s1 | match | +| main.rs:115:24:115:25 | s2 | main.rs:115:20:115:25 | ref s2 | | +| main.rs:116:11:116:12 | s1 | main.rs:115:15:115:26 | Some(...) | | +| main.rs:116:14:118:5 | { ... } | main.rs:116:11:116:12 | s1 | | +| main.rs:117:9:117:17 | print_str | main.rs:117:19:117:20 | s2 | | +| main.rs:117:9:117:21 | print_str(...) | main.rs:116:14:118:5 | { ... } | | +| main.rs:117:9:117:22 | ExprStmt | main.rs:117:9:117:17 | print_str | | +| main.rs:117:19:117:20 | s2 | main.rs:117:9:117:21 | print_str(...) | | +| main.rs:121:1:136:1 | enter fn match_pattern1 | main.rs:122:5:122:21 | let ... = ... | | +| main.rs:121:1:136:1 | exit fn match_pattern1 (normal) | main.rs:121:1:136:1 | exit fn match_pattern1 | | +| main.rs:121:21:136:1 | { ... } | main.rs:121:1:136:1 | exit fn match_pattern1 (normal) | | +| main.rs:122:5:122:21 | let ... = ... | main.rs:122:14:122:17 | Some | | +| main.rs:122:9:122:10 | x6 | main.rs:122:9:122:10 | x6 | | +| main.rs:122:9:122:10 | x6 | main.rs:123:5:123:16 | let ... = 10 | match | +| main.rs:122:14:122:17 | Some | main.rs:122:19:122:19 | 5 | | +| main.rs:122:14:122:20 | Some(...) | main.rs:122:9:122:10 | x6 | | +| main.rs:122:19:122:19 | 5 | main.rs:122:14:122:20 | Some(...) | | +| main.rs:123:5:123:16 | let ... = 10 | main.rs:123:14:123:15 | 10 | | +| main.rs:123:9:123:10 | y1 | main.rs:123:9:123:10 | y1 | | +| main.rs:123:9:123:10 | y1 | main.rs:125:5:133:5 | ExprStmt | match | +| main.rs:123:14:123:15 | 10 | main.rs:123:9:123:10 | y1 | | +| main.rs:125:5:133:5 | ExprStmt | main.rs:125:11:125:12 | x6 | | +| main.rs:125:5:133:5 | match x6 { ... } | main.rs:135:5:135:18 | ExprStmt | | +| main.rs:125:11:125:12 | x6 | main.rs:126:9:126:16 | Some(...) | | +| main.rs:126:9:126:16 | Some(...) | main.rs:126:14:126:15 | 50 | match | +| main.rs:126:9:126:16 | Some(...) | main.rs:127:9:127:16 | Some(...) | no-match | +| main.rs:126:14:126:15 | 50 | main.rs:126:14:126:15 | 50 | | +| main.rs:126:14:126:15 | 50 | main.rs:126:21:126:29 | print_str | match | +| main.rs:126:14:126:15 | 50 | main.rs:127:9:127:16 | Some(...) | no-match | +| main.rs:126:21:126:29 | print_str | main.rs:126:31:126:38 | "Got 50" | | +| main.rs:126:21:126:39 | print_str(...) | main.rs:125:5:133:5 | match x6 { ... } | | +| main.rs:126:31:126:38 | "Got 50" | main.rs:126:21:126:39 | print_str(...) | | +| main.rs:127:9:127:16 | Some(...) | main.rs:127:14:127:15 | y1 | match | +| main.rs:127:9:127:16 | Some(...) | main.rs:132:9:132:12 | None | no-match | +| main.rs:127:14:127:15 | y1 | main.rs:127:14:127:15 | y1 | | +| main.rs:127:14:127:15 | y1 | main.rs:130:13:130:21 | print_i64 | match | +| main.rs:129:9:131:9 | { ... } | main.rs:125:5:133:5 | match x6 { ... } | | +| main.rs:130:13:130:21 | print_i64 | main.rs:130:23:130:24 | y1 | | +| main.rs:130:13:130:25 | print_i64(...) | main.rs:129:9:131:9 | { ... } | | +| main.rs:130:23:130:24 | y1 | main.rs:130:13:130:25 | print_i64(...) | | +| main.rs:132:9:132:12 | None | main.rs:132:9:132:12 | None | | +| main.rs:132:9:132:12 | None | main.rs:132:17:132:25 | print_str | match | +| main.rs:132:17:132:25 | print_str | main.rs:132:27:132:32 | "NONE" | | +| main.rs:132:17:132:33 | print_str(...) | main.rs:125:5:133:5 | match x6 { ... } | | +| main.rs:132:27:132:32 | "NONE" | main.rs:132:17:132:33 | print_str(...) | | +| main.rs:135:5:135:13 | print_i64 | main.rs:135:15:135:16 | y1 | | +| main.rs:135:5:135:17 | print_i64(...) | main.rs:121:21:136:1 | { ... } | | +| main.rs:135:5:135:18 | ExprStmt | main.rs:135:5:135:13 | print_i64 | | +| main.rs:135:15:135:16 | y1 | main.rs:135:5:135:17 | print_i64(...) | | +| main.rs:138:1:167:1 | enter fn match_pattern2 | main.rs:139:5:139:36 | let ... = ... | | +| main.rs:138:1:167:1 | exit fn match_pattern2 (normal) | main.rs:138:1:167:1 | exit fn match_pattern2 | | +| main.rs:138:21:167:1 | { ... } | main.rs:138:1:167:1 | exit fn match_pattern2 (normal) | | +| main.rs:139:5:139:36 | let ... = ... | main.rs:139:20:139:20 | 2 | | +| main.rs:139:9:139:15 | numbers | main.rs:139:9:139:15 | numbers | | +| main.rs:139:9:139:15 | numbers | main.rs:141:5:154:5 | ExprStmt | match | +| main.rs:139:19:139:35 | TupleExpr | main.rs:139:9:139:15 | numbers | | +| main.rs:139:20:139:20 | 2 | main.rs:139:23:139:23 | 4 | | +| main.rs:139:23:139:23 | 4 | main.rs:139:26:139:26 | 8 | | +| main.rs:139:26:139:26 | 8 | main.rs:139:29:139:30 | 16 | | +| main.rs:139:29:139:30 | 16 | main.rs:139:33:139:34 | 32 | | +| main.rs:139:33:139:34 | 32 | main.rs:139:19:139:35 | TupleExpr | | +| main.rs:141:5:154:5 | ExprStmt | main.rs:141:11:141:17 | numbers | | +| main.rs:141:5:154:5 | match numbers { ... } | main.rs:156:11:156:17 | numbers | | +| main.rs:141:11:141:17 | numbers | main.rs:143:9:149:9 | TuplePat | | +| main.rs:143:9:149:9 | TuplePat | main.rs:144:13:144:17 | first | match | +| main.rs:144:13:144:17 | first | main.rs:144:13:144:17 | first | | +| main.rs:144:13:144:17 | first | main.rs:145:13:145:13 | _ | match | +| main.rs:145:13:145:13 | _ | main.rs:146:13:146:17 | third | match | +| main.rs:146:13:146:17 | third | main.rs:146:13:146:17 | third | | +| main.rs:146:13:146:17 | third | main.rs:147:13:147:13 | _ | match | +| main.rs:147:13:147:13 | _ | main.rs:148:13:148:17 | fifth | match | +| main.rs:148:13:148:17 | fifth | main.rs:148:13:148:17 | fifth | | +| main.rs:148:13:148:17 | fifth | main.rs:150:13:150:29 | ExprStmt | match | +| main.rs:149:14:153:9 | { ... } | main.rs:141:5:154:5 | match numbers { ... } | | +| main.rs:150:13:150:21 | print_i64 | main.rs:150:23:150:27 | first | | +| main.rs:150:13:150:28 | print_i64(...) | main.rs:151:13:151:29 | ExprStmt | | | main.rs:150:13:150:29 | ExprStmt | main.rs:150:13:150:21 | print_i64 | | -| main.rs:150:23:150:27 | fifth | main.rs:150:13:150:28 | print_i64(...) | | -| main.rs:154:5:164:5 | match numbers { ... } | main.rs:136:21:165:1 | { ... } | | -| main.rs:154:11:154:17 | numbers | main.rs:156:9:160:9 | TuplePat | | -| main.rs:156:9:160:9 | TuplePat | main.rs:157:13:157:17 | first | match | -| main.rs:157:13:157:17 | first | main.rs:157:13:157:17 | first | | -| main.rs:157:13:157:17 | first | main.rs:158:13:158:14 | .. | match | -| main.rs:158:13:158:14 | .. | main.rs:159:13:159:16 | last | match | -| main.rs:159:13:159:16 | last | main.rs:159:13:159:16 | last | | -| main.rs:159:13:159:16 | last | main.rs:161:13:161:29 | ExprStmt | match | -| main.rs:160:14:163:9 | { ... } | main.rs:154:5:164:5 | match numbers { ... } | | -| main.rs:161:13:161:21 | print_i64 | main.rs:161:23:161:27 | first | | -| main.rs:161:13:161:28 | print_i64(...) | main.rs:162:13:162:28 | ExprStmt | | -| main.rs:161:13:161:29 | ExprStmt | main.rs:161:13:161:21 | print_i64 | | -| main.rs:161:23:161:27 | first | main.rs:161:13:161:28 | print_i64(...) | | -| main.rs:162:13:162:21 | print_i64 | main.rs:162:23:162:26 | last | | -| main.rs:162:13:162:27 | print_i64(...) | main.rs:160:14:163:9 | { ... } | | -| main.rs:162:13:162:28 | ExprStmt | main.rs:162:13:162:21 | print_i64 | | -| main.rs:162:23:162:26 | last | main.rs:162:13:162:27 | print_i64(...) | | -| main.rs:167:1:175:1 | enter fn match_pattern3 | main.rs:168:5:168:38 | let ... = ... | | -| main.rs:167:1:175:1 | exit fn match_pattern3 (normal) | main.rs:167:1:175:1 | exit fn match_pattern3 | | -| main.rs:167:21:175:1 | { ... } | main.rs:167:1:175:1 | exit fn match_pattern3 (normal) | | -| main.rs:168:5:168:38 | let ... = ... | main.rs:168:25:168:27 | "x" | | -| main.rs:168:9:168:10 | p2 | main.rs:168:9:168:10 | p2 | | -| main.rs:168:9:168:10 | p2 | main.rs:170:11:170:12 | p2 | match | -| main.rs:168:14:168:37 | Point {...} | main.rs:168:9:168:10 | p2 | | -| main.rs:168:25:168:27 | "x" | main.rs:168:33:168:35 | "y" | | -| main.rs:168:33:168:35 | "y" | main.rs:168:14:168:37 | Point {...} | | -| main.rs:170:5:174:5 | match p2 { ... } | main.rs:167:21:175:1 | { ... } | | -| main.rs:170:11:170:12 | p2 | main.rs:171:9:173:9 | Point {...} | | -| main.rs:171:9:173:9 | Point {...} | main.rs:172:16:172:17 | x7 | match | -| main.rs:172:16:172:17 | x7 | main.rs:172:16:172:17 | x7 | | -| main.rs:172:16:172:17 | x7 | main.rs:172:20:172:21 | .. | match | -| main.rs:172:20:172:21 | .. | main.rs:173:14:173:22 | print_str | match | -| main.rs:173:14:173:22 | print_str | main.rs:173:24:173:25 | x7 | | -| main.rs:173:14:173:26 | print_str(...) | main.rs:170:5:174:5 | match p2 { ... } | | -| main.rs:173:24:173:25 | x7 | main.rs:173:14:173:26 | print_str(...) | | -| main.rs:181:1:198:1 | enter fn match_pattern4 | main.rs:182:5:182:39 | let ... = ... | | -| main.rs:181:1:198:1 | exit fn match_pattern4 (normal) | main.rs:181:1:198:1 | exit fn match_pattern4 | | -| main.rs:181:21:198:1 | { ... } | main.rs:181:1:198:1 | exit fn match_pattern4 (normal) | | -| main.rs:182:5:182:39 | let ... = ... | main.rs:182:36:182:36 | 0 | | -| main.rs:182:9:182:11 | msg | main.rs:182:9:182:11 | msg | | -| main.rs:182:9:182:11 | msg | main.rs:184:11:184:13 | msg | match | -| main.rs:182:15:182:38 | ...::Hello {...} | main.rs:182:9:182:11 | msg | | -| main.rs:182:36:182:36 | 0 | main.rs:182:15:182:38 | ...::Hello {...} | | -| main.rs:184:5:197:5 | match msg { ... } | main.rs:181:21:198:1 | { ... } | | -| main.rs:184:11:184:13 | msg | main.rs:186:9:188:9 | ...::Hello {...} | | -| main.rs:186:9:188:9 | ...::Hello {...} | main.rs:187:31:187:35 | RangePat | match | -| main.rs:186:9:188:9 | ...::Hello {...} | main.rs:189:9:189:38 | ...::Hello {...} | no-match | -| main.rs:187:17:187:27 | id_variable | main.rs:187:17:187:35 | id_variable @ ... | | -| main.rs:187:17:187:35 | id_variable @ ... | main.rs:188:14:188:22 | print_i64 | match | -| main.rs:187:31:187:31 | 3 | main.rs:187:31:187:31 | 3 | | -| main.rs:187:31:187:31 | 3 | main.rs:187:35:187:35 | 7 | match | -| main.rs:187:31:187:31 | 3 | main.rs:189:9:189:38 | ...::Hello {...} | no-match | -| main.rs:187:31:187:35 | RangePat | main.rs:187:31:187:31 | 3 | match | -| main.rs:187:35:187:35 | 7 | main.rs:187:17:187:27 | id_variable | match | -| main.rs:187:35:187:35 | 7 | main.rs:187:35:187:35 | 7 | | -| main.rs:187:35:187:35 | 7 | main.rs:189:9:189:38 | ...::Hello {...} | no-match | -| main.rs:188:14:188:22 | print_i64 | main.rs:188:24:188:34 | id_variable | | -| main.rs:188:14:188:35 | print_i64(...) | main.rs:184:5:197:5 | match msg { ... } | | -| main.rs:188:24:188:34 | id_variable | main.rs:188:14:188:35 | print_i64(...) | | -| main.rs:189:9:189:38 | ...::Hello {...} | main.rs:189:30:189:36 | RangePat | match | -| main.rs:189:9:189:38 | ...::Hello {...} | main.rs:192:9:192:29 | ...::Hello {...} | no-match | -| main.rs:189:30:189:31 | 10 | main.rs:189:30:189:31 | 10 | | -| main.rs:189:30:189:31 | 10 | main.rs:189:35:189:36 | 12 | match | -| main.rs:189:30:189:31 | 10 | main.rs:192:9:192:29 | ...::Hello {...} | no-match | -| main.rs:189:30:189:36 | RangePat | main.rs:189:30:189:31 | 10 | match | -| main.rs:189:35:189:36 | 12 | main.rs:189:35:189:36 | 12 | | -| main.rs:189:35:189:36 | 12 | main.rs:190:22:190:51 | ExprStmt | match | -| main.rs:189:35:189:36 | 12 | main.rs:192:9:192:29 | ...::Hello {...} | no-match | -| main.rs:189:43:191:9 | { ... } | main.rs:184:5:197:5 | match msg { ... } | | -| main.rs:190:13:190:20 | ...::_print | main.rs:190:22:190:51 | "Found an id in another range\\... | | -| main.rs:190:13:190:52 | MacroExpr | main.rs:189:43:191:9 | { ... } | | -| main.rs:190:13:190:52 | println!... | main.rs:190:13:190:52 | MacroExpr | | -| main.rs:190:22:190:51 | "Found an id in another range\\... | main.rs:190:22:190:51 | FormatArgsExpr | | -| main.rs:190:22:190:51 | ...::_print(...) | main.rs:190:22:190:51 | { ... } | | -| main.rs:190:22:190:51 | ...::format_args_nl!... | main.rs:190:22:190:51 | MacroExpr | | -| main.rs:190:22:190:51 | ExprStmt | main.rs:190:13:190:20 | ...::_print | | -| main.rs:190:22:190:51 | FormatArgsExpr | main.rs:190:22:190:51 | ...::format_args_nl!... | | -| main.rs:190:22:190:51 | MacroBlockExpr | main.rs:190:13:190:52 | println!... | | -| main.rs:190:22:190:51 | MacroExpr | main.rs:190:22:190:51 | ...::_print(...) | | -| main.rs:190:22:190:51 | { ... } | main.rs:190:22:190:51 | MacroBlockExpr | | -| main.rs:192:9:192:29 | ...::Hello {...} | main.rs:192:26:192:27 | id | match | -| main.rs:192:26:192:27 | id | main.rs:192:26:192:27 | id | | -| main.rs:192:26:192:27 | id | main.rs:195:13:195:21 | print_i64 | match | -| main.rs:194:9:196:9 | { ... } | main.rs:184:5:197:5 | match msg { ... } | | -| main.rs:195:13:195:21 | print_i64 | main.rs:195:23:195:24 | id | | -| main.rs:195:13:195:25 | print_i64(...) | main.rs:194:9:196:9 | { ... } | | -| main.rs:195:23:195:24 | id | main.rs:195:13:195:25 | print_i64(...) | | -| main.rs:205:1:211:1 | enter fn match_pattern5 | main.rs:206:5:206:34 | let ... = ... | | -| main.rs:205:1:211:1 | exit fn match_pattern5 (normal) | main.rs:205:1:211:1 | exit fn match_pattern5 | | -| main.rs:205:21:211:1 | { ... } | main.rs:205:1:211:1 | exit fn match_pattern5 (normal) | | -| main.rs:206:5:206:34 | let ... = ... | main.rs:206:18:206:29 | ...::Left | | -| main.rs:206:9:206:14 | either | main.rs:206:9:206:14 | either | | -| main.rs:206:9:206:14 | either | main.rs:207:11:207:16 | either | match | -| main.rs:206:18:206:29 | ...::Left | main.rs:206:31:206:32 | 32 | | -| main.rs:206:18:206:33 | ...::Left(...) | main.rs:206:9:206:14 | either | | -| main.rs:206:31:206:32 | 32 | main.rs:206:18:206:33 | ...::Left(...) | | -| main.rs:207:5:210:5 | match either { ... } | main.rs:205:21:211:1 | { ... } | | -| main.rs:207:11:207:16 | either | main.rs:208:9:208:24 | ...::Left(...) | | -| main.rs:208:9:208:24 | ...::Left(...) | main.rs:208:22:208:23 | a3 | match | -| main.rs:208:9:208:24 | ...::Left(...) | main.rs:208:28:208:44 | ...::Right(...) | no-match | -| main.rs:208:9:208:44 | ... \| ... | main.rs:209:16:209:24 | print_i64 | match | -| main.rs:208:22:208:23 | a3 | main.rs:208:9:208:44 | ... \| ... | match | -| main.rs:208:22:208:23 | a3 | main.rs:208:22:208:23 | a3 | | -| main.rs:208:28:208:44 | ...::Right(...) | main.rs:208:42:208:43 | a3 | match | -| main.rs:208:42:208:43 | a3 | main.rs:208:9:208:44 | ... \| ... | match | -| main.rs:208:42:208:43 | a3 | main.rs:208:42:208:43 | a3 | | -| main.rs:209:16:209:24 | print_i64 | main.rs:209:26:209:27 | a3 | | -| main.rs:209:16:209:28 | print_i64(...) | main.rs:207:5:210:5 | match either { ... } | | -| main.rs:209:26:209:27 | a3 | main.rs:209:16:209:28 | print_i64(...) | | -| main.rs:219:1:233:1 | enter fn match_pattern6 | main.rs:220:5:220:37 | let ... = ... | | -| main.rs:219:1:233:1 | exit fn match_pattern6 (normal) | main.rs:219:1:233:1 | exit fn match_pattern6 | | -| main.rs:219:21:233:1 | { ... } | main.rs:219:1:233:1 | exit fn match_pattern6 (normal) | | -| main.rs:220:5:220:37 | let ... = ... | main.rs:220:14:220:32 | ...::Second | | -| main.rs:220:9:220:10 | tv | main.rs:220:9:220:10 | tv | | -| main.rs:220:9:220:10 | tv | main.rs:221:5:224:5 | ExprStmt | match | -| main.rs:220:14:220:32 | ...::Second | main.rs:220:34:220:35 | 62 | | -| main.rs:220:14:220:36 | ...::Second(...) | main.rs:220:9:220:10 | tv | | -| main.rs:220:34:220:35 | 62 | main.rs:220:14:220:36 | ...::Second(...) | | -| main.rs:221:5:224:5 | ExprStmt | main.rs:221:11:221:12 | tv | | -| main.rs:221:5:224:5 | match tv { ... } | main.rs:225:5:228:5 | ExprStmt | | -| main.rs:221:11:221:12 | tv | main.rs:222:9:222:30 | ...::First(...) | | -| main.rs:222:9:222:30 | ...::First(...) | main.rs:222:28:222:29 | a4 | match | -| main.rs:222:9:222:30 | ...::First(...) | main.rs:222:34:222:56 | ...::Second(...) | no-match | -| main.rs:222:9:222:81 | ... \| ... \| ... | main.rs:223:16:223:24 | print_i64 | match | -| main.rs:222:28:222:29 | a4 | main.rs:222:9:222:81 | ... \| ... \| ... | match | -| main.rs:222:28:222:29 | a4 | main.rs:222:28:222:29 | a4 | | -| main.rs:222:34:222:56 | ...::Second(...) | main.rs:222:54:222:55 | a4 | match | -| main.rs:222:34:222:56 | ...::Second(...) | main.rs:222:60:222:81 | ...::Third(...) | no-match | -| main.rs:222:54:222:55 | a4 | main.rs:222:9:222:81 | ... \| ... \| ... | match | -| main.rs:222:54:222:55 | a4 | main.rs:222:54:222:55 | a4 | | -| main.rs:222:60:222:81 | ...::Third(...) | main.rs:222:79:222:80 | a4 | match | -| main.rs:222:79:222:80 | a4 | main.rs:222:9:222:81 | ... \| ... \| ... | match | -| main.rs:222:79:222:80 | a4 | main.rs:222:79:222:80 | a4 | | -| main.rs:223:16:223:24 | print_i64 | main.rs:223:26:223:27 | a4 | | -| main.rs:223:16:223:28 | print_i64(...) | main.rs:221:5:224:5 | match tv { ... } | | -| main.rs:223:26:223:27 | a4 | main.rs:223:16:223:28 | print_i64(...) | | -| main.rs:225:5:228:5 | ExprStmt | main.rs:225:11:225:12 | tv | | -| main.rs:225:5:228:5 | match tv { ... } | main.rs:229:11:229:12 | tv | | -| main.rs:225:11:225:12 | tv | main.rs:226:10:226:31 | ...::First(...) | | -| main.rs:226:9:226:83 | ... \| ... | main.rs:227:16:227:24 | print_i64 | match | -| main.rs:226:10:226:31 | ...::First(...) | main.rs:226:29:226:30 | a5 | match | -| main.rs:226:10:226:31 | ...::First(...) | main.rs:226:35:226:57 | ...::Second(...) | no-match | -| main.rs:226:10:226:57 | [match(false)] ... \| ... | main.rs:226:62:226:83 | ...::Third(...) | no-match | -| main.rs:226:10:226:57 | [match(true)] ... \| ... | main.rs:226:9:226:83 | ... \| ... | match | -| main.rs:226:29:226:30 | a5 | main.rs:226:10:226:57 | [match(true)] ... \| ... | match | -| main.rs:226:29:226:30 | a5 | main.rs:226:29:226:30 | a5 | | -| main.rs:226:35:226:57 | ...::Second(...) | main.rs:226:10:226:57 | [match(false)] ... \| ... | no-match | -| main.rs:226:35:226:57 | ...::Second(...) | main.rs:226:55:226:56 | a5 | match | -| main.rs:226:55:226:56 | a5 | main.rs:226:10:226:57 | [match(true)] ... \| ... | match | -| main.rs:226:55:226:56 | a5 | main.rs:226:55:226:56 | a5 | | -| main.rs:226:62:226:83 | ...::Third(...) | main.rs:226:81:226:82 | a5 | match | -| main.rs:226:81:226:82 | a5 | main.rs:226:9:226:83 | ... \| ... | match | -| main.rs:226:81:226:82 | a5 | main.rs:226:81:226:82 | a5 | | -| main.rs:227:16:227:24 | print_i64 | main.rs:227:26:227:27 | a5 | | -| main.rs:227:16:227:28 | print_i64(...) | main.rs:225:5:228:5 | match tv { ... } | | -| main.rs:227:26:227:27 | a5 | main.rs:227:16:227:28 | print_i64(...) | | -| main.rs:229:5:232:5 | match tv { ... } | main.rs:219:21:233:1 | { ... } | | -| main.rs:229:11:229:12 | tv | main.rs:230:9:230:30 | ...::First(...) | | -| main.rs:230:9:230:30 | ...::First(...) | main.rs:230:28:230:29 | a6 | match | -| main.rs:230:9:230:30 | ...::First(...) | main.rs:230:35:230:57 | ...::Second(...) | no-match | -| main.rs:230:9:230:83 | ... \| ... | main.rs:231:16:231:24 | print_i64 | match | -| main.rs:230:28:230:29 | a6 | main.rs:230:9:230:83 | ... \| ... | match | -| main.rs:230:28:230:29 | a6 | main.rs:230:28:230:29 | a6 | | -| main.rs:230:35:230:57 | ...::Second(...) | main.rs:230:55:230:56 | a6 | match | -| main.rs:230:35:230:57 | ...::Second(...) | main.rs:230:61:230:82 | ...::Third(...) | no-match | -| main.rs:230:35:230:82 | ... \| ... | main.rs:230:9:230:83 | ... \| ... | match | -| main.rs:230:55:230:56 | a6 | main.rs:230:35:230:82 | ... \| ... | match | -| main.rs:230:55:230:56 | a6 | main.rs:230:55:230:56 | a6 | | -| main.rs:230:61:230:82 | ...::Third(...) | main.rs:230:80:230:81 | a6 | match | -| main.rs:230:80:230:81 | a6 | main.rs:230:35:230:82 | ... \| ... | match | -| main.rs:230:80:230:81 | a6 | main.rs:230:80:230:81 | a6 | | -| main.rs:231:16:231:24 | print_i64 | main.rs:231:26:231:27 | a6 | | -| main.rs:231:16:231:28 | print_i64(...) | main.rs:229:5:232:5 | match tv { ... } | | -| main.rs:231:26:231:27 | a6 | main.rs:231:16:231:28 | print_i64(...) | | -| main.rs:235:1:243:1 | enter fn match_pattern7 | main.rs:236:5:236:34 | let ... = ... | | -| main.rs:235:1:243:1 | exit fn match_pattern7 (normal) | main.rs:235:1:243:1 | exit fn match_pattern7 | | -| main.rs:235:21:243:1 | { ... } | main.rs:235:1:243:1 | exit fn match_pattern7 (normal) | | -| main.rs:236:5:236:34 | let ... = ... | main.rs:236:18:236:29 | ...::Left | | -| main.rs:236:9:236:14 | either | main.rs:236:9:236:14 | either | | -| main.rs:236:9:236:14 | either | main.rs:237:11:237:16 | either | match | -| main.rs:236:18:236:29 | ...::Left | main.rs:236:31:236:32 | 32 | | -| main.rs:236:18:236:33 | ...::Left(...) | main.rs:236:9:236:14 | either | | -| main.rs:236:31:236:32 | 32 | main.rs:236:18:236:33 | ...::Left(...) | | -| main.rs:237:5:242:5 | match either { ... } | main.rs:235:21:243:1 | { ... } | | -| main.rs:237:11:237:16 | either | main.rs:238:9:238:24 | ...::Left(...) | | -| main.rs:238:9:238:24 | ...::Left(...) | main.rs:238:22:238:23 | a7 | match | -| main.rs:238:9:238:24 | ...::Left(...) | main.rs:238:28:238:44 | ...::Right(...) | no-match | -| main.rs:238:9:238:44 | [match(false)] ... \| ... | main.rs:241:9:241:9 | _ | no-match | -| main.rs:238:9:238:44 | [match(true)] ... \| ... | main.rs:239:16:239:17 | a7 | match | -| main.rs:238:22:238:23 | a7 | main.rs:238:9:238:44 | [match(true)] ... \| ... | match | -| main.rs:238:22:238:23 | a7 | main.rs:238:22:238:23 | a7 | | -| main.rs:238:28:238:44 | ...::Right(...) | main.rs:238:9:238:44 | [match(false)] ... \| ... | no-match | -| main.rs:238:28:238:44 | ...::Right(...) | main.rs:238:42:238:43 | a7 | match | -| main.rs:238:42:238:43 | a7 | main.rs:238:9:238:44 | [match(true)] ... \| ... | match | -| main.rs:238:42:238:43 | a7 | main.rs:238:42:238:43 | a7 | | -| main.rs:239:16:239:17 | a7 | main.rs:239:21:239:21 | 0 | | -| main.rs:239:16:239:21 | ... > ... | main.rs:240:16:240:24 | print_i64 | true | -| main.rs:239:16:239:21 | ... > ... | main.rs:241:9:241:9 | _ | false | -| main.rs:239:21:239:21 | 0 | main.rs:239:16:239:21 | ... > ... | | -| main.rs:240:16:240:24 | print_i64 | main.rs:240:26:240:27 | a7 | | -| main.rs:240:16:240:28 | print_i64(...) | main.rs:237:5:242:5 | match either { ... } | | -| main.rs:240:26:240:27 | a7 | main.rs:240:16:240:28 | print_i64(...) | | -| main.rs:241:9:241:9 | _ | main.rs:241:14:241:15 | TupleExpr | match | -| main.rs:241:14:241:15 | TupleExpr | main.rs:237:5:242:5 | match either { ... } | | -| main.rs:245:1:260:1 | enter fn match_pattern8 | main.rs:246:5:246:34 | let ... = ... | | -| main.rs:245:1:260:1 | exit fn match_pattern8 (normal) | main.rs:245:1:260:1 | exit fn match_pattern8 | | -| main.rs:245:21:260:1 | { ... } | main.rs:245:1:260:1 | exit fn match_pattern8 (normal) | | -| main.rs:246:5:246:34 | let ... = ... | main.rs:246:18:246:29 | ...::Left | | -| main.rs:246:9:246:14 | either | main.rs:246:9:246:14 | either | | -| main.rs:246:9:246:14 | either | main.rs:248:11:248:16 | either | match | -| main.rs:246:18:246:29 | ...::Left | main.rs:246:31:246:32 | 32 | | -| main.rs:246:18:246:33 | ...::Left(...) | main.rs:246:9:246:14 | either | | -| main.rs:246:31:246:32 | 32 | main.rs:246:18:246:33 | ...::Left(...) | | -| main.rs:248:5:259:5 | match either { ... } | main.rs:245:21:260:1 | { ... } | | -| main.rs:248:11:248:16 | either | main.rs:250:14:250:30 | ...::Left(...) | | -| main.rs:249:9:250:52 | ref e @ ... | main.rs:252:13:252:27 | ExprStmt | match | -| main.rs:249:13:249:13 | e | main.rs:249:9:250:52 | ref e @ ... | | -| main.rs:250:14:250:30 | ...::Left(...) | main.rs:250:27:250:29 | a11 | match | -| main.rs:250:14:250:30 | ...::Left(...) | main.rs:250:34:250:51 | ...::Right(...) | no-match | -| main.rs:250:14:250:51 | [match(false)] ... \| ... | main.rs:258:9:258:9 | _ | no-match | -| main.rs:250:14:250:51 | [match(true)] ... \| ... | main.rs:249:13:249:13 | e | match | -| main.rs:250:27:250:29 | a11 | main.rs:250:14:250:51 | [match(true)] ... \| ... | match | -| main.rs:250:27:250:29 | a11 | main.rs:250:27:250:29 | a11 | | -| main.rs:250:34:250:51 | ...::Right(...) | main.rs:250:14:250:51 | [match(false)] ... \| ... | no-match | -| main.rs:250:34:250:51 | ...::Right(...) | main.rs:250:48:250:50 | a11 | match | -| main.rs:250:48:250:50 | a11 | main.rs:250:14:250:51 | [match(true)] ... \| ... | match | -| main.rs:250:48:250:50 | a11 | main.rs:250:48:250:50 | a11 | | -| main.rs:251:12:257:9 | { ... } | main.rs:248:5:259:5 | match either { ... } | | -| main.rs:252:13:252:21 | print_i64 | main.rs:252:23:252:25 | a11 | | -| main.rs:252:13:252:26 | print_i64(...) | main.rs:254:15:254:15 | e | | -| main.rs:252:13:252:27 | ExprStmt | main.rs:252:13:252:21 | print_i64 | | -| main.rs:252:23:252:25 | a11 | main.rs:252:13:252:26 | print_i64(...) | | -| main.rs:253:13:256:13 | if ... {...} | main.rs:251:12:257:9 | { ... } | | -| main.rs:253:16:254:15 | [boolean(false)] let ... = e | main.rs:253:13:256:13 | if ... {...} | false | -| main.rs:253:16:254:15 | [boolean(true)] let ... = e | main.rs:255:17:255:32 | ExprStmt | true | -| main.rs:253:20:253:36 | ...::Left(...) | main.rs:253:16:254:15 | [boolean(false)] let ... = e | no-match | -| main.rs:253:20:253:36 | ...::Left(...) | main.rs:253:33:253:35 | a12 | match | -| main.rs:253:33:253:35 | a12 | main.rs:253:16:254:15 | [boolean(true)] let ... = e | match | -| main.rs:253:33:253:35 | a12 | main.rs:253:33:253:35 | a12 | | -| main.rs:254:15:254:15 | e | main.rs:253:20:253:36 | ...::Left(...) | | -| main.rs:254:17:256:13 | { ... } | main.rs:253:13:256:13 | if ... {...} | | -| main.rs:255:17:255:25 | print_i64 | main.rs:255:28:255:30 | a12 | | -| main.rs:255:17:255:31 | print_i64(...) | main.rs:254:17:256:13 | { ... } | | -| main.rs:255:17:255:32 | ExprStmt | main.rs:255:17:255:25 | print_i64 | | -| main.rs:255:27:255:30 | * ... | main.rs:255:17:255:31 | print_i64(...) | | -| main.rs:255:28:255:30 | a12 | main.rs:255:27:255:30 | * ... | | -| main.rs:258:9:258:9 | _ | main.rs:258:14:258:15 | TupleExpr | match | -| main.rs:258:14:258:15 | TupleExpr | main.rs:248:5:259:5 | match either { ... } | | -| main.rs:269:1:275:1 | enter fn match_pattern9 | main.rs:270:5:270:36 | let ... = ... | | -| main.rs:269:1:275:1 | exit fn match_pattern9 (normal) | main.rs:269:1:275:1 | exit fn match_pattern9 | | -| main.rs:269:21:275:1 | { ... } | main.rs:269:1:275:1 | exit fn match_pattern9 (normal) | | -| main.rs:270:5:270:36 | let ... = ... | main.rs:270:14:270:31 | ...::Second | | -| main.rs:270:9:270:10 | fv | main.rs:270:9:270:10 | fv | | -| main.rs:270:9:270:10 | fv | main.rs:271:11:271:12 | fv | match | -| main.rs:270:14:270:31 | ...::Second | main.rs:270:33:270:34 | 62 | | -| main.rs:270:14:270:35 | ...::Second(...) | main.rs:270:9:270:10 | fv | | -| main.rs:270:33:270:34 | 62 | main.rs:270:14:270:35 | ...::Second(...) | | -| main.rs:271:5:274:5 | match fv { ... } | main.rs:269:21:275:1 | { ... } | | -| main.rs:271:11:271:12 | fv | main.rs:272:9:272:30 | ...::First(...) | | -| main.rs:272:9:272:30 | ...::First(...) | main.rs:272:27:272:29 | a13 | match | -| main.rs:272:9:272:30 | ...::First(...) | main.rs:272:35:272:57 | ...::Second(...) | no-match | -| main.rs:272:9:272:109 | ... \| ... \| ... | main.rs:273:16:273:24 | print_i64 | match | -| main.rs:272:27:272:29 | a13 | main.rs:272:9:272:109 | ... \| ... \| ... | match | -| main.rs:272:27:272:29 | a13 | main.rs:272:27:272:29 | a13 | | -| main.rs:272:35:272:57 | ...::Second(...) | main.rs:272:54:272:56 | a13 | match | -| main.rs:272:35:272:57 | ...::Second(...) | main.rs:272:61:272:82 | ...::Third(...) | no-match | -| main.rs:272:35:272:82 | [match(false)] ... \| ... | main.rs:272:87:272:109 | ...::Fourth(...) | no-match | -| main.rs:272:35:272:82 | [match(true)] ... \| ... | main.rs:272:9:272:109 | ... \| ... \| ... | match | -| main.rs:272:54:272:56 | a13 | main.rs:272:35:272:82 | [match(true)] ... \| ... | match | -| main.rs:272:54:272:56 | a13 | main.rs:272:54:272:56 | a13 | | -| main.rs:272:61:272:82 | ...::Third(...) | main.rs:272:35:272:82 | [match(false)] ... \| ... | no-match | -| main.rs:272:61:272:82 | ...::Third(...) | main.rs:272:79:272:81 | a13 | match | -| main.rs:272:79:272:81 | a13 | main.rs:272:35:272:82 | [match(true)] ... \| ... | match | -| main.rs:272:79:272:81 | a13 | main.rs:272:79:272:81 | a13 | | -| main.rs:272:87:272:109 | ...::Fourth(...) | main.rs:272:106:272:108 | a13 | match | -| main.rs:272:106:272:108 | a13 | main.rs:272:9:272:109 | ... \| ... \| ... | match | -| main.rs:272:106:272:108 | a13 | main.rs:272:106:272:108 | a13 | | -| main.rs:273:16:273:24 | print_i64 | main.rs:273:26:273:28 | a13 | | -| main.rs:273:16:273:29 | print_i64(...) | main.rs:271:5:274:5 | match fv { ... } | | -| main.rs:273:26:273:28 | a13 | main.rs:273:16:273:29 | print_i64(...) | | -| main.rs:277:1:291:1 | enter fn match_pattern10 | main.rs:279:5:279:20 | let ... = ... | | -| main.rs:277:1:291:1 | exit fn match_pattern10 (normal) | main.rs:277:1:291:1 | exit fn match_pattern10 | | -| main.rs:278:22:291:1 | { ... } | main.rs:277:1:291:1 | exit fn match_pattern10 (normal) | | -| main.rs:279:5:279:20 | let ... = ... | main.rs:279:12:279:15 | Some | | -| main.rs:279:9:279:9 | x | main.rs:279:9:279:9 | x | | -| main.rs:279:9:279:9 | x | main.rs:281:7:281:7 | x | match | -| main.rs:279:12:279:15 | Some | main.rs:279:17:279:18 | 42 | | -| main.rs:279:12:279:19 | Some(...) | main.rs:279:9:279:9 | x | | -| main.rs:279:17:279:18 | 42 | main.rs:279:12:279:19 | Some(...) | | -| main.rs:280:5:290:5 | if ... {...} else {...} | main.rs:278:22:291:1 | { ... } | | -| main.rs:280:8:281:7 | [boolean(false)] let ... = x | main.rs:280:8:283:9 | [boolean(false)] ... && ... | false | -| main.rs:280:8:281:7 | [boolean(true)] let ... = x | main.rs:283:5:283:5 | x | true | -| main.rs:280:8:283:9 | [boolean(false)] ... && ... | main.rs:287:9:288:14 | let ... = x | false | -| main.rs:280:8:283:9 | [boolean(true)] ... && ... | main.rs:285:9:285:21 | ExprStmt | true | -| main.rs:280:12:280:18 | Some(...) | main.rs:280:8:281:7 | [boolean(false)] let ... = x | no-match | -| main.rs:280:12:280:18 | Some(...) | main.rs:280:17:280:17 | x | match | -| main.rs:280:17:280:17 | x | main.rs:280:8:281:7 | [boolean(true)] let ... = x | match | -| main.rs:280:17:280:17 | x | main.rs:280:17:280:17 | x | | -| main.rs:281:7:281:7 | x | main.rs:280:12:280:18 | Some(...) | | -| main.rs:283:5:283:5 | x | main.rs:283:9:283:9 | 0 | | -| main.rs:283:5:283:9 | ... > ... | main.rs:280:8:283:9 | [boolean(false)] ... && ... | false | -| main.rs:283:5:283:9 | ... > ... | main.rs:280:8:283:9 | [boolean(true)] ... && ... | true | -| main.rs:283:9:283:9 | 0 | main.rs:283:5:283:9 | ... > ... | | -| main.rs:284:5:286:5 | { ... } | main.rs:280:5:290:5 | if ... {...} else {...} | | -| main.rs:285:9:285:17 | print_i64 | main.rs:285:19:285:19 | x | | -| main.rs:285:9:285:20 | print_i64(...) | main.rs:284:5:286:5 | { ... } | | -| main.rs:285:9:285:21 | ExprStmt | main.rs:285:9:285:17 | print_i64 | | -| main.rs:285:19:285:19 | x | main.rs:285:9:285:20 | print_i64(...) | | -| main.rs:286:12:290:5 | { ... } | main.rs:280:5:290:5 | if ... {...} else {...} | | -| main.rs:287:9:288:14 | let ... = x | main.rs:288:13:288:13 | x | | -| main.rs:287:13:287:13 | x | main.rs:287:13:287:13 | x | | -| main.rs:287:13:287:13 | x | main.rs:289:9:289:30 | ExprStmt | match | -| main.rs:288:13:288:13 | x | main.rs:287:13:287:13 | x | | -| main.rs:289:9:289:17 | print_i64 | main.rs:289:19:289:19 | x | | -| main.rs:289:9:289:29 | print_i64(...) | main.rs:286:12:290:5 | { ... } | | -| main.rs:289:9:289:30 | ExprStmt | main.rs:289:9:289:17 | print_i64 | | -| main.rs:289:19:289:19 | x | main.rs:289:19:289:28 | x.unwrap() | | -| main.rs:289:19:289:28 | x.unwrap() | main.rs:289:9:289:29 | print_i64(...) | | -| main.rs:293:1:310:1 | enter fn match_pattern11 | main.rs:295:5:295:21 | let ... = ... | | -| main.rs:293:1:310:1 | exit fn match_pattern11 (normal) | main.rs:293:1:310:1 | exit fn match_pattern11 | | -| main.rs:294:22:310:1 | { ... } | main.rs:293:1:310:1 | exit fn match_pattern11 (normal) | | -| main.rs:295:5:295:21 | let ... = ... | main.rs:295:13:295:16 | Some | | -| main.rs:295:9:295:9 | x | main.rs:295:9:295:9 | x | | -| main.rs:295:9:295:9 | x | main.rs:297:7:297:7 | x | match | -| main.rs:295:13:295:16 | Some | main.rs:295:18:295:19 | 42 | | -| main.rs:295:13:295:20 | Some(...) | main.rs:295:9:295:9 | x | | -| main.rs:295:18:295:19 | 42 | main.rs:295:13:295:20 | Some(...) | | -| main.rs:296:5:309:5 | if ... {...} else {...} | main.rs:294:22:310:1 | { ... } | | -| main.rs:296:8:297:7 | [boolean(false)] let ... = x | main.rs:296:8:300:13 | [boolean(false)] ... && ... | false | -| main.rs:296:8:297:7 | [boolean(true)] let ... = x | main.rs:300:7:300:10 | Some | true | -| main.rs:296:8:300:13 | [boolean(false)] ... && ... | main.rs:296:8:302:9 | [boolean(false)] ... && ... | false | -| main.rs:296:8:300:13 | [boolean(true)] ... && ... | main.rs:302:5:302:5 | x | true | -| main.rs:296:8:302:9 | [boolean(false)] ... && ... | main.rs:306:9:307:14 | let ... = x | false | -| main.rs:296:8:302:9 | [boolean(true)] ... && ... | main.rs:304:9:304:21 | ExprStmt | true | -| main.rs:296:12:296:18 | Some(...) | main.rs:296:8:297:7 | [boolean(false)] let ... = x | no-match | -| main.rs:296:12:296:18 | Some(...) | main.rs:296:17:296:17 | x | match | -| main.rs:296:17:296:17 | x | main.rs:296:8:297:7 | [boolean(true)] let ... = x | match | -| main.rs:296:17:296:17 | x | main.rs:296:17:296:17 | x | | -| main.rs:297:7:297:7 | x | main.rs:296:12:296:18 | Some(...) | | -| main.rs:299:5:300:13 | [boolean(false)] let ... = ... | main.rs:296:8:300:13 | [boolean(false)] ... && ... | false | -| main.rs:299:5:300:13 | [boolean(true)] let ... = ... | main.rs:296:8:300:13 | [boolean(true)] ... && ... | true | -| main.rs:299:9:299:15 | Some(...) | main.rs:299:5:300:13 | [boolean(false)] let ... = ... | no-match | -| main.rs:299:9:299:15 | Some(...) | main.rs:299:14:299:14 | x | match | -| main.rs:299:14:299:14 | x | main.rs:299:5:300:13 | [boolean(true)] let ... = ... | match | -| main.rs:299:14:299:14 | x | main.rs:299:14:299:14 | x | | -| main.rs:300:7:300:10 | Some | main.rs:300:12:300:12 | x | | -| main.rs:300:7:300:13 | Some(...) | main.rs:299:9:299:15 | Some(...) | | -| main.rs:300:12:300:12 | x | main.rs:300:7:300:13 | Some(...) | | -| main.rs:302:5:302:5 | x | main.rs:302:9:302:9 | 0 | | -| main.rs:302:5:302:9 | ... > ... | main.rs:296:8:302:9 | [boolean(false)] ... && ... | false | -| main.rs:302:5:302:9 | ... > ... | main.rs:296:8:302:9 | [boolean(true)] ... && ... | true | -| main.rs:302:9:302:9 | 0 | main.rs:302:5:302:9 | ... > ... | | -| main.rs:303:5:305:5 | { ... } | main.rs:296:5:309:5 | if ... {...} else {...} | | -| main.rs:304:9:304:17 | print_i64 | main.rs:304:19:304:19 | x | | -| main.rs:304:9:304:20 | print_i64(...) | main.rs:303:5:305:5 | { ... } | | -| main.rs:304:9:304:21 | ExprStmt | main.rs:304:9:304:17 | print_i64 | | -| main.rs:304:19:304:19 | x | main.rs:304:9:304:20 | print_i64(...) | | -| main.rs:305:12:309:5 | { ... } | main.rs:296:5:309:5 | if ... {...} else {...} | | -| main.rs:306:9:307:14 | let ... = x | main.rs:307:13:307:13 | x | | -| main.rs:306:13:306:13 | x | main.rs:306:13:306:13 | x | | -| main.rs:306:13:306:13 | x | main.rs:308:9:308:30 | ExprStmt | match | -| main.rs:307:13:307:13 | x | main.rs:306:13:306:13 | x | | -| main.rs:308:9:308:17 | print_i64 | main.rs:308:19:308:19 | x | | -| main.rs:308:9:308:29 | print_i64(...) | main.rs:305:12:309:5 | { ... } | | -| main.rs:308:9:308:30 | ExprStmt | main.rs:308:9:308:17 | print_i64 | | -| main.rs:308:19:308:19 | x | main.rs:308:19:308:28 | x.unwrap() | | -| main.rs:308:19:308:28 | x.unwrap() | main.rs:308:9:308:29 | print_i64(...) | | -| main.rs:312:1:328:1 | enter fn match_pattern12 | main.rs:314:5:314:21 | let ... = ... | | -| main.rs:312:1:328:1 | exit fn match_pattern12 (normal) | main.rs:312:1:328:1 | exit fn match_pattern12 | | -| main.rs:313:22:328:1 | { ... } | main.rs:312:1:328:1 | exit fn match_pattern12 (normal) | | -| main.rs:314:5:314:21 | let ... = ... | main.rs:314:13:314:16 | Some | | -| main.rs:314:9:314:9 | x | main.rs:314:9:314:9 | x | | -| main.rs:314:9:314:9 | x | main.rs:315:5:325:5 | ExprStmt | match | -| main.rs:314:13:314:16 | Some | main.rs:314:18:314:19 | 42 | | -| main.rs:314:13:314:20 | Some(...) | main.rs:314:9:314:9 | x | | -| main.rs:314:18:314:19 | 42 | main.rs:314:13:314:20 | Some(...) | | -| main.rs:315:5:325:5 | ExprStmt | main.rs:316:7:316:7 | x | | -| main.rs:315:5:325:5 | while ... { ... } | main.rs:327:5:327:26 | ExprStmt | | -| main.rs:315:11:316:7 | [boolean(false)] let ... = x | main.rs:315:11:319:13 | [boolean(false)] ... && ... | false | -| main.rs:315:11:316:7 | [boolean(true)] let ... = x | main.rs:319:7:319:10 | Some | true | -| main.rs:315:11:319:13 | [boolean(false)] ... && ... | main.rs:315:11:321:9 | [boolean(false)] ... && ... | false | -| main.rs:315:11:319:13 | [boolean(true)] ... && ... | main.rs:321:5:321:5 | x | true | -| main.rs:315:11:321:9 | [boolean(false)] ... && ... | main.rs:315:5:325:5 | while ... { ... } | false | -| main.rs:315:11:321:9 | [boolean(true)] ... && ... | main.rs:323:9:323:21 | ExprStmt | true | -| main.rs:315:15:315:21 | Some(...) | main.rs:315:11:316:7 | [boolean(false)] let ... = x | no-match | -| main.rs:315:15:315:21 | Some(...) | main.rs:315:20:315:20 | x | match | -| main.rs:315:20:315:20 | x | main.rs:315:11:316:7 | [boolean(true)] let ... = x | match | -| main.rs:315:20:315:20 | x | main.rs:315:20:315:20 | x | | -| main.rs:316:7:316:7 | x | main.rs:315:15:315:21 | Some(...) | | -| main.rs:318:5:319:13 | [boolean(false)] let ... = ... | main.rs:315:11:319:13 | [boolean(false)] ... && ... | false | -| main.rs:318:5:319:13 | [boolean(true)] let ... = ... | main.rs:315:11:319:13 | [boolean(true)] ... && ... | true | -| main.rs:318:9:318:15 | Some(...) | main.rs:318:5:319:13 | [boolean(false)] let ... = ... | no-match | -| main.rs:318:9:318:15 | Some(...) | main.rs:318:14:318:14 | x | match | -| main.rs:318:14:318:14 | x | main.rs:318:5:319:13 | [boolean(true)] let ... = ... | match | -| main.rs:318:14:318:14 | x | main.rs:318:14:318:14 | x | | -| main.rs:319:7:319:10 | Some | main.rs:319:12:319:12 | x | | -| main.rs:319:7:319:13 | Some(...) | main.rs:318:9:318:15 | Some(...) | | -| main.rs:319:12:319:12 | x | main.rs:319:7:319:13 | Some(...) | | -| main.rs:321:5:321:5 | x | main.rs:321:9:321:9 | 0 | | -| main.rs:321:5:321:9 | ... > ... | main.rs:315:11:321:9 | [boolean(false)] ... && ... | false | -| main.rs:321:5:321:9 | ... > ... | main.rs:315:11:321:9 | [boolean(true)] ... && ... | true | -| main.rs:321:9:321:9 | 0 | main.rs:321:5:321:9 | ... > ... | | -| main.rs:323:9:323:17 | print_i64 | main.rs:323:19:323:19 | x | | -| main.rs:323:9:323:20 | print_i64(...) | main.rs:324:9:324:14 | ExprStmt | | -| main.rs:323:9:323:21 | ExprStmt | main.rs:323:9:323:17 | print_i64 | | -| main.rs:323:19:323:19 | x | main.rs:323:9:323:20 | print_i64(...) | | -| main.rs:324:9:324:13 | break | main.rs:315:5:325:5 | while ... { ... } | break | -| main.rs:324:9:324:14 | ExprStmt | main.rs:324:9:324:13 | break | | -| main.rs:327:5:327:13 | print_i64 | main.rs:327:15:327:15 | x | | -| main.rs:327:5:327:25 | print_i64(...) | main.rs:313:22:328:1 | { ... } | | -| main.rs:327:5:327:26 | ExprStmt | main.rs:327:5:327:13 | print_i64 | | -| main.rs:327:15:327:15 | x | main.rs:327:15:327:24 | x.unwrap() | | -| main.rs:327:15:327:24 | x.unwrap() | main.rs:327:5:327:25 | print_i64(...) | | -| main.rs:330:1:342:1 | enter fn match_pattern13 | main.rs:332:5:332:21 | let ... = ... | | -| main.rs:330:1:342:1 | exit fn match_pattern13 (normal) | main.rs:330:1:342:1 | exit fn match_pattern13 | | -| main.rs:331:22:342:1 | { ... } | main.rs:330:1:342:1 | exit fn match_pattern13 (normal) | | -| main.rs:332:5:332:21 | let ... = ... | main.rs:332:13:332:16 | Some | | -| main.rs:332:9:332:9 | x | main.rs:332:9:332:9 | x | | -| main.rs:332:9:332:9 | x | main.rs:333:5:339:5 | ExprStmt | match | -| main.rs:332:13:332:16 | Some | main.rs:332:18:332:19 | 42 | | -| main.rs:332:13:332:20 | Some(...) | main.rs:332:9:332:9 | x | | -| main.rs:332:18:332:19 | 42 | main.rs:332:13:332:20 | Some(...) | | -| main.rs:333:5:339:5 | ExprStmt | main.rs:333:11:333:11 | x | | -| main.rs:333:5:339:5 | match x { ... } | main.rs:341:5:341:26 | ExprStmt | | -| main.rs:333:11:333:11 | x | main.rs:334:9:334:15 | Some(...) | | -| main.rs:334:9:334:15 | Some(...) | main.rs:334:14:334:14 | x | match | -| main.rs:334:9:334:15 | Some(...) | main.rs:338:9:338:9 | _ | no-match | -| main.rs:334:14:334:14 | x | main.rs:334:14:334:14 | x | | -| main.rs:334:14:334:14 | x | main.rs:336:18:336:18 | x | match | -| main.rs:335:16:336:18 | [boolean(true)] let ... = x | main.rs:337:19:337:19 | x | true | -| main.rs:335:16:337:23 | [boolean(false)] ... && ... | main.rs:338:9:338:9 | _ | false | -| main.rs:335:16:337:23 | [boolean(true)] ... && ... | main.rs:337:28:337:29 | TupleExpr | true | -| main.rs:335:20:335:20 | x | main.rs:335:16:336:18 | [boolean(true)] let ... = x | match | -| main.rs:335:20:335:20 | x | main.rs:335:20:335:20 | x | | -| main.rs:336:18:336:18 | x | main.rs:335:20:335:20 | x | | -| main.rs:337:19:337:19 | x | main.rs:337:23:337:23 | 0 | | -| main.rs:337:19:337:23 | ... > ... | main.rs:335:16:337:23 | [boolean(false)] ... && ... | false | -| main.rs:337:19:337:23 | ... > ... | main.rs:335:16:337:23 | [boolean(true)] ... && ... | true | -| main.rs:337:23:337:23 | 0 | main.rs:337:19:337:23 | ... > ... | | -| main.rs:337:28:337:29 | TupleExpr | main.rs:333:5:339:5 | match x { ... } | | -| main.rs:338:9:338:9 | _ | main.rs:338:14:338:15 | TupleExpr | match | -| main.rs:338:14:338:15 | TupleExpr | main.rs:333:5:339:5 | match x { ... } | | -| main.rs:341:5:341:13 | print_i64 | main.rs:341:15:341:15 | x | | -| main.rs:341:5:341:25 | print_i64(...) | main.rs:331:22:342:1 | { ... } | | -| main.rs:341:5:341:26 | ExprStmt | main.rs:341:5:341:13 | print_i64 | | -| main.rs:341:15:341:15 | x | main.rs:341:15:341:24 | x.unwrap() | | -| main.rs:341:15:341:24 | x.unwrap() | main.rs:341:5:341:25 | print_i64(...) | | -| main.rs:344:1:359:1 | enter fn match_pattern14 | main.rs:346:5:346:19 | let ... = ... | | -| main.rs:344:1:359:1 | exit fn match_pattern14 (normal) | main.rs:344:1:359:1 | exit fn match_pattern14 | | -| main.rs:345:22:359:1 | { ... } | main.rs:344:1:359:1 | exit fn match_pattern14 (normal) | | -| main.rs:346:5:346:19 | let ... = ... | main.rs:346:13:346:14 | Ok | | -| main.rs:346:9:346:9 | x | main.rs:346:9:346:9 | x | | -| main.rs:346:9:346:9 | x | main.rs:348:7:348:7 | x | match | -| main.rs:346:13:346:14 | Ok | main.rs:346:16:346:17 | 42 | | -| main.rs:346:13:346:18 | Ok(...) | main.rs:346:9:346:9 | x | | -| main.rs:346:16:346:17 | 42 | main.rs:346:13:346:18 | Ok(...) | | -| main.rs:347:5:358:5 | if ... {...} else {...} | main.rs:345:22:359:1 | { ... } | | -| main.rs:347:8:348:7 | [boolean(false)] let ... = x | main.rs:353:7:353:7 | x | false | -| main.rs:347:8:348:7 | [boolean(true)] let ... = x | main.rs:350:9:350:21 | ExprStmt | true | -| main.rs:347:12:347:17 | Err(...) | main.rs:347:8:348:7 | [boolean(false)] let ... = x | no-match | -| main.rs:347:12:347:17 | Err(...) | main.rs:347:16:347:16 | x | match | -| main.rs:347:16:347:16 | x | main.rs:347:8:348:7 | [boolean(true)] let ... = x | match | -| main.rs:347:16:347:16 | x | main.rs:347:16:347:16 | x | | -| main.rs:348:7:348:7 | x | main.rs:347:12:347:17 | Err(...) | | -| main.rs:349:5:351:5 | { ... } | main.rs:347:5:358:5 | if ... {...} else {...} | | -| main.rs:350:9:350:17 | print_i64 | main.rs:350:19:350:19 | x | | -| main.rs:350:9:350:20 | print_i64(...) | main.rs:349:5:351:5 | { ... } | | -| main.rs:350:9:350:21 | ExprStmt | main.rs:350:9:350:17 | print_i64 | | -| main.rs:350:19:350:19 | x | main.rs:350:9:350:20 | print_i64(...) | | -| main.rs:352:10:358:5 | if ... {...} else {...} | main.rs:347:5:358:5 | if ... {...} else {...} | | -| main.rs:352:13:353:7 | [boolean(false)] let ... = x | main.rs:357:9:357:30 | ExprStmt | false | -| main.rs:352:13:353:7 | [boolean(true)] let ... = x | main.rs:355:9:355:21 | ExprStmt | true | -| main.rs:352:17:352:21 | Ok(...) | main.rs:352:13:353:7 | [boolean(false)] let ... = x | no-match | -| main.rs:352:17:352:21 | Ok(...) | main.rs:352:20:352:20 | x | match | -| main.rs:352:20:352:20 | x | main.rs:352:13:353:7 | [boolean(true)] let ... = x | match | -| main.rs:352:20:352:20 | x | main.rs:352:20:352:20 | x | | -| main.rs:353:7:353:7 | x | main.rs:352:17:352:21 | Ok(...) | | -| main.rs:354:5:356:5 | { ... } | main.rs:352:10:358:5 | if ... {...} else {...} | | -| main.rs:355:9:355:17 | print_i64 | main.rs:355:19:355:19 | x | | -| main.rs:355:9:355:20 | print_i64(...) | main.rs:354:5:356:5 | { ... } | | -| main.rs:355:9:355:21 | ExprStmt | main.rs:355:9:355:17 | print_i64 | | -| main.rs:355:19:355:19 | x | main.rs:355:9:355:20 | print_i64(...) | | -| main.rs:356:12:358:5 | { ... } | main.rs:352:10:358:5 | if ... {...} else {...} | | +| main.rs:150:23:150:27 | first | main.rs:150:13:150:28 | print_i64(...) | | +| main.rs:151:13:151:21 | print_i64 | main.rs:151:23:151:27 | third | | +| main.rs:151:13:151:28 | print_i64(...) | main.rs:152:13:152:29 | ExprStmt | | +| main.rs:151:13:151:29 | ExprStmt | main.rs:151:13:151:21 | print_i64 | | +| main.rs:151:23:151:27 | third | main.rs:151:13:151:28 | print_i64(...) | | +| main.rs:152:13:152:21 | print_i64 | main.rs:152:23:152:27 | fifth | | +| main.rs:152:13:152:28 | print_i64(...) | main.rs:149:14:153:9 | { ... } | | +| main.rs:152:13:152:29 | ExprStmt | main.rs:152:13:152:21 | print_i64 | | +| main.rs:152:23:152:27 | fifth | main.rs:152:13:152:28 | print_i64(...) | | +| main.rs:156:5:166:5 | match numbers { ... } | main.rs:138:21:167:1 | { ... } | | +| main.rs:156:11:156:17 | numbers | main.rs:158:9:162:9 | TuplePat | | +| main.rs:158:9:162:9 | TuplePat | main.rs:159:13:159:17 | first | match | +| main.rs:159:13:159:17 | first | main.rs:159:13:159:17 | first | | +| main.rs:159:13:159:17 | first | main.rs:160:13:160:14 | .. | match | +| main.rs:160:13:160:14 | .. | main.rs:161:13:161:16 | last | match | +| main.rs:161:13:161:16 | last | main.rs:161:13:161:16 | last | | +| main.rs:161:13:161:16 | last | main.rs:163:13:163:29 | ExprStmt | match | +| main.rs:162:14:165:9 | { ... } | main.rs:156:5:166:5 | match numbers { ... } | | +| main.rs:163:13:163:21 | print_i64 | main.rs:163:23:163:27 | first | | +| main.rs:163:13:163:28 | print_i64(...) | main.rs:164:13:164:28 | ExprStmt | | +| main.rs:163:13:163:29 | ExprStmt | main.rs:163:13:163:21 | print_i64 | | +| main.rs:163:23:163:27 | first | main.rs:163:13:163:28 | print_i64(...) | | +| main.rs:164:13:164:21 | print_i64 | main.rs:164:23:164:26 | last | | +| main.rs:164:13:164:27 | print_i64(...) | main.rs:162:14:165:9 | { ... } | | +| main.rs:164:13:164:28 | ExprStmt | main.rs:164:13:164:21 | print_i64 | | +| main.rs:164:23:164:26 | last | main.rs:164:13:164:27 | print_i64(...) | | +| main.rs:169:1:177:1 | enter fn match_pattern3 | main.rs:170:5:170:38 | let ... = ... | | +| main.rs:169:1:177:1 | exit fn match_pattern3 (normal) | main.rs:169:1:177:1 | exit fn match_pattern3 | | +| main.rs:169:21:177:1 | { ... } | main.rs:169:1:177:1 | exit fn match_pattern3 (normal) | | +| main.rs:170:5:170:38 | let ... = ... | main.rs:170:25:170:27 | "x" | | +| main.rs:170:9:170:10 | p2 | main.rs:170:9:170:10 | p2 | | +| main.rs:170:9:170:10 | p2 | main.rs:172:11:172:12 | p2 | match | +| main.rs:170:14:170:37 | Point {...} | main.rs:170:9:170:10 | p2 | | +| main.rs:170:25:170:27 | "x" | main.rs:170:33:170:35 | "y" | | +| main.rs:170:33:170:35 | "y" | main.rs:170:14:170:37 | Point {...} | | +| main.rs:172:5:176:5 | match p2 { ... } | main.rs:169:21:177:1 | { ... } | | +| main.rs:172:11:172:12 | p2 | main.rs:173:9:175:9 | Point {...} | | +| main.rs:173:9:175:9 | Point {...} | main.rs:174:16:174:17 | x7 | match | +| main.rs:174:16:174:17 | x7 | main.rs:174:16:174:17 | x7 | | +| main.rs:174:16:174:17 | x7 | main.rs:174:20:174:21 | .. | match | +| main.rs:174:20:174:21 | .. | main.rs:175:14:175:22 | print_str | match | +| main.rs:175:14:175:22 | print_str | main.rs:175:24:175:25 | x7 | | +| main.rs:175:14:175:26 | print_str(...) | main.rs:172:5:176:5 | match p2 { ... } | | +| main.rs:175:24:175:25 | x7 | main.rs:175:14:175:26 | print_str(...) | | +| main.rs:183:1:200:1 | enter fn match_pattern4 | main.rs:184:5:184:39 | let ... = ... | | +| main.rs:183:1:200:1 | exit fn match_pattern4 (normal) | main.rs:183:1:200:1 | exit fn match_pattern4 | | +| main.rs:183:21:200:1 | { ... } | main.rs:183:1:200:1 | exit fn match_pattern4 (normal) | | +| main.rs:184:5:184:39 | let ... = ... | main.rs:184:36:184:36 | 0 | | +| main.rs:184:9:184:11 | msg | main.rs:184:9:184:11 | msg | | +| main.rs:184:9:184:11 | msg | main.rs:186:11:186:13 | msg | match | +| main.rs:184:15:184:38 | ...::Hello {...} | main.rs:184:9:184:11 | msg | | +| main.rs:184:36:184:36 | 0 | main.rs:184:15:184:38 | ...::Hello {...} | | +| main.rs:186:5:199:5 | match msg { ... } | main.rs:183:21:200:1 | { ... } | | +| main.rs:186:11:186:13 | msg | main.rs:188:9:190:9 | ...::Hello {...} | | +| main.rs:188:9:190:9 | ...::Hello {...} | main.rs:189:31:189:35 | RangePat | match | +| main.rs:188:9:190:9 | ...::Hello {...} | main.rs:191:9:191:38 | ...::Hello {...} | no-match | +| main.rs:189:17:189:27 | id_variable | main.rs:189:17:189:35 | id_variable @ ... | | +| main.rs:189:17:189:35 | id_variable @ ... | main.rs:190:14:190:22 | print_i64 | match | +| main.rs:189:31:189:31 | 3 | main.rs:189:31:189:31 | 3 | | +| main.rs:189:31:189:31 | 3 | main.rs:189:35:189:35 | 7 | match | +| main.rs:189:31:189:31 | 3 | main.rs:191:9:191:38 | ...::Hello {...} | no-match | +| main.rs:189:31:189:35 | RangePat | main.rs:189:31:189:31 | 3 | match | +| main.rs:189:35:189:35 | 7 | main.rs:189:17:189:27 | id_variable | match | +| main.rs:189:35:189:35 | 7 | main.rs:189:35:189:35 | 7 | | +| main.rs:189:35:189:35 | 7 | main.rs:191:9:191:38 | ...::Hello {...} | no-match | +| main.rs:190:14:190:22 | print_i64 | main.rs:190:24:190:34 | id_variable | | +| main.rs:190:14:190:35 | print_i64(...) | main.rs:186:5:199:5 | match msg { ... } | | +| main.rs:190:24:190:34 | id_variable | main.rs:190:14:190:35 | print_i64(...) | | +| main.rs:191:9:191:38 | ...::Hello {...} | main.rs:191:30:191:36 | RangePat | match | +| main.rs:191:9:191:38 | ...::Hello {...} | main.rs:194:9:194:29 | ...::Hello {...} | no-match | +| main.rs:191:30:191:31 | 10 | main.rs:191:30:191:31 | 10 | | +| main.rs:191:30:191:31 | 10 | main.rs:191:35:191:36 | 12 | match | +| main.rs:191:30:191:31 | 10 | main.rs:194:9:194:29 | ...::Hello {...} | no-match | +| main.rs:191:30:191:36 | RangePat | main.rs:191:30:191:31 | 10 | match | +| main.rs:191:35:191:36 | 12 | main.rs:191:35:191:36 | 12 | | +| main.rs:191:35:191:36 | 12 | main.rs:192:22:192:51 | ExprStmt | match | +| main.rs:191:35:191:36 | 12 | main.rs:194:9:194:29 | ...::Hello {...} | no-match | +| main.rs:191:43:193:9 | { ... } | main.rs:186:5:199:5 | match msg { ... } | | +| main.rs:192:13:192:20 | ...::_print | main.rs:192:22:192:51 | "Found an id in another range\\... | | +| main.rs:192:13:192:52 | MacroExpr | main.rs:191:43:193:9 | { ... } | | +| main.rs:192:13:192:52 | println!... | main.rs:192:13:192:52 | MacroExpr | | +| main.rs:192:22:192:51 | "Found an id in another range\\... | main.rs:192:22:192:51 | FormatArgsExpr | | +| main.rs:192:22:192:51 | ...::_print(...) | main.rs:192:22:192:51 | { ... } | | +| main.rs:192:22:192:51 | ...::format_args_nl!... | main.rs:192:22:192:51 | MacroExpr | | +| main.rs:192:22:192:51 | ExprStmt | main.rs:192:13:192:20 | ...::_print | | +| main.rs:192:22:192:51 | FormatArgsExpr | main.rs:192:22:192:51 | ...::format_args_nl!... | | +| main.rs:192:22:192:51 | MacroBlockExpr | main.rs:192:13:192:52 | println!... | | +| main.rs:192:22:192:51 | MacroExpr | main.rs:192:22:192:51 | ...::_print(...) | | +| main.rs:192:22:192:51 | { ... } | main.rs:192:22:192:51 | MacroBlockExpr | | +| main.rs:194:9:194:29 | ...::Hello {...} | main.rs:194:26:194:27 | id | match | +| main.rs:194:26:194:27 | id | main.rs:194:26:194:27 | id | | +| main.rs:194:26:194:27 | id | main.rs:197:13:197:21 | print_i64 | match | +| main.rs:196:9:198:9 | { ... } | main.rs:186:5:199:5 | match msg { ... } | | +| main.rs:197:13:197:21 | print_i64 | main.rs:197:23:197:24 | id | | +| main.rs:197:13:197:25 | print_i64(...) | main.rs:196:9:198:9 | { ... } | | +| main.rs:197:23:197:24 | id | main.rs:197:13:197:25 | print_i64(...) | | +| main.rs:207:1:213:1 | enter fn match_pattern5 | main.rs:208:5:208:34 | let ... = ... | | +| main.rs:207:1:213:1 | exit fn match_pattern5 (normal) | main.rs:207:1:213:1 | exit fn match_pattern5 | | +| main.rs:207:21:213:1 | { ... } | main.rs:207:1:213:1 | exit fn match_pattern5 (normal) | | +| main.rs:208:5:208:34 | let ... = ... | main.rs:208:18:208:29 | ...::Left | | +| main.rs:208:9:208:14 | either | main.rs:208:9:208:14 | either | | +| main.rs:208:9:208:14 | either | main.rs:209:11:209:16 | either | match | +| main.rs:208:18:208:29 | ...::Left | main.rs:208:31:208:32 | 32 | | +| main.rs:208:18:208:33 | ...::Left(...) | main.rs:208:9:208:14 | either | | +| main.rs:208:31:208:32 | 32 | main.rs:208:18:208:33 | ...::Left(...) | | +| main.rs:209:5:212:5 | match either { ... } | main.rs:207:21:213:1 | { ... } | | +| main.rs:209:11:209:16 | either | main.rs:210:9:210:24 | ...::Left(...) | | +| main.rs:210:9:210:24 | ...::Left(...) | main.rs:210:22:210:23 | a3 | match | +| main.rs:210:9:210:24 | ...::Left(...) | main.rs:210:28:210:44 | ...::Right(...) | no-match | +| main.rs:210:9:210:44 | ... \| ... | main.rs:211:16:211:24 | print_i64 | match | +| main.rs:210:22:210:23 | a3 | main.rs:210:9:210:44 | ... \| ... | match | +| main.rs:210:22:210:23 | a3 | main.rs:210:22:210:23 | a3 | | +| main.rs:210:28:210:44 | ...::Right(...) | main.rs:210:42:210:43 | a3 | match | +| main.rs:210:42:210:43 | a3 | main.rs:210:9:210:44 | ... \| ... | match | +| main.rs:210:42:210:43 | a3 | main.rs:210:42:210:43 | a3 | | +| main.rs:211:16:211:24 | print_i64 | main.rs:211:26:211:27 | a3 | | +| main.rs:211:16:211:28 | print_i64(...) | main.rs:209:5:212:5 | match either { ... } | | +| main.rs:211:26:211:27 | a3 | main.rs:211:16:211:28 | print_i64(...) | | +| main.rs:221:1:235:1 | enter fn match_pattern6 | main.rs:222:5:222:37 | let ... = ... | | +| main.rs:221:1:235:1 | exit fn match_pattern6 (normal) | main.rs:221:1:235:1 | exit fn match_pattern6 | | +| main.rs:221:21:235:1 | { ... } | main.rs:221:1:235:1 | exit fn match_pattern6 (normal) | | +| main.rs:222:5:222:37 | let ... = ... | main.rs:222:14:222:32 | ...::Second | | +| main.rs:222:9:222:10 | tv | main.rs:222:9:222:10 | tv | | +| main.rs:222:9:222:10 | tv | main.rs:223:5:226:5 | ExprStmt | match | +| main.rs:222:14:222:32 | ...::Second | main.rs:222:34:222:35 | 62 | | +| main.rs:222:14:222:36 | ...::Second(...) | main.rs:222:9:222:10 | tv | | +| main.rs:222:34:222:35 | 62 | main.rs:222:14:222:36 | ...::Second(...) | | +| main.rs:223:5:226:5 | ExprStmt | main.rs:223:11:223:12 | tv | | +| main.rs:223:5:226:5 | match tv { ... } | main.rs:227:5:230:5 | ExprStmt | | +| main.rs:223:11:223:12 | tv | main.rs:224:9:224:30 | ...::First(...) | | +| main.rs:224:9:224:30 | ...::First(...) | main.rs:224:28:224:29 | a4 | match | +| main.rs:224:9:224:30 | ...::First(...) | main.rs:224:34:224:56 | ...::Second(...) | no-match | +| main.rs:224:9:224:81 | ... \| ... \| ... | main.rs:225:16:225:24 | print_i64 | match | +| main.rs:224:28:224:29 | a4 | main.rs:224:9:224:81 | ... \| ... \| ... | match | +| main.rs:224:28:224:29 | a4 | main.rs:224:28:224:29 | a4 | | +| main.rs:224:34:224:56 | ...::Second(...) | main.rs:224:54:224:55 | a4 | match | +| main.rs:224:34:224:56 | ...::Second(...) | main.rs:224:60:224:81 | ...::Third(...) | no-match | +| main.rs:224:54:224:55 | a4 | main.rs:224:9:224:81 | ... \| ... \| ... | match | +| main.rs:224:54:224:55 | a4 | main.rs:224:54:224:55 | a4 | | +| main.rs:224:60:224:81 | ...::Third(...) | main.rs:224:79:224:80 | a4 | match | +| main.rs:224:79:224:80 | a4 | main.rs:224:9:224:81 | ... \| ... \| ... | match | +| main.rs:224:79:224:80 | a4 | main.rs:224:79:224:80 | a4 | | +| main.rs:225:16:225:24 | print_i64 | main.rs:225:26:225:27 | a4 | | +| main.rs:225:16:225:28 | print_i64(...) | main.rs:223:5:226:5 | match tv { ... } | | +| main.rs:225:26:225:27 | a4 | main.rs:225:16:225:28 | print_i64(...) | | +| main.rs:227:5:230:5 | ExprStmt | main.rs:227:11:227:12 | tv | | +| main.rs:227:5:230:5 | match tv { ... } | main.rs:231:11:231:12 | tv | | +| main.rs:227:11:227:12 | tv | main.rs:228:10:228:31 | ...::First(...) | | +| main.rs:228:9:228:83 | ... \| ... | main.rs:229:16:229:24 | print_i64 | match | +| main.rs:228:10:228:31 | ...::First(...) | main.rs:228:29:228:30 | a5 | match | +| main.rs:228:10:228:31 | ...::First(...) | main.rs:228:35:228:57 | ...::Second(...) | no-match | +| main.rs:228:10:228:57 | [match(false)] ... \| ... | main.rs:228:62:228:83 | ...::Third(...) | no-match | +| main.rs:228:10:228:57 | [match(true)] ... \| ... | main.rs:228:9:228:83 | ... \| ... | match | +| main.rs:228:29:228:30 | a5 | main.rs:228:10:228:57 | [match(true)] ... \| ... | match | +| main.rs:228:29:228:30 | a5 | main.rs:228:29:228:30 | a5 | | +| main.rs:228:35:228:57 | ...::Second(...) | main.rs:228:10:228:57 | [match(false)] ... \| ... | no-match | +| main.rs:228:35:228:57 | ...::Second(...) | main.rs:228:55:228:56 | a5 | match | +| main.rs:228:55:228:56 | a5 | main.rs:228:10:228:57 | [match(true)] ... \| ... | match | +| main.rs:228:55:228:56 | a5 | main.rs:228:55:228:56 | a5 | | +| main.rs:228:62:228:83 | ...::Third(...) | main.rs:228:81:228:82 | a5 | match | +| main.rs:228:81:228:82 | a5 | main.rs:228:9:228:83 | ... \| ... | match | +| main.rs:228:81:228:82 | a5 | main.rs:228:81:228:82 | a5 | | +| main.rs:229:16:229:24 | print_i64 | main.rs:229:26:229:27 | a5 | | +| main.rs:229:16:229:28 | print_i64(...) | main.rs:227:5:230:5 | match tv { ... } | | +| main.rs:229:26:229:27 | a5 | main.rs:229:16:229:28 | print_i64(...) | | +| main.rs:231:5:234:5 | match tv { ... } | main.rs:221:21:235:1 | { ... } | | +| main.rs:231:11:231:12 | tv | main.rs:232:9:232:30 | ...::First(...) | | +| main.rs:232:9:232:30 | ...::First(...) | main.rs:232:28:232:29 | a6 | match | +| main.rs:232:9:232:30 | ...::First(...) | main.rs:232:35:232:57 | ...::Second(...) | no-match | +| main.rs:232:9:232:83 | ... \| ... | main.rs:233:16:233:24 | print_i64 | match | +| main.rs:232:28:232:29 | a6 | main.rs:232:9:232:83 | ... \| ... | match | +| main.rs:232:28:232:29 | a6 | main.rs:232:28:232:29 | a6 | | +| main.rs:232:35:232:57 | ...::Second(...) | main.rs:232:55:232:56 | a6 | match | +| main.rs:232:35:232:57 | ...::Second(...) | main.rs:232:61:232:82 | ...::Third(...) | no-match | +| main.rs:232:35:232:82 | ... \| ... | main.rs:232:9:232:83 | ... \| ... | match | +| main.rs:232:55:232:56 | a6 | main.rs:232:35:232:82 | ... \| ... | match | +| main.rs:232:55:232:56 | a6 | main.rs:232:55:232:56 | a6 | | +| main.rs:232:61:232:82 | ...::Third(...) | main.rs:232:80:232:81 | a6 | match | +| main.rs:232:80:232:81 | a6 | main.rs:232:35:232:82 | ... \| ... | match | +| main.rs:232:80:232:81 | a6 | main.rs:232:80:232:81 | a6 | | +| main.rs:233:16:233:24 | print_i64 | main.rs:233:26:233:27 | a6 | | +| main.rs:233:16:233:28 | print_i64(...) | main.rs:231:5:234:5 | match tv { ... } | | +| main.rs:233:26:233:27 | a6 | main.rs:233:16:233:28 | print_i64(...) | | +| main.rs:237:1:245:1 | enter fn match_pattern7 | main.rs:238:5:238:34 | let ... = ... | | +| main.rs:237:1:245:1 | exit fn match_pattern7 (normal) | main.rs:237:1:245:1 | exit fn match_pattern7 | | +| main.rs:237:21:245:1 | { ... } | main.rs:237:1:245:1 | exit fn match_pattern7 (normal) | | +| main.rs:238:5:238:34 | let ... = ... | main.rs:238:18:238:29 | ...::Left | | +| main.rs:238:9:238:14 | either | main.rs:238:9:238:14 | either | | +| main.rs:238:9:238:14 | either | main.rs:239:11:239:16 | either | match | +| main.rs:238:18:238:29 | ...::Left | main.rs:238:31:238:32 | 32 | | +| main.rs:238:18:238:33 | ...::Left(...) | main.rs:238:9:238:14 | either | | +| main.rs:238:31:238:32 | 32 | main.rs:238:18:238:33 | ...::Left(...) | | +| main.rs:239:5:244:5 | match either { ... } | main.rs:237:21:245:1 | { ... } | | +| main.rs:239:11:239:16 | either | main.rs:240:9:240:24 | ...::Left(...) | | +| main.rs:240:9:240:24 | ...::Left(...) | main.rs:240:22:240:23 | a7 | match | +| main.rs:240:9:240:24 | ...::Left(...) | main.rs:240:28:240:44 | ...::Right(...) | no-match | +| main.rs:240:9:240:44 | [match(false)] ... \| ... | main.rs:243:9:243:9 | _ | no-match | +| main.rs:240:9:240:44 | [match(true)] ... \| ... | main.rs:241:16:241:17 | a7 | match | +| main.rs:240:22:240:23 | a7 | main.rs:240:9:240:44 | [match(true)] ... \| ... | match | +| main.rs:240:22:240:23 | a7 | main.rs:240:22:240:23 | a7 | | +| main.rs:240:28:240:44 | ...::Right(...) | main.rs:240:9:240:44 | [match(false)] ... \| ... | no-match | +| main.rs:240:28:240:44 | ...::Right(...) | main.rs:240:42:240:43 | a7 | match | +| main.rs:240:42:240:43 | a7 | main.rs:240:9:240:44 | [match(true)] ... \| ... | match | +| main.rs:240:42:240:43 | a7 | main.rs:240:42:240:43 | a7 | | +| main.rs:241:16:241:17 | a7 | main.rs:241:21:241:21 | 0 | | +| main.rs:241:16:241:21 | ... > ... | main.rs:242:16:242:24 | print_i64 | true | +| main.rs:241:16:241:21 | ... > ... | main.rs:243:9:243:9 | _ | false | +| main.rs:241:21:241:21 | 0 | main.rs:241:16:241:21 | ... > ... | | +| main.rs:242:16:242:24 | print_i64 | main.rs:242:26:242:27 | a7 | | +| main.rs:242:16:242:28 | print_i64(...) | main.rs:239:5:244:5 | match either { ... } | | +| main.rs:242:26:242:27 | a7 | main.rs:242:16:242:28 | print_i64(...) | | +| main.rs:243:9:243:9 | _ | main.rs:243:14:243:15 | TupleExpr | match | +| main.rs:243:14:243:15 | TupleExpr | main.rs:239:5:244:5 | match either { ... } | | +| main.rs:247:1:262:1 | enter fn match_pattern8 | main.rs:248:5:248:34 | let ... = ... | | +| main.rs:247:1:262:1 | exit fn match_pattern8 (normal) | main.rs:247:1:262:1 | exit fn match_pattern8 | | +| main.rs:247:21:262:1 | { ... } | main.rs:247:1:262:1 | exit fn match_pattern8 (normal) | | +| main.rs:248:5:248:34 | let ... = ... | main.rs:248:18:248:29 | ...::Left | | +| main.rs:248:9:248:14 | either | main.rs:248:9:248:14 | either | | +| main.rs:248:9:248:14 | either | main.rs:250:11:250:16 | either | match | +| main.rs:248:18:248:29 | ...::Left | main.rs:248:31:248:32 | 32 | | +| main.rs:248:18:248:33 | ...::Left(...) | main.rs:248:9:248:14 | either | | +| main.rs:248:31:248:32 | 32 | main.rs:248:18:248:33 | ...::Left(...) | | +| main.rs:250:5:261:5 | match either { ... } | main.rs:247:21:262:1 | { ... } | | +| main.rs:250:11:250:16 | either | main.rs:252:14:252:30 | ...::Left(...) | | +| main.rs:251:9:252:52 | ref e @ ... | main.rs:254:13:254:27 | ExprStmt | match | +| main.rs:251:13:251:13 | e | main.rs:251:9:252:52 | ref e @ ... | | +| main.rs:252:14:252:30 | ...::Left(...) | main.rs:252:27:252:29 | a11 | match | +| main.rs:252:14:252:30 | ...::Left(...) | main.rs:252:34:252:51 | ...::Right(...) | no-match | +| main.rs:252:14:252:51 | [match(false)] ... \| ... | main.rs:260:9:260:9 | _ | no-match | +| main.rs:252:14:252:51 | [match(true)] ... \| ... | main.rs:251:13:251:13 | e | match | +| main.rs:252:27:252:29 | a11 | main.rs:252:14:252:51 | [match(true)] ... \| ... | match | +| main.rs:252:27:252:29 | a11 | main.rs:252:27:252:29 | a11 | | +| main.rs:252:34:252:51 | ...::Right(...) | main.rs:252:14:252:51 | [match(false)] ... \| ... | no-match | +| main.rs:252:34:252:51 | ...::Right(...) | main.rs:252:48:252:50 | a11 | match | +| main.rs:252:48:252:50 | a11 | main.rs:252:14:252:51 | [match(true)] ... \| ... | match | +| main.rs:252:48:252:50 | a11 | main.rs:252:48:252:50 | a11 | | +| main.rs:253:12:259:9 | { ... } | main.rs:250:5:261:5 | match either { ... } | | +| main.rs:254:13:254:21 | print_i64 | main.rs:254:23:254:25 | a11 | | +| main.rs:254:13:254:26 | print_i64(...) | main.rs:256:15:256:15 | e | | +| main.rs:254:13:254:27 | ExprStmt | main.rs:254:13:254:21 | print_i64 | | +| main.rs:254:23:254:25 | a11 | main.rs:254:13:254:26 | print_i64(...) | | +| main.rs:255:13:258:13 | if ... {...} | main.rs:253:12:259:9 | { ... } | | +| main.rs:255:16:256:15 | [boolean(false)] let ... = e | main.rs:255:13:258:13 | if ... {...} | false | +| main.rs:255:16:256:15 | [boolean(true)] let ... = e | main.rs:257:17:257:32 | ExprStmt | true | +| main.rs:255:20:255:36 | ...::Left(...) | main.rs:255:16:256:15 | [boolean(false)] let ... = e | no-match | +| main.rs:255:20:255:36 | ...::Left(...) | main.rs:255:33:255:35 | a12 | match | +| main.rs:255:33:255:35 | a12 | main.rs:255:16:256:15 | [boolean(true)] let ... = e | match | +| main.rs:255:33:255:35 | a12 | main.rs:255:33:255:35 | a12 | | +| main.rs:256:15:256:15 | e | main.rs:255:20:255:36 | ...::Left(...) | | +| main.rs:256:17:258:13 | { ... } | main.rs:255:13:258:13 | if ... {...} | | +| main.rs:257:17:257:25 | print_i64 | main.rs:257:28:257:30 | a12 | | +| main.rs:257:17:257:31 | print_i64(...) | main.rs:256:17:258:13 | { ... } | | +| main.rs:257:17:257:32 | ExprStmt | main.rs:257:17:257:25 | print_i64 | | +| main.rs:257:27:257:30 | * ... | main.rs:257:17:257:31 | print_i64(...) | | +| main.rs:257:28:257:30 | a12 | main.rs:257:27:257:30 | * ... | | +| main.rs:260:9:260:9 | _ | main.rs:260:14:260:15 | TupleExpr | match | +| main.rs:260:14:260:15 | TupleExpr | main.rs:250:5:261:5 | match either { ... } | | +| main.rs:271:1:277:1 | enter fn match_pattern9 | main.rs:272:5:272:36 | let ... = ... | | +| main.rs:271:1:277:1 | exit fn match_pattern9 (normal) | main.rs:271:1:277:1 | exit fn match_pattern9 | | +| main.rs:271:21:277:1 | { ... } | main.rs:271:1:277:1 | exit fn match_pattern9 (normal) | | +| main.rs:272:5:272:36 | let ... = ... | main.rs:272:14:272:31 | ...::Second | | +| main.rs:272:9:272:10 | fv | main.rs:272:9:272:10 | fv | | +| main.rs:272:9:272:10 | fv | main.rs:273:11:273:12 | fv | match | +| main.rs:272:14:272:31 | ...::Second | main.rs:272:33:272:34 | 62 | | +| main.rs:272:14:272:35 | ...::Second(...) | main.rs:272:9:272:10 | fv | | +| main.rs:272:33:272:34 | 62 | main.rs:272:14:272:35 | ...::Second(...) | | +| main.rs:273:5:276:5 | match fv { ... } | main.rs:271:21:277:1 | { ... } | | +| main.rs:273:11:273:12 | fv | main.rs:274:9:274:30 | ...::First(...) | | +| main.rs:274:9:274:30 | ...::First(...) | main.rs:274:27:274:29 | a13 | match | +| main.rs:274:9:274:30 | ...::First(...) | main.rs:274:35:274:57 | ...::Second(...) | no-match | +| main.rs:274:9:274:109 | ... \| ... \| ... | main.rs:275:16:275:24 | print_i64 | match | +| main.rs:274:27:274:29 | a13 | main.rs:274:9:274:109 | ... \| ... \| ... | match | +| main.rs:274:27:274:29 | a13 | main.rs:274:27:274:29 | a13 | | +| main.rs:274:35:274:57 | ...::Second(...) | main.rs:274:54:274:56 | a13 | match | +| main.rs:274:35:274:57 | ...::Second(...) | main.rs:274:61:274:82 | ...::Third(...) | no-match | +| main.rs:274:35:274:82 | [match(false)] ... \| ... | main.rs:274:87:274:109 | ...::Fourth(...) | no-match | +| main.rs:274:35:274:82 | [match(true)] ... \| ... | main.rs:274:9:274:109 | ... \| ... \| ... | match | +| main.rs:274:54:274:56 | a13 | main.rs:274:35:274:82 | [match(true)] ... \| ... | match | +| main.rs:274:54:274:56 | a13 | main.rs:274:54:274:56 | a13 | | +| main.rs:274:61:274:82 | ...::Third(...) | main.rs:274:35:274:82 | [match(false)] ... \| ... | no-match | +| main.rs:274:61:274:82 | ...::Third(...) | main.rs:274:79:274:81 | a13 | match | +| main.rs:274:79:274:81 | a13 | main.rs:274:35:274:82 | [match(true)] ... \| ... | match | +| main.rs:274:79:274:81 | a13 | main.rs:274:79:274:81 | a13 | | +| main.rs:274:87:274:109 | ...::Fourth(...) | main.rs:274:106:274:108 | a13 | match | +| main.rs:274:106:274:108 | a13 | main.rs:274:9:274:109 | ... \| ... \| ... | match | +| main.rs:274:106:274:108 | a13 | main.rs:274:106:274:108 | a13 | | +| main.rs:275:16:275:24 | print_i64 | main.rs:275:26:275:28 | a13 | | +| main.rs:275:16:275:29 | print_i64(...) | main.rs:273:5:276:5 | match fv { ... } | | +| main.rs:275:26:275:28 | a13 | main.rs:275:16:275:29 | print_i64(...) | | +| main.rs:279:1:293:1 | enter fn match_pattern10 | main.rs:281:5:281:20 | let ... = ... | | +| main.rs:279:1:293:1 | exit fn match_pattern10 (normal) | main.rs:279:1:293:1 | exit fn match_pattern10 | | +| main.rs:280:22:293:1 | { ... } | main.rs:279:1:293:1 | exit fn match_pattern10 (normal) | | +| main.rs:281:5:281:20 | let ... = ... | main.rs:281:12:281:15 | Some | | +| main.rs:281:9:281:9 | x | main.rs:281:9:281:9 | x | | +| main.rs:281:9:281:9 | x | main.rs:283:7:283:7 | x | match | +| main.rs:281:12:281:15 | Some | main.rs:281:17:281:18 | 42 | | +| main.rs:281:12:281:19 | Some(...) | main.rs:281:9:281:9 | x | | +| main.rs:281:17:281:18 | 42 | main.rs:281:12:281:19 | Some(...) | | +| main.rs:282:5:292:5 | if ... {...} else {...} | main.rs:280:22:293:1 | { ... } | | +| main.rs:282:8:283:7 | [boolean(false)] let ... = x | main.rs:282:8:285:9 | [boolean(false)] ... && ... | false | +| main.rs:282:8:283:7 | [boolean(true)] let ... = x | main.rs:285:5:285:5 | x | true | +| main.rs:282:8:285:9 | [boolean(false)] ... && ... | main.rs:289:9:290:14 | let ... = x | false | +| main.rs:282:8:285:9 | [boolean(true)] ... && ... | main.rs:287:9:287:21 | ExprStmt | true | +| main.rs:282:12:282:18 | Some(...) | main.rs:282:8:283:7 | [boolean(false)] let ... = x | no-match | +| main.rs:282:12:282:18 | Some(...) | main.rs:282:17:282:17 | x | match | +| main.rs:282:17:282:17 | x | main.rs:282:8:283:7 | [boolean(true)] let ... = x | match | +| main.rs:282:17:282:17 | x | main.rs:282:17:282:17 | x | | +| main.rs:283:7:283:7 | x | main.rs:282:12:282:18 | Some(...) | | +| main.rs:285:5:285:5 | x | main.rs:285:9:285:9 | 0 | | +| main.rs:285:5:285:9 | ... > ... | main.rs:282:8:285:9 | [boolean(false)] ... && ... | false | +| main.rs:285:5:285:9 | ... > ... | main.rs:282:8:285:9 | [boolean(true)] ... && ... | true | +| main.rs:285:9:285:9 | 0 | main.rs:285:5:285:9 | ... > ... | | +| main.rs:286:5:288:5 | { ... } | main.rs:282:5:292:5 | if ... {...} else {...} | | +| main.rs:287:9:287:17 | print_i64 | main.rs:287:19:287:19 | x | | +| main.rs:287:9:287:20 | print_i64(...) | main.rs:286:5:288:5 | { ... } | | +| main.rs:287:9:287:21 | ExprStmt | main.rs:287:9:287:17 | print_i64 | | +| main.rs:287:19:287:19 | x | main.rs:287:9:287:20 | print_i64(...) | | +| main.rs:288:12:292:5 | { ... } | main.rs:282:5:292:5 | if ... {...} else {...} | | +| main.rs:289:9:290:14 | let ... = x | main.rs:290:13:290:13 | x | | +| main.rs:289:13:289:13 | x | main.rs:289:13:289:13 | x | | +| main.rs:289:13:289:13 | x | main.rs:291:9:291:30 | ExprStmt | match | +| main.rs:290:13:290:13 | x | main.rs:289:13:289:13 | x | | +| main.rs:291:9:291:17 | print_i64 | main.rs:291:19:291:19 | x | | +| main.rs:291:9:291:29 | print_i64(...) | main.rs:288:12:292:5 | { ... } | | +| main.rs:291:9:291:30 | ExprStmt | main.rs:291:9:291:17 | print_i64 | | +| main.rs:291:19:291:19 | x | main.rs:291:19:291:28 | x.unwrap() | | +| main.rs:291:19:291:28 | x.unwrap() | main.rs:291:9:291:29 | print_i64(...) | | +| main.rs:295:1:312:1 | enter fn match_pattern11 | main.rs:297:5:297:21 | let ... = ... | | +| main.rs:295:1:312:1 | exit fn match_pattern11 (normal) | main.rs:295:1:312:1 | exit fn match_pattern11 | | +| main.rs:296:22:312:1 | { ... } | main.rs:295:1:312:1 | exit fn match_pattern11 (normal) | | +| main.rs:297:5:297:21 | let ... = ... | main.rs:297:13:297:16 | Some | | +| main.rs:297:9:297:9 | x | main.rs:297:9:297:9 | x | | +| main.rs:297:9:297:9 | x | main.rs:299:7:299:7 | x | match | +| main.rs:297:13:297:16 | Some | main.rs:297:18:297:19 | 42 | | +| main.rs:297:13:297:20 | Some(...) | main.rs:297:9:297:9 | x | | +| main.rs:297:18:297:19 | 42 | main.rs:297:13:297:20 | Some(...) | | +| main.rs:298:5:311:5 | if ... {...} else {...} | main.rs:296:22:312:1 | { ... } | | +| main.rs:298:8:299:7 | [boolean(false)] let ... = x | main.rs:298:8:302:13 | [boolean(false)] ... && ... | false | +| main.rs:298:8:299:7 | [boolean(true)] let ... = x | main.rs:302:7:302:10 | Some | true | +| main.rs:298:8:302:13 | [boolean(false)] ... && ... | main.rs:298:8:304:9 | [boolean(false)] ... && ... | false | +| main.rs:298:8:302:13 | [boolean(true)] ... && ... | main.rs:304:5:304:5 | x | true | +| main.rs:298:8:304:9 | [boolean(false)] ... && ... | main.rs:308:9:309:14 | let ... = x | false | +| main.rs:298:8:304:9 | [boolean(true)] ... && ... | main.rs:306:9:306:21 | ExprStmt | true | +| main.rs:298:12:298:18 | Some(...) | main.rs:298:8:299:7 | [boolean(false)] let ... = x | no-match | +| main.rs:298:12:298:18 | Some(...) | main.rs:298:17:298:17 | x | match | +| main.rs:298:17:298:17 | x | main.rs:298:8:299:7 | [boolean(true)] let ... = x | match | +| main.rs:298:17:298:17 | x | main.rs:298:17:298:17 | x | | +| main.rs:299:7:299:7 | x | main.rs:298:12:298:18 | Some(...) | | +| main.rs:301:5:302:13 | [boolean(false)] let ... = ... | main.rs:298:8:302:13 | [boolean(false)] ... && ... | false | +| main.rs:301:5:302:13 | [boolean(true)] let ... = ... | main.rs:298:8:302:13 | [boolean(true)] ... && ... | true | +| main.rs:301:9:301:15 | Some(...) | main.rs:301:5:302:13 | [boolean(false)] let ... = ... | no-match | +| main.rs:301:9:301:15 | Some(...) | main.rs:301:14:301:14 | x | match | +| main.rs:301:14:301:14 | x | main.rs:301:5:302:13 | [boolean(true)] let ... = ... | match | +| main.rs:301:14:301:14 | x | main.rs:301:14:301:14 | x | | +| main.rs:302:7:302:10 | Some | main.rs:302:12:302:12 | x | | +| main.rs:302:7:302:13 | Some(...) | main.rs:301:9:301:15 | Some(...) | | +| main.rs:302:12:302:12 | x | main.rs:302:7:302:13 | Some(...) | | +| main.rs:304:5:304:5 | x | main.rs:304:9:304:9 | 0 | | +| main.rs:304:5:304:9 | ... > ... | main.rs:298:8:304:9 | [boolean(false)] ... && ... | false | +| main.rs:304:5:304:9 | ... > ... | main.rs:298:8:304:9 | [boolean(true)] ... && ... | true | +| main.rs:304:9:304:9 | 0 | main.rs:304:5:304:9 | ... > ... | | +| main.rs:305:5:307:5 | { ... } | main.rs:298:5:311:5 | if ... {...} else {...} | | +| main.rs:306:9:306:17 | print_i64 | main.rs:306:19:306:19 | x | | +| main.rs:306:9:306:20 | print_i64(...) | main.rs:305:5:307:5 | { ... } | | +| main.rs:306:9:306:21 | ExprStmt | main.rs:306:9:306:17 | print_i64 | | +| main.rs:306:19:306:19 | x | main.rs:306:9:306:20 | print_i64(...) | | +| main.rs:307:12:311:5 | { ... } | main.rs:298:5:311:5 | if ... {...} else {...} | | +| main.rs:308:9:309:14 | let ... = x | main.rs:309:13:309:13 | x | | +| main.rs:308:13:308:13 | x | main.rs:308:13:308:13 | x | | +| main.rs:308:13:308:13 | x | main.rs:310:9:310:30 | ExprStmt | match | +| main.rs:309:13:309:13 | x | main.rs:308:13:308:13 | x | | +| main.rs:310:9:310:17 | print_i64 | main.rs:310:19:310:19 | x | | +| main.rs:310:9:310:29 | print_i64(...) | main.rs:307:12:311:5 | { ... } | | +| main.rs:310:9:310:30 | ExprStmt | main.rs:310:9:310:17 | print_i64 | | +| main.rs:310:19:310:19 | x | main.rs:310:19:310:28 | x.unwrap() | | +| main.rs:310:19:310:28 | x.unwrap() | main.rs:310:9:310:29 | print_i64(...) | | +| main.rs:314:1:330:1 | enter fn match_pattern12 | main.rs:316:5:316:21 | let ... = ... | | +| main.rs:314:1:330:1 | exit fn match_pattern12 (normal) | main.rs:314:1:330:1 | exit fn match_pattern12 | | +| main.rs:315:22:330:1 | { ... } | main.rs:314:1:330:1 | exit fn match_pattern12 (normal) | | +| main.rs:316:5:316:21 | let ... = ... | main.rs:316:13:316:16 | Some | | +| main.rs:316:9:316:9 | x | main.rs:316:9:316:9 | x | | +| main.rs:316:9:316:9 | x | main.rs:317:5:327:5 | ExprStmt | match | +| main.rs:316:13:316:16 | Some | main.rs:316:18:316:19 | 42 | | +| main.rs:316:13:316:20 | Some(...) | main.rs:316:9:316:9 | x | | +| main.rs:316:18:316:19 | 42 | main.rs:316:13:316:20 | Some(...) | | +| main.rs:317:5:327:5 | ExprStmt | main.rs:318:7:318:7 | x | | +| main.rs:317:5:327:5 | while ... { ... } | main.rs:329:5:329:26 | ExprStmt | | +| main.rs:317:11:318:7 | [boolean(false)] let ... = x | main.rs:317:11:321:13 | [boolean(false)] ... && ... | false | +| main.rs:317:11:318:7 | [boolean(true)] let ... = x | main.rs:321:7:321:10 | Some | true | +| main.rs:317:11:321:13 | [boolean(false)] ... && ... | main.rs:317:11:323:9 | [boolean(false)] ... && ... | false | +| main.rs:317:11:321:13 | [boolean(true)] ... && ... | main.rs:323:5:323:5 | x | true | +| main.rs:317:11:323:9 | [boolean(false)] ... && ... | main.rs:317:5:327:5 | while ... { ... } | false | +| main.rs:317:11:323:9 | [boolean(true)] ... && ... | main.rs:325:9:325:21 | ExprStmt | true | +| main.rs:317:15:317:21 | Some(...) | main.rs:317:11:318:7 | [boolean(false)] let ... = x | no-match | +| main.rs:317:15:317:21 | Some(...) | main.rs:317:20:317:20 | x | match | +| main.rs:317:20:317:20 | x | main.rs:317:11:318:7 | [boolean(true)] let ... = x | match | +| main.rs:317:20:317:20 | x | main.rs:317:20:317:20 | x | | +| main.rs:318:7:318:7 | x | main.rs:317:15:317:21 | Some(...) | | +| main.rs:320:5:321:13 | [boolean(false)] let ... = ... | main.rs:317:11:321:13 | [boolean(false)] ... && ... | false | +| main.rs:320:5:321:13 | [boolean(true)] let ... = ... | main.rs:317:11:321:13 | [boolean(true)] ... && ... | true | +| main.rs:320:9:320:15 | Some(...) | main.rs:320:5:321:13 | [boolean(false)] let ... = ... | no-match | +| main.rs:320:9:320:15 | Some(...) | main.rs:320:14:320:14 | x | match | +| main.rs:320:14:320:14 | x | main.rs:320:5:321:13 | [boolean(true)] let ... = ... | match | +| main.rs:320:14:320:14 | x | main.rs:320:14:320:14 | x | | +| main.rs:321:7:321:10 | Some | main.rs:321:12:321:12 | x | | +| main.rs:321:7:321:13 | Some(...) | main.rs:320:9:320:15 | Some(...) | | +| main.rs:321:12:321:12 | x | main.rs:321:7:321:13 | Some(...) | | +| main.rs:323:5:323:5 | x | main.rs:323:9:323:9 | 0 | | +| main.rs:323:5:323:9 | ... > ... | main.rs:317:11:323:9 | [boolean(false)] ... && ... | false | +| main.rs:323:5:323:9 | ... > ... | main.rs:317:11:323:9 | [boolean(true)] ... && ... | true | +| main.rs:323:9:323:9 | 0 | main.rs:323:5:323:9 | ... > ... | | +| main.rs:325:9:325:17 | print_i64 | main.rs:325:19:325:19 | x | | +| main.rs:325:9:325:20 | print_i64(...) | main.rs:326:9:326:14 | ExprStmt | | +| main.rs:325:9:325:21 | ExprStmt | main.rs:325:9:325:17 | print_i64 | | +| main.rs:325:19:325:19 | x | main.rs:325:9:325:20 | print_i64(...) | | +| main.rs:326:9:326:13 | break | main.rs:317:5:327:5 | while ... { ... } | break | +| main.rs:326:9:326:14 | ExprStmt | main.rs:326:9:326:13 | break | | +| main.rs:329:5:329:13 | print_i64 | main.rs:329:15:329:15 | x | | +| main.rs:329:5:329:25 | print_i64(...) | main.rs:315:22:330:1 | { ... } | | +| main.rs:329:5:329:26 | ExprStmt | main.rs:329:5:329:13 | print_i64 | | +| main.rs:329:15:329:15 | x | main.rs:329:15:329:24 | x.unwrap() | | +| main.rs:329:15:329:24 | x.unwrap() | main.rs:329:5:329:25 | print_i64(...) | | +| main.rs:332:1:344:1 | enter fn match_pattern13 | main.rs:334:5:334:21 | let ... = ... | | +| main.rs:332:1:344:1 | exit fn match_pattern13 (normal) | main.rs:332:1:344:1 | exit fn match_pattern13 | | +| main.rs:333:22:344:1 | { ... } | main.rs:332:1:344:1 | exit fn match_pattern13 (normal) | | +| main.rs:334:5:334:21 | let ... = ... | main.rs:334:13:334:16 | Some | | +| main.rs:334:9:334:9 | x | main.rs:334:9:334:9 | x | | +| main.rs:334:9:334:9 | x | main.rs:335:5:341:5 | ExprStmt | match | +| main.rs:334:13:334:16 | Some | main.rs:334:18:334:19 | 42 | | +| main.rs:334:13:334:20 | Some(...) | main.rs:334:9:334:9 | x | | +| main.rs:334:18:334:19 | 42 | main.rs:334:13:334:20 | Some(...) | | +| main.rs:335:5:341:5 | ExprStmt | main.rs:335:11:335:11 | x | | +| main.rs:335:5:341:5 | match x { ... } | main.rs:343:5:343:26 | ExprStmt | | +| main.rs:335:11:335:11 | x | main.rs:336:9:336:15 | Some(...) | | +| main.rs:336:9:336:15 | Some(...) | main.rs:336:14:336:14 | x | match | +| main.rs:336:9:336:15 | Some(...) | main.rs:340:9:340:9 | _ | no-match | +| main.rs:336:14:336:14 | x | main.rs:336:14:336:14 | x | | +| main.rs:336:14:336:14 | x | main.rs:338:18:338:18 | x | match | +| main.rs:337:16:338:18 | [boolean(true)] let ... = x | main.rs:339:19:339:19 | x | true | +| main.rs:337:16:339:23 | [boolean(false)] ... && ... | main.rs:340:9:340:9 | _ | false | +| main.rs:337:16:339:23 | [boolean(true)] ... && ... | main.rs:339:28:339:29 | TupleExpr | true | +| main.rs:337:20:337:20 | x | main.rs:337:16:338:18 | [boolean(true)] let ... = x | match | +| main.rs:337:20:337:20 | x | main.rs:337:20:337:20 | x | | +| main.rs:338:18:338:18 | x | main.rs:337:20:337:20 | x | | +| main.rs:339:19:339:19 | x | main.rs:339:23:339:23 | 0 | | +| main.rs:339:19:339:23 | ... > ... | main.rs:337:16:339:23 | [boolean(false)] ... && ... | false | +| main.rs:339:19:339:23 | ... > ... | main.rs:337:16:339:23 | [boolean(true)] ... && ... | true | +| main.rs:339:23:339:23 | 0 | main.rs:339:19:339:23 | ... > ... | | +| main.rs:339:28:339:29 | TupleExpr | main.rs:335:5:341:5 | match x { ... } | | +| main.rs:340:9:340:9 | _ | main.rs:340:14:340:15 | TupleExpr | match | +| main.rs:340:14:340:15 | TupleExpr | main.rs:335:5:341:5 | match x { ... } | | +| main.rs:343:5:343:13 | print_i64 | main.rs:343:15:343:15 | x | | +| main.rs:343:5:343:25 | print_i64(...) | main.rs:333:22:344:1 | { ... } | | +| main.rs:343:5:343:26 | ExprStmt | main.rs:343:5:343:13 | print_i64 | | +| main.rs:343:15:343:15 | x | main.rs:343:15:343:24 | x.unwrap() | | +| main.rs:343:15:343:24 | x.unwrap() | main.rs:343:5:343:25 | print_i64(...) | | +| main.rs:346:1:361:1 | enter fn match_pattern14 | main.rs:348:5:348:19 | let ... = ... | | +| main.rs:346:1:361:1 | exit fn match_pattern14 (normal) | main.rs:346:1:361:1 | exit fn match_pattern14 | | +| main.rs:347:22:361:1 | { ... } | main.rs:346:1:361:1 | exit fn match_pattern14 (normal) | | +| main.rs:348:5:348:19 | let ... = ... | main.rs:348:13:348:14 | Ok | | +| main.rs:348:9:348:9 | x | main.rs:348:9:348:9 | x | | +| main.rs:348:9:348:9 | x | main.rs:350:7:350:7 | x | match | +| main.rs:348:13:348:14 | Ok | main.rs:348:16:348:17 | 42 | | +| main.rs:348:13:348:18 | Ok(...) | main.rs:348:9:348:9 | x | | +| main.rs:348:16:348:17 | 42 | main.rs:348:13:348:18 | Ok(...) | | +| main.rs:349:5:360:5 | if ... {...} else {...} | main.rs:347:22:361:1 | { ... } | | +| main.rs:349:8:350:7 | [boolean(false)] let ... = x | main.rs:355:7:355:7 | x | false | +| main.rs:349:8:350:7 | [boolean(true)] let ... = x | main.rs:352:9:352:21 | ExprStmt | true | +| main.rs:349:12:349:17 | Err(...) | main.rs:349:8:350:7 | [boolean(false)] let ... = x | no-match | +| main.rs:349:12:349:17 | Err(...) | main.rs:349:16:349:16 | x | match | +| main.rs:349:16:349:16 | x | main.rs:349:8:350:7 | [boolean(true)] let ... = x | match | +| main.rs:349:16:349:16 | x | main.rs:349:16:349:16 | x | | +| main.rs:350:7:350:7 | x | main.rs:349:12:349:17 | Err(...) | | +| main.rs:351:5:353:5 | { ... } | main.rs:349:5:360:5 | if ... {...} else {...} | | +| main.rs:352:9:352:17 | print_i64 | main.rs:352:19:352:19 | x | | +| main.rs:352:9:352:20 | print_i64(...) | main.rs:351:5:353:5 | { ... } | | +| main.rs:352:9:352:21 | ExprStmt | main.rs:352:9:352:17 | print_i64 | | +| main.rs:352:19:352:19 | x | main.rs:352:9:352:20 | print_i64(...) | | +| main.rs:354:10:360:5 | if ... {...} else {...} | main.rs:349:5:360:5 | if ... {...} else {...} | | +| main.rs:354:13:355:7 | [boolean(false)] let ... = x | main.rs:359:9:359:30 | ExprStmt | false | +| main.rs:354:13:355:7 | [boolean(true)] let ... = x | main.rs:357:9:357:21 | ExprStmt | true | +| main.rs:354:17:354:21 | Ok(...) | main.rs:354:13:355:7 | [boolean(false)] let ... = x | no-match | +| main.rs:354:17:354:21 | Ok(...) | main.rs:354:20:354:20 | x | match | +| main.rs:354:20:354:20 | x | main.rs:354:13:355:7 | [boolean(true)] let ... = x | match | +| main.rs:354:20:354:20 | x | main.rs:354:20:354:20 | x | | +| main.rs:355:7:355:7 | x | main.rs:354:17:354:21 | Ok(...) | | +| main.rs:356:5:358:5 | { ... } | main.rs:354:10:360:5 | if ... {...} else {...} | | | main.rs:357:9:357:17 | print_i64 | main.rs:357:19:357:19 | x | | -| main.rs:357:9:357:29 | print_i64(...) | main.rs:356:12:358:5 | { ... } | | -| main.rs:357:9:357:30 | ExprStmt | main.rs:357:9:357:17 | print_i64 | | -| main.rs:357:19:357:19 | x | main.rs:357:19:357:28 | x.unwrap() | | -| main.rs:357:19:357:28 | x.unwrap() | main.rs:357:9:357:29 | print_i64(...) | | -| main.rs:361:1:371:1 | enter fn param_pattern1 | main.rs:362:5:362:6 | a8 | | -| main.rs:361:1:371:1 | exit fn param_pattern1 (normal) | main.rs:361:1:371:1 | exit fn param_pattern1 | | -| main.rs:362:5:362:6 | a8 | main.rs:362:5:362:6 | a8 | | -| main.rs:362:5:362:6 | a8 | main.rs:362:5:362:12 | ...: ... | match | -| main.rs:362:5:362:12 | ...: ... | main.rs:363:5:366:5 | TuplePat | | -| main.rs:363:5:366:5 | TuplePat | main.rs:364:9:364:10 | b3 | match | -| main.rs:363:5:366:19 | ...: ... | main.rs:368:5:368:18 | ExprStmt | | -| main.rs:364:9:364:10 | b3 | main.rs:364:9:364:10 | b3 | | -| main.rs:364:9:364:10 | b3 | main.rs:365:9:365:10 | c1 | match | -| main.rs:365:9:365:10 | c1 | main.rs:363:5:366:19 | ...: ... | match | -| main.rs:365:9:365:10 | c1 | main.rs:365:9:365:10 | c1 | | -| main.rs:367:9:371:1 | { ... } | main.rs:361:1:371:1 | exit fn param_pattern1 (normal) | | -| main.rs:368:5:368:13 | print_str | main.rs:368:15:368:16 | a8 | | -| main.rs:368:5:368:17 | print_str(...) | main.rs:369:5:369:18 | ExprStmt | | -| main.rs:368:5:368:18 | ExprStmt | main.rs:368:5:368:13 | print_str | | -| main.rs:368:15:368:16 | a8 | main.rs:368:5:368:17 | print_str(...) | | -| main.rs:369:5:369:13 | print_str | main.rs:369:15:369:16 | b3 | | -| main.rs:369:5:369:17 | print_str(...) | main.rs:370:5:370:18 | ExprStmt | | -| main.rs:369:5:369:18 | ExprStmt | main.rs:369:5:369:13 | print_str | | -| main.rs:369:15:369:16 | b3 | main.rs:369:5:369:17 | print_str(...) | | -| main.rs:370:5:370:13 | print_str | main.rs:370:15:370:16 | c1 | | -| main.rs:370:5:370:17 | print_str(...) | main.rs:367:9:371:1 | { ... } | | +| main.rs:357:9:357:20 | print_i64(...) | main.rs:356:5:358:5 | { ... } | | +| main.rs:357:9:357:21 | ExprStmt | main.rs:357:9:357:17 | print_i64 | | +| main.rs:357:19:357:19 | x | main.rs:357:9:357:20 | print_i64(...) | | +| main.rs:358:12:360:5 | { ... } | main.rs:354:10:360:5 | if ... {...} else {...} | | +| main.rs:359:9:359:17 | print_i64 | main.rs:359:19:359:19 | x | | +| main.rs:359:9:359:29 | print_i64(...) | main.rs:358:12:360:5 | { ... } | | +| main.rs:359:9:359:30 | ExprStmt | main.rs:359:9:359:17 | print_i64 | | +| main.rs:359:19:359:19 | x | main.rs:359:19:359:28 | x.unwrap() | | +| main.rs:359:19:359:28 | x.unwrap() | main.rs:359:9:359:29 | print_i64(...) | | +| main.rs:363:1:373:1 | enter fn param_pattern1 | main.rs:364:5:364:6 | a8 | | +| main.rs:363:1:373:1 | exit fn param_pattern1 (normal) | main.rs:363:1:373:1 | exit fn param_pattern1 | | +| main.rs:364:5:364:6 | a8 | main.rs:364:5:364:6 | a8 | | +| main.rs:364:5:364:6 | a8 | main.rs:364:5:364:12 | ...: ... | match | +| main.rs:364:5:364:12 | ...: ... | main.rs:365:5:368:5 | TuplePat | | +| main.rs:365:5:368:5 | TuplePat | main.rs:366:9:366:10 | b3 | match | +| main.rs:365:5:368:19 | ...: ... | main.rs:370:5:370:18 | ExprStmt | | +| main.rs:366:9:366:10 | b3 | main.rs:366:9:366:10 | b3 | | +| main.rs:366:9:366:10 | b3 | main.rs:367:9:367:10 | c1 | match | +| main.rs:367:9:367:10 | c1 | main.rs:365:5:368:19 | ...: ... | match | +| main.rs:367:9:367:10 | c1 | main.rs:367:9:367:10 | c1 | | +| main.rs:369:9:373:1 | { ... } | main.rs:363:1:373:1 | exit fn param_pattern1 (normal) | | +| main.rs:370:5:370:13 | print_str | main.rs:370:15:370:16 | a8 | | +| main.rs:370:5:370:17 | print_str(...) | main.rs:371:5:371:18 | ExprStmt | | | main.rs:370:5:370:18 | ExprStmt | main.rs:370:5:370:13 | print_str | | -| main.rs:370:15:370:16 | c1 | main.rs:370:5:370:17 | print_str(...) | | -| main.rs:373:1:376:1 | enter fn param_pattern2 | main.rs:373:20:373:35 | ...::Left(...) | | -| main.rs:373:1:376:1 | exit fn param_pattern2 (normal) | main.rs:373:1:376:1 | exit fn param_pattern2 | | -| main.rs:373:19:373:64 | ...: Either | main.rs:375:5:375:18 | ExprStmt | | -| main.rs:373:20:373:35 | ...::Left(...) | main.rs:373:33:373:34 | a9 | match | -| main.rs:373:20:373:35 | ...::Left(...) | main.rs:373:39:373:55 | ...::Right(...) | no-match | -| main.rs:373:20:373:55 | ... \| ... | main.rs:373:19:373:64 | ...: Either | match | -| main.rs:373:33:373:34 | a9 | main.rs:373:20:373:55 | ... \| ... | match | -| main.rs:373:33:373:34 | a9 | main.rs:373:33:373:34 | a9 | | -| main.rs:373:39:373:55 | ...::Right(...) | main.rs:373:53:373:54 | a9 | match | -| main.rs:373:53:373:54 | a9 | main.rs:373:20:373:55 | ... \| ... | match | -| main.rs:373:53:373:54 | a9 | main.rs:373:53:373:54 | a9 | | -| main.rs:374:9:376:1 | { ... } | main.rs:373:1:376:1 | exit fn param_pattern2 (normal) | | -| main.rs:375:5:375:13 | print_i64 | main.rs:375:15:375:16 | a9 | | -| main.rs:375:5:375:17 | print_i64(...) | main.rs:374:9:376:1 | { ... } | | -| main.rs:375:5:375:18 | ExprStmt | main.rs:375:5:375:13 | print_i64 | | -| main.rs:375:15:375:16 | a9 | main.rs:375:5:375:17 | print_i64(...) | | -| main.rs:378:1:413:1 | enter fn destruct_assignment | main.rs:379:5:383:18 | let ... = ... | | -| main.rs:378:1:413:1 | exit fn destruct_assignment (normal) | main.rs:378:1:413:1 | exit fn destruct_assignment | | -| main.rs:378:26:413:1 | { ... } | main.rs:378:1:413:1 | exit fn destruct_assignment (normal) | | -| main.rs:379:5:383:18 | let ... = ... | main.rs:383:10:383:10 | 1 | | -| main.rs:379:9:383:5 | TuplePat | main.rs:380:13:380:15 | a10 | match | -| main.rs:380:9:380:15 | mut a10 | main.rs:381:13:381:14 | b4 | match | -| main.rs:380:13:380:15 | a10 | main.rs:380:9:380:15 | mut a10 | | -| main.rs:381:9:381:14 | mut b4 | main.rs:382:13:382:14 | c2 | match | -| main.rs:381:13:381:14 | b4 | main.rs:381:9:381:14 | mut b4 | | -| main.rs:382:9:382:14 | mut c2 | main.rs:384:5:384:19 | ExprStmt | match | -| main.rs:382:13:382:14 | c2 | main.rs:382:9:382:14 | mut c2 | | -| main.rs:383:9:383:17 | TupleExpr | main.rs:379:9:383:5 | TuplePat | | -| main.rs:383:10:383:10 | 1 | main.rs:383:13:383:13 | 2 | | -| main.rs:383:13:383:13 | 2 | main.rs:383:16:383:16 | 3 | | -| main.rs:383:16:383:16 | 3 | main.rs:383:9:383:17 | TupleExpr | | -| main.rs:384:5:384:13 | print_i64 | main.rs:384:15:384:17 | a10 | | -| main.rs:384:5:384:18 | print_i64(...) | main.rs:385:5:385:18 | ExprStmt | | -| main.rs:384:5:384:19 | ExprStmt | main.rs:384:5:384:13 | print_i64 | | -| main.rs:384:15:384:17 | a10 | main.rs:384:5:384:18 | print_i64(...) | | -| main.rs:385:5:385:13 | print_i64 | main.rs:385:15:385:16 | b4 | | -| main.rs:385:5:385:17 | print_i64(...) | main.rs:386:5:386:18 | ExprStmt | | -| main.rs:385:5:385:18 | ExprStmt | main.rs:385:5:385:13 | print_i64 | | -| main.rs:385:15:385:16 | b4 | main.rs:385:5:385:17 | print_i64(...) | | -| main.rs:386:5:386:13 | print_i64 | main.rs:386:15:386:16 | c2 | | -| main.rs:386:5:386:17 | print_i64(...) | main.rs:388:5:396:6 | ExprStmt | | -| main.rs:386:5:386:18 | ExprStmt | main.rs:386:5:386:13 | print_i64 | | -| main.rs:386:15:386:16 | c2 | main.rs:386:5:386:17 | print_i64(...) | | -| main.rs:388:5:392:5 | TupleExpr | main.rs:393:9:393:11 | a10 | | -| main.rs:388:5:396:5 | ... = ... | main.rs:397:5:397:19 | ExprStmt | | -| main.rs:388:5:396:6 | ExprStmt | main.rs:389:9:389:10 | c2 | | -| main.rs:389:9:389:10 | c2 | main.rs:390:9:390:10 | b4 | | -| main.rs:390:9:390:10 | b4 | main.rs:391:9:391:11 | a10 | | -| main.rs:391:9:391:11 | a10 | main.rs:388:5:392:5 | TupleExpr | | -| main.rs:392:9:396:5 | TupleExpr | main.rs:388:5:396:5 | ... = ... | | -| main.rs:393:9:393:11 | a10 | main.rs:394:9:394:10 | b4 | | -| main.rs:394:9:394:10 | b4 | main.rs:395:9:395:10 | c2 | | -| main.rs:395:9:395:10 | c2 | main.rs:392:9:396:5 | TupleExpr | | -| main.rs:397:5:397:13 | print_i64 | main.rs:397:15:397:17 | a10 | | -| main.rs:397:5:397:18 | print_i64(...) | main.rs:398:5:398:18 | ExprStmt | | -| main.rs:397:5:397:19 | ExprStmt | main.rs:397:5:397:13 | print_i64 | | -| main.rs:397:15:397:17 | a10 | main.rs:397:5:397:18 | print_i64(...) | | -| main.rs:398:5:398:13 | print_i64 | main.rs:398:15:398:16 | b4 | | -| main.rs:398:5:398:17 | print_i64(...) | main.rs:399:5:399:18 | ExprStmt | | -| main.rs:398:5:398:18 | ExprStmt | main.rs:398:5:398:13 | print_i64 | | -| main.rs:398:15:398:16 | b4 | main.rs:398:5:398:17 | print_i64(...) | | -| main.rs:399:5:399:13 | print_i64 | main.rs:399:15:399:16 | c2 | | -| main.rs:399:5:399:17 | print_i64(...) | main.rs:401:5:409:5 | ExprStmt | | -| main.rs:399:5:399:18 | ExprStmt | main.rs:399:5:399:13 | print_i64 | | -| main.rs:399:15:399:16 | c2 | main.rs:399:5:399:17 | print_i64(...) | | -| main.rs:401:5:409:5 | ExprStmt | main.rs:401:12:401:12 | 4 | | -| main.rs:401:5:409:5 | match ... { ... } | main.rs:411:5:411:19 | ExprStmt | | -| main.rs:401:11:401:16 | TupleExpr | main.rs:402:9:405:9 | TuplePat | | -| main.rs:401:12:401:12 | 4 | main.rs:401:15:401:15 | 5 | | -| main.rs:401:15:401:15 | 5 | main.rs:401:11:401:16 | TupleExpr | | -| main.rs:402:9:405:9 | TuplePat | main.rs:403:13:403:15 | a10 | match | -| main.rs:403:13:403:15 | a10 | main.rs:403:13:403:15 | a10 | | -| main.rs:403:13:403:15 | a10 | main.rs:404:13:404:14 | b4 | match | -| main.rs:404:13:404:14 | b4 | main.rs:404:13:404:14 | b4 | | -| main.rs:404:13:404:14 | b4 | main.rs:406:13:406:27 | ExprStmt | match | -| main.rs:405:14:408:9 | { ... } | main.rs:401:5:409:5 | match ... { ... } | | -| main.rs:406:13:406:21 | print_i64 | main.rs:406:23:406:25 | a10 | | -| main.rs:406:13:406:26 | print_i64(...) | main.rs:407:13:407:26 | ExprStmt | | -| main.rs:406:13:406:27 | ExprStmt | main.rs:406:13:406:21 | print_i64 | | -| main.rs:406:23:406:25 | a10 | main.rs:406:13:406:26 | print_i64(...) | | -| main.rs:407:13:407:21 | print_i64 | main.rs:407:23:407:24 | b4 | | -| main.rs:407:13:407:25 | print_i64(...) | main.rs:405:14:408:9 | { ... } | | -| main.rs:407:13:407:26 | ExprStmt | main.rs:407:13:407:21 | print_i64 | | -| main.rs:407:23:407:24 | b4 | main.rs:407:13:407:25 | print_i64(...) | | -| main.rs:411:5:411:13 | print_i64 | main.rs:411:15:411:17 | a10 | | -| main.rs:411:5:411:18 | print_i64(...) | main.rs:412:5:412:18 | ExprStmt | | -| main.rs:411:5:411:19 | ExprStmt | main.rs:411:5:411:13 | print_i64 | | -| main.rs:411:15:411:17 | a10 | main.rs:411:5:411:18 | print_i64(...) | | -| main.rs:412:5:412:13 | print_i64 | main.rs:412:15:412:16 | b4 | | -| main.rs:412:5:412:17 | print_i64(...) | main.rs:378:26:413:1 | { ... } | | -| main.rs:412:5:412:18 | ExprStmt | main.rs:412:5:412:13 | print_i64 | | -| main.rs:412:15:412:16 | b4 | main.rs:412:5:412:17 | print_i64(...) | | -| main.rs:415:1:430:1 | enter fn closure_variable | main.rs:416:5:418:10 | let ... = ... | | -| main.rs:415:1:430:1 | exit fn closure_variable (normal) | main.rs:415:1:430:1 | exit fn closure_variable | | -| main.rs:415:23:430:1 | { ... } | main.rs:415:1:430:1 | exit fn closure_variable (normal) | | -| main.rs:416:5:418:10 | let ... = ... | main.rs:417:9:418:9 | \|...\| x | | -| main.rs:416:9:416:23 | example_closure | main.rs:416:9:416:23 | example_closure | | -| main.rs:416:9:416:23 | example_closure | main.rs:419:5:420:27 | let ... = ... | match | -| main.rs:417:9:418:9 | \|...\| x | main.rs:416:9:416:23 | example_closure | | -| main.rs:417:9:418:9 | enter \|...\| x | main.rs:417:10:417:10 | x | | -| main.rs:417:9:418:9 | exit \|...\| x (normal) | main.rs:417:9:418:9 | exit \|...\| x | | -| main.rs:417:10:417:10 | x | main.rs:417:10:417:10 | x | | -| main.rs:417:10:417:10 | x | main.rs:417:10:417:15 | ...: i64 | match | -| main.rs:417:10:417:15 | ...: i64 | main.rs:418:9:418:9 | x | | -| main.rs:418:9:418:9 | x | main.rs:417:9:418:9 | exit \|...\| x (normal) | | -| main.rs:419:5:420:27 | let ... = ... | main.rs:420:9:420:23 | example_closure | | -| main.rs:419:9:419:10 | n1 | main.rs:419:9:419:10 | n1 | | -| main.rs:419:9:419:10 | n1 | main.rs:421:5:421:18 | ExprStmt | match | -| main.rs:420:9:420:23 | example_closure | main.rs:420:25:420:25 | 5 | | -| main.rs:420:9:420:26 | example_closure(...) | main.rs:419:9:419:10 | n1 | | -| main.rs:420:25:420:25 | 5 | main.rs:420:9:420:26 | example_closure(...) | | -| main.rs:421:5:421:13 | print_i64 | main.rs:421:15:421:16 | n1 | | -| main.rs:421:5:421:17 | print_i64(...) | main.rs:423:5:423:25 | ExprStmt | | -| main.rs:421:5:421:18 | ExprStmt | main.rs:421:5:421:13 | print_i64 | | -| main.rs:421:15:421:16 | n1 | main.rs:421:5:421:17 | print_i64(...) | | -| main.rs:423:5:423:22 | immutable_variable | main.rs:423:5:423:24 | immutable_variable(...) | | -| main.rs:423:5:423:24 | immutable_variable(...) | main.rs:424:5:426:10 | let ... = ... | | -| main.rs:423:5:423:25 | ExprStmt | main.rs:423:5:423:22 | immutable_variable | | -| main.rs:424:5:426:10 | let ... = ... | main.rs:425:5:426:9 | \|...\| x | | -| main.rs:424:9:424:26 | immutable_variable | main.rs:424:9:424:26 | immutable_variable | | -| main.rs:424:9:424:26 | immutable_variable | main.rs:427:5:428:30 | let ... = ... | match | -| main.rs:425:5:426:9 | \|...\| x | main.rs:424:9:424:26 | immutable_variable | | -| main.rs:425:5:426:9 | enter \|...\| x | main.rs:425:6:425:6 | x | | -| main.rs:425:5:426:9 | exit \|...\| x (normal) | main.rs:425:5:426:9 | exit \|...\| x | | -| main.rs:425:6:425:6 | x | main.rs:425:6:425:6 | x | | -| main.rs:425:6:425:6 | x | main.rs:425:6:425:11 | ...: i64 | match | -| main.rs:425:6:425:11 | ...: i64 | main.rs:426:9:426:9 | x | | -| main.rs:426:9:426:9 | x | main.rs:425:5:426:9 | exit \|...\| x (normal) | | -| main.rs:427:5:428:30 | let ... = ... | main.rs:428:9:428:26 | immutable_variable | | -| main.rs:427:9:427:10 | n2 | main.rs:427:9:427:10 | n2 | | -| main.rs:427:9:427:10 | n2 | main.rs:429:5:429:18 | ExprStmt | match | -| main.rs:428:9:428:26 | immutable_variable | main.rs:428:28:428:28 | 6 | | -| main.rs:428:9:428:29 | immutable_variable(...) | main.rs:427:9:427:10 | n2 | | -| main.rs:428:28:428:28 | 6 | main.rs:428:9:428:29 | immutable_variable(...) | | -| main.rs:429:5:429:13 | print_i64 | main.rs:429:15:429:16 | n2 | | -| main.rs:429:5:429:17 | print_i64(...) | main.rs:415:23:430:1 | { ... } | | -| main.rs:429:5:429:18 | ExprStmt | main.rs:429:5:429:13 | print_i64 | | -| main.rs:429:15:429:16 | n2 | main.rs:429:5:429:17 | print_i64(...) | | -| main.rs:432:1:462:1 | enter fn nested_function | main.rs:434:5:436:10 | let ... = ... | | -| main.rs:432:1:462:1 | exit fn nested_function (normal) | main.rs:432:1:462:1 | exit fn nested_function | | -| main.rs:432:22:462:1 | { ... } | main.rs:432:1:462:1 | exit fn nested_function (normal) | | -| main.rs:434:5:436:10 | let ... = ... | main.rs:435:9:436:9 | \|...\| x | | -| main.rs:434:9:434:9 | f | main.rs:434:9:434:9 | f | | -| main.rs:434:9:434:9 | f | main.rs:437:5:437:20 | ExprStmt | match | -| main.rs:435:9:436:9 | \|...\| x | main.rs:434:9:434:9 | f | | -| main.rs:435:9:436:9 | enter \|...\| x | main.rs:435:10:435:10 | x | | -| main.rs:435:9:436:9 | exit \|...\| x (normal) | main.rs:435:9:436:9 | exit \|...\| x | | -| main.rs:435:10:435:10 | x | main.rs:435:10:435:10 | x | | -| main.rs:435:10:435:10 | x | main.rs:435:10:435:15 | ...: i64 | match | -| main.rs:435:10:435:15 | ...: i64 | main.rs:436:9:436:9 | x | | -| main.rs:436:9:436:9 | x | main.rs:435:9:436:9 | exit \|...\| x (normal) | | -| main.rs:437:5:437:13 | print_i64 | main.rs:437:15:437:15 | f | | -| main.rs:437:5:437:19 | print_i64(...) | main.rs:439:5:442:5 | fn f | | -| main.rs:437:5:437:20 | ExprStmt | main.rs:437:5:437:13 | print_i64 | | -| main.rs:437:15:437:15 | f | main.rs:437:17:437:17 | 1 | | -| main.rs:437:15:437:18 | f(...) | main.rs:437:5:437:19 | print_i64(...) | | -| main.rs:437:17:437:17 | 1 | main.rs:437:15:437:18 | f(...) | | -| main.rs:439:5:442:5 | enter fn f | main.rs:439:10:439:10 | x | | -| main.rs:439:5:442:5 | exit fn f (normal) | main.rs:439:5:442:5 | exit fn f | | -| main.rs:439:5:442:5 | fn f | main.rs:444:5:444:20 | ExprStmt | | -| main.rs:439:10:439:10 | x | main.rs:439:10:439:10 | x | | -| main.rs:439:10:439:10 | x | main.rs:439:10:439:15 | ...: i64 | match | -| main.rs:439:10:439:15 | ...: i64 | main.rs:441:9:441:9 | x | | -| main.rs:440:5:442:5 | { ... } | main.rs:439:5:442:5 | exit fn f (normal) | | -| main.rs:441:9:441:9 | x | main.rs:441:13:441:13 | 1 | | -| main.rs:441:9:441:13 | ... + ... | main.rs:440:5:442:5 | { ... } | | -| main.rs:441:13:441:13 | 1 | main.rs:441:9:441:13 | ... + ... | | -| main.rs:444:5:444:13 | print_i64 | main.rs:444:15:444:15 | f | | -| main.rs:444:5:444:19 | print_i64(...) | main.rs:447:9:447:24 | ExprStmt | | -| main.rs:444:5:444:20 | ExprStmt | main.rs:444:5:444:13 | print_i64 | | -| main.rs:444:15:444:15 | f | main.rs:444:17:444:17 | 2 | | -| main.rs:444:15:444:18 | f(...) | main.rs:444:5:444:19 | print_i64(...) | | -| main.rs:444:17:444:17 | 2 | main.rs:444:15:444:18 | f(...) | | -| main.rs:446:5:461:5 | { ... } | main.rs:432:22:462:1 | { ... } | | -| main.rs:447:9:447:17 | print_i64 | main.rs:447:19:447:19 | f | | -| main.rs:447:9:447:23 | print_i64(...) | main.rs:448:9:451:9 | fn f | | -| main.rs:447:9:447:24 | ExprStmt | main.rs:447:9:447:17 | print_i64 | | -| main.rs:447:19:447:19 | f | main.rs:447:21:447:21 | 3 | | -| main.rs:447:19:447:22 | f(...) | main.rs:447:9:447:23 | print_i64(...) | | -| main.rs:447:21:447:21 | 3 | main.rs:447:19:447:22 | f(...) | | -| main.rs:448:9:451:9 | enter fn f | main.rs:448:14:448:14 | x | | -| main.rs:448:9:451:9 | exit fn f (normal) | main.rs:448:9:451:9 | exit fn f | | -| main.rs:448:9:451:9 | fn f | main.rs:453:9:455:9 | ExprStmt | | -| main.rs:448:14:448:14 | x | main.rs:448:14:448:14 | x | | -| main.rs:448:14:448:14 | x | main.rs:448:14:448:19 | ...: i64 | match | -| main.rs:448:14:448:19 | ...: i64 | main.rs:450:13:450:13 | 2 | | -| main.rs:449:9:451:9 | { ... } | main.rs:448:9:451:9 | exit fn f (normal) | | -| main.rs:450:13:450:13 | 2 | main.rs:450:17:450:17 | x | | -| main.rs:450:13:450:17 | ... * ... | main.rs:449:9:451:9 | { ... } | | -| main.rs:450:17:450:17 | x | main.rs:450:13:450:17 | ... * ... | | -| main.rs:453:9:455:9 | ExprStmt | main.rs:454:13:454:28 | ExprStmt | | -| main.rs:453:9:455:9 | { ... } | main.rs:457:9:459:14 | let ... = ... | | -| main.rs:454:13:454:21 | print_i64 | main.rs:454:23:454:23 | f | | -| main.rs:454:13:454:27 | print_i64(...) | main.rs:453:9:455:9 | { ... } | | -| main.rs:454:13:454:28 | ExprStmt | main.rs:454:13:454:21 | print_i64 | | -| main.rs:454:23:454:23 | f | main.rs:454:25:454:25 | 4 | | -| main.rs:454:23:454:26 | f(...) | main.rs:454:13:454:27 | print_i64(...) | | -| main.rs:454:25:454:25 | 4 | main.rs:454:23:454:26 | f(...) | | -| main.rs:457:9:459:14 | let ... = ... | main.rs:458:13:459:13 | \|...\| x | | -| main.rs:457:13:457:13 | f | main.rs:457:13:457:13 | f | | -| main.rs:457:13:457:13 | f | main.rs:460:9:460:24 | ExprStmt | match | -| main.rs:458:13:459:13 | \|...\| x | main.rs:457:13:457:13 | f | | -| main.rs:458:13:459:13 | enter \|...\| x | main.rs:458:14:458:14 | x | | -| main.rs:458:13:459:13 | exit \|...\| x (normal) | main.rs:458:13:459:13 | exit \|...\| x | | -| main.rs:458:14:458:14 | x | main.rs:458:14:458:14 | x | | -| main.rs:458:14:458:14 | x | main.rs:458:14:458:19 | ...: i64 | match | -| main.rs:458:14:458:19 | ...: i64 | main.rs:459:13:459:13 | x | | -| main.rs:459:13:459:13 | x | main.rs:458:13:459:13 | exit \|...\| x (normal) | | -| main.rs:460:9:460:17 | print_i64 | main.rs:460:19:460:19 | f | | -| main.rs:460:9:460:23 | print_i64(...) | main.rs:446:5:461:5 | { ... } | | -| main.rs:460:9:460:24 | ExprStmt | main.rs:460:9:460:17 | print_i64 | | -| main.rs:460:19:460:19 | f | main.rs:460:21:460:21 | 5 | | -| main.rs:460:19:460:22 | f(...) | main.rs:460:9:460:23 | print_i64(...) | | -| main.rs:460:21:460:21 | 5 | main.rs:460:19:460:22 | f(...) | | -| main.rs:464:1:471:1 | enter fn for_variable | main.rs:465:5:465:42 | let ... = ... | | -| main.rs:464:1:471:1 | exit fn for_variable (normal) | main.rs:464:1:471:1 | exit fn for_variable | | -| main.rs:464:19:471:1 | { ... } | main.rs:464:1:471:1 | exit fn for_variable (normal) | | -| main.rs:465:5:465:42 | let ... = ... | main.rs:465:15:465:22 | "apples" | | -| main.rs:465:9:465:9 | v | main.rs:465:9:465:9 | v | | -| main.rs:465:9:465:9 | v | main.rs:468:12:468:12 | v | match | -| main.rs:465:13:465:41 | &... | main.rs:465:9:465:9 | v | | -| main.rs:465:14:465:41 | [...] | main.rs:465:13:465:41 | &... | | -| main.rs:465:15:465:22 | "apples" | main.rs:465:25:465:30 | "cake" | | -| main.rs:465:25:465:30 | "cake" | main.rs:465:33:465:40 | "coffee" | | -| main.rs:465:33:465:40 | "coffee" | main.rs:465:14:465:41 | [...] | | -| main.rs:467:5:470:5 | for ... in ... { ... } | main.rs:464:19:471:1 | { ... } | | -| main.rs:467:9:467:12 | text | main.rs:467:5:470:5 | for ... in ... { ... } | no-match | -| main.rs:467:9:467:12 | text | main.rs:467:9:467:12 | text | | -| main.rs:467:9:467:12 | text | main.rs:469:9:469:24 | ExprStmt | match | -| main.rs:468:12:468:12 | v | main.rs:467:9:467:12 | text | | -| main.rs:468:14:470:5 | { ... } | main.rs:467:9:467:12 | text | | -| main.rs:469:9:469:17 | print_str | main.rs:469:19:469:22 | text | | -| main.rs:469:9:469:23 | print_str(...) | main.rs:468:14:470:5 | { ... } | | -| main.rs:469:9:469:24 | ExprStmt | main.rs:469:9:469:17 | print_str | | -| main.rs:469:19:469:22 | text | main.rs:469:9:469:23 | print_str(...) | | -| main.rs:473:1:479:1 | enter fn add_assign | main.rs:474:5:474:18 | let ... = 0 | | -| main.rs:473:1:479:1 | exit fn add_assign (normal) | main.rs:473:1:479:1 | exit fn add_assign | | -| main.rs:473:17:479:1 | { ... } | main.rs:473:1:479:1 | exit fn add_assign (normal) | | -| main.rs:474:5:474:18 | let ... = 0 | main.rs:474:17:474:17 | 0 | | -| main.rs:474:9:474:13 | mut a | main.rs:475:5:475:11 | ExprStmt | match | -| main.rs:474:13:474:13 | a | main.rs:474:9:474:13 | mut a | | -| main.rs:474:17:474:17 | 0 | main.rs:474:13:474:13 | a | | -| main.rs:475:5:475:5 | a | main.rs:475:10:475:10 | 1 | | -| main.rs:475:5:475:10 | ... += ... | main.rs:476:5:476:17 | ExprStmt | | -| main.rs:475:5:475:11 | ExprStmt | main.rs:475:5:475:5 | a | | -| main.rs:475:10:475:10 | 1 | main.rs:475:5:475:10 | ... += ... | | -| main.rs:476:5:476:13 | print_i64 | main.rs:476:15:476:15 | a | | -| main.rs:476:5:476:16 | print_i64(...) | main.rs:477:5:477:28 | ExprStmt | | -| main.rs:476:5:476:17 | ExprStmt | main.rs:476:5:476:13 | print_i64 | | -| main.rs:476:15:476:15 | a | main.rs:476:5:476:16 | print_i64(...) | | -| main.rs:477:5:477:27 | ... .add_assign(...) | main.rs:478:5:478:17 | ExprStmt | | -| main.rs:477:5:477:28 | ExprStmt | main.rs:477:11:477:11 | a | | -| main.rs:477:6:477:11 | &mut a | main.rs:477:25:477:26 | 10 | | -| main.rs:477:11:477:11 | a | main.rs:477:6:477:11 | &mut a | | -| main.rs:477:25:477:26 | 10 | main.rs:477:5:477:27 | ... .add_assign(...) | | +| main.rs:370:15:370:16 | a8 | main.rs:370:5:370:17 | print_str(...) | | +| main.rs:371:5:371:13 | print_str | main.rs:371:15:371:16 | b3 | | +| main.rs:371:5:371:17 | print_str(...) | main.rs:372:5:372:18 | ExprStmt | | +| main.rs:371:5:371:18 | ExprStmt | main.rs:371:5:371:13 | print_str | | +| main.rs:371:15:371:16 | b3 | main.rs:371:5:371:17 | print_str(...) | | +| main.rs:372:5:372:13 | print_str | main.rs:372:15:372:16 | c1 | | +| main.rs:372:5:372:17 | print_str(...) | main.rs:369:9:373:1 | { ... } | | +| main.rs:372:5:372:18 | ExprStmt | main.rs:372:5:372:13 | print_str | | +| main.rs:372:15:372:16 | c1 | main.rs:372:5:372:17 | print_str(...) | | +| main.rs:375:1:378:1 | enter fn param_pattern2 | main.rs:375:20:375:35 | ...::Left(...) | | +| main.rs:375:1:378:1 | exit fn param_pattern2 (normal) | main.rs:375:1:378:1 | exit fn param_pattern2 | | +| main.rs:375:19:375:64 | ...: Either | main.rs:377:5:377:18 | ExprStmt | | +| main.rs:375:20:375:35 | ...::Left(...) | main.rs:375:33:375:34 | a9 | match | +| main.rs:375:20:375:35 | ...::Left(...) | main.rs:375:39:375:55 | ...::Right(...) | no-match | +| main.rs:375:20:375:55 | ... \| ... | main.rs:375:19:375:64 | ...: Either | match | +| main.rs:375:33:375:34 | a9 | main.rs:375:20:375:55 | ... \| ... | match | +| main.rs:375:33:375:34 | a9 | main.rs:375:33:375:34 | a9 | | +| main.rs:375:39:375:55 | ...::Right(...) | main.rs:375:53:375:54 | a9 | match | +| main.rs:375:53:375:54 | a9 | main.rs:375:20:375:55 | ... \| ... | match | +| main.rs:375:53:375:54 | a9 | main.rs:375:53:375:54 | a9 | | +| main.rs:376:9:378:1 | { ... } | main.rs:375:1:378:1 | exit fn param_pattern2 (normal) | | +| main.rs:377:5:377:13 | print_i64 | main.rs:377:15:377:16 | a9 | | +| main.rs:377:5:377:17 | print_i64(...) | main.rs:376:9:378:1 | { ... } | | +| main.rs:377:5:377:18 | ExprStmt | main.rs:377:5:377:13 | print_i64 | | +| main.rs:377:15:377:16 | a9 | main.rs:377:5:377:17 | print_i64(...) | | +| main.rs:380:1:415:1 | enter fn destruct_assignment | main.rs:381:5:385:18 | let ... = ... | | +| main.rs:380:1:415:1 | exit fn destruct_assignment (normal) | main.rs:380:1:415:1 | exit fn destruct_assignment | | +| main.rs:380:26:415:1 | { ... } | main.rs:380:1:415:1 | exit fn destruct_assignment (normal) | | +| main.rs:381:5:385:18 | let ... = ... | main.rs:385:10:385:10 | 1 | | +| main.rs:381:9:385:5 | TuplePat | main.rs:382:13:382:15 | a10 | match | +| main.rs:382:9:382:15 | mut a10 | main.rs:383:13:383:14 | b4 | match | +| main.rs:382:13:382:15 | a10 | main.rs:382:9:382:15 | mut a10 | | +| main.rs:383:9:383:14 | mut b4 | main.rs:384:13:384:14 | c2 | match | +| main.rs:383:13:383:14 | b4 | main.rs:383:9:383:14 | mut b4 | | +| main.rs:384:9:384:14 | mut c2 | main.rs:386:5:386:19 | ExprStmt | match | +| main.rs:384:13:384:14 | c2 | main.rs:384:9:384:14 | mut c2 | | +| main.rs:385:9:385:17 | TupleExpr | main.rs:381:9:385:5 | TuplePat | | +| main.rs:385:10:385:10 | 1 | main.rs:385:13:385:13 | 2 | | +| main.rs:385:13:385:13 | 2 | main.rs:385:16:385:16 | 3 | | +| main.rs:385:16:385:16 | 3 | main.rs:385:9:385:17 | TupleExpr | | +| main.rs:386:5:386:13 | print_i64 | main.rs:386:15:386:17 | a10 | | +| main.rs:386:5:386:18 | print_i64(...) | main.rs:387:5:387:18 | ExprStmt | | +| main.rs:386:5:386:19 | ExprStmt | main.rs:386:5:386:13 | print_i64 | | +| main.rs:386:15:386:17 | a10 | main.rs:386:5:386:18 | print_i64(...) | | +| main.rs:387:5:387:13 | print_i64 | main.rs:387:15:387:16 | b4 | | +| main.rs:387:5:387:17 | print_i64(...) | main.rs:388:5:388:18 | ExprStmt | | +| main.rs:387:5:387:18 | ExprStmt | main.rs:387:5:387:13 | print_i64 | | +| main.rs:387:15:387:16 | b4 | main.rs:387:5:387:17 | print_i64(...) | | +| main.rs:388:5:388:13 | print_i64 | main.rs:388:15:388:16 | c2 | | +| main.rs:388:5:388:17 | print_i64(...) | main.rs:390:5:398:6 | ExprStmt | | +| main.rs:388:5:388:18 | ExprStmt | main.rs:388:5:388:13 | print_i64 | | +| main.rs:388:15:388:16 | c2 | main.rs:388:5:388:17 | print_i64(...) | | +| main.rs:390:5:394:5 | TupleExpr | main.rs:395:9:395:11 | a10 | | +| main.rs:390:5:398:5 | ... = ... | main.rs:399:5:399:19 | ExprStmt | | +| main.rs:390:5:398:6 | ExprStmt | main.rs:391:9:391:10 | c2 | | +| main.rs:391:9:391:10 | c2 | main.rs:392:9:392:10 | b4 | | +| main.rs:392:9:392:10 | b4 | main.rs:393:9:393:11 | a10 | | +| main.rs:393:9:393:11 | a10 | main.rs:390:5:394:5 | TupleExpr | | +| main.rs:394:9:398:5 | TupleExpr | main.rs:390:5:398:5 | ... = ... | | +| main.rs:395:9:395:11 | a10 | main.rs:396:9:396:10 | b4 | | +| main.rs:396:9:396:10 | b4 | main.rs:397:9:397:10 | c2 | | +| main.rs:397:9:397:10 | c2 | main.rs:394:9:398:5 | TupleExpr | | +| main.rs:399:5:399:13 | print_i64 | main.rs:399:15:399:17 | a10 | | +| main.rs:399:5:399:18 | print_i64(...) | main.rs:400:5:400:18 | ExprStmt | | +| main.rs:399:5:399:19 | ExprStmt | main.rs:399:5:399:13 | print_i64 | | +| main.rs:399:15:399:17 | a10 | main.rs:399:5:399:18 | print_i64(...) | | +| main.rs:400:5:400:13 | print_i64 | main.rs:400:15:400:16 | b4 | | +| main.rs:400:5:400:17 | print_i64(...) | main.rs:401:5:401:18 | ExprStmt | | +| main.rs:400:5:400:18 | ExprStmt | main.rs:400:5:400:13 | print_i64 | | +| main.rs:400:15:400:16 | b4 | main.rs:400:5:400:17 | print_i64(...) | | +| main.rs:401:5:401:13 | print_i64 | main.rs:401:15:401:16 | c2 | | +| main.rs:401:5:401:17 | print_i64(...) | main.rs:403:5:411:5 | ExprStmt | | +| main.rs:401:5:401:18 | ExprStmt | main.rs:401:5:401:13 | print_i64 | | +| main.rs:401:15:401:16 | c2 | main.rs:401:5:401:17 | print_i64(...) | | +| main.rs:403:5:411:5 | ExprStmt | main.rs:403:12:403:12 | 4 | | +| main.rs:403:5:411:5 | match ... { ... } | main.rs:413:5:413:19 | ExprStmt | | +| main.rs:403:11:403:16 | TupleExpr | main.rs:404:9:407:9 | TuplePat | | +| main.rs:403:12:403:12 | 4 | main.rs:403:15:403:15 | 5 | | +| main.rs:403:15:403:15 | 5 | main.rs:403:11:403:16 | TupleExpr | | +| main.rs:404:9:407:9 | TuplePat | main.rs:405:13:405:15 | a10 | match | +| main.rs:405:13:405:15 | a10 | main.rs:405:13:405:15 | a10 | | +| main.rs:405:13:405:15 | a10 | main.rs:406:13:406:14 | b4 | match | +| main.rs:406:13:406:14 | b4 | main.rs:406:13:406:14 | b4 | | +| main.rs:406:13:406:14 | b4 | main.rs:408:13:408:27 | ExprStmt | match | +| main.rs:407:14:410:9 | { ... } | main.rs:403:5:411:5 | match ... { ... } | | +| main.rs:408:13:408:21 | print_i64 | main.rs:408:23:408:25 | a10 | | +| main.rs:408:13:408:26 | print_i64(...) | main.rs:409:13:409:26 | ExprStmt | | +| main.rs:408:13:408:27 | ExprStmt | main.rs:408:13:408:21 | print_i64 | | +| main.rs:408:23:408:25 | a10 | main.rs:408:13:408:26 | print_i64(...) | | +| main.rs:409:13:409:21 | print_i64 | main.rs:409:23:409:24 | b4 | | +| main.rs:409:13:409:25 | print_i64(...) | main.rs:407:14:410:9 | { ... } | | +| main.rs:409:13:409:26 | ExprStmt | main.rs:409:13:409:21 | print_i64 | | +| main.rs:409:23:409:24 | b4 | main.rs:409:13:409:25 | print_i64(...) | | +| main.rs:413:5:413:13 | print_i64 | main.rs:413:15:413:17 | a10 | | +| main.rs:413:5:413:18 | print_i64(...) | main.rs:414:5:414:18 | ExprStmt | | +| main.rs:413:5:413:19 | ExprStmt | main.rs:413:5:413:13 | print_i64 | | +| main.rs:413:15:413:17 | a10 | main.rs:413:5:413:18 | print_i64(...) | | +| main.rs:414:5:414:13 | print_i64 | main.rs:414:15:414:16 | b4 | | +| main.rs:414:5:414:17 | print_i64(...) | main.rs:380:26:415:1 | { ... } | | +| main.rs:414:5:414:18 | ExprStmt | main.rs:414:5:414:13 | print_i64 | | +| main.rs:414:15:414:16 | b4 | main.rs:414:5:414:17 | print_i64(...) | | +| main.rs:417:1:432:1 | enter fn closure_variable | main.rs:418:5:420:10 | let ... = ... | | +| main.rs:417:1:432:1 | exit fn closure_variable (normal) | main.rs:417:1:432:1 | exit fn closure_variable | | +| main.rs:417:23:432:1 | { ... } | main.rs:417:1:432:1 | exit fn closure_variable (normal) | | +| main.rs:418:5:420:10 | let ... = ... | main.rs:419:9:420:9 | \|...\| x | | +| main.rs:418:9:418:23 | example_closure | main.rs:418:9:418:23 | example_closure | | +| main.rs:418:9:418:23 | example_closure | main.rs:421:5:422:27 | let ... = ... | match | +| main.rs:419:9:420:9 | \|...\| x | main.rs:418:9:418:23 | example_closure | | +| main.rs:419:9:420:9 | enter \|...\| x | main.rs:419:10:419:10 | x | | +| main.rs:419:9:420:9 | exit \|...\| x (normal) | main.rs:419:9:420:9 | exit \|...\| x | | +| main.rs:419:10:419:10 | x | main.rs:419:10:419:10 | x | | +| main.rs:419:10:419:10 | x | main.rs:419:10:419:15 | ...: i64 | match | +| main.rs:419:10:419:15 | ...: i64 | main.rs:420:9:420:9 | x | | +| main.rs:420:9:420:9 | x | main.rs:419:9:420:9 | exit \|...\| x (normal) | | +| main.rs:421:5:422:27 | let ... = ... | main.rs:422:9:422:23 | example_closure | | +| main.rs:421:9:421:10 | n1 | main.rs:421:9:421:10 | n1 | | +| main.rs:421:9:421:10 | n1 | main.rs:423:5:423:18 | ExprStmt | match | +| main.rs:422:9:422:23 | example_closure | main.rs:422:25:422:25 | 5 | | +| main.rs:422:9:422:26 | example_closure(...) | main.rs:421:9:421:10 | n1 | | +| main.rs:422:25:422:25 | 5 | main.rs:422:9:422:26 | example_closure(...) | | +| main.rs:423:5:423:13 | print_i64 | main.rs:423:15:423:16 | n1 | | +| main.rs:423:5:423:17 | print_i64(...) | main.rs:425:5:425:25 | ExprStmt | | +| main.rs:423:5:423:18 | ExprStmt | main.rs:423:5:423:13 | print_i64 | | +| main.rs:423:15:423:16 | n1 | main.rs:423:5:423:17 | print_i64(...) | | +| main.rs:425:5:425:22 | immutable_variable | main.rs:425:5:425:24 | immutable_variable(...) | | +| main.rs:425:5:425:24 | immutable_variable(...) | main.rs:426:5:428:10 | let ... = ... | | +| main.rs:425:5:425:25 | ExprStmt | main.rs:425:5:425:22 | immutable_variable | | +| main.rs:426:5:428:10 | let ... = ... | main.rs:427:5:428:9 | \|...\| x | | +| main.rs:426:9:426:26 | immutable_variable | main.rs:426:9:426:26 | immutable_variable | | +| main.rs:426:9:426:26 | immutable_variable | main.rs:429:5:430:30 | let ... = ... | match | +| main.rs:427:5:428:9 | \|...\| x | main.rs:426:9:426:26 | immutable_variable | | +| main.rs:427:5:428:9 | enter \|...\| x | main.rs:427:6:427:6 | x | | +| main.rs:427:5:428:9 | exit \|...\| x (normal) | main.rs:427:5:428:9 | exit \|...\| x | | +| main.rs:427:6:427:6 | x | main.rs:427:6:427:6 | x | | +| main.rs:427:6:427:6 | x | main.rs:427:6:427:11 | ...: i64 | match | +| main.rs:427:6:427:11 | ...: i64 | main.rs:428:9:428:9 | x | | +| main.rs:428:9:428:9 | x | main.rs:427:5:428:9 | exit \|...\| x (normal) | | +| main.rs:429:5:430:30 | let ... = ... | main.rs:430:9:430:26 | immutable_variable | | +| main.rs:429:9:429:10 | n2 | main.rs:429:9:429:10 | n2 | | +| main.rs:429:9:429:10 | n2 | main.rs:431:5:431:18 | ExprStmt | match | +| main.rs:430:9:430:26 | immutable_variable | main.rs:430:28:430:28 | 6 | | +| main.rs:430:9:430:29 | immutable_variable(...) | main.rs:429:9:429:10 | n2 | | +| main.rs:430:28:430:28 | 6 | main.rs:430:9:430:29 | immutable_variable(...) | | +| main.rs:431:5:431:13 | print_i64 | main.rs:431:15:431:16 | n2 | | +| main.rs:431:5:431:17 | print_i64(...) | main.rs:417:23:432:1 | { ... } | | +| main.rs:431:5:431:18 | ExprStmt | main.rs:431:5:431:13 | print_i64 | | +| main.rs:431:15:431:16 | n2 | main.rs:431:5:431:17 | print_i64(...) | | +| main.rs:434:1:464:1 | enter fn nested_function | main.rs:436:5:438:10 | let ... = ... | | +| main.rs:434:1:464:1 | exit fn nested_function (normal) | main.rs:434:1:464:1 | exit fn nested_function | | +| main.rs:434:22:464:1 | { ... } | main.rs:434:1:464:1 | exit fn nested_function (normal) | | +| main.rs:436:5:438:10 | let ... = ... | main.rs:437:9:438:9 | \|...\| x | | +| main.rs:436:9:436:9 | f | main.rs:436:9:436:9 | f | | +| main.rs:436:9:436:9 | f | main.rs:439:5:439:20 | ExprStmt | match | +| main.rs:437:9:438:9 | \|...\| x | main.rs:436:9:436:9 | f | | +| main.rs:437:9:438:9 | enter \|...\| x | main.rs:437:10:437:10 | x | | +| main.rs:437:9:438:9 | exit \|...\| x (normal) | main.rs:437:9:438:9 | exit \|...\| x | | +| main.rs:437:10:437:10 | x | main.rs:437:10:437:10 | x | | +| main.rs:437:10:437:10 | x | main.rs:437:10:437:15 | ...: i64 | match | +| main.rs:437:10:437:15 | ...: i64 | main.rs:438:9:438:9 | x | | +| main.rs:438:9:438:9 | x | main.rs:437:9:438:9 | exit \|...\| x (normal) | | +| main.rs:439:5:439:13 | print_i64 | main.rs:439:15:439:15 | f | | +| main.rs:439:5:439:19 | print_i64(...) | main.rs:441:5:444:5 | fn f | | +| main.rs:439:5:439:20 | ExprStmt | main.rs:439:5:439:13 | print_i64 | | +| main.rs:439:15:439:15 | f | main.rs:439:17:439:17 | 1 | | +| main.rs:439:15:439:18 | f(...) | main.rs:439:5:439:19 | print_i64(...) | | +| main.rs:439:17:439:17 | 1 | main.rs:439:15:439:18 | f(...) | | +| main.rs:441:5:444:5 | enter fn f | main.rs:441:10:441:10 | x | | +| main.rs:441:5:444:5 | exit fn f (normal) | main.rs:441:5:444:5 | exit fn f | | +| main.rs:441:5:444:5 | fn f | main.rs:446:5:446:20 | ExprStmt | | +| main.rs:441:10:441:10 | x | main.rs:441:10:441:10 | x | | +| main.rs:441:10:441:10 | x | main.rs:441:10:441:15 | ...: i64 | match | +| main.rs:441:10:441:15 | ...: i64 | main.rs:443:9:443:9 | x | | +| main.rs:442:5:444:5 | { ... } | main.rs:441:5:444:5 | exit fn f (normal) | | +| main.rs:443:9:443:9 | x | main.rs:443:13:443:13 | 1 | | +| main.rs:443:9:443:13 | ... + ... | main.rs:442:5:444:5 | { ... } | | +| main.rs:443:13:443:13 | 1 | main.rs:443:9:443:13 | ... + ... | | +| main.rs:446:5:446:13 | print_i64 | main.rs:446:15:446:15 | f | | +| main.rs:446:5:446:19 | print_i64(...) | main.rs:449:9:449:24 | ExprStmt | | +| main.rs:446:5:446:20 | ExprStmt | main.rs:446:5:446:13 | print_i64 | | +| main.rs:446:15:446:15 | f | main.rs:446:17:446:17 | 2 | | +| main.rs:446:15:446:18 | f(...) | main.rs:446:5:446:19 | print_i64(...) | | +| main.rs:446:17:446:17 | 2 | main.rs:446:15:446:18 | f(...) | | +| main.rs:448:5:463:5 | { ... } | main.rs:434:22:464:1 | { ... } | | +| main.rs:449:9:449:17 | print_i64 | main.rs:449:19:449:19 | f | | +| main.rs:449:9:449:23 | print_i64(...) | main.rs:450:9:453:9 | fn f | | +| main.rs:449:9:449:24 | ExprStmt | main.rs:449:9:449:17 | print_i64 | | +| main.rs:449:19:449:19 | f | main.rs:449:21:449:21 | 3 | | +| main.rs:449:19:449:22 | f(...) | main.rs:449:9:449:23 | print_i64(...) | | +| main.rs:449:21:449:21 | 3 | main.rs:449:19:449:22 | f(...) | | +| main.rs:450:9:453:9 | enter fn f | main.rs:450:14:450:14 | x | | +| main.rs:450:9:453:9 | exit fn f (normal) | main.rs:450:9:453:9 | exit fn f | | +| main.rs:450:9:453:9 | fn f | main.rs:455:9:457:9 | ExprStmt | | +| main.rs:450:14:450:14 | x | main.rs:450:14:450:14 | x | | +| main.rs:450:14:450:14 | x | main.rs:450:14:450:19 | ...: i64 | match | +| main.rs:450:14:450:19 | ...: i64 | main.rs:452:13:452:13 | 2 | | +| main.rs:451:9:453:9 | { ... } | main.rs:450:9:453:9 | exit fn f (normal) | | +| main.rs:452:13:452:13 | 2 | main.rs:452:17:452:17 | x | | +| main.rs:452:13:452:17 | ... * ... | main.rs:451:9:453:9 | { ... } | | +| main.rs:452:17:452:17 | x | main.rs:452:13:452:17 | ... * ... | | +| main.rs:455:9:457:9 | ExprStmt | main.rs:456:13:456:28 | ExprStmt | | +| main.rs:455:9:457:9 | { ... } | main.rs:459:9:461:14 | let ... = ... | | +| main.rs:456:13:456:21 | print_i64 | main.rs:456:23:456:23 | f | | +| main.rs:456:13:456:27 | print_i64(...) | main.rs:455:9:457:9 | { ... } | | +| main.rs:456:13:456:28 | ExprStmt | main.rs:456:13:456:21 | print_i64 | | +| main.rs:456:23:456:23 | f | main.rs:456:25:456:25 | 4 | | +| main.rs:456:23:456:26 | f(...) | main.rs:456:13:456:27 | print_i64(...) | | +| main.rs:456:25:456:25 | 4 | main.rs:456:23:456:26 | f(...) | | +| main.rs:459:9:461:14 | let ... = ... | main.rs:460:13:461:13 | \|...\| x | | +| main.rs:459:13:459:13 | f | main.rs:459:13:459:13 | f | | +| main.rs:459:13:459:13 | f | main.rs:462:9:462:24 | ExprStmt | match | +| main.rs:460:13:461:13 | \|...\| x | main.rs:459:13:459:13 | f | | +| main.rs:460:13:461:13 | enter \|...\| x | main.rs:460:14:460:14 | x | | +| main.rs:460:13:461:13 | exit \|...\| x (normal) | main.rs:460:13:461:13 | exit \|...\| x | | +| main.rs:460:14:460:14 | x | main.rs:460:14:460:14 | x | | +| main.rs:460:14:460:14 | x | main.rs:460:14:460:19 | ...: i64 | match | +| main.rs:460:14:460:19 | ...: i64 | main.rs:461:13:461:13 | x | | +| main.rs:461:13:461:13 | x | main.rs:460:13:461:13 | exit \|...\| x (normal) | | +| main.rs:462:9:462:17 | print_i64 | main.rs:462:19:462:19 | f | | +| main.rs:462:9:462:23 | print_i64(...) | main.rs:448:5:463:5 | { ... } | | +| main.rs:462:9:462:24 | ExprStmt | main.rs:462:9:462:17 | print_i64 | | +| main.rs:462:19:462:19 | f | main.rs:462:21:462:21 | 5 | | +| main.rs:462:19:462:22 | f(...) | main.rs:462:9:462:23 | print_i64(...) | | +| main.rs:462:21:462:21 | 5 | main.rs:462:19:462:22 | f(...) | | +| main.rs:466:1:473:1 | enter fn for_variable | main.rs:467:5:467:42 | let ... = ... | | +| main.rs:466:1:473:1 | exit fn for_variable (normal) | main.rs:466:1:473:1 | exit fn for_variable | | +| main.rs:466:19:473:1 | { ... } | main.rs:466:1:473:1 | exit fn for_variable (normal) | | +| main.rs:467:5:467:42 | let ... = ... | main.rs:467:15:467:22 | "apples" | | +| main.rs:467:9:467:9 | v | main.rs:467:9:467:9 | v | | +| main.rs:467:9:467:9 | v | main.rs:470:12:470:12 | v | match | +| main.rs:467:13:467:41 | &... | main.rs:467:9:467:9 | v | | +| main.rs:467:14:467:41 | [...] | main.rs:467:13:467:41 | &... | | +| main.rs:467:15:467:22 | "apples" | main.rs:467:25:467:30 | "cake" | | +| main.rs:467:25:467:30 | "cake" | main.rs:467:33:467:40 | "coffee" | | +| main.rs:467:33:467:40 | "coffee" | main.rs:467:14:467:41 | [...] | | +| main.rs:469:5:472:5 | for ... in ... { ... } | main.rs:466:19:473:1 | { ... } | | +| main.rs:469:9:469:12 | text | main.rs:469:5:472:5 | for ... in ... { ... } | no-match | +| main.rs:469:9:469:12 | text | main.rs:469:9:469:12 | text | | +| main.rs:469:9:469:12 | text | main.rs:471:9:471:24 | ExprStmt | match | +| main.rs:470:12:470:12 | v | main.rs:469:9:469:12 | text | | +| main.rs:470:14:472:5 | { ... } | main.rs:469:9:469:12 | text | | +| main.rs:471:9:471:17 | print_str | main.rs:471:19:471:22 | text | | +| main.rs:471:9:471:23 | print_str(...) | main.rs:470:14:472:5 | { ... } | | +| main.rs:471:9:471:24 | ExprStmt | main.rs:471:9:471:17 | print_str | | +| main.rs:471:19:471:22 | text | main.rs:471:9:471:23 | print_str(...) | | +| main.rs:475:1:481:1 | enter fn add_assign | main.rs:476:5:476:18 | let ... = 0 | | +| main.rs:475:1:481:1 | exit fn add_assign (normal) | main.rs:475:1:481:1 | exit fn add_assign | | +| main.rs:475:17:481:1 | { ... } | main.rs:475:1:481:1 | exit fn add_assign (normal) | | +| main.rs:476:5:476:18 | let ... = 0 | main.rs:476:17:476:17 | 0 | | +| main.rs:476:9:476:13 | mut a | main.rs:477:5:477:11 | ExprStmt | match | +| main.rs:476:13:476:13 | a | main.rs:476:9:476:13 | mut a | | +| main.rs:476:17:476:17 | 0 | main.rs:476:13:476:13 | a | | +| main.rs:477:5:477:5 | a | main.rs:477:10:477:10 | 1 | | +| main.rs:477:5:477:10 | ... += ... | main.rs:478:5:478:17 | ExprStmt | | +| main.rs:477:5:477:11 | ExprStmt | main.rs:477:5:477:5 | a | | +| main.rs:477:10:477:10 | 1 | main.rs:477:5:477:10 | ... += ... | | | main.rs:478:5:478:13 | print_i64 | main.rs:478:15:478:15 | a | | -| main.rs:478:5:478:16 | print_i64(...) | main.rs:473:17:479:1 | { ... } | | +| main.rs:478:5:478:16 | print_i64(...) | main.rs:479:5:479:28 | ExprStmt | | | main.rs:478:5:478:17 | ExprStmt | main.rs:478:5:478:13 | print_i64 | | | main.rs:478:15:478:15 | a | main.rs:478:5:478:16 | print_i64(...) | | -| main.rs:481:1:487:1 | enter fn mutate | main.rs:482:5:482:18 | let ... = 1 | | -| main.rs:481:1:487:1 | exit fn mutate (normal) | main.rs:481:1:487:1 | exit fn mutate | | -| main.rs:481:13:487:1 | { ... } | main.rs:481:1:487:1 | exit fn mutate (normal) | | -| main.rs:482:5:482:18 | let ... = 1 | main.rs:482:17:482:17 | 1 | | -| main.rs:482:9:482:13 | mut i | main.rs:483:5:484:15 | let ... = ... | match | -| main.rs:482:13:482:13 | i | main.rs:482:9:482:13 | mut i | | -| main.rs:482:17:482:17 | 1 | main.rs:482:13:482:13 | i | | -| main.rs:483:5:484:15 | let ... = ... | main.rs:484:14:484:14 | i | | -| main.rs:483:9:483:13 | ref_i | main.rs:483:9:483:13 | ref_i | | -| main.rs:483:9:483:13 | ref_i | main.rs:485:5:485:15 | ExprStmt | match | -| main.rs:484:9:484:14 | &mut i | main.rs:483:9:483:13 | ref_i | | -| main.rs:484:14:484:14 | i | main.rs:484:9:484:14 | &mut i | | -| main.rs:485:5:485:10 | * ... | main.rs:485:14:485:14 | 2 | | -| main.rs:485:5:485:14 | ... = ... | main.rs:486:5:486:17 | ExprStmt | | -| main.rs:485:5:485:15 | ExprStmt | main.rs:485:6:485:10 | ref_i | | -| main.rs:485:6:485:10 | ref_i | main.rs:485:5:485:10 | * ... | | -| main.rs:485:14:485:14 | 2 | main.rs:485:5:485:14 | ... = ... | | -| main.rs:486:5:486:13 | print_i64 | main.rs:486:15:486:15 | i | | -| main.rs:486:5:486:16 | print_i64(...) | main.rs:481:13:487:1 | { ... } | | -| main.rs:486:5:486:17 | ExprStmt | main.rs:486:5:486:13 | print_i64 | | -| main.rs:486:15:486:15 | i | main.rs:486:5:486:16 | print_i64(...) | | -| main.rs:489:1:494:1 | enter fn mutate_param | main.rs:489:17:489:17 | x | | -| main.rs:489:1:494:1 | exit fn mutate_param (normal) | main.rs:489:1:494:1 | exit fn mutate_param | | -| main.rs:489:17:489:17 | x | main.rs:489:17:489:17 | x | | -| main.rs:489:17:489:17 | x | main.rs:489:17:489:27 | ...: ... | match | -| main.rs:489:17:489:27 | ...: ... | main.rs:490:5:492:11 | ExprStmt | | -| main.rs:490:5:490:6 | * ... | main.rs:491:10:491:10 | x | | -| main.rs:490:5:492:10 | ... = ... | main.rs:493:5:493:13 | ExprStmt | | -| main.rs:490:5:492:11 | ExprStmt | main.rs:490:6:490:6 | x | | -| main.rs:490:6:490:6 | x | main.rs:490:5:490:6 | * ... | | -| main.rs:491:9:491:10 | * ... | main.rs:492:10:492:10 | x | | -| main.rs:491:9:492:10 | ... + ... | main.rs:490:5:492:10 | ... = ... | | -| main.rs:491:10:491:10 | x | main.rs:491:9:491:10 | * ... | | -| main.rs:492:9:492:10 | * ... | main.rs:491:9:492:10 | ... + ... | | -| main.rs:492:10:492:10 | x | main.rs:492:9:492:10 | * ... | | -| main.rs:493:5:493:12 | return x | main.rs:489:1:494:1 | exit fn mutate_param (normal) | return | -| main.rs:493:5:493:13 | ExprStmt | main.rs:493:12:493:12 | x | | -| main.rs:493:12:493:12 | x | main.rs:493:5:493:12 | return x | | -| main.rs:496:1:502:1 | enter fn mutate_param2 | main.rs:496:22:496:22 | x | | -| main.rs:496:1:502:1 | exit fn mutate_param2 (normal) | main.rs:496:1:502:1 | exit fn mutate_param2 | | -| main.rs:496:22:496:22 | x | main.rs:496:22:496:22 | x | | -| main.rs:496:22:496:22 | x | main.rs:496:22:496:35 | ...: ... | match | -| main.rs:496:22:496:35 | ...: ... | main.rs:496:38:496:38 | y | | -| main.rs:496:38:496:38 | y | main.rs:496:38:496:38 | y | | -| main.rs:496:38:496:38 | y | main.rs:496:38:496:56 | ...: ... | match | -| main.rs:496:38:496:56 | ...: ... | main.rs:497:5:499:11 | ExprStmt | | -| main.rs:496:59:502:1 | { ... } | main.rs:496:1:502:1 | exit fn mutate_param2 (normal) | | -| main.rs:497:5:497:6 | * ... | main.rs:498:10:498:10 | x | | -| main.rs:497:5:499:10 | ... = ... | main.rs:500:5:501:10 | ExprStmt | | -| main.rs:497:5:499:11 | ExprStmt | main.rs:497:6:497:6 | x | | -| main.rs:497:6:497:6 | x | main.rs:497:5:497:6 | * ... | | -| main.rs:498:9:498:10 | * ... | main.rs:499:10:499:10 | x | | -| main.rs:498:9:499:10 | ... + ... | main.rs:497:5:499:10 | ... = ... | | -| main.rs:498:10:498:10 | x | main.rs:498:9:498:10 | * ... | | -| main.rs:499:9:499:10 | * ... | main.rs:498:9:499:10 | ... + ... | | -| main.rs:499:10:499:10 | x | main.rs:499:9:499:10 | * ... | | -| main.rs:500:5:500:6 | * ... | main.rs:501:9:501:9 | x | | -| main.rs:500:5:501:9 | ... = ... | main.rs:496:59:502:1 | { ... } | | -| main.rs:500:5:501:10 | ExprStmt | main.rs:500:6:500:6 | y | | -| main.rs:500:6:500:6 | y | main.rs:500:5:500:6 | * ... | | -| main.rs:501:9:501:9 | x | main.rs:500:5:501:9 | ... = ... | | -| main.rs:504:1:524:1 | enter fn mutate_arg | main.rs:505:5:505:18 | let ... = 2 | | -| main.rs:504:1:524:1 | exit fn mutate_arg (normal) | main.rs:504:1:524:1 | exit fn mutate_arg | | -| main.rs:504:17:524:1 | { ... } | main.rs:504:1:524:1 | exit fn mutate_arg (normal) | | -| main.rs:505:5:505:18 | let ... = 2 | main.rs:505:17:505:17 | 2 | | -| main.rs:505:9:505:13 | mut x | main.rs:506:5:507:29 | let ... = ... | match | -| main.rs:505:13:505:13 | x | main.rs:505:9:505:13 | mut x | | -| main.rs:505:17:505:17 | 2 | main.rs:505:13:505:13 | x | | -| main.rs:506:5:507:29 | let ... = ... | main.rs:507:9:507:20 | mutate_param | | -| main.rs:506:9:506:9 | y | main.rs:506:9:506:9 | y | | -| main.rs:506:9:506:9 | y | main.rs:508:5:508:12 | ExprStmt | match | -| main.rs:507:9:507:20 | mutate_param | main.rs:507:27:507:27 | x | | -| main.rs:507:9:507:28 | mutate_param(...) | main.rs:506:9:506:9 | y | | -| main.rs:507:22:507:27 | &mut x | main.rs:507:9:507:28 | mutate_param(...) | | -| main.rs:507:27:507:27 | x | main.rs:507:22:507:27 | &mut x | | -| main.rs:508:5:508:6 | * ... | main.rs:508:10:508:11 | 10 | | -| main.rs:508:5:508:11 | ... = ... | main.rs:511:5:511:17 | ExprStmt | | -| main.rs:508:5:508:12 | ExprStmt | main.rs:508:6:508:6 | y | | -| main.rs:508:6:508:6 | y | main.rs:508:5:508:6 | * ... | | -| main.rs:508:10:508:11 | 10 | main.rs:508:5:508:11 | ... = ... | | -| main.rs:511:5:511:13 | print_i64 | main.rs:511:15:511:15 | x | | -| main.rs:511:5:511:16 | print_i64(...) | main.rs:513:5:513:18 | let ... = 4 | | -| main.rs:511:5:511:17 | ExprStmt | main.rs:511:5:511:13 | print_i64 | | -| main.rs:511:15:511:15 | x | main.rs:511:5:511:16 | print_i64(...) | | -| main.rs:513:5:513:18 | let ... = 4 | main.rs:513:17:513:17 | 4 | | -| main.rs:513:9:513:13 | mut z | main.rs:514:5:515:20 | let ... = ... | match | -| main.rs:513:13:513:13 | z | main.rs:513:9:513:13 | mut z | | -| main.rs:513:17:513:17 | 4 | main.rs:513:13:513:13 | z | | -| main.rs:514:5:515:20 | let ... = ... | main.rs:515:19:515:19 | x | | -| main.rs:514:9:514:9 | w | main.rs:514:9:514:9 | w | | -| main.rs:514:9:514:9 | w | main.rs:516:5:519:6 | ExprStmt | match | -| main.rs:515:9:515:19 | &mut ... | main.rs:514:9:514:9 | w | | -| main.rs:515:14:515:19 | &mut x | main.rs:515:9:515:19 | &mut ... | | -| main.rs:515:19:515:19 | x | main.rs:515:14:515:19 | &mut x | | -| main.rs:516:5:516:17 | mutate_param2 | main.rs:517:14:517:14 | z | | -| main.rs:516:5:519:5 | mutate_param2(...) | main.rs:520:5:520:13 | ExprStmt | | -| main.rs:516:5:519:6 | ExprStmt | main.rs:516:5:516:17 | mutate_param2 | | -| main.rs:517:9:517:14 | &mut z | main.rs:518:9:518:9 | w | | -| main.rs:517:14:517:14 | z | main.rs:517:9:517:14 | &mut z | | -| main.rs:518:9:518:9 | w | main.rs:516:5:519:5 | mutate_param2(...) | | -| main.rs:520:5:520:7 | * ... | main.rs:520:11:520:12 | 11 | | -| main.rs:520:5:520:12 | ... = ... | main.rs:523:5:523:17 | ExprStmt | | -| main.rs:520:5:520:13 | ExprStmt | main.rs:520:7:520:7 | w | | -| main.rs:520:6:520:7 | * ... | main.rs:520:5:520:7 | * ... | | -| main.rs:520:7:520:7 | w | main.rs:520:6:520:7 | * ... | | -| main.rs:520:11:520:12 | 11 | main.rs:520:5:520:12 | ... = ... | | -| main.rs:523:5:523:13 | print_i64 | main.rs:523:15:523:15 | z | | -| main.rs:523:5:523:16 | print_i64(...) | main.rs:504:17:524:1 | { ... } | | -| main.rs:523:5:523:17 | ExprStmt | main.rs:523:5:523:13 | print_i64 | | -| main.rs:523:15:523:15 | z | main.rs:523:5:523:16 | print_i64(...) | | -| main.rs:526:1:532:1 | enter fn alias | main.rs:527:5:527:18 | let ... = 1 | | -| main.rs:526:1:532:1 | exit fn alias (normal) | main.rs:526:1:532:1 | exit fn alias | | -| main.rs:526:12:532:1 | { ... } | main.rs:526:1:532:1 | exit fn alias (normal) | | -| main.rs:527:5:527:18 | let ... = 1 | main.rs:527:17:527:17 | 1 | | -| main.rs:527:9:527:13 | mut x | main.rs:528:5:529:15 | let ... = ... | match | -| main.rs:527:13:527:13 | x | main.rs:527:9:527:13 | mut x | | -| main.rs:527:17:527:17 | 1 | main.rs:527:13:527:13 | x | | -| main.rs:528:5:529:15 | let ... = ... | main.rs:529:14:529:14 | x | | -| main.rs:528:9:528:9 | y | main.rs:528:9:528:9 | y | | -| main.rs:528:9:528:9 | y | main.rs:530:5:530:11 | ExprStmt | match | -| main.rs:529:9:529:14 | &mut x | main.rs:528:9:528:9 | y | | -| main.rs:529:14:529:14 | x | main.rs:529:9:529:14 | &mut x | | -| main.rs:530:5:530:6 | * ... | main.rs:530:10:530:10 | 2 | | -| main.rs:530:5:530:10 | ... = ... | main.rs:531:5:531:17 | ExprStmt | | -| main.rs:530:5:530:11 | ExprStmt | main.rs:530:6:530:6 | y | | -| main.rs:530:6:530:6 | y | main.rs:530:5:530:6 | * ... | | -| main.rs:530:10:530:10 | 2 | main.rs:530:5:530:10 | ... = ... | | -| main.rs:531:5:531:13 | print_i64 | main.rs:531:15:531:15 | x | | -| main.rs:531:5:531:16 | print_i64(...) | main.rs:526:12:532:1 | { ... } | | -| main.rs:531:5:531:17 | ExprStmt | main.rs:531:5:531:13 | print_i64 | | -| main.rs:531:15:531:15 | x | main.rs:531:5:531:16 | print_i64(...) | | -| main.rs:534:1:543:1 | enter fn capture_immut | main.rs:535:5:535:16 | let ... = 100 | | -| main.rs:534:1:543:1 | exit fn capture_immut (normal) | main.rs:534:1:543:1 | exit fn capture_immut | | -| main.rs:534:20:543:1 | { ... } | main.rs:534:1:543:1 | exit fn capture_immut (normal) | | -| main.rs:535:5:535:16 | let ... = 100 | main.rs:535:13:535:15 | 100 | | -| main.rs:535:9:535:9 | x | main.rs:535:9:535:9 | x | | -| main.rs:535:9:535:9 | x | main.rs:538:5:540:6 | let ... = ... | match | -| main.rs:535:13:535:15 | 100 | main.rs:535:9:535:9 | x | | -| main.rs:538:5:540:6 | let ... = ... | main.rs:538:15:540:5 | \|...\| ... | | -| main.rs:538:9:538:11 | cap | main.rs:538:9:538:11 | cap | | -| main.rs:538:9:538:11 | cap | main.rs:541:5:541:10 | ExprStmt | match | -| main.rs:538:15:540:5 | \|...\| ... | main.rs:538:9:538:11 | cap | | -| main.rs:538:15:540:5 | enter \|...\| ... | main.rs:539:9:539:21 | ExprStmt | | -| main.rs:538:15:540:5 | exit \|...\| ... (normal) | main.rs:538:15:540:5 | exit \|...\| ... | | -| main.rs:538:18:540:5 | { ... } | main.rs:538:15:540:5 | exit \|...\| ... (normal) | | -| main.rs:539:9:539:17 | print_i64 | main.rs:539:19:539:19 | x | | -| main.rs:539:9:539:20 | print_i64(...) | main.rs:538:18:540:5 | { ... } | | -| main.rs:539:9:539:21 | ExprStmt | main.rs:539:9:539:17 | print_i64 | | -| main.rs:539:19:539:19 | x | main.rs:539:9:539:20 | print_i64(...) | | -| main.rs:541:5:541:7 | cap | main.rs:541:5:541:9 | cap(...) | | -| main.rs:541:5:541:9 | cap(...) | main.rs:542:5:542:17 | ExprStmt | | -| main.rs:541:5:541:10 | ExprStmt | main.rs:541:5:541:7 | cap | | -| main.rs:542:5:542:13 | print_i64 | main.rs:542:15:542:15 | x | | -| main.rs:542:5:542:16 | print_i64(...) | main.rs:534:20:543:1 | { ... } | | -| main.rs:542:5:542:17 | ExprStmt | main.rs:542:5:542:13 | print_i64 | | -| main.rs:542:15:542:15 | x | main.rs:542:5:542:16 | print_i64(...) | | -| main.rs:545:1:572:1 | enter fn capture_mut | main.rs:546:5:546:18 | let ... = 1 | | -| main.rs:545:1:572:1 | exit fn capture_mut (normal) | main.rs:545:1:572:1 | exit fn capture_mut | | -| main.rs:545:18:572:1 | { ... } | main.rs:545:1:572:1 | exit fn capture_mut (normal) | | -| main.rs:546:5:546:18 | let ... = 1 | main.rs:546:17:546:17 | 1 | | -| main.rs:546:9:546:13 | mut x | main.rs:549:5:551:6 | let ... = ... | match | -| main.rs:546:13:546:13 | x | main.rs:546:9:546:13 | mut x | | -| main.rs:546:17:546:17 | 1 | main.rs:546:13:546:13 | x | | -| main.rs:549:5:551:6 | let ... = ... | main.rs:549:20:551:5 | \|...\| ... | | -| main.rs:549:9:549:16 | closure1 | main.rs:549:9:549:16 | closure1 | | -| main.rs:549:9:549:16 | closure1 | main.rs:552:5:552:15 | ExprStmt | match | -| main.rs:549:20:551:5 | \|...\| ... | main.rs:549:9:549:16 | closure1 | | -| main.rs:549:20:551:5 | enter \|...\| ... | main.rs:550:9:550:21 | ExprStmt | | -| main.rs:549:20:551:5 | exit \|...\| ... (normal) | main.rs:549:20:551:5 | exit \|...\| ... | | -| main.rs:549:23:551:5 | { ... } | main.rs:549:20:551:5 | exit \|...\| ... (normal) | | -| main.rs:550:9:550:17 | print_i64 | main.rs:550:19:550:19 | x | | -| main.rs:550:9:550:20 | print_i64(...) | main.rs:549:23:551:5 | { ... } | | -| main.rs:550:9:550:21 | ExprStmt | main.rs:550:9:550:17 | print_i64 | | -| main.rs:550:19:550:19 | x | main.rs:550:9:550:20 | print_i64(...) | | -| main.rs:552:5:552:12 | closure1 | main.rs:552:5:552:14 | closure1(...) | | -| main.rs:552:5:552:14 | closure1(...) | main.rs:553:5:553:17 | ExprStmt | | -| main.rs:552:5:552:15 | ExprStmt | main.rs:552:5:552:12 | closure1 | | -| main.rs:553:5:553:13 | print_i64 | main.rs:553:15:553:15 | x | | -| main.rs:553:5:553:16 | print_i64(...) | main.rs:555:5:555:18 | let ... = 2 | | -| main.rs:553:5:553:17 | ExprStmt | main.rs:553:5:553:13 | print_i64 | | -| main.rs:553:15:553:15 | x | main.rs:553:5:553:16 | print_i64(...) | | -| main.rs:555:5:555:18 | let ... = 2 | main.rs:555:17:555:17 | 2 | | -| main.rs:555:9:555:13 | mut y | main.rs:558:5:560:6 | let ... = ... | match | -| main.rs:555:13:555:13 | y | main.rs:555:9:555:13 | mut y | | -| main.rs:555:17:555:17 | 2 | main.rs:555:13:555:13 | y | | -| main.rs:558:5:560:6 | let ... = ... | main.rs:558:24:560:5 | \|...\| ... | | -| main.rs:558:9:558:20 | mut closure2 | main.rs:561:5:561:15 | ExprStmt | match | -| main.rs:558:13:558:20 | closure2 | main.rs:558:9:558:20 | mut closure2 | | -| main.rs:558:24:560:5 | \|...\| ... | main.rs:558:13:558:20 | closure2 | | -| main.rs:558:24:560:5 | enter \|...\| ... | main.rs:559:9:559:14 | ExprStmt | | -| main.rs:558:24:560:5 | exit \|...\| ... (normal) | main.rs:558:24:560:5 | exit \|...\| ... | | -| main.rs:558:27:560:5 | { ... } | main.rs:558:24:560:5 | exit \|...\| ... (normal) | | -| main.rs:559:9:559:9 | y | main.rs:559:13:559:13 | 3 | | -| main.rs:559:9:559:13 | ... = ... | main.rs:558:27:560:5 | { ... } | | -| main.rs:559:9:559:14 | ExprStmt | main.rs:559:9:559:9 | y | | -| main.rs:559:13:559:13 | 3 | main.rs:559:9:559:13 | ... = ... | | -| main.rs:561:5:561:12 | closure2 | main.rs:561:5:561:14 | closure2(...) | | -| main.rs:561:5:561:14 | closure2(...) | main.rs:562:5:562:17 | ExprStmt | | -| main.rs:561:5:561:15 | ExprStmt | main.rs:561:5:561:12 | closure2 | | -| main.rs:562:5:562:13 | print_i64 | main.rs:562:15:562:15 | y | | -| main.rs:562:5:562:16 | print_i64(...) | main.rs:564:5:564:18 | let ... = 2 | | -| main.rs:562:5:562:17 | ExprStmt | main.rs:562:5:562:13 | print_i64 | | -| main.rs:562:15:562:15 | y | main.rs:562:5:562:16 | print_i64(...) | | -| main.rs:564:5:564:18 | let ... = 2 | main.rs:564:17:564:17 | 2 | | -| main.rs:564:9:564:13 | mut z | main.rs:567:5:569:6 | let ... = ... | match | -| main.rs:564:13:564:13 | z | main.rs:564:9:564:13 | mut z | | -| main.rs:564:17:564:17 | 2 | main.rs:564:13:564:13 | z | | -| main.rs:567:5:569:6 | let ... = ... | main.rs:567:24:569:5 | \|...\| ... | | -| main.rs:567:9:567:20 | mut closure3 | main.rs:570:5:570:15 | ExprStmt | match | -| main.rs:567:13:567:20 | closure3 | main.rs:567:9:567:20 | mut closure3 | | -| main.rs:567:24:569:5 | \|...\| ... | main.rs:567:13:567:20 | closure3 | | -| main.rs:567:24:569:5 | enter \|...\| ... | main.rs:568:9:568:24 | ExprStmt | | -| main.rs:567:24:569:5 | exit \|...\| ... (normal) | main.rs:567:24:569:5 | exit \|...\| ... | | -| main.rs:567:27:569:5 | { ... } | main.rs:567:24:569:5 | exit \|...\| ... (normal) | | -| main.rs:568:9:568:9 | z | main.rs:568:22:568:22 | 1 | | -| main.rs:568:9:568:23 | z.add_assign(...) | main.rs:567:27:569:5 | { ... } | | -| main.rs:568:9:568:24 | ExprStmt | main.rs:568:9:568:9 | z | | -| main.rs:568:22:568:22 | 1 | main.rs:568:9:568:23 | z.add_assign(...) | | -| main.rs:570:5:570:12 | closure3 | main.rs:570:5:570:14 | closure3(...) | | -| main.rs:570:5:570:14 | closure3(...) | main.rs:571:5:571:17 | ExprStmt | | -| main.rs:570:5:570:15 | ExprStmt | main.rs:570:5:570:12 | closure3 | | -| main.rs:571:5:571:13 | print_i64 | main.rs:571:15:571:15 | z | | -| main.rs:571:5:571:16 | print_i64(...) | main.rs:545:18:572:1 | { ... } | | -| main.rs:571:5:571:17 | ExprStmt | main.rs:571:5:571:13 | print_i64 | | -| main.rs:571:15:571:15 | z | main.rs:571:5:571:16 | print_i64(...) | | -| main.rs:574:1:582:1 | enter fn async_block_capture | main.rs:575:5:575:23 | let ... = 0 | | -| main.rs:574:1:582:1 | exit fn async_block_capture (normal) | main.rs:574:1:582:1 | exit fn async_block_capture | | -| main.rs:574:32:582:1 | { ... } | main.rs:574:1:582:1 | exit fn async_block_capture (normal) | | -| main.rs:575:5:575:23 | let ... = 0 | main.rs:575:22:575:22 | 0 | | -| main.rs:575:9:575:13 | mut i | main.rs:576:5:578:6 | let ... = ... | match | -| main.rs:575:13:575:13 | i | main.rs:575:9:575:13 | mut i | | -| main.rs:575:22:575:22 | 0 | main.rs:575:13:575:13 | i | | -| main.rs:576:5:578:6 | let ... = ... | main.rs:576:17:578:5 | { ... } | | -| main.rs:576:9:576:13 | block | main.rs:576:9:576:13 | block | | -| main.rs:576:9:576:13 | block | main.rs:580:5:580:16 | ExprStmt | match | -| main.rs:576:17:578:5 | enter { ... } | main.rs:577:9:577:14 | ExprStmt | | -| main.rs:576:17:578:5 | exit { ... } (normal) | main.rs:576:17:578:5 | exit { ... } | | -| main.rs:576:17:578:5 | { ... } | main.rs:576:9:576:13 | block | | -| main.rs:577:9:577:9 | i | main.rs:577:13:577:13 | 1 | | -| main.rs:577:9:577:13 | ... = ... | main.rs:576:17:578:5 | exit { ... } (normal) | | -| main.rs:577:9:577:14 | ExprStmt | main.rs:577:9:577:9 | i | | -| main.rs:577:13:577:13 | 1 | main.rs:577:9:577:13 | ... = ... | | -| main.rs:580:5:580:9 | block | main.rs:580:5:580:15 | await block | | -| main.rs:580:5:580:15 | await block | main.rs:581:5:581:17 | ExprStmt | | -| main.rs:580:5:580:16 | ExprStmt | main.rs:580:5:580:9 | block | | -| main.rs:581:5:581:13 | print_i64 | main.rs:581:15:581:15 | i | | -| main.rs:581:5:581:16 | print_i64(...) | main.rs:574:32:582:1 | { ... } | | -| main.rs:581:5:581:17 | ExprStmt | main.rs:581:5:581:13 | print_i64 | | -| main.rs:581:15:581:15 | i | main.rs:581:5:581:16 | print_i64(...) | | -| main.rs:584:1:600:1 | enter fn phi | main.rs:584:8:584:8 | b | | -| main.rs:584:1:600:1 | exit fn phi (normal) | main.rs:584:1:600:1 | exit fn phi | | -| main.rs:584:8:584:8 | b | main.rs:584:8:584:8 | b | | -| main.rs:584:8:584:8 | b | main.rs:584:8:584:14 | ...: bool | match | -| main.rs:584:8:584:14 | ...: bool | main.rs:585:5:585:18 | let ... = 1 | | -| main.rs:584:17:600:1 | { ... } | main.rs:584:1:600:1 | exit fn phi (normal) | | -| main.rs:585:5:585:18 | let ... = 1 | main.rs:585:17:585:17 | 1 | | -| main.rs:585:9:585:13 | mut x | main.rs:586:5:586:17 | ExprStmt | match | -| main.rs:585:13:585:13 | x | main.rs:585:9:585:13 | mut x | | -| main.rs:585:17:585:17 | 1 | main.rs:585:13:585:13 | x | | -| main.rs:586:5:586:13 | print_i64 | main.rs:586:15:586:15 | x | | -| main.rs:586:5:586:16 | print_i64(...) | main.rs:587:5:587:21 | ExprStmt | | -| main.rs:586:5:586:17 | ExprStmt | main.rs:586:5:586:13 | print_i64 | | -| main.rs:586:15:586:15 | x | main.rs:586:5:586:16 | print_i64(...) | | -| main.rs:587:5:587:13 | print_i64 | main.rs:587:15:587:15 | x | | -| main.rs:587:5:587:20 | print_i64(...) | main.rs:588:5:598:6 | let _ = ... | | -| main.rs:587:5:587:21 | ExprStmt | main.rs:587:5:587:13 | print_i64 | | -| main.rs:587:15:587:15 | x | main.rs:587:19:587:19 | 1 | | -| main.rs:587:15:587:19 | ... + ... | main.rs:587:5:587:20 | print_i64(...) | | -| main.rs:587:19:587:19 | 1 | main.rs:587:15:587:19 | ... + ... | | -| main.rs:588:5:598:6 | let _ = ... | main.rs:589:16:589:16 | b | | -| main.rs:589:9:589:9 | _ | main.rs:599:5:599:17 | ExprStmt | match | -| main.rs:589:13:598:5 | if b {...} else {...} | main.rs:589:9:589:9 | _ | | -| main.rs:589:16:589:16 | b | main.rs:591:9:591:14 | ExprStmt | true | -| main.rs:589:16:589:16 | b | main.rs:595:9:595:14 | ExprStmt | false | -| main.rs:590:5:594:5 | { ... } | main.rs:589:13:598:5 | if b {...} else {...} | | -| main.rs:591:9:591:9 | x | main.rs:591:13:591:13 | 2 | | -| main.rs:591:9:591:13 | ... = ... | main.rs:592:9:592:21 | ExprStmt | | -| main.rs:591:9:591:14 | ExprStmt | main.rs:591:9:591:9 | x | | -| main.rs:591:13:591:13 | 2 | main.rs:591:9:591:13 | ... = ... | | -| main.rs:592:9:592:17 | print_i64 | main.rs:592:19:592:19 | x | | -| main.rs:592:9:592:20 | print_i64(...) | main.rs:593:9:593:25 | ExprStmt | | -| main.rs:592:9:592:21 | ExprStmt | main.rs:592:9:592:17 | print_i64 | | -| main.rs:592:19:592:19 | x | main.rs:592:9:592:20 | print_i64(...) | | -| main.rs:593:9:593:17 | print_i64 | main.rs:593:19:593:19 | x | | -| main.rs:593:9:593:24 | print_i64(...) | main.rs:590:5:594:5 | { ... } | | -| main.rs:593:9:593:25 | ExprStmt | main.rs:593:9:593:17 | print_i64 | | -| main.rs:593:19:593:19 | x | main.rs:593:23:593:23 | 1 | | -| main.rs:593:19:593:23 | ... + ... | main.rs:593:9:593:24 | print_i64(...) | | -| main.rs:593:23:593:23 | 1 | main.rs:593:19:593:23 | ... + ... | | -| main.rs:594:12:598:5 | { ... } | main.rs:589:13:598:5 | if b {...} else {...} | | -| main.rs:595:9:595:9 | x | main.rs:595:13:595:13 | 3 | | -| main.rs:595:9:595:13 | ... = ... | main.rs:596:9:596:21 | ExprStmt | | -| main.rs:595:9:595:14 | ExprStmt | main.rs:595:9:595:9 | x | | -| main.rs:595:13:595:13 | 3 | main.rs:595:9:595:13 | ... = ... | | -| main.rs:596:9:596:17 | print_i64 | main.rs:596:19:596:19 | x | | -| main.rs:596:9:596:20 | print_i64(...) | main.rs:597:9:597:25 | ExprStmt | | -| main.rs:596:9:596:21 | ExprStmt | main.rs:596:9:596:17 | print_i64 | | -| main.rs:596:19:596:19 | x | main.rs:596:9:596:20 | print_i64(...) | | -| main.rs:597:9:597:17 | print_i64 | main.rs:597:19:597:19 | x | | -| main.rs:597:9:597:24 | print_i64(...) | main.rs:594:12:598:5 | { ... } | | -| main.rs:597:9:597:25 | ExprStmt | main.rs:597:9:597:17 | print_i64 | | -| main.rs:597:19:597:19 | x | main.rs:597:23:597:23 | 1 | | -| main.rs:597:19:597:23 | ... + ... | main.rs:597:9:597:24 | print_i64(...) | | -| main.rs:597:23:597:23 | 1 | main.rs:597:19:597:23 | ... + ... | | -| main.rs:599:5:599:13 | print_i64 | main.rs:599:15:599:15 | x | | -| main.rs:599:5:599:16 | print_i64(...) | main.rs:584:17:600:1 | { ... } | | -| main.rs:599:5:599:17 | ExprStmt | main.rs:599:5:599:13 | print_i64 | | -| main.rs:599:15:599:15 | x | main.rs:599:5:599:16 | print_i64(...) | | -| main.rs:602:1:619:1 | enter fn phi_read | main.rs:602:13:602:14 | b1 | | -| main.rs:602:1:619:1 | exit fn phi_read (normal) | main.rs:602:1:619:1 | exit fn phi_read | | -| main.rs:602:13:602:14 | b1 | main.rs:602:13:602:14 | b1 | | -| main.rs:602:13:602:14 | b1 | main.rs:602:13:602:20 | ...: bool | match | -| main.rs:602:13:602:20 | ...: bool | main.rs:602:23:602:24 | b2 | | -| main.rs:602:23:602:24 | b2 | main.rs:602:23:602:24 | b2 | | -| main.rs:602:23:602:24 | b2 | main.rs:602:23:602:30 | ...: bool | match | -| main.rs:602:23:602:30 | ...: bool | main.rs:603:5:603:14 | let ... = 1 | | -| main.rs:602:33:619:1 | { ... } | main.rs:602:1:619:1 | exit fn phi_read (normal) | | -| main.rs:603:5:603:14 | let ... = 1 | main.rs:603:13:603:13 | 1 | | -| main.rs:603:9:603:9 | x | main.rs:603:9:603:9 | x | | -| main.rs:603:9:603:9 | x | main.rs:604:5:610:6 | let _ = ... | match | -| main.rs:603:13:603:13 | 1 | main.rs:603:9:603:9 | x | | -| main.rs:604:5:610:6 | let _ = ... | main.rs:605:16:605:17 | b1 | | -| main.rs:605:9:605:9 | _ | main.rs:612:5:618:6 | let _ = ... | match | -| main.rs:605:13:610:5 | if b1 {...} else {...} | main.rs:605:9:605:9 | _ | | -| main.rs:605:16:605:17 | b1 | main.rs:607:9:607:21 | ExprStmt | true | -| main.rs:605:16:605:17 | b1 | main.rs:609:9:609:21 | ExprStmt | false | -| main.rs:606:5:608:5 | { ... } | main.rs:605:13:610:5 | if b1 {...} else {...} | | -| main.rs:607:9:607:17 | print_i64 | main.rs:607:19:607:19 | x | | -| main.rs:607:9:607:20 | print_i64(...) | main.rs:606:5:608:5 | { ... } | | -| main.rs:607:9:607:21 | ExprStmt | main.rs:607:9:607:17 | print_i64 | | -| main.rs:607:19:607:19 | x | main.rs:607:9:607:20 | print_i64(...) | | -| main.rs:608:12:610:5 | { ... } | main.rs:605:13:610:5 | if b1 {...} else {...} | | +| main.rs:479:5:479:27 | ... .add_assign(...) | main.rs:480:5:480:17 | ExprStmt | | +| main.rs:479:5:479:28 | ExprStmt | main.rs:479:11:479:11 | a | | +| main.rs:479:6:479:11 | &mut a | main.rs:479:25:479:26 | 10 | | +| main.rs:479:11:479:11 | a | main.rs:479:6:479:11 | &mut a | | +| main.rs:479:25:479:26 | 10 | main.rs:479:5:479:27 | ... .add_assign(...) | | +| main.rs:480:5:480:13 | print_i64 | main.rs:480:15:480:15 | a | | +| main.rs:480:5:480:16 | print_i64(...) | main.rs:475:17:481:1 | { ... } | | +| main.rs:480:5:480:17 | ExprStmt | main.rs:480:5:480:13 | print_i64 | | +| main.rs:480:15:480:15 | a | main.rs:480:5:480:16 | print_i64(...) | | +| main.rs:483:1:489:1 | enter fn mutate | main.rs:484:5:484:18 | let ... = 1 | | +| main.rs:483:1:489:1 | exit fn mutate (normal) | main.rs:483:1:489:1 | exit fn mutate | | +| main.rs:483:13:489:1 | { ... } | main.rs:483:1:489:1 | exit fn mutate (normal) | | +| main.rs:484:5:484:18 | let ... = 1 | main.rs:484:17:484:17 | 1 | | +| main.rs:484:9:484:13 | mut i | main.rs:485:5:486:15 | let ... = ... | match | +| main.rs:484:13:484:13 | i | main.rs:484:9:484:13 | mut i | | +| main.rs:484:17:484:17 | 1 | main.rs:484:13:484:13 | i | | +| main.rs:485:5:486:15 | let ... = ... | main.rs:486:14:486:14 | i | | +| main.rs:485:9:485:13 | ref_i | main.rs:485:9:485:13 | ref_i | | +| main.rs:485:9:485:13 | ref_i | main.rs:487:5:487:15 | ExprStmt | match | +| main.rs:486:9:486:14 | &mut i | main.rs:485:9:485:13 | ref_i | | +| main.rs:486:14:486:14 | i | main.rs:486:9:486:14 | &mut i | | +| main.rs:487:5:487:10 | * ... | main.rs:487:14:487:14 | 2 | | +| main.rs:487:5:487:14 | ... = ... | main.rs:488:5:488:17 | ExprStmt | | +| main.rs:487:5:487:15 | ExprStmt | main.rs:487:6:487:10 | ref_i | | +| main.rs:487:6:487:10 | ref_i | main.rs:487:5:487:10 | * ... | | +| main.rs:487:14:487:14 | 2 | main.rs:487:5:487:14 | ... = ... | | +| main.rs:488:5:488:13 | print_i64 | main.rs:488:15:488:15 | i | | +| main.rs:488:5:488:16 | print_i64(...) | main.rs:483:13:489:1 | { ... } | | +| main.rs:488:5:488:17 | ExprStmt | main.rs:488:5:488:13 | print_i64 | | +| main.rs:488:15:488:15 | i | main.rs:488:5:488:16 | print_i64(...) | | +| main.rs:491:1:496:1 | enter fn mutate_param | main.rs:491:17:491:17 | x | | +| main.rs:491:1:496:1 | exit fn mutate_param (normal) | main.rs:491:1:496:1 | exit fn mutate_param | | +| main.rs:491:17:491:17 | x | main.rs:491:17:491:17 | x | | +| main.rs:491:17:491:17 | x | main.rs:491:17:491:27 | ...: ... | match | +| main.rs:491:17:491:27 | ...: ... | main.rs:492:5:494:11 | ExprStmt | | +| main.rs:492:5:492:6 | * ... | main.rs:493:10:493:10 | x | | +| main.rs:492:5:494:10 | ... = ... | main.rs:495:5:495:13 | ExprStmt | | +| main.rs:492:5:494:11 | ExprStmt | main.rs:492:6:492:6 | x | | +| main.rs:492:6:492:6 | x | main.rs:492:5:492:6 | * ... | | +| main.rs:493:9:493:10 | * ... | main.rs:494:10:494:10 | x | | +| main.rs:493:9:494:10 | ... + ... | main.rs:492:5:494:10 | ... = ... | | +| main.rs:493:10:493:10 | x | main.rs:493:9:493:10 | * ... | | +| main.rs:494:9:494:10 | * ... | main.rs:493:9:494:10 | ... + ... | | +| main.rs:494:10:494:10 | x | main.rs:494:9:494:10 | * ... | | +| main.rs:495:5:495:12 | return x | main.rs:491:1:496:1 | exit fn mutate_param (normal) | return | +| main.rs:495:5:495:13 | ExprStmt | main.rs:495:12:495:12 | x | | +| main.rs:495:12:495:12 | x | main.rs:495:5:495:12 | return x | | +| main.rs:498:1:504:1 | enter fn mutate_param2 | main.rs:498:22:498:22 | x | | +| main.rs:498:1:504:1 | exit fn mutate_param2 (normal) | main.rs:498:1:504:1 | exit fn mutate_param2 | | +| main.rs:498:22:498:22 | x | main.rs:498:22:498:22 | x | | +| main.rs:498:22:498:22 | x | main.rs:498:22:498:35 | ...: ... | match | +| main.rs:498:22:498:35 | ...: ... | main.rs:498:38:498:38 | y | | +| main.rs:498:38:498:38 | y | main.rs:498:38:498:38 | y | | +| main.rs:498:38:498:38 | y | main.rs:498:38:498:56 | ...: ... | match | +| main.rs:498:38:498:56 | ...: ... | main.rs:499:5:501:11 | ExprStmt | | +| main.rs:498:59:504:1 | { ... } | main.rs:498:1:504:1 | exit fn mutate_param2 (normal) | | +| main.rs:499:5:499:6 | * ... | main.rs:500:10:500:10 | x | | +| main.rs:499:5:501:10 | ... = ... | main.rs:502:5:503:10 | ExprStmt | | +| main.rs:499:5:501:11 | ExprStmt | main.rs:499:6:499:6 | x | | +| main.rs:499:6:499:6 | x | main.rs:499:5:499:6 | * ... | | +| main.rs:500:9:500:10 | * ... | main.rs:501:10:501:10 | x | | +| main.rs:500:9:501:10 | ... + ... | main.rs:499:5:501:10 | ... = ... | | +| main.rs:500:10:500:10 | x | main.rs:500:9:500:10 | * ... | | +| main.rs:501:9:501:10 | * ... | main.rs:500:9:501:10 | ... + ... | | +| main.rs:501:10:501:10 | x | main.rs:501:9:501:10 | * ... | | +| main.rs:502:5:502:6 | * ... | main.rs:503:9:503:9 | x | | +| main.rs:502:5:503:9 | ... = ... | main.rs:498:59:504:1 | { ... } | | +| main.rs:502:5:503:10 | ExprStmt | main.rs:502:6:502:6 | y | | +| main.rs:502:6:502:6 | y | main.rs:502:5:502:6 | * ... | | +| main.rs:503:9:503:9 | x | main.rs:502:5:503:9 | ... = ... | | +| main.rs:506:1:526:1 | enter fn mutate_arg | main.rs:507:5:507:18 | let ... = 2 | | +| main.rs:506:1:526:1 | exit fn mutate_arg (normal) | main.rs:506:1:526:1 | exit fn mutate_arg | | +| main.rs:506:17:526:1 | { ... } | main.rs:506:1:526:1 | exit fn mutate_arg (normal) | | +| main.rs:507:5:507:18 | let ... = 2 | main.rs:507:17:507:17 | 2 | | +| main.rs:507:9:507:13 | mut x | main.rs:508:5:509:29 | let ... = ... | match | +| main.rs:507:13:507:13 | x | main.rs:507:9:507:13 | mut x | | +| main.rs:507:17:507:17 | 2 | main.rs:507:13:507:13 | x | | +| main.rs:508:5:509:29 | let ... = ... | main.rs:509:9:509:20 | mutate_param | | +| main.rs:508:9:508:9 | y | main.rs:508:9:508:9 | y | | +| main.rs:508:9:508:9 | y | main.rs:510:5:510:12 | ExprStmt | match | +| main.rs:509:9:509:20 | mutate_param | main.rs:509:27:509:27 | x | | +| main.rs:509:9:509:28 | mutate_param(...) | main.rs:508:9:508:9 | y | | +| main.rs:509:22:509:27 | &mut x | main.rs:509:9:509:28 | mutate_param(...) | | +| main.rs:509:27:509:27 | x | main.rs:509:22:509:27 | &mut x | | +| main.rs:510:5:510:6 | * ... | main.rs:510:10:510:11 | 10 | | +| main.rs:510:5:510:11 | ... = ... | main.rs:513:5:513:17 | ExprStmt | | +| main.rs:510:5:510:12 | ExprStmt | main.rs:510:6:510:6 | y | | +| main.rs:510:6:510:6 | y | main.rs:510:5:510:6 | * ... | | +| main.rs:510:10:510:11 | 10 | main.rs:510:5:510:11 | ... = ... | | +| main.rs:513:5:513:13 | print_i64 | main.rs:513:15:513:15 | x | | +| main.rs:513:5:513:16 | print_i64(...) | main.rs:515:5:515:18 | let ... = 4 | | +| main.rs:513:5:513:17 | ExprStmt | main.rs:513:5:513:13 | print_i64 | | +| main.rs:513:15:513:15 | x | main.rs:513:5:513:16 | print_i64(...) | | +| main.rs:515:5:515:18 | let ... = 4 | main.rs:515:17:515:17 | 4 | | +| main.rs:515:9:515:13 | mut z | main.rs:516:5:517:20 | let ... = ... | match | +| main.rs:515:13:515:13 | z | main.rs:515:9:515:13 | mut z | | +| main.rs:515:17:515:17 | 4 | main.rs:515:13:515:13 | z | | +| main.rs:516:5:517:20 | let ... = ... | main.rs:517:19:517:19 | x | | +| main.rs:516:9:516:9 | w | main.rs:516:9:516:9 | w | | +| main.rs:516:9:516:9 | w | main.rs:518:5:521:6 | ExprStmt | match | +| main.rs:517:9:517:19 | &mut ... | main.rs:516:9:516:9 | w | | +| main.rs:517:14:517:19 | &mut x | main.rs:517:9:517:19 | &mut ... | | +| main.rs:517:19:517:19 | x | main.rs:517:14:517:19 | &mut x | | +| main.rs:518:5:518:17 | mutate_param2 | main.rs:519:14:519:14 | z | | +| main.rs:518:5:521:5 | mutate_param2(...) | main.rs:522:5:522:13 | ExprStmt | | +| main.rs:518:5:521:6 | ExprStmt | main.rs:518:5:518:17 | mutate_param2 | | +| main.rs:519:9:519:14 | &mut z | main.rs:520:9:520:9 | w | | +| main.rs:519:14:519:14 | z | main.rs:519:9:519:14 | &mut z | | +| main.rs:520:9:520:9 | w | main.rs:518:5:521:5 | mutate_param2(...) | | +| main.rs:522:5:522:7 | * ... | main.rs:522:11:522:12 | 11 | | +| main.rs:522:5:522:12 | ... = ... | main.rs:525:5:525:17 | ExprStmt | | +| main.rs:522:5:522:13 | ExprStmt | main.rs:522:7:522:7 | w | | +| main.rs:522:6:522:7 | * ... | main.rs:522:5:522:7 | * ... | | +| main.rs:522:7:522:7 | w | main.rs:522:6:522:7 | * ... | | +| main.rs:522:11:522:12 | 11 | main.rs:522:5:522:12 | ... = ... | | +| main.rs:525:5:525:13 | print_i64 | main.rs:525:15:525:15 | z | | +| main.rs:525:5:525:16 | print_i64(...) | main.rs:506:17:526:1 | { ... } | | +| main.rs:525:5:525:17 | ExprStmt | main.rs:525:5:525:13 | print_i64 | | +| main.rs:525:15:525:15 | z | main.rs:525:5:525:16 | print_i64(...) | | +| main.rs:528:1:534:1 | enter fn alias | main.rs:529:5:529:18 | let ... = 1 | | +| main.rs:528:1:534:1 | exit fn alias (normal) | main.rs:528:1:534:1 | exit fn alias | | +| main.rs:528:12:534:1 | { ... } | main.rs:528:1:534:1 | exit fn alias (normal) | | +| main.rs:529:5:529:18 | let ... = 1 | main.rs:529:17:529:17 | 1 | | +| main.rs:529:9:529:13 | mut x | main.rs:530:5:531:15 | let ... = ... | match | +| main.rs:529:13:529:13 | x | main.rs:529:9:529:13 | mut x | | +| main.rs:529:17:529:17 | 1 | main.rs:529:13:529:13 | x | | +| main.rs:530:5:531:15 | let ... = ... | main.rs:531:14:531:14 | x | | +| main.rs:530:9:530:9 | y | main.rs:530:9:530:9 | y | | +| main.rs:530:9:530:9 | y | main.rs:532:5:532:11 | ExprStmt | match | +| main.rs:531:9:531:14 | &mut x | main.rs:530:9:530:9 | y | | +| main.rs:531:14:531:14 | x | main.rs:531:9:531:14 | &mut x | | +| main.rs:532:5:532:6 | * ... | main.rs:532:10:532:10 | 2 | | +| main.rs:532:5:532:10 | ... = ... | main.rs:533:5:533:17 | ExprStmt | | +| main.rs:532:5:532:11 | ExprStmt | main.rs:532:6:532:6 | y | | +| main.rs:532:6:532:6 | y | main.rs:532:5:532:6 | * ... | | +| main.rs:532:10:532:10 | 2 | main.rs:532:5:532:10 | ... = ... | | +| main.rs:533:5:533:13 | print_i64 | main.rs:533:15:533:15 | x | | +| main.rs:533:5:533:16 | print_i64(...) | main.rs:528:12:534:1 | { ... } | | +| main.rs:533:5:533:17 | ExprStmt | main.rs:533:5:533:13 | print_i64 | | +| main.rs:533:15:533:15 | x | main.rs:533:5:533:16 | print_i64(...) | | +| main.rs:536:1:545:1 | enter fn capture_immut | main.rs:537:5:537:16 | let ... = 100 | | +| main.rs:536:1:545:1 | exit fn capture_immut (normal) | main.rs:536:1:545:1 | exit fn capture_immut | | +| main.rs:536:20:545:1 | { ... } | main.rs:536:1:545:1 | exit fn capture_immut (normal) | | +| main.rs:537:5:537:16 | let ... = 100 | main.rs:537:13:537:15 | 100 | | +| main.rs:537:9:537:9 | x | main.rs:537:9:537:9 | x | | +| main.rs:537:9:537:9 | x | main.rs:540:5:542:6 | let ... = ... | match | +| main.rs:537:13:537:15 | 100 | main.rs:537:9:537:9 | x | | +| main.rs:540:5:542:6 | let ... = ... | main.rs:540:15:542:5 | \|...\| ... | | +| main.rs:540:9:540:11 | cap | main.rs:540:9:540:11 | cap | | +| main.rs:540:9:540:11 | cap | main.rs:543:5:543:10 | ExprStmt | match | +| main.rs:540:15:542:5 | \|...\| ... | main.rs:540:9:540:11 | cap | | +| main.rs:540:15:542:5 | enter \|...\| ... | main.rs:541:9:541:21 | ExprStmt | | +| main.rs:540:15:542:5 | exit \|...\| ... (normal) | main.rs:540:15:542:5 | exit \|...\| ... | | +| main.rs:540:18:542:5 | { ... } | main.rs:540:15:542:5 | exit \|...\| ... (normal) | | +| main.rs:541:9:541:17 | print_i64 | main.rs:541:19:541:19 | x | | +| main.rs:541:9:541:20 | print_i64(...) | main.rs:540:18:542:5 | { ... } | | +| main.rs:541:9:541:21 | ExprStmt | main.rs:541:9:541:17 | print_i64 | | +| main.rs:541:19:541:19 | x | main.rs:541:9:541:20 | print_i64(...) | | +| main.rs:543:5:543:7 | cap | main.rs:543:5:543:9 | cap(...) | | +| main.rs:543:5:543:9 | cap(...) | main.rs:544:5:544:17 | ExprStmt | | +| main.rs:543:5:543:10 | ExprStmt | main.rs:543:5:543:7 | cap | | +| main.rs:544:5:544:13 | print_i64 | main.rs:544:15:544:15 | x | | +| main.rs:544:5:544:16 | print_i64(...) | main.rs:536:20:545:1 | { ... } | | +| main.rs:544:5:544:17 | ExprStmt | main.rs:544:5:544:13 | print_i64 | | +| main.rs:544:15:544:15 | x | main.rs:544:5:544:16 | print_i64(...) | | +| main.rs:547:1:574:1 | enter fn capture_mut | main.rs:548:5:548:18 | let ... = 1 | | +| main.rs:547:1:574:1 | exit fn capture_mut (normal) | main.rs:547:1:574:1 | exit fn capture_mut | | +| main.rs:547:18:574:1 | { ... } | main.rs:547:1:574:1 | exit fn capture_mut (normal) | | +| main.rs:548:5:548:18 | let ... = 1 | main.rs:548:17:548:17 | 1 | | +| main.rs:548:9:548:13 | mut x | main.rs:551:5:553:6 | let ... = ... | match | +| main.rs:548:13:548:13 | x | main.rs:548:9:548:13 | mut x | | +| main.rs:548:17:548:17 | 1 | main.rs:548:13:548:13 | x | | +| main.rs:551:5:553:6 | let ... = ... | main.rs:551:20:553:5 | \|...\| ... | | +| main.rs:551:9:551:16 | closure1 | main.rs:551:9:551:16 | closure1 | | +| main.rs:551:9:551:16 | closure1 | main.rs:554:5:554:15 | ExprStmt | match | +| main.rs:551:20:553:5 | \|...\| ... | main.rs:551:9:551:16 | closure1 | | +| main.rs:551:20:553:5 | enter \|...\| ... | main.rs:552:9:552:21 | ExprStmt | | +| main.rs:551:20:553:5 | exit \|...\| ... (normal) | main.rs:551:20:553:5 | exit \|...\| ... | | +| main.rs:551:23:553:5 | { ... } | main.rs:551:20:553:5 | exit \|...\| ... (normal) | | +| main.rs:552:9:552:17 | print_i64 | main.rs:552:19:552:19 | x | | +| main.rs:552:9:552:20 | print_i64(...) | main.rs:551:23:553:5 | { ... } | | +| main.rs:552:9:552:21 | ExprStmt | main.rs:552:9:552:17 | print_i64 | | +| main.rs:552:19:552:19 | x | main.rs:552:9:552:20 | print_i64(...) | | +| main.rs:554:5:554:12 | closure1 | main.rs:554:5:554:14 | closure1(...) | | +| main.rs:554:5:554:14 | closure1(...) | main.rs:555:5:555:17 | ExprStmt | | +| main.rs:554:5:554:15 | ExprStmt | main.rs:554:5:554:12 | closure1 | | +| main.rs:555:5:555:13 | print_i64 | main.rs:555:15:555:15 | x | | +| main.rs:555:5:555:16 | print_i64(...) | main.rs:557:5:557:18 | let ... = 2 | | +| main.rs:555:5:555:17 | ExprStmt | main.rs:555:5:555:13 | print_i64 | | +| main.rs:555:15:555:15 | x | main.rs:555:5:555:16 | print_i64(...) | | +| main.rs:557:5:557:18 | let ... = 2 | main.rs:557:17:557:17 | 2 | | +| main.rs:557:9:557:13 | mut y | main.rs:560:5:562:6 | let ... = ... | match | +| main.rs:557:13:557:13 | y | main.rs:557:9:557:13 | mut y | | +| main.rs:557:17:557:17 | 2 | main.rs:557:13:557:13 | y | | +| main.rs:560:5:562:6 | let ... = ... | main.rs:560:24:562:5 | \|...\| ... | | +| main.rs:560:9:560:20 | mut closure2 | main.rs:563:5:563:15 | ExprStmt | match | +| main.rs:560:13:560:20 | closure2 | main.rs:560:9:560:20 | mut closure2 | | +| main.rs:560:24:562:5 | \|...\| ... | main.rs:560:13:560:20 | closure2 | | +| main.rs:560:24:562:5 | enter \|...\| ... | main.rs:561:9:561:14 | ExprStmt | | +| main.rs:560:24:562:5 | exit \|...\| ... (normal) | main.rs:560:24:562:5 | exit \|...\| ... | | +| main.rs:560:27:562:5 | { ... } | main.rs:560:24:562:5 | exit \|...\| ... (normal) | | +| main.rs:561:9:561:9 | y | main.rs:561:13:561:13 | 3 | | +| main.rs:561:9:561:13 | ... = ... | main.rs:560:27:562:5 | { ... } | | +| main.rs:561:9:561:14 | ExprStmt | main.rs:561:9:561:9 | y | | +| main.rs:561:13:561:13 | 3 | main.rs:561:9:561:13 | ... = ... | | +| main.rs:563:5:563:12 | closure2 | main.rs:563:5:563:14 | closure2(...) | | +| main.rs:563:5:563:14 | closure2(...) | main.rs:564:5:564:17 | ExprStmt | | +| main.rs:563:5:563:15 | ExprStmt | main.rs:563:5:563:12 | closure2 | | +| main.rs:564:5:564:13 | print_i64 | main.rs:564:15:564:15 | y | | +| main.rs:564:5:564:16 | print_i64(...) | main.rs:566:5:566:18 | let ... = 2 | | +| main.rs:564:5:564:17 | ExprStmt | main.rs:564:5:564:13 | print_i64 | | +| main.rs:564:15:564:15 | y | main.rs:564:5:564:16 | print_i64(...) | | +| main.rs:566:5:566:18 | let ... = 2 | main.rs:566:17:566:17 | 2 | | +| main.rs:566:9:566:13 | mut z | main.rs:569:5:571:6 | let ... = ... | match | +| main.rs:566:13:566:13 | z | main.rs:566:9:566:13 | mut z | | +| main.rs:566:17:566:17 | 2 | main.rs:566:13:566:13 | z | | +| main.rs:569:5:571:6 | let ... = ... | main.rs:569:24:571:5 | \|...\| ... | | +| main.rs:569:9:569:20 | mut closure3 | main.rs:572:5:572:15 | ExprStmt | match | +| main.rs:569:13:569:20 | closure3 | main.rs:569:9:569:20 | mut closure3 | | +| main.rs:569:24:571:5 | \|...\| ... | main.rs:569:13:569:20 | closure3 | | +| main.rs:569:24:571:5 | enter \|...\| ... | main.rs:570:9:570:24 | ExprStmt | | +| main.rs:569:24:571:5 | exit \|...\| ... (normal) | main.rs:569:24:571:5 | exit \|...\| ... | | +| main.rs:569:27:571:5 | { ... } | main.rs:569:24:571:5 | exit \|...\| ... (normal) | | +| main.rs:570:9:570:9 | z | main.rs:570:22:570:22 | 1 | | +| main.rs:570:9:570:23 | z.add_assign(...) | main.rs:569:27:571:5 | { ... } | | +| main.rs:570:9:570:24 | ExprStmt | main.rs:570:9:570:9 | z | | +| main.rs:570:22:570:22 | 1 | main.rs:570:9:570:23 | z.add_assign(...) | | +| main.rs:572:5:572:12 | closure3 | main.rs:572:5:572:14 | closure3(...) | | +| main.rs:572:5:572:14 | closure3(...) | main.rs:573:5:573:17 | ExprStmt | | +| main.rs:572:5:572:15 | ExprStmt | main.rs:572:5:572:12 | closure3 | | +| main.rs:573:5:573:13 | print_i64 | main.rs:573:15:573:15 | z | | +| main.rs:573:5:573:16 | print_i64(...) | main.rs:547:18:574:1 | { ... } | | +| main.rs:573:5:573:17 | ExprStmt | main.rs:573:5:573:13 | print_i64 | | +| main.rs:573:15:573:15 | z | main.rs:573:5:573:16 | print_i64(...) | | +| main.rs:576:1:584:1 | enter fn async_block_capture | main.rs:577:5:577:23 | let ... = 0 | | +| main.rs:576:1:584:1 | exit fn async_block_capture (normal) | main.rs:576:1:584:1 | exit fn async_block_capture | | +| main.rs:576:32:584:1 | { ... } | main.rs:576:1:584:1 | exit fn async_block_capture (normal) | | +| main.rs:577:5:577:23 | let ... = 0 | main.rs:577:22:577:22 | 0 | | +| main.rs:577:9:577:13 | mut i | main.rs:578:5:580:6 | let ... = ... | match | +| main.rs:577:13:577:13 | i | main.rs:577:9:577:13 | mut i | | +| main.rs:577:22:577:22 | 0 | main.rs:577:13:577:13 | i | | +| main.rs:578:5:580:6 | let ... = ... | main.rs:578:17:580:5 | { ... } | | +| main.rs:578:9:578:13 | block | main.rs:578:9:578:13 | block | | +| main.rs:578:9:578:13 | block | main.rs:582:5:582:16 | ExprStmt | match | +| main.rs:578:17:580:5 | enter { ... } | main.rs:579:9:579:14 | ExprStmt | | +| main.rs:578:17:580:5 | exit { ... } (normal) | main.rs:578:17:580:5 | exit { ... } | | +| main.rs:578:17:580:5 | { ... } | main.rs:578:9:578:13 | block | | +| main.rs:579:9:579:9 | i | main.rs:579:13:579:13 | 1 | | +| main.rs:579:9:579:13 | ... = ... | main.rs:578:17:580:5 | exit { ... } (normal) | | +| main.rs:579:9:579:14 | ExprStmt | main.rs:579:9:579:9 | i | | +| main.rs:579:13:579:13 | 1 | main.rs:579:9:579:13 | ... = ... | | +| main.rs:582:5:582:9 | block | main.rs:582:5:582:15 | await block | | +| main.rs:582:5:582:15 | await block | main.rs:583:5:583:17 | ExprStmt | | +| main.rs:582:5:582:16 | ExprStmt | main.rs:582:5:582:9 | block | | +| main.rs:583:5:583:13 | print_i64 | main.rs:583:15:583:15 | i | | +| main.rs:583:5:583:16 | print_i64(...) | main.rs:576:32:584:1 | { ... } | | +| main.rs:583:5:583:17 | ExprStmt | main.rs:583:5:583:13 | print_i64 | | +| main.rs:583:15:583:15 | i | main.rs:583:5:583:16 | print_i64(...) | | +| main.rs:586:1:602:1 | enter fn phi | main.rs:586:8:586:8 | b | | +| main.rs:586:1:602:1 | exit fn phi (normal) | main.rs:586:1:602:1 | exit fn phi | | +| main.rs:586:8:586:8 | b | main.rs:586:8:586:8 | b | | +| main.rs:586:8:586:8 | b | main.rs:586:8:586:14 | ...: bool | match | +| main.rs:586:8:586:14 | ...: bool | main.rs:587:5:587:18 | let ... = 1 | | +| main.rs:586:17:602:1 | { ... } | main.rs:586:1:602:1 | exit fn phi (normal) | | +| main.rs:587:5:587:18 | let ... = 1 | main.rs:587:17:587:17 | 1 | | +| main.rs:587:9:587:13 | mut x | main.rs:588:5:588:17 | ExprStmt | match | +| main.rs:587:13:587:13 | x | main.rs:587:9:587:13 | mut x | | +| main.rs:587:17:587:17 | 1 | main.rs:587:13:587:13 | x | | +| main.rs:588:5:588:13 | print_i64 | main.rs:588:15:588:15 | x | | +| main.rs:588:5:588:16 | print_i64(...) | main.rs:589:5:589:21 | ExprStmt | | +| main.rs:588:5:588:17 | ExprStmt | main.rs:588:5:588:13 | print_i64 | | +| main.rs:588:15:588:15 | x | main.rs:588:5:588:16 | print_i64(...) | | +| main.rs:589:5:589:13 | print_i64 | main.rs:589:15:589:15 | x | | +| main.rs:589:5:589:20 | print_i64(...) | main.rs:590:5:600:6 | let _ = ... | | +| main.rs:589:5:589:21 | ExprStmt | main.rs:589:5:589:13 | print_i64 | | +| main.rs:589:15:589:15 | x | main.rs:589:19:589:19 | 1 | | +| main.rs:589:15:589:19 | ... + ... | main.rs:589:5:589:20 | print_i64(...) | | +| main.rs:589:19:589:19 | 1 | main.rs:589:15:589:19 | ... + ... | | +| main.rs:590:5:600:6 | let _ = ... | main.rs:591:16:591:16 | b | | +| main.rs:591:9:591:9 | _ | main.rs:601:5:601:17 | ExprStmt | match | +| main.rs:591:13:600:5 | if b {...} else {...} | main.rs:591:9:591:9 | _ | | +| main.rs:591:16:591:16 | b | main.rs:593:9:593:14 | ExprStmt | true | +| main.rs:591:16:591:16 | b | main.rs:597:9:597:14 | ExprStmt | false | +| main.rs:592:5:596:5 | { ... } | main.rs:591:13:600:5 | if b {...} else {...} | | +| main.rs:593:9:593:9 | x | main.rs:593:13:593:13 | 2 | | +| main.rs:593:9:593:13 | ... = ... | main.rs:594:9:594:21 | ExprStmt | | +| main.rs:593:9:593:14 | ExprStmt | main.rs:593:9:593:9 | x | | +| main.rs:593:13:593:13 | 2 | main.rs:593:9:593:13 | ... = ... | | +| main.rs:594:9:594:17 | print_i64 | main.rs:594:19:594:19 | x | | +| main.rs:594:9:594:20 | print_i64(...) | main.rs:595:9:595:25 | ExprStmt | | +| main.rs:594:9:594:21 | ExprStmt | main.rs:594:9:594:17 | print_i64 | | +| main.rs:594:19:594:19 | x | main.rs:594:9:594:20 | print_i64(...) | | +| main.rs:595:9:595:17 | print_i64 | main.rs:595:19:595:19 | x | | +| main.rs:595:9:595:24 | print_i64(...) | main.rs:592:5:596:5 | { ... } | | +| main.rs:595:9:595:25 | ExprStmt | main.rs:595:9:595:17 | print_i64 | | +| main.rs:595:19:595:19 | x | main.rs:595:23:595:23 | 1 | | +| main.rs:595:19:595:23 | ... + ... | main.rs:595:9:595:24 | print_i64(...) | | +| main.rs:595:23:595:23 | 1 | main.rs:595:19:595:23 | ... + ... | | +| main.rs:596:12:600:5 | { ... } | main.rs:591:13:600:5 | if b {...} else {...} | | +| main.rs:597:9:597:9 | x | main.rs:597:13:597:13 | 3 | | +| main.rs:597:9:597:13 | ... = ... | main.rs:598:9:598:21 | ExprStmt | | +| main.rs:597:9:597:14 | ExprStmt | main.rs:597:9:597:9 | x | | +| main.rs:597:13:597:13 | 3 | main.rs:597:9:597:13 | ... = ... | | +| main.rs:598:9:598:17 | print_i64 | main.rs:598:19:598:19 | x | | +| main.rs:598:9:598:20 | print_i64(...) | main.rs:599:9:599:25 | ExprStmt | | +| main.rs:598:9:598:21 | ExprStmt | main.rs:598:9:598:17 | print_i64 | | +| main.rs:598:19:598:19 | x | main.rs:598:9:598:20 | print_i64(...) | | +| main.rs:599:9:599:17 | print_i64 | main.rs:599:19:599:19 | x | | +| main.rs:599:9:599:24 | print_i64(...) | main.rs:596:12:600:5 | { ... } | | +| main.rs:599:9:599:25 | ExprStmt | main.rs:599:9:599:17 | print_i64 | | +| main.rs:599:19:599:19 | x | main.rs:599:23:599:23 | 1 | | +| main.rs:599:19:599:23 | ... + ... | main.rs:599:9:599:24 | print_i64(...) | | +| main.rs:599:23:599:23 | 1 | main.rs:599:19:599:23 | ... + ... | | +| main.rs:601:5:601:13 | print_i64 | main.rs:601:15:601:15 | x | | +| main.rs:601:5:601:16 | print_i64(...) | main.rs:586:17:602:1 | { ... } | | +| main.rs:601:5:601:17 | ExprStmt | main.rs:601:5:601:13 | print_i64 | | +| main.rs:601:15:601:15 | x | main.rs:601:5:601:16 | print_i64(...) | | +| main.rs:604:1:621:1 | enter fn phi_read | main.rs:604:13:604:14 | b1 | | +| main.rs:604:1:621:1 | exit fn phi_read (normal) | main.rs:604:1:621:1 | exit fn phi_read | | +| main.rs:604:13:604:14 | b1 | main.rs:604:13:604:14 | b1 | | +| main.rs:604:13:604:14 | b1 | main.rs:604:13:604:20 | ...: bool | match | +| main.rs:604:13:604:20 | ...: bool | main.rs:604:23:604:24 | b2 | | +| main.rs:604:23:604:24 | b2 | main.rs:604:23:604:24 | b2 | | +| main.rs:604:23:604:24 | b2 | main.rs:604:23:604:30 | ...: bool | match | +| main.rs:604:23:604:30 | ...: bool | main.rs:605:5:605:14 | let ... = 1 | | +| main.rs:604:33:621:1 | { ... } | main.rs:604:1:621:1 | exit fn phi_read (normal) | | +| main.rs:605:5:605:14 | let ... = 1 | main.rs:605:13:605:13 | 1 | | +| main.rs:605:9:605:9 | x | main.rs:605:9:605:9 | x | | +| main.rs:605:9:605:9 | x | main.rs:606:5:612:6 | let _ = ... | match | +| main.rs:605:13:605:13 | 1 | main.rs:605:9:605:9 | x | | +| main.rs:606:5:612:6 | let _ = ... | main.rs:607:16:607:17 | b1 | | +| main.rs:607:9:607:9 | _ | main.rs:614:5:620:6 | let _ = ... | match | +| main.rs:607:13:612:5 | if b1 {...} else {...} | main.rs:607:9:607:9 | _ | | +| main.rs:607:16:607:17 | b1 | main.rs:609:9:609:21 | ExprStmt | true | +| main.rs:607:16:607:17 | b1 | main.rs:611:9:611:21 | ExprStmt | false | +| main.rs:608:5:610:5 | { ... } | main.rs:607:13:612:5 | if b1 {...} else {...} | | | main.rs:609:9:609:17 | print_i64 | main.rs:609:19:609:19 | x | | -| main.rs:609:9:609:20 | print_i64(...) | main.rs:608:12:610:5 | { ... } | | +| main.rs:609:9:609:20 | print_i64(...) | main.rs:608:5:610:5 | { ... } | | | main.rs:609:9:609:21 | ExprStmt | main.rs:609:9:609:17 | print_i64 | | | main.rs:609:19:609:19 | x | main.rs:609:9:609:20 | print_i64(...) | | -| main.rs:612:5:618:6 | let _ = ... | main.rs:613:16:613:17 | b2 | | -| main.rs:613:9:613:9 | _ | main.rs:602:33:619:1 | { ... } | match | -| main.rs:613:13:618:5 | if b2 {...} else {...} | main.rs:613:9:613:9 | _ | | -| main.rs:613:16:613:17 | b2 | main.rs:615:9:615:21 | ExprStmt | true | -| main.rs:613:16:613:17 | b2 | main.rs:617:9:617:21 | ExprStmt | false | -| main.rs:614:5:616:5 | { ... } | main.rs:613:13:618:5 | if b2 {...} else {...} | | -| main.rs:615:9:615:17 | print_i64 | main.rs:615:19:615:19 | x | | -| main.rs:615:9:615:20 | print_i64(...) | main.rs:614:5:616:5 | { ... } | | -| main.rs:615:9:615:21 | ExprStmt | main.rs:615:9:615:17 | print_i64 | | -| main.rs:615:19:615:19 | x | main.rs:615:9:615:20 | print_i64(...) | | -| main.rs:616:12:618:5 | { ... } | main.rs:613:13:618:5 | if b2 {...} else {...} | | +| main.rs:610:12:612:5 | { ... } | main.rs:607:13:612:5 | if b1 {...} else {...} | | +| main.rs:611:9:611:17 | print_i64 | main.rs:611:19:611:19 | x | | +| main.rs:611:9:611:20 | print_i64(...) | main.rs:610:12:612:5 | { ... } | | +| main.rs:611:9:611:21 | ExprStmt | main.rs:611:9:611:17 | print_i64 | | +| main.rs:611:19:611:19 | x | main.rs:611:9:611:20 | print_i64(...) | | +| main.rs:614:5:620:6 | let _ = ... | main.rs:615:16:615:17 | b2 | | +| main.rs:615:9:615:9 | _ | main.rs:604:33:621:1 | { ... } | match | +| main.rs:615:13:620:5 | if b2 {...} else {...} | main.rs:615:9:615:9 | _ | | +| main.rs:615:16:615:17 | b2 | main.rs:617:9:617:21 | ExprStmt | true | +| main.rs:615:16:615:17 | b2 | main.rs:619:9:619:21 | ExprStmt | false | +| main.rs:616:5:618:5 | { ... } | main.rs:615:13:620:5 | if b2 {...} else {...} | | | main.rs:617:9:617:17 | print_i64 | main.rs:617:19:617:19 | x | | -| main.rs:617:9:617:20 | print_i64(...) | main.rs:616:12:618:5 | { ... } | | +| main.rs:617:9:617:20 | print_i64(...) | main.rs:616:5:618:5 | { ... } | | | main.rs:617:9:617:21 | ExprStmt | main.rs:617:9:617:17 | print_i64 | | | main.rs:617:19:617:19 | x | main.rs:617:9:617:20 | print_i64(...) | | -| main.rs:626:5:628:5 | enter fn my_get | main.rs:626:20:626:23 | self | | -| main.rs:626:5:628:5 | exit fn my_get (normal) | main.rs:626:5:628:5 | exit fn my_get | | -| main.rs:626:15:626:23 | SelfParam | main.rs:627:9:627:24 | ExprStmt | | -| main.rs:626:20:626:23 | self | main.rs:626:15:626:23 | SelfParam | | -| main.rs:627:9:627:23 | return ... | main.rs:626:5:628:5 | exit fn my_get (normal) | return | -| main.rs:627:9:627:24 | ExprStmt | main.rs:627:16:627:19 | self | | -| main.rs:627:16:627:19 | self | main.rs:627:16:627:23 | self.val | | -| main.rs:627:16:627:23 | self.val | main.rs:627:9:627:23 | return ... | | -| main.rs:630:5:632:5 | enter fn id | main.rs:630:11:630:14 | self | | -| main.rs:630:5:632:5 | exit fn id (normal) | main.rs:630:5:632:5 | exit fn id | | -| main.rs:630:11:630:14 | SelfParam | main.rs:631:9:631:12 | self | | -| main.rs:630:11:630:14 | self | main.rs:630:11:630:14 | SelfParam | | -| main.rs:630:25:632:5 | { ... } | main.rs:630:5:632:5 | exit fn id (normal) | | -| main.rs:631:9:631:12 | self | main.rs:630:25:632:5 | { ... } | | -| main.rs:634:5:641:5 | enter fn my_method | main.rs:634:23:634:26 | self | | -| main.rs:634:5:641:5 | exit fn my_method (normal) | main.rs:634:5:641:5 | exit fn my_method | | -| main.rs:634:18:634:26 | SelfParam | main.rs:635:9:638:10 | let ... = ... | | -| main.rs:634:23:634:26 | self | main.rs:634:18:634:26 | SelfParam | | -| main.rs:634:29:641:5 | { ... } | main.rs:634:5:641:5 | exit fn my_method (normal) | | -| main.rs:635:9:638:10 | let ... = ... | main.rs:635:21:638:9 | \|...\| ... | | -| main.rs:635:13:635:17 | mut f | main.rs:639:9:639:13 | ExprStmt | match | -| main.rs:635:17:635:17 | f | main.rs:635:13:635:17 | mut f | | -| main.rs:635:21:638:9 | \|...\| ... | main.rs:635:17:635:17 | f | | -| main.rs:635:21:638:9 | enter \|...\| ... | main.rs:635:22:635:22 | n | | -| main.rs:635:21:638:9 | exit \|...\| ... (normal) | main.rs:635:21:638:9 | exit \|...\| ... | | -| main.rs:635:22:635:22 | ... | main.rs:637:13:637:26 | ExprStmt | | -| main.rs:635:22:635:22 | n | main.rs:635:22:635:22 | ... | match | -| main.rs:635:22:635:22 | n | main.rs:635:22:635:22 | n | | -| main.rs:635:25:638:9 | { ... } | main.rs:635:21:638:9 | exit \|...\| ... (normal) | | -| main.rs:637:13:637:16 | self | main.rs:637:13:637:20 | self.val | | -| main.rs:637:13:637:20 | self.val | main.rs:637:25:637:25 | n | | -| main.rs:637:13:637:25 | ... += ... | main.rs:635:25:638:9 | { ... } | | -| main.rs:637:13:637:26 | ExprStmt | main.rs:637:13:637:16 | self | | -| main.rs:637:25:637:25 | n | main.rs:637:13:637:25 | ... += ... | | -| main.rs:639:9:639:9 | f | main.rs:639:11:639:11 | 3 | | -| main.rs:639:9:639:12 | f(...) | main.rs:640:9:640:13 | ExprStmt | | -| main.rs:639:9:639:13 | ExprStmt | main.rs:639:9:639:9 | f | | -| main.rs:639:11:639:11 | 3 | main.rs:639:9:639:12 | f(...) | | -| main.rs:640:9:640:9 | f | main.rs:640:11:640:11 | 4 | | -| main.rs:640:9:640:12 | f(...) | main.rs:634:29:641:5 | { ... } | | -| main.rs:640:9:640:13 | ExprStmt | main.rs:640:9:640:9 | f | | -| main.rs:640:11:640:11 | 4 | main.rs:640:9:640:12 | f(...) | | -| main.rs:644:1:651:1 | enter fn structs | main.rs:645:5:645:36 | let ... = ... | | -| main.rs:644:1:651:1 | exit fn structs (normal) | main.rs:644:1:651:1 | exit fn structs | | -| main.rs:644:14:651:1 | { ... } | main.rs:644:1:651:1 | exit fn structs (normal) | | -| main.rs:645:5:645:36 | let ... = ... | main.rs:645:33:645:33 | 1 | | -| main.rs:645:9:645:13 | mut a | main.rs:646:5:646:26 | ExprStmt | match | -| main.rs:645:13:645:13 | a | main.rs:645:9:645:13 | mut a | | -| main.rs:645:17:645:35 | MyStruct {...} | main.rs:645:13:645:13 | a | | -| main.rs:645:33:645:33 | 1 | main.rs:645:17:645:35 | MyStruct {...} | | -| main.rs:646:5:646:13 | print_i64 | main.rs:646:15:646:15 | a | | -| main.rs:646:5:646:25 | print_i64(...) | main.rs:647:5:647:14 | ExprStmt | | -| main.rs:646:5:646:26 | ExprStmt | main.rs:646:5:646:13 | print_i64 | | -| main.rs:646:15:646:15 | a | main.rs:646:15:646:24 | a.my_get() | | -| main.rs:646:15:646:24 | a.my_get() | main.rs:646:5:646:25 | print_i64(...) | | -| main.rs:647:5:647:5 | a | main.rs:647:5:647:9 | a.val | | -| main.rs:647:5:647:9 | a.val | main.rs:647:13:647:13 | 5 | | -| main.rs:647:5:647:13 | ... = ... | main.rs:648:5:648:26 | ExprStmt | | -| main.rs:647:5:647:14 | ExprStmt | main.rs:647:5:647:5 | a | | -| main.rs:647:13:647:13 | 5 | main.rs:647:5:647:13 | ... = ... | | +| main.rs:618:12:620:5 | { ... } | main.rs:615:13:620:5 | if b2 {...} else {...} | | +| main.rs:619:9:619:17 | print_i64 | main.rs:619:19:619:19 | x | | +| main.rs:619:9:619:20 | print_i64(...) | main.rs:618:12:620:5 | { ... } | | +| main.rs:619:9:619:21 | ExprStmt | main.rs:619:9:619:17 | print_i64 | | +| main.rs:619:19:619:19 | x | main.rs:619:9:619:20 | print_i64(...) | | +| main.rs:628:5:630:5 | enter fn my_get | main.rs:628:20:628:23 | self | | +| main.rs:628:5:630:5 | exit fn my_get (normal) | main.rs:628:5:630:5 | exit fn my_get | | +| main.rs:628:15:628:23 | SelfParam | main.rs:629:9:629:24 | ExprStmt | | +| main.rs:628:20:628:23 | self | main.rs:628:15:628:23 | SelfParam | | +| main.rs:629:9:629:23 | return ... | main.rs:628:5:630:5 | exit fn my_get (normal) | return | +| main.rs:629:9:629:24 | ExprStmt | main.rs:629:16:629:19 | self | | +| main.rs:629:16:629:19 | self | main.rs:629:16:629:23 | self.val | | +| main.rs:629:16:629:23 | self.val | main.rs:629:9:629:23 | return ... | | +| main.rs:632:5:634:5 | enter fn id | main.rs:632:11:632:14 | self | | +| main.rs:632:5:634:5 | exit fn id (normal) | main.rs:632:5:634:5 | exit fn id | | +| main.rs:632:11:632:14 | SelfParam | main.rs:633:9:633:12 | self | | +| main.rs:632:11:632:14 | self | main.rs:632:11:632:14 | SelfParam | | +| main.rs:632:25:634:5 | { ... } | main.rs:632:5:634:5 | exit fn id (normal) | | +| main.rs:633:9:633:12 | self | main.rs:632:25:634:5 | { ... } | | +| main.rs:636:5:643:5 | enter fn my_method | main.rs:636:23:636:26 | self | | +| main.rs:636:5:643:5 | exit fn my_method (normal) | main.rs:636:5:643:5 | exit fn my_method | | +| main.rs:636:18:636:26 | SelfParam | main.rs:637:9:640:10 | let ... = ... | | +| main.rs:636:23:636:26 | self | main.rs:636:18:636:26 | SelfParam | | +| main.rs:636:29:643:5 | { ... } | main.rs:636:5:643:5 | exit fn my_method (normal) | | +| main.rs:637:9:640:10 | let ... = ... | main.rs:637:21:640:9 | \|...\| ... | | +| main.rs:637:13:637:17 | mut f | main.rs:641:9:641:13 | ExprStmt | match | +| main.rs:637:17:637:17 | f | main.rs:637:13:637:17 | mut f | | +| main.rs:637:21:640:9 | \|...\| ... | main.rs:637:17:637:17 | f | | +| main.rs:637:21:640:9 | enter \|...\| ... | main.rs:637:22:637:22 | n | | +| main.rs:637:21:640:9 | exit \|...\| ... (normal) | main.rs:637:21:640:9 | exit \|...\| ... | | +| main.rs:637:22:637:22 | ... | main.rs:639:13:639:26 | ExprStmt | | +| main.rs:637:22:637:22 | n | main.rs:637:22:637:22 | ... | match | +| main.rs:637:22:637:22 | n | main.rs:637:22:637:22 | n | | +| main.rs:637:25:640:9 | { ... } | main.rs:637:21:640:9 | exit \|...\| ... (normal) | | +| main.rs:639:13:639:16 | self | main.rs:639:13:639:20 | self.val | | +| main.rs:639:13:639:20 | self.val | main.rs:639:25:639:25 | n | | +| main.rs:639:13:639:25 | ... += ... | main.rs:637:25:640:9 | { ... } | | +| main.rs:639:13:639:26 | ExprStmt | main.rs:639:13:639:16 | self | | +| main.rs:639:25:639:25 | n | main.rs:639:13:639:25 | ... += ... | | +| main.rs:641:9:641:9 | f | main.rs:641:11:641:11 | 3 | | +| main.rs:641:9:641:12 | f(...) | main.rs:642:9:642:13 | ExprStmt | | +| main.rs:641:9:641:13 | ExprStmt | main.rs:641:9:641:9 | f | | +| main.rs:641:11:641:11 | 3 | main.rs:641:9:641:12 | f(...) | | +| main.rs:642:9:642:9 | f | main.rs:642:11:642:11 | 4 | | +| main.rs:642:9:642:12 | f(...) | main.rs:636:29:643:5 | { ... } | | +| main.rs:642:9:642:13 | ExprStmt | main.rs:642:9:642:9 | f | | +| main.rs:642:11:642:11 | 4 | main.rs:642:9:642:12 | f(...) | | +| main.rs:646:1:653:1 | enter fn structs | main.rs:647:5:647:36 | let ... = ... | | +| main.rs:646:1:653:1 | exit fn structs (normal) | main.rs:646:1:653:1 | exit fn structs | | +| main.rs:646:14:653:1 | { ... } | main.rs:646:1:653:1 | exit fn structs (normal) | | +| main.rs:647:5:647:36 | let ... = ... | main.rs:647:33:647:33 | 1 | | +| main.rs:647:9:647:13 | mut a | main.rs:648:5:648:26 | ExprStmt | match | +| main.rs:647:13:647:13 | a | main.rs:647:9:647:13 | mut a | | +| main.rs:647:17:647:35 | MyStruct {...} | main.rs:647:13:647:13 | a | | +| main.rs:647:33:647:33 | 1 | main.rs:647:17:647:35 | MyStruct {...} | | | main.rs:648:5:648:13 | print_i64 | main.rs:648:15:648:15 | a | | -| main.rs:648:5:648:25 | print_i64(...) | main.rs:649:5:649:28 | ExprStmt | | +| main.rs:648:5:648:25 | print_i64(...) | main.rs:649:5:649:14 | ExprStmt | | | main.rs:648:5:648:26 | ExprStmt | main.rs:648:5:648:13 | print_i64 | | | main.rs:648:15:648:15 | a | main.rs:648:15:648:24 | a.my_get() | | | main.rs:648:15:648:24 | a.my_get() | main.rs:648:5:648:25 | print_i64(...) | | -| main.rs:649:5:649:5 | a | main.rs:649:25:649:25 | 2 | | -| main.rs:649:5:649:27 | ... = ... | main.rs:650:5:650:26 | ExprStmt | | -| main.rs:649:5:649:28 | ExprStmt | main.rs:649:5:649:5 | a | | -| main.rs:649:9:649:27 | MyStruct {...} | main.rs:649:5:649:27 | ... = ... | | -| main.rs:649:25:649:25 | 2 | main.rs:649:9:649:27 | MyStruct {...} | | +| main.rs:649:5:649:5 | a | main.rs:649:5:649:9 | a.val | | +| main.rs:649:5:649:9 | a.val | main.rs:649:13:649:13 | 5 | | +| main.rs:649:5:649:13 | ... = ... | main.rs:650:5:650:26 | ExprStmt | | +| main.rs:649:5:649:14 | ExprStmt | main.rs:649:5:649:5 | a | | +| main.rs:649:13:649:13 | 5 | main.rs:649:5:649:13 | ... = ... | | | main.rs:650:5:650:13 | print_i64 | main.rs:650:15:650:15 | a | | -| main.rs:650:5:650:25 | print_i64(...) | main.rs:644:14:651:1 | { ... } | | +| main.rs:650:5:650:25 | print_i64(...) | main.rs:651:5:651:28 | ExprStmt | | | main.rs:650:5:650:26 | ExprStmt | main.rs:650:5:650:13 | print_i64 | | | main.rs:650:15:650:15 | a | main.rs:650:15:650:24 | a.my_get() | | | main.rs:650:15:650:24 | a.my_get() | main.rs:650:5:650:25 | print_i64(...) | | -| main.rs:653:1:660:1 | enter fn arrays | main.rs:654:5:654:26 | let ... = ... | | -| main.rs:653:1:660:1 | exit fn arrays (normal) | main.rs:653:1:660:1 | exit fn arrays | | -| main.rs:653:13:660:1 | { ... } | main.rs:653:1:660:1 | exit fn arrays (normal) | | -| main.rs:654:5:654:26 | let ... = ... | main.rs:654:18:654:18 | 1 | | -| main.rs:654:9:654:13 | mut a | main.rs:655:5:655:20 | ExprStmt | match | -| main.rs:654:13:654:13 | a | main.rs:654:9:654:13 | mut a | | -| main.rs:654:17:654:25 | [...] | main.rs:654:13:654:13 | a | | -| main.rs:654:18:654:18 | 1 | main.rs:654:21:654:21 | 2 | | -| main.rs:654:21:654:21 | 2 | main.rs:654:24:654:24 | 3 | | -| main.rs:654:24:654:24 | 3 | main.rs:654:17:654:25 | [...] | | -| main.rs:655:5:655:13 | print_i64 | main.rs:655:15:655:15 | a | | -| main.rs:655:5:655:19 | print_i64(...) | main.rs:656:5:656:13 | ExprStmt | | -| main.rs:655:5:655:20 | ExprStmt | main.rs:655:5:655:13 | print_i64 | | -| main.rs:655:15:655:15 | a | main.rs:655:17:655:17 | 0 | | -| main.rs:655:15:655:18 | a[0] | main.rs:655:5:655:19 | print_i64(...) | | -| main.rs:655:17:655:17 | 0 | main.rs:655:15:655:18 | a[0] | | -| main.rs:656:5:656:5 | a | main.rs:656:7:656:7 | 1 | | -| main.rs:656:5:656:8 | a[1] | main.rs:656:12:656:12 | 5 | | -| main.rs:656:5:656:12 | ... = ... | main.rs:657:5:657:20 | ExprStmt | | -| main.rs:656:5:656:13 | ExprStmt | main.rs:656:5:656:5 | a | | -| main.rs:656:7:656:7 | 1 | main.rs:656:5:656:8 | a[1] | | -| main.rs:656:12:656:12 | 5 | main.rs:656:5:656:12 | ... = ... | | +| main.rs:651:5:651:5 | a | main.rs:651:25:651:25 | 2 | | +| main.rs:651:5:651:27 | ... = ... | main.rs:652:5:652:26 | ExprStmt | | +| main.rs:651:5:651:28 | ExprStmt | main.rs:651:5:651:5 | a | | +| main.rs:651:9:651:27 | MyStruct {...} | main.rs:651:5:651:27 | ... = ... | | +| main.rs:651:25:651:25 | 2 | main.rs:651:9:651:27 | MyStruct {...} | | +| main.rs:652:5:652:13 | print_i64 | main.rs:652:15:652:15 | a | | +| main.rs:652:5:652:25 | print_i64(...) | main.rs:646:14:653:1 | { ... } | | +| main.rs:652:5:652:26 | ExprStmt | main.rs:652:5:652:13 | print_i64 | | +| main.rs:652:15:652:15 | a | main.rs:652:15:652:24 | a.my_get() | | +| main.rs:652:15:652:24 | a.my_get() | main.rs:652:5:652:25 | print_i64(...) | | +| main.rs:655:1:662:1 | enter fn arrays | main.rs:656:5:656:26 | let ... = ... | | +| main.rs:655:1:662:1 | exit fn arrays (normal) | main.rs:655:1:662:1 | exit fn arrays | | +| main.rs:655:13:662:1 | { ... } | main.rs:655:1:662:1 | exit fn arrays (normal) | | +| main.rs:656:5:656:26 | let ... = ... | main.rs:656:18:656:18 | 1 | | +| main.rs:656:9:656:13 | mut a | main.rs:657:5:657:20 | ExprStmt | match | +| main.rs:656:13:656:13 | a | main.rs:656:9:656:13 | mut a | | +| main.rs:656:17:656:25 | [...] | main.rs:656:13:656:13 | a | | +| main.rs:656:18:656:18 | 1 | main.rs:656:21:656:21 | 2 | | +| main.rs:656:21:656:21 | 2 | main.rs:656:24:656:24 | 3 | | +| main.rs:656:24:656:24 | 3 | main.rs:656:17:656:25 | [...] | | | main.rs:657:5:657:13 | print_i64 | main.rs:657:15:657:15 | a | | -| main.rs:657:5:657:19 | print_i64(...) | main.rs:658:5:658:18 | ExprStmt | | +| main.rs:657:5:657:19 | print_i64(...) | main.rs:658:5:658:13 | ExprStmt | | | main.rs:657:5:657:20 | ExprStmt | main.rs:657:5:657:13 | print_i64 | | -| main.rs:657:15:657:15 | a | main.rs:657:17:657:17 | 1 | | -| main.rs:657:15:657:18 | a[1] | main.rs:657:5:657:19 | print_i64(...) | | -| main.rs:657:17:657:17 | 1 | main.rs:657:15:657:18 | a[1] | | -| main.rs:658:5:658:5 | a | main.rs:658:10:658:10 | 4 | | -| main.rs:658:5:658:17 | ... = ... | main.rs:659:5:659:20 | ExprStmt | | -| main.rs:658:5:658:18 | ExprStmt | main.rs:658:5:658:5 | a | | -| main.rs:658:9:658:17 | [...] | main.rs:658:5:658:17 | ... = ... | | -| main.rs:658:10:658:10 | 4 | main.rs:658:13:658:13 | 5 | | -| main.rs:658:13:658:13 | 5 | main.rs:658:16:658:16 | 6 | | -| main.rs:658:16:658:16 | 6 | main.rs:658:9:658:17 | [...] | | +| main.rs:657:15:657:15 | a | main.rs:657:17:657:17 | 0 | | +| main.rs:657:15:657:18 | a[0] | main.rs:657:5:657:19 | print_i64(...) | | +| main.rs:657:17:657:17 | 0 | main.rs:657:15:657:18 | a[0] | | +| main.rs:658:5:658:5 | a | main.rs:658:7:658:7 | 1 | | +| main.rs:658:5:658:8 | a[1] | main.rs:658:12:658:12 | 5 | | +| main.rs:658:5:658:12 | ... = ... | main.rs:659:5:659:20 | ExprStmt | | +| main.rs:658:5:658:13 | ExprStmt | main.rs:658:5:658:5 | a | | +| main.rs:658:7:658:7 | 1 | main.rs:658:5:658:8 | a[1] | | +| main.rs:658:12:658:12 | 5 | main.rs:658:5:658:12 | ... = ... | | | main.rs:659:5:659:13 | print_i64 | main.rs:659:15:659:15 | a | | -| main.rs:659:5:659:19 | print_i64(...) | main.rs:653:13:660:1 | { ... } | | +| main.rs:659:5:659:19 | print_i64(...) | main.rs:660:5:660:18 | ExprStmt | | | main.rs:659:5:659:20 | ExprStmt | main.rs:659:5:659:13 | print_i64 | | -| main.rs:659:15:659:15 | a | main.rs:659:17:659:17 | 2 | | -| main.rs:659:15:659:18 | a[2] | main.rs:659:5:659:19 | print_i64(...) | | -| main.rs:659:17:659:17 | 2 | main.rs:659:15:659:18 | a[2] | | -| main.rs:662:1:669:1 | enter fn ref_arg | main.rs:663:5:663:15 | let ... = 16 | | -| main.rs:662:1:669:1 | exit fn ref_arg (normal) | main.rs:662:1:669:1 | exit fn ref_arg | | -| main.rs:662:14:669:1 | { ... } | main.rs:662:1:669:1 | exit fn ref_arg (normal) | | -| main.rs:663:5:663:15 | let ... = 16 | main.rs:663:13:663:14 | 16 | | -| main.rs:663:9:663:9 | x | main.rs:663:9:663:9 | x | | -| main.rs:663:9:663:9 | x | main.rs:664:5:664:22 | ExprStmt | match | -| main.rs:663:13:663:14 | 16 | main.rs:663:9:663:9 | x | | -| main.rs:664:5:664:17 | print_i64_ref | main.rs:664:20:664:20 | x | | -| main.rs:664:5:664:21 | print_i64_ref(...) | main.rs:665:5:665:17 | ExprStmt | | -| main.rs:664:5:664:22 | ExprStmt | main.rs:664:5:664:17 | print_i64_ref | | -| main.rs:664:19:664:20 | &x | main.rs:664:5:664:21 | print_i64_ref(...) | | -| main.rs:664:20:664:20 | x | main.rs:664:19:664:20 | &x | | -| main.rs:665:5:665:13 | print_i64 | main.rs:665:15:665:15 | x | | -| main.rs:665:5:665:16 | print_i64(...) | main.rs:667:5:667:15 | let ... = 17 | | -| main.rs:665:5:665:17 | ExprStmt | main.rs:665:5:665:13 | print_i64 | | -| main.rs:665:15:665:15 | x | main.rs:665:5:665:16 | print_i64(...) | | -| main.rs:667:5:667:15 | let ... = 17 | main.rs:667:13:667:14 | 17 | | -| main.rs:667:9:667:9 | z | main.rs:667:9:667:9 | z | | -| main.rs:667:9:667:9 | z | main.rs:668:5:668:22 | ExprStmt | match | -| main.rs:667:13:667:14 | 17 | main.rs:667:9:667:9 | z | | -| main.rs:668:5:668:17 | print_i64_ref | main.rs:668:20:668:20 | z | | -| main.rs:668:5:668:21 | print_i64_ref(...) | main.rs:662:14:669:1 | { ... } | | -| main.rs:668:5:668:22 | ExprStmt | main.rs:668:5:668:17 | print_i64_ref | | -| main.rs:668:19:668:20 | &z | main.rs:668:5:668:21 | print_i64_ref(...) | | -| main.rs:668:20:668:20 | z | main.rs:668:19:668:20 | &z | | -| main.rs:676:5:678:5 | enter fn bar | main.rs:676:17:676:20 | self | | -| main.rs:676:5:678:5 | exit fn bar (normal) | main.rs:676:5:678:5 | exit fn bar | | -| main.rs:676:12:676:20 | SelfParam | main.rs:677:9:677:36 | ExprStmt | | -| main.rs:676:17:676:20 | self | main.rs:676:12:676:20 | SelfParam | | -| main.rs:676:23:678:5 | { ... } | main.rs:676:5:678:5 | exit fn bar (normal) | | -| main.rs:677:9:677:13 | * ... | main.rs:677:33:677:33 | 3 | | -| main.rs:677:9:677:35 | ... = ... | main.rs:676:23:678:5 | { ... } | | -| main.rs:677:9:677:36 | ExprStmt | main.rs:677:10:677:13 | self | | -| main.rs:677:10:677:13 | self | main.rs:677:9:677:13 | * ... | | -| main.rs:677:17:677:35 | MyStruct {...} | main.rs:677:9:677:35 | ... = ... | | -| main.rs:677:33:677:33 | 3 | main.rs:677:17:677:35 | MyStruct {...} | | -| main.rs:681:1:687:1 | enter fn ref_methodcall_receiver | main.rs:682:5:682:36 | let ... = ... | | -| main.rs:681:1:687:1 | exit fn ref_methodcall_receiver (normal) | main.rs:681:1:687:1 | exit fn ref_methodcall_receiver | | -| main.rs:681:30:687:1 | { ... } | main.rs:681:1:687:1 | exit fn ref_methodcall_receiver (normal) | | -| main.rs:682:5:682:36 | let ... = ... | main.rs:682:33:682:33 | 1 | | -| main.rs:682:9:682:13 | mut a | main.rs:683:5:683:12 | ExprStmt | match | -| main.rs:682:13:682:13 | a | main.rs:682:9:682:13 | mut a | | -| main.rs:682:17:682:35 | MyStruct {...} | main.rs:682:13:682:13 | a | | -| main.rs:682:33:682:33 | 1 | main.rs:682:17:682:35 | MyStruct {...} | | -| main.rs:683:5:683:5 | a | main.rs:683:5:683:11 | a.bar() | | -| main.rs:683:5:683:11 | a.bar() | main.rs:686:5:686:21 | ExprStmt | | -| main.rs:683:5:683:12 | ExprStmt | main.rs:683:5:683:5 | a | | -| main.rs:686:5:686:13 | print_i64 | main.rs:686:15:686:15 | a | | -| main.rs:686:5:686:20 | print_i64(...) | main.rs:681:30:687:1 | { ... } | | -| main.rs:686:5:686:21 | ExprStmt | main.rs:686:5:686:13 | print_i64 | | -| main.rs:686:15:686:15 | a | main.rs:686:15:686:19 | a.val | | -| main.rs:686:15:686:19 | a.val | main.rs:686:5:686:20 | print_i64(...) | | -| main.rs:703:1:714:1 | enter fn macro_invocation | main.rs:704:5:705:26 | let ... = ... | | -| main.rs:703:1:714:1 | exit fn macro_invocation (normal) | main.rs:703:1:714:1 | exit fn macro_invocation | | -| main.rs:703:23:714:1 | { ... } | main.rs:703:1:714:1 | exit fn macro_invocation (normal) | | -| main.rs:704:5:705:26 | let ... = ... | main.rs:705:23:705:24 | let ... = 37 | | -| main.rs:704:9:704:22 | var_from_macro | main.rs:704:9:704:22 | var_from_macro | | -| main.rs:704:9:704:22 | var_from_macro | main.rs:706:5:706:30 | ExprStmt | match | -| main.rs:705:9:705:21 | var_in_macro | main.rs:705:9:705:21 | var_in_macro | | -| main.rs:705:9:705:21 | var_in_macro | main.rs:705:9:705:21 | var_in_macro | match | -| main.rs:705:9:705:21 | var_in_macro | main.rs:705:23:705:24 | { ... } | | -| main.rs:705:9:705:25 | MacroExpr | main.rs:704:9:704:22 | var_from_macro | | -| main.rs:705:9:705:25 | let_in_macro!... | main.rs:705:9:705:25 | MacroExpr | | -| main.rs:705:23:705:24 | 37 | main.rs:705:9:705:21 | var_in_macro | | -| main.rs:705:23:705:24 | let ... = 37 | main.rs:705:23:705:24 | 37 | | -| main.rs:705:23:705:24 | { ... } | main.rs:705:9:705:25 | let_in_macro!... | | -| main.rs:706:5:706:13 | print_i64 | main.rs:706:15:706:28 | var_from_macro | | -| main.rs:706:5:706:29 | print_i64(...) | main.rs:707:5:707:26 | let ... = 33 | | -| main.rs:706:5:706:30 | ExprStmt | main.rs:706:5:706:13 | print_i64 | | -| main.rs:706:15:706:28 | var_from_macro | main.rs:706:5:706:29 | print_i64(...) | | -| main.rs:707:5:707:26 | let ... = 33 | main.rs:707:24:707:25 | 33 | | -| main.rs:707:9:707:20 | var_in_macro | main.rs:707:9:707:20 | var_in_macro | | -| main.rs:707:9:707:20 | var_in_macro | main.rs:712:5:712:44 | ExprStmt | match | -| main.rs:707:24:707:25 | 33 | main.rs:707:9:707:20 | var_in_macro | | -| main.rs:712:5:712:13 | print_i64 | main.rs:712:15:712:28 | let ... = 0 | | -| main.rs:712:5:712:43 | print_i64(...) | main.rs:713:5:713:28 | ExprStmt | | -| main.rs:712:5:712:44 | ExprStmt | main.rs:712:5:712:13 | print_i64 | | -| main.rs:712:15:712:28 | 0 | main.rs:712:15:712:28 | var_in_macro | | -| main.rs:712:15:712:28 | let ... = 0 | main.rs:712:15:712:28 | 0 | | -| main.rs:712:15:712:28 | var_in_macro | main.rs:712:15:712:28 | var_in_macro | | -| main.rs:712:15:712:28 | var_in_macro | main.rs:712:30:712:41 | var_in_macro | match | -| main.rs:712:15:712:42 | MacroExpr | main.rs:712:5:712:43 | print_i64(...) | | -| main.rs:712:15:712:42 | let_in_macro2!... | main.rs:712:15:712:42 | MacroExpr | | -| main.rs:712:30:712:41 | var_in_macro | main.rs:712:30:712:41 | { ... } | | -| main.rs:712:30:712:41 | { ... } | main.rs:712:15:712:42 | let_in_macro2!... | | -| main.rs:713:5:713:13 | print_i64 | main.rs:713:15:713:26 | var_in_macro | | -| main.rs:713:5:713:27 | print_i64(...) | main.rs:703:23:714:1 | { ... } | | -| main.rs:713:5:713:28 | ExprStmt | main.rs:713:5:713:13 | print_i64 | | -| main.rs:713:15:713:26 | var_in_macro | main.rs:713:5:713:27 | print_i64(...) | | -| main.rs:716:1:720:1 | enter fn let_without_initializer | main.rs:717:5:717:10 | let ... | | -| main.rs:716:1:720:1 | exit fn let_without_initializer (normal) | main.rs:716:1:720:1 | exit fn let_without_initializer | | -| main.rs:716:30:720:1 | { ... } | main.rs:716:1:720:1 | exit fn let_without_initializer (normal) | | -| main.rs:717:5:717:10 | let ... | main.rs:717:9:717:9 | x | | -| main.rs:717:9:717:9 | x | main.rs:717:9:717:9 | x | | -| main.rs:717:9:717:9 | x | main.rs:718:5:718:10 | ExprStmt | match | -| main.rs:718:5:718:5 | x | main.rs:718:9:718:9 | 1 | | -| main.rs:718:5:718:9 | ... = ... | main.rs:719:5:719:17 | ExprStmt | | -| main.rs:718:5:718:10 | ExprStmt | main.rs:718:5:718:5 | x | | -| main.rs:718:9:718:9 | 1 | main.rs:718:5:718:9 | ... = ... | | -| main.rs:719:5:719:13 | print_i64 | main.rs:719:15:719:15 | x | | -| main.rs:719:5:719:16 | print_i64(...) | main.rs:716:30:720:1 | { ... } | | -| main.rs:719:5:719:17 | ExprStmt | main.rs:719:5:719:13 | print_i64 | | -| main.rs:719:15:719:15 | x | main.rs:719:5:719:16 | print_i64(...) | | -| main.rs:722:1:732:1 | enter fn capture_phi | main.rs:723:5:723:20 | let ... = 100 | | -| main.rs:722:1:732:1 | exit fn capture_phi (normal) | main.rs:722:1:732:1 | exit fn capture_phi | | -| main.rs:722:18:732:1 | { ... } | main.rs:722:1:732:1 | exit fn capture_phi (normal) | | -| main.rs:723:5:723:20 | let ... = 100 | main.rs:723:17:723:19 | 100 | | -| main.rs:723:9:723:13 | mut x | main.rs:724:5:729:6 | let ... = ... | match | -| main.rs:723:13:723:13 | x | main.rs:723:9:723:13 | mut x | | -| main.rs:723:17:723:19 | 100 | main.rs:723:13:723:13 | x | | -| main.rs:724:5:729:6 | let ... = ... | main.rs:724:19:729:5 | \|...\| ... | | -| main.rs:724:9:724:15 | mut cap | main.rs:730:5:730:14 | ExprStmt | match | -| main.rs:724:13:724:15 | cap | main.rs:724:9:724:15 | mut cap | | -| main.rs:724:19:729:5 | \|...\| ... | main.rs:724:13:724:15 | cap | | -| main.rs:724:19:729:5 | enter \|...\| ... | main.rs:724:20:724:20 | b | | -| main.rs:724:19:729:5 | exit \|...\| ... (normal) | main.rs:724:19:729:5 | exit \|...\| ... | | -| main.rs:724:20:724:20 | b | main.rs:724:20:724:20 | b | | -| main.rs:724:20:724:20 | b | main.rs:724:20:724:26 | ...: bool | match | -| main.rs:724:20:724:26 | ...: bool | main.rs:725:9:728:10 | let _ = ... | | -| main.rs:724:29:729:5 | { ... } | main.rs:724:19:729:5 | exit \|...\| ... (normal) | | -| main.rs:725:9:728:10 | let _ = ... | main.rs:726:20:726:20 | b | | -| main.rs:726:13:726:13 | _ | main.rs:724:29:729:5 | { ... } | match | -| main.rs:726:17:728:9 | if b {...} | main.rs:726:13:726:13 | _ | | -| main.rs:726:20:726:20 | b | main.rs:726:17:728:9 | if b {...} | false | -| main.rs:726:20:726:20 | b | main.rs:727:13:727:20 | ExprStmt | true | -| main.rs:726:22:728:9 | { ... } | main.rs:726:17:728:9 | if b {...} | | -| main.rs:727:13:727:13 | x | main.rs:727:17:727:19 | 200 | | -| main.rs:727:13:727:19 | ... = ... | main.rs:726:22:728:9 | { ... } | | -| main.rs:727:13:727:20 | ExprStmt | main.rs:727:13:727:13 | x | | -| main.rs:727:17:727:19 | 200 | main.rs:727:13:727:19 | ... = ... | | -| main.rs:730:5:730:7 | cap | main.rs:730:9:730:12 | true | | -| main.rs:730:5:730:13 | cap(...) | main.rs:731:5:731:17 | ExprStmt | | -| main.rs:730:5:730:14 | ExprStmt | main.rs:730:5:730:7 | cap | | -| main.rs:730:9:730:12 | true | main.rs:730:5:730:13 | cap(...) | | -| main.rs:731:5:731:13 | print_i64 | main.rs:731:15:731:15 | x | | -| main.rs:731:5:731:16 | print_i64(...) | main.rs:722:18:732:1 | { ... } | | -| main.rs:731:5:731:17 | ExprStmt | main.rs:731:5:731:13 | print_i64 | | -| main.rs:731:15:731:15 | x | main.rs:731:5:731:16 | print_i64(...) | | -| main.rs:734:1:776:1 | enter fn main | main.rs:735:5:735:25 | ExprStmt | | -| main.rs:734:1:776:1 | exit fn main (normal) | main.rs:734:1:776:1 | exit fn main | | -| main.rs:734:11:776:1 | { ... } | main.rs:734:1:776:1 | exit fn main (normal) | | -| main.rs:735:5:735:22 | immutable_variable | main.rs:735:5:735:24 | immutable_variable(...) | | -| main.rs:735:5:735:24 | immutable_variable(...) | main.rs:736:5:736:23 | ExprStmt | | -| main.rs:735:5:735:25 | ExprStmt | main.rs:735:5:735:22 | immutable_variable | | -| main.rs:736:5:736:20 | mutable_variable | main.rs:736:5:736:22 | mutable_variable(...) | | -| main.rs:736:5:736:22 | mutable_variable(...) | main.rs:737:5:737:40 | ExprStmt | | -| main.rs:736:5:736:23 | ExprStmt | main.rs:736:5:736:20 | mutable_variable | | -| main.rs:737:5:737:37 | mutable_variable_immutable_borrow | main.rs:737:5:737:39 | mutable_variable_immutable_borrow(...) | | -| main.rs:737:5:737:39 | mutable_variable_immutable_borrow(...) | main.rs:738:5:738:23 | ExprStmt | | -| main.rs:737:5:737:40 | ExprStmt | main.rs:737:5:737:37 | mutable_variable_immutable_borrow | | -| main.rs:738:5:738:20 | variable_shadow1 | main.rs:738:5:738:22 | variable_shadow1(...) | | -| main.rs:738:5:738:22 | variable_shadow1(...) | main.rs:739:5:739:23 | ExprStmt | | -| main.rs:738:5:738:23 | ExprStmt | main.rs:738:5:738:20 | variable_shadow1 | | -| main.rs:739:5:739:20 | variable_shadow2 | main.rs:739:5:739:22 | variable_shadow2(...) | | -| main.rs:739:5:739:22 | variable_shadow2(...) | main.rs:740:5:740:19 | ExprStmt | | -| main.rs:739:5:739:23 | ExprStmt | main.rs:739:5:739:20 | variable_shadow2 | | -| main.rs:740:5:740:16 | let_pattern1 | main.rs:740:5:740:18 | let_pattern1(...) | | -| main.rs:740:5:740:18 | let_pattern1(...) | main.rs:741:5:741:19 | ExprStmt | | -| main.rs:740:5:740:19 | ExprStmt | main.rs:740:5:740:16 | let_pattern1 | | -| main.rs:741:5:741:16 | let_pattern2 | main.rs:741:5:741:18 | let_pattern2(...) | | -| main.rs:741:5:741:18 | let_pattern2(...) | main.rs:742:5:742:19 | ExprStmt | | -| main.rs:741:5:741:19 | ExprStmt | main.rs:741:5:741:16 | let_pattern2 | | -| main.rs:742:5:742:16 | let_pattern3 | main.rs:742:5:742:18 | let_pattern3(...) | | -| main.rs:742:5:742:18 | let_pattern3(...) | main.rs:743:5:743:19 | ExprStmt | | -| main.rs:742:5:742:19 | ExprStmt | main.rs:742:5:742:16 | let_pattern3 | | -| main.rs:743:5:743:16 | let_pattern4 | main.rs:743:5:743:18 | let_pattern4(...) | | -| main.rs:743:5:743:18 | let_pattern4(...) | main.rs:744:5:744:21 | ExprStmt | | -| main.rs:743:5:743:19 | ExprStmt | main.rs:743:5:743:16 | let_pattern4 | | -| main.rs:744:5:744:18 | match_pattern1 | main.rs:744:5:744:20 | match_pattern1(...) | | -| main.rs:744:5:744:20 | match_pattern1(...) | main.rs:745:5:745:21 | ExprStmt | | -| main.rs:744:5:744:21 | ExprStmt | main.rs:744:5:744:18 | match_pattern1 | | -| main.rs:745:5:745:18 | match_pattern2 | main.rs:745:5:745:20 | match_pattern2(...) | | -| main.rs:745:5:745:20 | match_pattern2(...) | main.rs:746:5:746:21 | ExprStmt | | -| main.rs:745:5:745:21 | ExprStmt | main.rs:745:5:745:18 | match_pattern2 | | -| main.rs:746:5:746:18 | match_pattern3 | main.rs:746:5:746:20 | match_pattern3(...) | | -| main.rs:746:5:746:20 | match_pattern3(...) | main.rs:747:5:747:21 | ExprStmt | | -| main.rs:746:5:746:21 | ExprStmt | main.rs:746:5:746:18 | match_pattern3 | | -| main.rs:747:5:747:18 | match_pattern4 | main.rs:747:5:747:20 | match_pattern4(...) | | -| main.rs:747:5:747:20 | match_pattern4(...) | main.rs:748:5:748:21 | ExprStmt | | -| main.rs:747:5:747:21 | ExprStmt | main.rs:747:5:747:18 | match_pattern4 | | -| main.rs:748:5:748:18 | match_pattern5 | main.rs:748:5:748:20 | match_pattern5(...) | | -| main.rs:748:5:748:20 | match_pattern5(...) | main.rs:749:5:749:21 | ExprStmt | | -| main.rs:748:5:748:21 | ExprStmt | main.rs:748:5:748:18 | match_pattern5 | | -| main.rs:749:5:749:18 | match_pattern6 | main.rs:749:5:749:20 | match_pattern6(...) | | -| main.rs:749:5:749:20 | match_pattern6(...) | main.rs:750:5:750:21 | ExprStmt | | -| main.rs:749:5:749:21 | ExprStmt | main.rs:749:5:749:18 | match_pattern6 | | -| main.rs:750:5:750:18 | match_pattern7 | main.rs:750:5:750:20 | match_pattern7(...) | | -| main.rs:750:5:750:20 | match_pattern7(...) | main.rs:751:5:751:21 | ExprStmt | | -| main.rs:750:5:750:21 | ExprStmt | main.rs:750:5:750:18 | match_pattern7 | | -| main.rs:751:5:751:18 | match_pattern8 | main.rs:751:5:751:20 | match_pattern8(...) | | -| main.rs:751:5:751:20 | match_pattern8(...) | main.rs:752:5:752:21 | ExprStmt | | -| main.rs:751:5:751:21 | ExprStmt | main.rs:751:5:751:18 | match_pattern8 | | -| main.rs:752:5:752:18 | match_pattern9 | main.rs:752:5:752:20 | match_pattern9(...) | | -| main.rs:752:5:752:20 | match_pattern9(...) | main.rs:753:5:753:22 | ExprStmt | | -| main.rs:752:5:752:21 | ExprStmt | main.rs:752:5:752:18 | match_pattern9 | | -| main.rs:753:5:753:19 | match_pattern10 | main.rs:753:5:753:21 | match_pattern10(...) | | -| main.rs:753:5:753:21 | match_pattern10(...) | main.rs:754:5:754:22 | ExprStmt | | -| main.rs:753:5:753:22 | ExprStmt | main.rs:753:5:753:19 | match_pattern10 | | -| main.rs:754:5:754:19 | match_pattern11 | main.rs:754:5:754:21 | match_pattern11(...) | | -| main.rs:754:5:754:21 | match_pattern11(...) | main.rs:755:5:755:22 | ExprStmt | | -| main.rs:754:5:754:22 | ExprStmt | main.rs:754:5:754:19 | match_pattern11 | | -| main.rs:755:5:755:19 | match_pattern12 | main.rs:755:5:755:21 | match_pattern12(...) | | -| main.rs:755:5:755:21 | match_pattern12(...) | main.rs:756:5:756:22 | ExprStmt | | -| main.rs:755:5:755:22 | ExprStmt | main.rs:755:5:755:19 | match_pattern12 | | -| main.rs:756:5:756:19 | match_pattern13 | main.rs:756:5:756:21 | match_pattern13(...) | | -| main.rs:756:5:756:21 | match_pattern13(...) | main.rs:757:5:757:22 | ExprStmt | | -| main.rs:756:5:756:22 | ExprStmt | main.rs:756:5:756:19 | match_pattern13 | | -| main.rs:757:5:757:19 | match_pattern14 | main.rs:757:5:757:21 | match_pattern14(...) | | -| main.rs:757:5:757:21 | match_pattern14(...) | main.rs:758:5:758:36 | ExprStmt | | -| main.rs:757:5:757:22 | ExprStmt | main.rs:757:5:757:19 | match_pattern14 | | -| main.rs:758:5:758:18 | param_pattern1 | main.rs:758:20:758:22 | "a" | | -| main.rs:758:5:758:35 | param_pattern1(...) | main.rs:759:5:759:37 | ExprStmt | | -| main.rs:758:5:758:36 | ExprStmt | main.rs:758:5:758:18 | param_pattern1 | | -| main.rs:758:20:758:22 | "a" | main.rs:758:26:758:28 | "b" | | -| main.rs:758:25:758:34 | TupleExpr | main.rs:758:5:758:35 | param_pattern1(...) | | -| main.rs:758:26:758:28 | "b" | main.rs:758:31:758:33 | "c" | | -| main.rs:758:31:758:33 | "c" | main.rs:758:25:758:34 | TupleExpr | | -| main.rs:759:5:759:18 | param_pattern2 | main.rs:759:20:759:31 | ...::Left | | -| main.rs:759:5:759:36 | param_pattern2(...) | main.rs:760:5:760:26 | ExprStmt | | -| main.rs:759:5:759:37 | ExprStmt | main.rs:759:5:759:18 | param_pattern2 | | -| main.rs:759:20:759:31 | ...::Left | main.rs:759:33:759:34 | 45 | | -| main.rs:759:20:759:35 | ...::Left(...) | main.rs:759:5:759:36 | param_pattern2(...) | | -| main.rs:759:33:759:34 | 45 | main.rs:759:20:759:35 | ...::Left(...) | | -| main.rs:760:5:760:23 | destruct_assignment | main.rs:760:5:760:25 | destruct_assignment(...) | | -| main.rs:760:5:760:25 | destruct_assignment(...) | main.rs:761:5:761:23 | ExprStmt | | -| main.rs:760:5:760:26 | ExprStmt | main.rs:760:5:760:23 | destruct_assignment | | -| main.rs:761:5:761:20 | closure_variable | main.rs:761:5:761:22 | closure_variable(...) | | -| main.rs:761:5:761:22 | closure_variable(...) | main.rs:762:5:762:22 | ExprStmt | | -| main.rs:761:5:761:23 | ExprStmt | main.rs:761:5:761:20 | closure_variable | | -| main.rs:762:5:762:19 | nested_function | main.rs:762:5:762:21 | nested_function(...) | | -| main.rs:762:5:762:21 | nested_function(...) | main.rs:763:5:763:19 | ExprStmt | | -| main.rs:762:5:762:22 | ExprStmt | main.rs:762:5:762:19 | nested_function | | -| main.rs:763:5:763:16 | for_variable | main.rs:763:5:763:18 | for_variable(...) | | -| main.rs:763:5:763:18 | for_variable(...) | main.rs:764:5:764:17 | ExprStmt | | -| main.rs:763:5:763:19 | ExprStmt | main.rs:763:5:763:16 | for_variable | | -| main.rs:764:5:764:14 | add_assign | main.rs:764:5:764:16 | add_assign(...) | | -| main.rs:764:5:764:16 | add_assign(...) | main.rs:765:5:765:13 | ExprStmt | | -| main.rs:764:5:764:17 | ExprStmt | main.rs:764:5:764:14 | add_assign | | -| main.rs:765:5:765:10 | mutate | main.rs:765:5:765:12 | mutate(...) | | -| main.rs:765:5:765:12 | mutate(...) | main.rs:766:5:766:17 | ExprStmt | | -| main.rs:765:5:765:13 | ExprStmt | main.rs:765:5:765:10 | mutate | | -| main.rs:766:5:766:14 | mutate_arg | main.rs:766:5:766:16 | mutate_arg(...) | | -| main.rs:766:5:766:16 | mutate_arg(...) | main.rs:767:5:767:12 | ExprStmt | | -| main.rs:766:5:766:17 | ExprStmt | main.rs:766:5:766:14 | mutate_arg | | -| main.rs:767:5:767:9 | alias | main.rs:767:5:767:11 | alias(...) | | -| main.rs:767:5:767:11 | alias(...) | main.rs:768:5:768:18 | ExprStmt | | -| main.rs:767:5:767:12 | ExprStmt | main.rs:767:5:767:9 | alias | | -| main.rs:768:5:768:15 | capture_mut | main.rs:768:5:768:17 | capture_mut(...) | | -| main.rs:768:5:768:17 | capture_mut(...) | main.rs:769:5:769:20 | ExprStmt | | -| main.rs:768:5:768:18 | ExprStmt | main.rs:768:5:768:15 | capture_mut | | -| main.rs:769:5:769:17 | capture_immut | main.rs:769:5:769:19 | capture_immut(...) | | -| main.rs:769:5:769:19 | capture_immut(...) | main.rs:770:5:770:26 | ExprStmt | | -| main.rs:769:5:769:20 | ExprStmt | main.rs:769:5:769:17 | capture_immut | | -| main.rs:770:5:770:23 | async_block_capture | main.rs:770:5:770:25 | async_block_capture(...) | | -| main.rs:770:5:770:25 | async_block_capture(...) | main.rs:771:5:771:14 | ExprStmt | | -| main.rs:770:5:770:26 | ExprStmt | main.rs:770:5:770:23 | async_block_capture | | -| main.rs:771:5:771:11 | structs | main.rs:771:5:771:13 | structs(...) | | -| main.rs:771:5:771:13 | structs(...) | main.rs:772:5:772:14 | ExprStmt | | -| main.rs:771:5:771:14 | ExprStmt | main.rs:771:5:771:11 | structs | | -| main.rs:772:5:772:11 | ref_arg | main.rs:772:5:772:13 | ref_arg(...) | | -| main.rs:772:5:772:13 | ref_arg(...) | main.rs:773:5:773:30 | ExprStmt | | -| main.rs:772:5:772:14 | ExprStmt | main.rs:772:5:772:11 | ref_arg | | -| main.rs:773:5:773:27 | ref_methodcall_receiver | main.rs:773:5:773:29 | ref_methodcall_receiver(...) | | -| main.rs:773:5:773:29 | ref_methodcall_receiver(...) | main.rs:774:5:774:23 | ExprStmt | | -| main.rs:773:5:773:30 | ExprStmt | main.rs:773:5:773:27 | ref_methodcall_receiver | | -| main.rs:774:5:774:20 | macro_invocation | main.rs:774:5:774:22 | macro_invocation(...) | | -| main.rs:774:5:774:22 | macro_invocation(...) | main.rs:775:5:775:18 | ExprStmt | | -| main.rs:774:5:774:23 | ExprStmt | main.rs:774:5:774:20 | macro_invocation | | -| main.rs:775:5:775:15 | capture_phi | main.rs:775:5:775:17 | capture_phi(...) | | -| main.rs:775:5:775:17 | capture_phi(...) | main.rs:734:11:776:1 | { ... } | | -| main.rs:775:5:775:18 | ExprStmt | main.rs:775:5:775:15 | capture_phi | | +| main.rs:659:15:659:15 | a | main.rs:659:17:659:17 | 1 | | +| main.rs:659:15:659:18 | a[1] | main.rs:659:5:659:19 | print_i64(...) | | +| main.rs:659:17:659:17 | 1 | main.rs:659:15:659:18 | a[1] | | +| main.rs:660:5:660:5 | a | main.rs:660:10:660:10 | 4 | | +| main.rs:660:5:660:17 | ... = ... | main.rs:661:5:661:20 | ExprStmt | | +| main.rs:660:5:660:18 | ExprStmt | main.rs:660:5:660:5 | a | | +| main.rs:660:9:660:17 | [...] | main.rs:660:5:660:17 | ... = ... | | +| main.rs:660:10:660:10 | 4 | main.rs:660:13:660:13 | 5 | | +| main.rs:660:13:660:13 | 5 | main.rs:660:16:660:16 | 6 | | +| main.rs:660:16:660:16 | 6 | main.rs:660:9:660:17 | [...] | | +| main.rs:661:5:661:13 | print_i64 | main.rs:661:15:661:15 | a | | +| main.rs:661:5:661:19 | print_i64(...) | main.rs:655:13:662:1 | { ... } | | +| main.rs:661:5:661:20 | ExprStmt | main.rs:661:5:661:13 | print_i64 | | +| main.rs:661:15:661:15 | a | main.rs:661:17:661:17 | 2 | | +| main.rs:661:15:661:18 | a[2] | main.rs:661:5:661:19 | print_i64(...) | | +| main.rs:661:17:661:17 | 2 | main.rs:661:15:661:18 | a[2] | | +| main.rs:664:1:671:1 | enter fn ref_arg | main.rs:665:5:665:15 | let ... = 16 | | +| main.rs:664:1:671:1 | exit fn ref_arg (normal) | main.rs:664:1:671:1 | exit fn ref_arg | | +| main.rs:664:14:671:1 | { ... } | main.rs:664:1:671:1 | exit fn ref_arg (normal) | | +| main.rs:665:5:665:15 | let ... = 16 | main.rs:665:13:665:14 | 16 | | +| main.rs:665:9:665:9 | x | main.rs:665:9:665:9 | x | | +| main.rs:665:9:665:9 | x | main.rs:666:5:666:22 | ExprStmt | match | +| main.rs:665:13:665:14 | 16 | main.rs:665:9:665:9 | x | | +| main.rs:666:5:666:17 | print_i64_ref | main.rs:666:20:666:20 | x | | +| main.rs:666:5:666:21 | print_i64_ref(...) | main.rs:667:5:667:17 | ExprStmt | | +| main.rs:666:5:666:22 | ExprStmt | main.rs:666:5:666:17 | print_i64_ref | | +| main.rs:666:19:666:20 | &x | main.rs:666:5:666:21 | print_i64_ref(...) | | +| main.rs:666:20:666:20 | x | main.rs:666:19:666:20 | &x | | +| main.rs:667:5:667:13 | print_i64 | main.rs:667:15:667:15 | x | | +| main.rs:667:5:667:16 | print_i64(...) | main.rs:669:5:669:15 | let ... = 17 | | +| main.rs:667:5:667:17 | ExprStmt | main.rs:667:5:667:13 | print_i64 | | +| main.rs:667:15:667:15 | x | main.rs:667:5:667:16 | print_i64(...) | | +| main.rs:669:5:669:15 | let ... = 17 | main.rs:669:13:669:14 | 17 | | +| main.rs:669:9:669:9 | z | main.rs:669:9:669:9 | z | | +| main.rs:669:9:669:9 | z | main.rs:670:5:670:22 | ExprStmt | match | +| main.rs:669:13:669:14 | 17 | main.rs:669:9:669:9 | z | | +| main.rs:670:5:670:17 | print_i64_ref | main.rs:670:20:670:20 | z | | +| main.rs:670:5:670:21 | print_i64_ref(...) | main.rs:664:14:671:1 | { ... } | | +| main.rs:670:5:670:22 | ExprStmt | main.rs:670:5:670:17 | print_i64_ref | | +| main.rs:670:19:670:20 | &z | main.rs:670:5:670:21 | print_i64_ref(...) | | +| main.rs:670:20:670:20 | z | main.rs:670:19:670:20 | &z | | +| main.rs:678:5:680:5 | enter fn bar | main.rs:678:17:678:20 | self | | +| main.rs:678:5:680:5 | exit fn bar (normal) | main.rs:678:5:680:5 | exit fn bar | | +| main.rs:678:12:678:20 | SelfParam | main.rs:679:9:679:36 | ExprStmt | | +| main.rs:678:17:678:20 | self | main.rs:678:12:678:20 | SelfParam | | +| main.rs:678:23:680:5 | { ... } | main.rs:678:5:680:5 | exit fn bar (normal) | | +| main.rs:679:9:679:13 | * ... | main.rs:679:33:679:33 | 3 | | +| main.rs:679:9:679:35 | ... = ... | main.rs:678:23:680:5 | { ... } | | +| main.rs:679:9:679:36 | ExprStmt | main.rs:679:10:679:13 | self | | +| main.rs:679:10:679:13 | self | main.rs:679:9:679:13 | * ... | | +| main.rs:679:17:679:35 | MyStruct {...} | main.rs:679:9:679:35 | ... = ... | | +| main.rs:679:33:679:33 | 3 | main.rs:679:17:679:35 | MyStruct {...} | | +| main.rs:683:1:689:1 | enter fn ref_methodcall_receiver | main.rs:684:5:684:36 | let ... = ... | | +| main.rs:683:1:689:1 | exit fn ref_methodcall_receiver (normal) | main.rs:683:1:689:1 | exit fn ref_methodcall_receiver | | +| main.rs:683:30:689:1 | { ... } | main.rs:683:1:689:1 | exit fn ref_methodcall_receiver (normal) | | +| main.rs:684:5:684:36 | let ... = ... | main.rs:684:33:684:33 | 1 | | +| main.rs:684:9:684:13 | mut a | main.rs:685:5:685:12 | ExprStmt | match | +| main.rs:684:13:684:13 | a | main.rs:684:9:684:13 | mut a | | +| main.rs:684:17:684:35 | MyStruct {...} | main.rs:684:13:684:13 | a | | +| main.rs:684:33:684:33 | 1 | main.rs:684:17:684:35 | MyStruct {...} | | +| main.rs:685:5:685:5 | a | main.rs:685:5:685:11 | a.bar() | | +| main.rs:685:5:685:11 | a.bar() | main.rs:688:5:688:21 | ExprStmt | | +| main.rs:685:5:685:12 | ExprStmt | main.rs:685:5:685:5 | a | | +| main.rs:688:5:688:13 | print_i64 | main.rs:688:15:688:15 | a | | +| main.rs:688:5:688:20 | print_i64(...) | main.rs:683:30:689:1 | { ... } | | +| main.rs:688:5:688:21 | ExprStmt | main.rs:688:5:688:13 | print_i64 | | +| main.rs:688:15:688:15 | a | main.rs:688:15:688:19 | a.val | | +| main.rs:688:15:688:19 | a.val | main.rs:688:5:688:20 | print_i64(...) | | +| main.rs:705:1:716:1 | enter fn macro_invocation | main.rs:706:5:707:26 | let ... = ... | | +| main.rs:705:1:716:1 | exit fn macro_invocation (normal) | main.rs:705:1:716:1 | exit fn macro_invocation | | +| main.rs:705:23:716:1 | { ... } | main.rs:705:1:716:1 | exit fn macro_invocation (normal) | | +| main.rs:706:5:707:26 | let ... = ... | main.rs:707:23:707:24 | let ... = 37 | | +| main.rs:706:9:706:22 | var_from_macro | main.rs:706:9:706:22 | var_from_macro | | +| main.rs:706:9:706:22 | var_from_macro | main.rs:708:5:708:30 | ExprStmt | match | +| main.rs:707:9:707:21 | var_in_macro | main.rs:707:9:707:21 | var_in_macro | | +| main.rs:707:9:707:21 | var_in_macro | main.rs:707:9:707:21 | var_in_macro | match | +| main.rs:707:9:707:21 | var_in_macro | main.rs:707:23:707:24 | { ... } | | +| main.rs:707:9:707:25 | MacroExpr | main.rs:706:9:706:22 | var_from_macro | | +| main.rs:707:9:707:25 | let_in_macro!... | main.rs:707:9:707:25 | MacroExpr | | +| main.rs:707:23:707:24 | 37 | main.rs:707:9:707:21 | var_in_macro | | +| main.rs:707:23:707:24 | let ... = 37 | main.rs:707:23:707:24 | 37 | | +| main.rs:707:23:707:24 | { ... } | main.rs:707:9:707:25 | let_in_macro!... | | +| main.rs:708:5:708:13 | print_i64 | main.rs:708:15:708:28 | var_from_macro | | +| main.rs:708:5:708:29 | print_i64(...) | main.rs:709:5:709:26 | let ... = 33 | | +| main.rs:708:5:708:30 | ExprStmt | main.rs:708:5:708:13 | print_i64 | | +| main.rs:708:15:708:28 | var_from_macro | main.rs:708:5:708:29 | print_i64(...) | | +| main.rs:709:5:709:26 | let ... = 33 | main.rs:709:24:709:25 | 33 | | +| main.rs:709:9:709:20 | var_in_macro | main.rs:709:9:709:20 | var_in_macro | | +| main.rs:709:9:709:20 | var_in_macro | main.rs:714:5:714:44 | ExprStmt | match | +| main.rs:709:24:709:25 | 33 | main.rs:709:9:709:20 | var_in_macro | | +| main.rs:714:5:714:13 | print_i64 | main.rs:714:15:714:28 | let ... = 0 | | +| main.rs:714:5:714:43 | print_i64(...) | main.rs:715:5:715:28 | ExprStmt | | +| main.rs:714:5:714:44 | ExprStmt | main.rs:714:5:714:13 | print_i64 | | +| main.rs:714:15:714:28 | 0 | main.rs:714:15:714:28 | var_in_macro | | +| main.rs:714:15:714:28 | let ... = 0 | main.rs:714:15:714:28 | 0 | | +| main.rs:714:15:714:28 | var_in_macro | main.rs:714:15:714:28 | var_in_macro | | +| main.rs:714:15:714:28 | var_in_macro | main.rs:714:30:714:41 | var_in_macro | match | +| main.rs:714:15:714:42 | MacroExpr | main.rs:714:5:714:43 | print_i64(...) | | +| main.rs:714:15:714:42 | let_in_macro2!... | main.rs:714:15:714:42 | MacroExpr | | +| main.rs:714:30:714:41 | var_in_macro | main.rs:714:30:714:41 | { ... } | | +| main.rs:714:30:714:41 | { ... } | main.rs:714:15:714:42 | let_in_macro2!... | | +| main.rs:715:5:715:13 | print_i64 | main.rs:715:15:715:26 | var_in_macro | | +| main.rs:715:5:715:27 | print_i64(...) | main.rs:705:23:716:1 | { ... } | | +| main.rs:715:5:715:28 | ExprStmt | main.rs:715:5:715:13 | print_i64 | | +| main.rs:715:15:715:26 | var_in_macro | main.rs:715:5:715:27 | print_i64(...) | | +| main.rs:718:1:722:1 | enter fn let_without_initializer | main.rs:719:5:719:10 | let ... | | +| main.rs:718:1:722:1 | exit fn let_without_initializer (normal) | main.rs:718:1:722:1 | exit fn let_without_initializer | | +| main.rs:718:30:722:1 | { ... } | main.rs:718:1:722:1 | exit fn let_without_initializer (normal) | | +| main.rs:719:5:719:10 | let ... | main.rs:719:9:719:9 | x | | +| main.rs:719:9:719:9 | x | main.rs:719:9:719:9 | x | | +| main.rs:719:9:719:9 | x | main.rs:720:5:720:10 | ExprStmt | match | +| main.rs:720:5:720:5 | x | main.rs:720:9:720:9 | 1 | | +| main.rs:720:5:720:9 | ... = ... | main.rs:721:5:721:17 | ExprStmt | | +| main.rs:720:5:720:10 | ExprStmt | main.rs:720:5:720:5 | x | | +| main.rs:720:9:720:9 | 1 | main.rs:720:5:720:9 | ... = ... | | +| main.rs:721:5:721:13 | print_i64 | main.rs:721:15:721:15 | x | | +| main.rs:721:5:721:16 | print_i64(...) | main.rs:718:30:722:1 | { ... } | | +| main.rs:721:5:721:17 | ExprStmt | main.rs:721:5:721:13 | print_i64 | | +| main.rs:721:15:721:15 | x | main.rs:721:5:721:16 | print_i64(...) | | +| main.rs:724:1:734:1 | enter fn capture_phi | main.rs:725:5:725:20 | let ... = 100 | | +| main.rs:724:1:734:1 | exit fn capture_phi (normal) | main.rs:724:1:734:1 | exit fn capture_phi | | +| main.rs:724:18:734:1 | { ... } | main.rs:724:1:734:1 | exit fn capture_phi (normal) | | +| main.rs:725:5:725:20 | let ... = 100 | main.rs:725:17:725:19 | 100 | | +| main.rs:725:9:725:13 | mut x | main.rs:726:5:731:6 | let ... = ... | match | +| main.rs:725:13:725:13 | x | main.rs:725:9:725:13 | mut x | | +| main.rs:725:17:725:19 | 100 | main.rs:725:13:725:13 | x | | +| main.rs:726:5:731:6 | let ... = ... | main.rs:726:19:731:5 | \|...\| ... | | +| main.rs:726:9:726:15 | mut cap | main.rs:732:5:732:14 | ExprStmt | match | +| main.rs:726:13:726:15 | cap | main.rs:726:9:726:15 | mut cap | | +| main.rs:726:19:731:5 | \|...\| ... | main.rs:726:13:726:15 | cap | | +| main.rs:726:19:731:5 | enter \|...\| ... | main.rs:726:20:726:20 | b | | +| main.rs:726:19:731:5 | exit \|...\| ... (normal) | main.rs:726:19:731:5 | exit \|...\| ... | | +| main.rs:726:20:726:20 | b | main.rs:726:20:726:20 | b | | +| main.rs:726:20:726:20 | b | main.rs:726:20:726:26 | ...: bool | match | +| main.rs:726:20:726:26 | ...: bool | main.rs:727:9:730:10 | let _ = ... | | +| main.rs:726:29:731:5 | { ... } | main.rs:726:19:731:5 | exit \|...\| ... (normal) | | +| main.rs:727:9:730:10 | let _ = ... | main.rs:728:20:728:20 | b | | +| main.rs:728:13:728:13 | _ | main.rs:726:29:731:5 | { ... } | match | +| main.rs:728:17:730:9 | if b {...} | main.rs:728:13:728:13 | _ | | +| main.rs:728:20:728:20 | b | main.rs:728:17:730:9 | if b {...} | false | +| main.rs:728:20:728:20 | b | main.rs:729:13:729:20 | ExprStmt | true | +| main.rs:728:22:730:9 | { ... } | main.rs:728:17:730:9 | if b {...} | | +| main.rs:729:13:729:13 | x | main.rs:729:17:729:19 | 200 | | +| main.rs:729:13:729:19 | ... = ... | main.rs:728:22:730:9 | { ... } | | +| main.rs:729:13:729:20 | ExprStmt | main.rs:729:13:729:13 | x | | +| main.rs:729:17:729:19 | 200 | main.rs:729:13:729:19 | ... = ... | | +| main.rs:732:5:732:7 | cap | main.rs:732:9:732:12 | true | | +| main.rs:732:5:732:13 | cap(...) | main.rs:733:5:733:17 | ExprStmt | | +| main.rs:732:5:732:14 | ExprStmt | main.rs:732:5:732:7 | cap | | +| main.rs:732:9:732:12 | true | main.rs:732:5:732:13 | cap(...) | | +| main.rs:733:5:733:13 | print_i64 | main.rs:733:15:733:15 | x | | +| main.rs:733:5:733:16 | print_i64(...) | main.rs:724:18:734:1 | { ... } | | +| main.rs:733:5:733:17 | ExprStmt | main.rs:733:5:733:13 | print_i64 | | +| main.rs:733:15:733:15 | x | main.rs:733:5:733:16 | print_i64(...) | | +| main.rs:736:1:778:1 | enter fn main | main.rs:737:5:737:25 | ExprStmt | | +| main.rs:736:1:778:1 | exit fn main (normal) | main.rs:736:1:778:1 | exit fn main | | +| main.rs:736:11:778:1 | { ... } | main.rs:736:1:778:1 | exit fn main (normal) | | +| main.rs:737:5:737:22 | immutable_variable | main.rs:737:5:737:24 | immutable_variable(...) | | +| main.rs:737:5:737:24 | immutable_variable(...) | main.rs:738:5:738:23 | ExprStmt | | +| main.rs:737:5:737:25 | ExprStmt | main.rs:737:5:737:22 | immutable_variable | | +| main.rs:738:5:738:20 | mutable_variable | main.rs:738:5:738:22 | mutable_variable(...) | | +| main.rs:738:5:738:22 | mutable_variable(...) | main.rs:739:5:739:40 | ExprStmt | | +| main.rs:738:5:738:23 | ExprStmt | main.rs:738:5:738:20 | mutable_variable | | +| main.rs:739:5:739:37 | mutable_variable_immutable_borrow | main.rs:739:5:739:39 | mutable_variable_immutable_borrow(...) | | +| main.rs:739:5:739:39 | mutable_variable_immutable_borrow(...) | main.rs:740:5:740:23 | ExprStmt | | +| main.rs:739:5:739:40 | ExprStmt | main.rs:739:5:739:37 | mutable_variable_immutable_borrow | | +| main.rs:740:5:740:20 | variable_shadow1 | main.rs:740:5:740:22 | variable_shadow1(...) | | +| main.rs:740:5:740:22 | variable_shadow1(...) | main.rs:741:5:741:23 | ExprStmt | | +| main.rs:740:5:740:23 | ExprStmt | main.rs:740:5:740:20 | variable_shadow1 | | +| main.rs:741:5:741:20 | variable_shadow2 | main.rs:741:5:741:22 | variable_shadow2(...) | | +| main.rs:741:5:741:22 | variable_shadow2(...) | main.rs:742:5:742:19 | ExprStmt | | +| main.rs:741:5:741:23 | ExprStmt | main.rs:741:5:741:20 | variable_shadow2 | | +| main.rs:742:5:742:16 | let_pattern1 | main.rs:742:5:742:18 | let_pattern1(...) | | +| main.rs:742:5:742:18 | let_pattern1(...) | main.rs:743:5:743:19 | ExprStmt | | +| main.rs:742:5:742:19 | ExprStmt | main.rs:742:5:742:16 | let_pattern1 | | +| main.rs:743:5:743:16 | let_pattern2 | main.rs:743:5:743:18 | let_pattern2(...) | | +| main.rs:743:5:743:18 | let_pattern2(...) | main.rs:744:5:744:19 | ExprStmt | | +| main.rs:743:5:743:19 | ExprStmt | main.rs:743:5:743:16 | let_pattern2 | | +| main.rs:744:5:744:16 | let_pattern3 | main.rs:744:5:744:18 | let_pattern3(...) | | +| main.rs:744:5:744:18 | let_pattern3(...) | main.rs:745:5:745:19 | ExprStmt | | +| main.rs:744:5:744:19 | ExprStmt | main.rs:744:5:744:16 | let_pattern3 | | +| main.rs:745:5:745:16 | let_pattern4 | main.rs:745:5:745:18 | let_pattern4(...) | | +| main.rs:745:5:745:18 | let_pattern4(...) | main.rs:746:5:746:21 | ExprStmt | | +| main.rs:745:5:745:19 | ExprStmt | main.rs:745:5:745:16 | let_pattern4 | | +| main.rs:746:5:746:18 | match_pattern1 | main.rs:746:5:746:20 | match_pattern1(...) | | +| main.rs:746:5:746:20 | match_pattern1(...) | main.rs:747:5:747:21 | ExprStmt | | +| main.rs:746:5:746:21 | ExprStmt | main.rs:746:5:746:18 | match_pattern1 | | +| main.rs:747:5:747:18 | match_pattern2 | main.rs:747:5:747:20 | match_pattern2(...) | | +| main.rs:747:5:747:20 | match_pattern2(...) | main.rs:748:5:748:21 | ExprStmt | | +| main.rs:747:5:747:21 | ExprStmt | main.rs:747:5:747:18 | match_pattern2 | | +| main.rs:748:5:748:18 | match_pattern3 | main.rs:748:5:748:20 | match_pattern3(...) | | +| main.rs:748:5:748:20 | match_pattern3(...) | main.rs:749:5:749:21 | ExprStmt | | +| main.rs:748:5:748:21 | ExprStmt | main.rs:748:5:748:18 | match_pattern3 | | +| main.rs:749:5:749:18 | match_pattern4 | main.rs:749:5:749:20 | match_pattern4(...) | | +| main.rs:749:5:749:20 | match_pattern4(...) | main.rs:750:5:750:21 | ExprStmt | | +| main.rs:749:5:749:21 | ExprStmt | main.rs:749:5:749:18 | match_pattern4 | | +| main.rs:750:5:750:18 | match_pattern5 | main.rs:750:5:750:20 | match_pattern5(...) | | +| main.rs:750:5:750:20 | match_pattern5(...) | main.rs:751:5:751:21 | ExprStmt | | +| main.rs:750:5:750:21 | ExprStmt | main.rs:750:5:750:18 | match_pattern5 | | +| main.rs:751:5:751:18 | match_pattern6 | main.rs:751:5:751:20 | match_pattern6(...) | | +| main.rs:751:5:751:20 | match_pattern6(...) | main.rs:752:5:752:21 | ExprStmt | | +| main.rs:751:5:751:21 | ExprStmt | main.rs:751:5:751:18 | match_pattern6 | | +| main.rs:752:5:752:18 | match_pattern7 | main.rs:752:5:752:20 | match_pattern7(...) | | +| main.rs:752:5:752:20 | match_pattern7(...) | main.rs:753:5:753:21 | ExprStmt | | +| main.rs:752:5:752:21 | ExprStmt | main.rs:752:5:752:18 | match_pattern7 | | +| main.rs:753:5:753:18 | match_pattern8 | main.rs:753:5:753:20 | match_pattern8(...) | | +| main.rs:753:5:753:20 | match_pattern8(...) | main.rs:754:5:754:21 | ExprStmt | | +| main.rs:753:5:753:21 | ExprStmt | main.rs:753:5:753:18 | match_pattern8 | | +| main.rs:754:5:754:18 | match_pattern9 | main.rs:754:5:754:20 | match_pattern9(...) | | +| main.rs:754:5:754:20 | match_pattern9(...) | main.rs:755:5:755:22 | ExprStmt | | +| main.rs:754:5:754:21 | ExprStmt | main.rs:754:5:754:18 | match_pattern9 | | +| main.rs:755:5:755:19 | match_pattern10 | main.rs:755:5:755:21 | match_pattern10(...) | | +| main.rs:755:5:755:21 | match_pattern10(...) | main.rs:756:5:756:22 | ExprStmt | | +| main.rs:755:5:755:22 | ExprStmt | main.rs:755:5:755:19 | match_pattern10 | | +| main.rs:756:5:756:19 | match_pattern11 | main.rs:756:5:756:21 | match_pattern11(...) | | +| main.rs:756:5:756:21 | match_pattern11(...) | main.rs:757:5:757:22 | ExprStmt | | +| main.rs:756:5:756:22 | ExprStmt | main.rs:756:5:756:19 | match_pattern11 | | +| main.rs:757:5:757:19 | match_pattern12 | main.rs:757:5:757:21 | match_pattern12(...) | | +| main.rs:757:5:757:21 | match_pattern12(...) | main.rs:758:5:758:22 | ExprStmt | | +| main.rs:757:5:757:22 | ExprStmt | main.rs:757:5:757:19 | match_pattern12 | | +| main.rs:758:5:758:19 | match_pattern13 | main.rs:758:5:758:21 | match_pattern13(...) | | +| main.rs:758:5:758:21 | match_pattern13(...) | main.rs:759:5:759:22 | ExprStmt | | +| main.rs:758:5:758:22 | ExprStmt | main.rs:758:5:758:19 | match_pattern13 | | +| main.rs:759:5:759:19 | match_pattern14 | main.rs:759:5:759:21 | match_pattern14(...) | | +| main.rs:759:5:759:21 | match_pattern14(...) | main.rs:760:5:760:36 | ExprStmt | | +| main.rs:759:5:759:22 | ExprStmt | main.rs:759:5:759:19 | match_pattern14 | | +| main.rs:760:5:760:18 | param_pattern1 | main.rs:760:20:760:22 | "a" | | +| main.rs:760:5:760:35 | param_pattern1(...) | main.rs:761:5:761:37 | ExprStmt | | +| main.rs:760:5:760:36 | ExprStmt | main.rs:760:5:760:18 | param_pattern1 | | +| main.rs:760:20:760:22 | "a" | main.rs:760:26:760:28 | "b" | | +| main.rs:760:25:760:34 | TupleExpr | main.rs:760:5:760:35 | param_pattern1(...) | | +| main.rs:760:26:760:28 | "b" | main.rs:760:31:760:33 | "c" | | +| main.rs:760:31:760:33 | "c" | main.rs:760:25:760:34 | TupleExpr | | +| main.rs:761:5:761:18 | param_pattern2 | main.rs:761:20:761:31 | ...::Left | | +| main.rs:761:5:761:36 | param_pattern2(...) | main.rs:762:5:762:26 | ExprStmt | | +| main.rs:761:5:761:37 | ExprStmt | main.rs:761:5:761:18 | param_pattern2 | | +| main.rs:761:20:761:31 | ...::Left | main.rs:761:33:761:34 | 45 | | +| main.rs:761:20:761:35 | ...::Left(...) | main.rs:761:5:761:36 | param_pattern2(...) | | +| main.rs:761:33:761:34 | 45 | main.rs:761:20:761:35 | ...::Left(...) | | +| main.rs:762:5:762:23 | destruct_assignment | main.rs:762:5:762:25 | destruct_assignment(...) | | +| main.rs:762:5:762:25 | destruct_assignment(...) | main.rs:763:5:763:23 | ExprStmt | | +| main.rs:762:5:762:26 | ExprStmt | main.rs:762:5:762:23 | destruct_assignment | | +| main.rs:763:5:763:20 | closure_variable | main.rs:763:5:763:22 | closure_variable(...) | | +| main.rs:763:5:763:22 | closure_variable(...) | main.rs:764:5:764:22 | ExprStmt | | +| main.rs:763:5:763:23 | ExprStmt | main.rs:763:5:763:20 | closure_variable | | +| main.rs:764:5:764:19 | nested_function | main.rs:764:5:764:21 | nested_function(...) | | +| main.rs:764:5:764:21 | nested_function(...) | main.rs:765:5:765:19 | ExprStmt | | +| main.rs:764:5:764:22 | ExprStmt | main.rs:764:5:764:19 | nested_function | | +| main.rs:765:5:765:16 | for_variable | main.rs:765:5:765:18 | for_variable(...) | | +| main.rs:765:5:765:18 | for_variable(...) | main.rs:766:5:766:17 | ExprStmt | | +| main.rs:765:5:765:19 | ExprStmt | main.rs:765:5:765:16 | for_variable | | +| main.rs:766:5:766:14 | add_assign | main.rs:766:5:766:16 | add_assign(...) | | +| main.rs:766:5:766:16 | add_assign(...) | main.rs:767:5:767:13 | ExprStmt | | +| main.rs:766:5:766:17 | ExprStmt | main.rs:766:5:766:14 | add_assign | | +| main.rs:767:5:767:10 | mutate | main.rs:767:5:767:12 | mutate(...) | | +| main.rs:767:5:767:12 | mutate(...) | main.rs:768:5:768:17 | ExprStmt | | +| main.rs:767:5:767:13 | ExprStmt | main.rs:767:5:767:10 | mutate | | +| main.rs:768:5:768:14 | mutate_arg | main.rs:768:5:768:16 | mutate_arg(...) | | +| main.rs:768:5:768:16 | mutate_arg(...) | main.rs:769:5:769:12 | ExprStmt | | +| main.rs:768:5:768:17 | ExprStmt | main.rs:768:5:768:14 | mutate_arg | | +| main.rs:769:5:769:9 | alias | main.rs:769:5:769:11 | alias(...) | | +| main.rs:769:5:769:11 | alias(...) | main.rs:770:5:770:18 | ExprStmt | | +| main.rs:769:5:769:12 | ExprStmt | main.rs:769:5:769:9 | alias | | +| main.rs:770:5:770:15 | capture_mut | main.rs:770:5:770:17 | capture_mut(...) | | +| main.rs:770:5:770:17 | capture_mut(...) | main.rs:771:5:771:20 | ExprStmt | | +| main.rs:770:5:770:18 | ExprStmt | main.rs:770:5:770:15 | capture_mut | | +| main.rs:771:5:771:17 | capture_immut | main.rs:771:5:771:19 | capture_immut(...) | | +| main.rs:771:5:771:19 | capture_immut(...) | main.rs:772:5:772:26 | ExprStmt | | +| main.rs:771:5:771:20 | ExprStmt | main.rs:771:5:771:17 | capture_immut | | +| main.rs:772:5:772:23 | async_block_capture | main.rs:772:5:772:25 | async_block_capture(...) | | +| main.rs:772:5:772:25 | async_block_capture(...) | main.rs:773:5:773:14 | ExprStmt | | +| main.rs:772:5:772:26 | ExprStmt | main.rs:772:5:772:23 | async_block_capture | | +| main.rs:773:5:773:11 | structs | main.rs:773:5:773:13 | structs(...) | | +| main.rs:773:5:773:13 | structs(...) | main.rs:774:5:774:14 | ExprStmt | | +| main.rs:773:5:773:14 | ExprStmt | main.rs:773:5:773:11 | structs | | +| main.rs:774:5:774:11 | ref_arg | main.rs:774:5:774:13 | ref_arg(...) | | +| main.rs:774:5:774:13 | ref_arg(...) | main.rs:775:5:775:30 | ExprStmt | | +| main.rs:774:5:774:14 | ExprStmt | main.rs:774:5:774:11 | ref_arg | | +| main.rs:775:5:775:27 | ref_methodcall_receiver | main.rs:775:5:775:29 | ref_methodcall_receiver(...) | | +| main.rs:775:5:775:29 | ref_methodcall_receiver(...) | main.rs:776:5:776:23 | ExprStmt | | +| main.rs:775:5:775:30 | ExprStmt | main.rs:775:5:775:27 | ref_methodcall_receiver | | +| main.rs:776:5:776:20 | macro_invocation | main.rs:776:5:776:22 | macro_invocation(...) | | +| main.rs:776:5:776:22 | macro_invocation(...) | main.rs:777:5:777:18 | ExprStmt | | +| main.rs:776:5:776:23 | ExprStmt | main.rs:776:5:776:20 | macro_invocation | | +| main.rs:777:5:777:15 | capture_phi | main.rs:777:5:777:17 | capture_phi(...) | | +| main.rs:777:5:777:17 | capture_phi(...) | main.rs:736:11:778:1 | { ... } | | +| main.rs:777:5:777:18 | ExprStmt | main.rs:777:5:777:15 | capture_phi | | breakTarget -| main.rs:324:9:324:13 | break | main.rs:315:5:325:5 | while ... { ... } | +| main.rs:326:9:326:13 | break | main.rs:317:5:327:5 | while ... { ... } | continueTarget diff --git a/rust/ql/test/library-tests/variables/Ssa.expected b/rust/ql/test/library-tests/variables/Ssa.expected index da0a2b272e8..342fd0df20b 100644 --- a/rust/ql/test/library-tests/variables/Ssa.expected +++ b/rust/ql/test/library-tests/variables/Ssa.expected @@ -5,191 +5,192 @@ definition | main.rs:20:9:20:10 | x1 | main.rs:20:9:20:10 | x1 | | main.rs:25:13:25:14 | x2 | main.rs:25:13:25:14 | x2 | | main.rs:27:5:27:6 | x2 | main.rs:25:13:25:14 | x2 | -| main.rs:32:13:32:13 | x | main.rs:32:13:32:13 | x | -| main.rs:34:5:34:5 | x | main.rs:32:13:32:13 | x | -| main.rs:39:9:39:10 | x3 | main.rs:39:9:39:10 | x3 | +| main.rs:29:5:29:6 | x2 | main.rs:25:13:25:14 | x2 | +| main.rs:34:13:34:13 | x | main.rs:34:13:34:13 | x | +| main.rs:36:5:36:5 | x | main.rs:34:13:34:13 | x | | main.rs:41:9:41:10 | x3 | main.rs:41:9:41:10 | x3 | -| main.rs:47:9:47:10 | x4 | main.rs:47:9:47:10 | x4 | -| main.rs:50:13:50:14 | x4 | main.rs:50:13:50:14 | x4 | -| main.rs:64:13:64:14 | a1 | main.rs:64:13:64:14 | a1 | -| main.rs:65:13:65:14 | b1 | main.rs:65:13:65:14 | b1 | -| main.rs:68:13:68:13 | x | main.rs:68:13:68:13 | x | -| main.rs:69:13:69:13 | y | main.rs:69:13:69:13 | y | -| main.rs:79:9:79:10 | p1 | main.rs:79:9:79:10 | p1 | -| main.rs:81:12:81:13 | a2 | main.rs:81:12:81:13 | a2 | -| main.rs:82:12:82:13 | b2 | main.rs:82:12:82:13 | b2 | -| main.rs:89:9:89:10 | s1 | main.rs:89:9:89:10 | s1 | -| main.rs:91:21:91:22 | s2 | main.rs:91:21:91:22 | s2 | -| main.rs:98:9:98:9 | x | main.rs:98:9:98:9 | x | -| main.rs:99:14:99:14 | x | main.rs:99:14:99:14 | x | -| main.rs:102:13:102:13 | x | main.rs:102:13:102:13 | x | -| main.rs:111:9:111:10 | s1 | main.rs:111:9:111:10 | s1 | -| main.rs:113:24:113:25 | s2 | main.rs:113:24:113:25 | s2 | -| main.rs:120:9:120:10 | x6 | main.rs:120:9:120:10 | x6 | -| main.rs:121:9:121:10 | y1 | main.rs:121:9:121:10 | y1 | -| main.rs:125:14:125:15 | y1 | main.rs:125:14:125:15 | y1 | -| main.rs:137:9:137:15 | numbers | main.rs:137:9:137:15 | numbers | -| main.rs:142:13:142:17 | first | main.rs:142:13:142:17 | first | -| main.rs:144:13:144:17 | third | main.rs:144:13:144:17 | third | -| main.rs:146:13:146:17 | fifth | main.rs:146:13:146:17 | fifth | -| main.rs:157:13:157:17 | first | main.rs:157:13:157:17 | first | -| main.rs:159:13:159:16 | last | main.rs:159:13:159:16 | last | -| main.rs:168:9:168:10 | p2 | main.rs:168:9:168:10 | p2 | -| main.rs:172:16:172:17 | x7 | main.rs:172:16:172:17 | x7 | -| main.rs:182:9:182:11 | msg | main.rs:182:9:182:11 | msg | -| main.rs:187:17:187:27 | id_variable | main.rs:187:17:187:27 | id_variable | -| main.rs:192:26:192:27 | id | main.rs:192:26:192:27 | id | -| main.rs:206:9:206:14 | either | main.rs:206:9:206:14 | either | -| main.rs:208:9:208:44 | SSA phi(a3) | main.rs:208:9:208:44 | a3 | -| main.rs:208:22:208:23 | a3 | main.rs:208:9:208:44 | a3 | -| main.rs:208:42:208:43 | a3 | main.rs:208:9:208:44 | a3 | -| main.rs:220:9:220:10 | tv | main.rs:220:9:220:10 | tv | -| main.rs:222:9:222:81 | SSA phi(a4) | main.rs:222:9:222:81 | a4 | -| main.rs:222:28:222:29 | a4 | main.rs:222:9:222:81 | a4 | -| main.rs:222:54:222:55 | a4 | main.rs:222:9:222:81 | a4 | -| main.rs:222:79:222:80 | a4 | main.rs:222:9:222:81 | a4 | -| main.rs:226:9:226:83 | SSA phi(a5) | main.rs:226:9:226:83 | a5 | -| main.rs:226:10:226:57 | [match(true)] SSA phi(a5) | main.rs:226:9:226:83 | a5 | -| main.rs:226:29:226:30 | a5 | main.rs:226:9:226:83 | a5 | -| main.rs:226:55:226:56 | a5 | main.rs:226:9:226:83 | a5 | -| main.rs:226:81:226:82 | a5 | main.rs:226:9:226:83 | a5 | -| main.rs:230:9:230:83 | SSA phi(a6) | main.rs:230:9:230:83 | a6 | -| main.rs:230:28:230:29 | a6 | main.rs:230:9:230:83 | a6 | -| main.rs:230:35:230:82 | SSA phi(a6) | main.rs:230:9:230:83 | a6 | -| main.rs:230:55:230:56 | a6 | main.rs:230:9:230:83 | a6 | -| main.rs:230:80:230:81 | a6 | main.rs:230:9:230:83 | a6 | -| main.rs:236:9:236:14 | either | main.rs:236:9:236:14 | either | -| main.rs:238:9:238:44 | [match(true)] SSA phi(a7) | main.rs:238:9:238:44 | a7 | -| main.rs:238:22:238:23 | a7 | main.rs:238:9:238:44 | a7 | -| main.rs:238:42:238:43 | a7 | main.rs:238:9:238:44 | a7 | -| main.rs:246:9:246:14 | either | main.rs:246:9:246:14 | either | -| main.rs:249:13:249:13 | e | main.rs:249:13:249:13 | e | -| main.rs:250:14:250:51 | [match(true)] SSA phi(a11) | main.rs:250:14:250:51 | a11 | -| main.rs:250:27:250:29 | a11 | main.rs:250:14:250:51 | a11 | -| main.rs:250:48:250:50 | a11 | main.rs:250:14:250:51 | a11 | -| main.rs:253:33:253:35 | a12 | main.rs:253:33:253:35 | a12 | -| main.rs:270:9:270:10 | fv | main.rs:270:9:270:10 | fv | -| main.rs:272:9:272:109 | SSA phi(a13) | main.rs:272:9:272:109 | a13 | -| main.rs:272:27:272:29 | a13 | main.rs:272:9:272:109 | a13 | -| main.rs:272:35:272:82 | [match(true)] SSA phi(a13) | main.rs:272:9:272:109 | a13 | -| main.rs:272:54:272:56 | a13 | main.rs:272:9:272:109 | a13 | -| main.rs:272:79:272:81 | a13 | main.rs:272:9:272:109 | a13 | -| main.rs:272:106:272:108 | a13 | main.rs:272:9:272:109 | a13 | -| main.rs:279:9:279:9 | x | main.rs:279:9:279:9 | x | -| main.rs:280:17:280:17 | x | main.rs:280:17:280:17 | x | -| main.rs:287:13:287:13 | x | main.rs:287:13:287:13 | x | -| main.rs:295:9:295:9 | x | main.rs:295:9:295:9 | x | -| main.rs:296:17:296:17 | x | main.rs:296:17:296:17 | x | -| main.rs:299:14:299:14 | x | main.rs:299:14:299:14 | x | -| main.rs:306:13:306:13 | x | main.rs:306:13:306:13 | x | -| main.rs:314:9:314:9 | x | main.rs:314:9:314:9 | x | -| main.rs:315:20:315:20 | x | main.rs:315:20:315:20 | x | -| main.rs:318:14:318:14 | x | main.rs:318:14:318:14 | x | -| main.rs:332:9:332:9 | x | main.rs:332:9:332:9 | x | -| main.rs:334:14:334:14 | x | main.rs:334:14:334:14 | x | -| main.rs:335:20:335:20 | x | main.rs:335:20:335:20 | x | -| main.rs:346:9:346:9 | x | main.rs:346:9:346:9 | x | -| main.rs:347:16:347:16 | x | main.rs:347:16:347:16 | x | -| main.rs:352:20:352:20 | x | main.rs:352:20:352:20 | x | -| main.rs:362:5:362:6 | a8 | main.rs:362:5:362:6 | a8 | -| main.rs:364:9:364:10 | b3 | main.rs:364:9:364:10 | b3 | -| main.rs:365:9:365:10 | c1 | main.rs:365:9:365:10 | c1 | -| main.rs:373:20:373:55 | SSA phi(a9) | main.rs:373:20:373:55 | a9 | -| main.rs:373:33:373:34 | a9 | main.rs:373:20:373:55 | a9 | -| main.rs:373:53:373:54 | a9 | main.rs:373:20:373:55 | a9 | -| main.rs:380:13:380:15 | a10 | main.rs:380:13:380:15 | a10 | -| main.rs:381:13:381:14 | b4 | main.rs:381:13:381:14 | b4 | -| main.rs:382:13:382:14 | c2 | main.rs:382:13:382:14 | c2 | -| main.rs:389:9:389:10 | c2 | main.rs:382:13:382:14 | c2 | -| main.rs:390:9:390:10 | b4 | main.rs:381:13:381:14 | b4 | -| main.rs:391:9:391:11 | a10 | main.rs:380:13:380:15 | a10 | -| main.rs:403:13:403:15 | a10 | main.rs:403:13:403:15 | a10 | -| main.rs:404:13:404:14 | b4 | main.rs:404:13:404:14 | b4 | -| main.rs:416:9:416:23 | example_closure | main.rs:416:9:416:23 | example_closure | -| main.rs:417:10:417:10 | x | main.rs:417:10:417:10 | x | -| main.rs:419:9:419:10 | n1 | main.rs:419:9:419:10 | n1 | -| main.rs:424:9:424:26 | immutable_variable | main.rs:424:9:424:26 | immutable_variable | -| main.rs:425:6:425:6 | x | main.rs:425:6:425:6 | x | -| main.rs:427:9:427:10 | n2 | main.rs:427:9:427:10 | n2 | -| main.rs:434:9:434:9 | f | main.rs:434:9:434:9 | f | -| main.rs:435:10:435:10 | x | main.rs:435:10:435:10 | x | -| main.rs:439:10:439:10 | x | main.rs:439:10:439:10 | x | -| main.rs:448:14:448:14 | x | main.rs:448:14:448:14 | x | -| main.rs:457:13:457:13 | f | main.rs:457:13:457:13 | f | -| main.rs:458:14:458:14 | x | main.rs:458:14:458:14 | x | -| main.rs:465:9:465:9 | v | main.rs:465:9:465:9 | v | -| main.rs:467:9:467:12 | text | main.rs:467:9:467:12 | text | -| main.rs:474:13:474:13 | a | main.rs:474:13:474:13 | a | -| main.rs:475:5:475:5 | a | main.rs:474:13:474:13 | a | -| main.rs:477:6:477:11 | &mut a | main.rs:474:13:474:13 | a | -| main.rs:482:13:482:13 | i | main.rs:482:13:482:13 | i | -| main.rs:483:9:483:13 | ref_i | main.rs:483:9:483:13 | ref_i | -| main.rs:484:9:484:14 | &mut i | main.rs:482:13:482:13 | i | -| main.rs:489:17:489:17 | x | main.rs:489:17:489:17 | x | -| main.rs:496:22:496:22 | x | main.rs:496:22:496:22 | x | -| main.rs:496:38:496:38 | y | main.rs:496:38:496:38 | y | -| main.rs:505:13:505:13 | x | main.rs:505:13:505:13 | x | -| main.rs:506:9:506:9 | y | main.rs:506:9:506:9 | y | -| main.rs:507:22:507:27 | &mut x | main.rs:505:13:505:13 | x | -| main.rs:513:13:513:13 | z | main.rs:513:13:513:13 | z | -| main.rs:514:9:514:9 | w | main.rs:514:9:514:9 | w | -| main.rs:517:9:517:14 | &mut z | main.rs:513:13:513:13 | z | -| main.rs:527:13:527:13 | x | main.rs:527:13:527:13 | x | -| main.rs:528:9:528:9 | y | main.rs:528:9:528:9 | y | -| main.rs:529:9:529:14 | &mut x | main.rs:527:13:527:13 | x | -| main.rs:535:9:535:9 | x | main.rs:535:9:535:9 | x | -| main.rs:538:9:538:11 | cap | main.rs:538:9:538:11 | cap | -| main.rs:538:15:540:5 | x | main.rs:535:9:535:9 | x | -| main.rs:546:13:546:13 | x | main.rs:546:13:546:13 | x | -| main.rs:549:9:549:16 | closure1 | main.rs:549:9:549:16 | closure1 | -| main.rs:549:20:551:5 | x | main.rs:546:13:546:13 | x | -| main.rs:555:13:555:13 | y | main.rs:555:13:555:13 | y | -| main.rs:558:13:558:20 | closure2 | main.rs:558:13:558:20 | closure2 | -| main.rs:559:9:559:9 | y | main.rs:555:13:555:13 | y | -| main.rs:561:5:561:14 | y | main.rs:555:13:555:13 | y | -| main.rs:564:13:564:13 | z | main.rs:564:13:564:13 | z | -| main.rs:567:13:567:20 | closure3 | main.rs:567:13:567:20 | closure3 | -| main.rs:567:24:569:5 | z | main.rs:564:13:564:13 | z | -| main.rs:575:13:575:13 | i | main.rs:575:13:575:13 | i | -| main.rs:576:9:576:13 | block | main.rs:576:9:576:13 | block | -| main.rs:577:9:577:9 | i | main.rs:575:13:575:13 | i | -| main.rs:580:5:580:15 | i | main.rs:575:13:575:13 | i | -| main.rs:584:8:584:8 | b | main.rs:584:8:584:8 | b | -| main.rs:585:13:585:13 | x | main.rs:585:13:585:13 | x | -| main.rs:589:13:598:5 | SSA phi(x) | main.rs:585:13:585:13 | x | -| main.rs:591:9:591:9 | x | main.rs:585:13:585:13 | x | -| main.rs:595:9:595:9 | x | main.rs:585:13:585:13 | x | -| main.rs:602:13:602:14 | b1 | main.rs:602:13:602:14 | b1 | -| main.rs:602:23:602:24 | b2 | main.rs:602:23:602:24 | b2 | -| main.rs:603:9:603:9 | x | main.rs:603:9:603:9 | x | -| main.rs:626:20:626:23 | self | main.rs:626:20:626:23 | self | -| main.rs:630:11:630:14 | self | main.rs:630:11:630:14 | self | -| main.rs:634:23:634:26 | self | main.rs:634:23:634:26 | self | -| main.rs:635:17:635:17 | f | main.rs:635:17:635:17 | f | -| main.rs:635:21:638:9 | self | main.rs:634:23:634:26 | self | -| main.rs:635:22:635:22 | n | main.rs:635:22:635:22 | n | -| main.rs:645:13:645:13 | a | main.rs:645:13:645:13 | a | -| main.rs:646:15:646:15 | a | main.rs:645:13:645:13 | a | -| main.rs:649:5:649:5 | a | main.rs:645:13:645:13 | a | -| main.rs:654:13:654:13 | a | main.rs:654:13:654:13 | a | -| main.rs:658:5:658:5 | a | main.rs:654:13:654:13 | a | -| main.rs:663:9:663:9 | x | main.rs:663:9:663:9 | x | -| main.rs:667:9:667:9 | z | main.rs:667:9:667:9 | z | -| main.rs:676:17:676:20 | self | main.rs:676:17:676:20 | self | -| main.rs:682:13:682:13 | a | main.rs:682:13:682:13 | a | -| main.rs:683:5:683:5 | a | main.rs:682:13:682:13 | a | -| main.rs:704:9:704:22 | var_from_macro | main.rs:704:9:704:22 | var_from_macro | -| main.rs:705:9:705:21 | var_in_macro | main.rs:705:9:705:21 | var_in_macro | -| main.rs:707:9:707:20 | var_in_macro | main.rs:707:9:707:20 | var_in_macro | -| main.rs:712:15:712:28 | var_in_macro | main.rs:712:15:712:28 | var_in_macro | -| main.rs:718:5:718:5 | x | main.rs:717:9:717:9 | x | -| main.rs:723:13:723:13 | x | main.rs:723:13:723:13 | x | -| main.rs:724:13:724:15 | cap | main.rs:724:13:724:15 | cap | -| main.rs:724:19:729:5 | x | main.rs:723:13:723:13 | x | -| main.rs:724:20:724:20 | b | main.rs:724:20:724:20 | b | -| main.rs:726:17:728:9 | SSA phi(x) | main.rs:723:13:723:13 | x | -| main.rs:727:13:727:13 | x | main.rs:723:13:723:13 | x | -| main.rs:730:5:730:13 | x | main.rs:723:13:723:13 | x | +| main.rs:43:9:43:10 | x3 | main.rs:43:9:43:10 | x3 | +| main.rs:49:9:49:10 | x4 | main.rs:49:9:49:10 | x4 | +| main.rs:52:13:52:14 | x4 | main.rs:52:13:52:14 | x4 | +| main.rs:66:13:66:14 | a1 | main.rs:66:13:66:14 | a1 | +| main.rs:67:13:67:14 | b1 | main.rs:67:13:67:14 | b1 | +| main.rs:70:13:70:13 | x | main.rs:70:13:70:13 | x | +| main.rs:71:13:71:13 | y | main.rs:71:13:71:13 | y | +| main.rs:81:9:81:10 | p1 | main.rs:81:9:81:10 | p1 | +| main.rs:83:12:83:13 | a2 | main.rs:83:12:83:13 | a2 | +| main.rs:84:12:84:13 | b2 | main.rs:84:12:84:13 | b2 | +| main.rs:91:9:91:10 | s1 | main.rs:91:9:91:10 | s1 | +| main.rs:93:21:93:22 | s2 | main.rs:93:21:93:22 | s2 | +| main.rs:100:9:100:9 | x | main.rs:100:9:100:9 | x | +| main.rs:101:14:101:14 | x | main.rs:101:14:101:14 | x | +| main.rs:104:13:104:13 | x | main.rs:104:13:104:13 | x | +| main.rs:113:9:113:10 | s1 | main.rs:113:9:113:10 | s1 | +| main.rs:115:24:115:25 | s2 | main.rs:115:24:115:25 | s2 | +| main.rs:122:9:122:10 | x6 | main.rs:122:9:122:10 | x6 | +| main.rs:123:9:123:10 | y1 | main.rs:123:9:123:10 | y1 | +| main.rs:127:14:127:15 | y1 | main.rs:127:14:127:15 | y1 | +| main.rs:139:9:139:15 | numbers | main.rs:139:9:139:15 | numbers | +| main.rs:144:13:144:17 | first | main.rs:144:13:144:17 | first | +| main.rs:146:13:146:17 | third | main.rs:146:13:146:17 | third | +| main.rs:148:13:148:17 | fifth | main.rs:148:13:148:17 | fifth | +| main.rs:159:13:159:17 | first | main.rs:159:13:159:17 | first | +| main.rs:161:13:161:16 | last | main.rs:161:13:161:16 | last | +| main.rs:170:9:170:10 | p2 | main.rs:170:9:170:10 | p2 | +| main.rs:174:16:174:17 | x7 | main.rs:174:16:174:17 | x7 | +| main.rs:184:9:184:11 | msg | main.rs:184:9:184:11 | msg | +| main.rs:189:17:189:27 | id_variable | main.rs:189:17:189:27 | id_variable | +| main.rs:194:26:194:27 | id | main.rs:194:26:194:27 | id | +| main.rs:208:9:208:14 | either | main.rs:208:9:208:14 | either | +| main.rs:210:9:210:44 | SSA phi(a3) | main.rs:210:9:210:44 | a3 | +| main.rs:210:22:210:23 | a3 | main.rs:210:9:210:44 | a3 | +| main.rs:210:42:210:43 | a3 | main.rs:210:9:210:44 | a3 | +| main.rs:222:9:222:10 | tv | main.rs:222:9:222:10 | tv | +| main.rs:224:9:224:81 | SSA phi(a4) | main.rs:224:9:224:81 | a4 | +| main.rs:224:28:224:29 | a4 | main.rs:224:9:224:81 | a4 | +| main.rs:224:54:224:55 | a4 | main.rs:224:9:224:81 | a4 | +| main.rs:224:79:224:80 | a4 | main.rs:224:9:224:81 | a4 | +| main.rs:228:9:228:83 | SSA phi(a5) | main.rs:228:9:228:83 | a5 | +| main.rs:228:10:228:57 | [match(true)] SSA phi(a5) | main.rs:228:9:228:83 | a5 | +| main.rs:228:29:228:30 | a5 | main.rs:228:9:228:83 | a5 | +| main.rs:228:55:228:56 | a5 | main.rs:228:9:228:83 | a5 | +| main.rs:228:81:228:82 | a5 | main.rs:228:9:228:83 | a5 | +| main.rs:232:9:232:83 | SSA phi(a6) | main.rs:232:9:232:83 | a6 | +| main.rs:232:28:232:29 | a6 | main.rs:232:9:232:83 | a6 | +| main.rs:232:35:232:82 | SSA phi(a6) | main.rs:232:9:232:83 | a6 | +| main.rs:232:55:232:56 | a6 | main.rs:232:9:232:83 | a6 | +| main.rs:232:80:232:81 | a6 | main.rs:232:9:232:83 | a6 | +| main.rs:238:9:238:14 | either | main.rs:238:9:238:14 | either | +| main.rs:240:9:240:44 | [match(true)] SSA phi(a7) | main.rs:240:9:240:44 | a7 | +| main.rs:240:22:240:23 | a7 | main.rs:240:9:240:44 | a7 | +| main.rs:240:42:240:43 | a7 | main.rs:240:9:240:44 | a7 | +| main.rs:248:9:248:14 | either | main.rs:248:9:248:14 | either | +| main.rs:251:13:251:13 | e | main.rs:251:13:251:13 | e | +| main.rs:252:14:252:51 | [match(true)] SSA phi(a11) | main.rs:252:14:252:51 | a11 | +| main.rs:252:27:252:29 | a11 | main.rs:252:14:252:51 | a11 | +| main.rs:252:48:252:50 | a11 | main.rs:252:14:252:51 | a11 | +| main.rs:255:33:255:35 | a12 | main.rs:255:33:255:35 | a12 | +| main.rs:272:9:272:10 | fv | main.rs:272:9:272:10 | fv | +| main.rs:274:9:274:109 | SSA phi(a13) | main.rs:274:9:274:109 | a13 | +| main.rs:274:27:274:29 | a13 | main.rs:274:9:274:109 | a13 | +| main.rs:274:35:274:82 | [match(true)] SSA phi(a13) | main.rs:274:9:274:109 | a13 | +| main.rs:274:54:274:56 | a13 | main.rs:274:9:274:109 | a13 | +| main.rs:274:79:274:81 | a13 | main.rs:274:9:274:109 | a13 | +| main.rs:274:106:274:108 | a13 | main.rs:274:9:274:109 | a13 | +| main.rs:281:9:281:9 | x | main.rs:281:9:281:9 | x | +| main.rs:282:17:282:17 | x | main.rs:282:17:282:17 | x | +| main.rs:289:13:289:13 | x | main.rs:289:13:289:13 | x | +| main.rs:297:9:297:9 | x | main.rs:297:9:297:9 | x | +| main.rs:298:17:298:17 | x | main.rs:298:17:298:17 | x | +| main.rs:301:14:301:14 | x | main.rs:301:14:301:14 | x | +| main.rs:308:13:308:13 | x | main.rs:308:13:308:13 | x | +| main.rs:316:9:316:9 | x | main.rs:316:9:316:9 | x | +| main.rs:317:20:317:20 | x | main.rs:317:20:317:20 | x | +| main.rs:320:14:320:14 | x | main.rs:320:14:320:14 | x | +| main.rs:334:9:334:9 | x | main.rs:334:9:334:9 | x | +| main.rs:336:14:336:14 | x | main.rs:336:14:336:14 | x | +| main.rs:337:20:337:20 | x | main.rs:337:20:337:20 | x | +| main.rs:348:9:348:9 | x | main.rs:348:9:348:9 | x | +| main.rs:349:16:349:16 | x | main.rs:349:16:349:16 | x | +| main.rs:354:20:354:20 | x | main.rs:354:20:354:20 | x | +| main.rs:364:5:364:6 | a8 | main.rs:364:5:364:6 | a8 | +| main.rs:366:9:366:10 | b3 | main.rs:366:9:366:10 | b3 | +| main.rs:367:9:367:10 | c1 | main.rs:367:9:367:10 | c1 | +| main.rs:375:20:375:55 | SSA phi(a9) | main.rs:375:20:375:55 | a9 | +| main.rs:375:33:375:34 | a9 | main.rs:375:20:375:55 | a9 | +| main.rs:375:53:375:54 | a9 | main.rs:375:20:375:55 | a9 | +| main.rs:382:13:382:15 | a10 | main.rs:382:13:382:15 | a10 | +| main.rs:383:13:383:14 | b4 | main.rs:383:13:383:14 | b4 | +| main.rs:384:13:384:14 | c2 | main.rs:384:13:384:14 | c2 | +| main.rs:391:9:391:10 | c2 | main.rs:384:13:384:14 | c2 | +| main.rs:392:9:392:10 | b4 | main.rs:383:13:383:14 | b4 | +| main.rs:393:9:393:11 | a10 | main.rs:382:13:382:15 | a10 | +| main.rs:405:13:405:15 | a10 | main.rs:405:13:405:15 | a10 | +| main.rs:406:13:406:14 | b4 | main.rs:406:13:406:14 | b4 | +| main.rs:418:9:418:23 | example_closure | main.rs:418:9:418:23 | example_closure | +| main.rs:419:10:419:10 | x | main.rs:419:10:419:10 | x | +| main.rs:421:9:421:10 | n1 | main.rs:421:9:421:10 | n1 | +| main.rs:426:9:426:26 | immutable_variable | main.rs:426:9:426:26 | immutable_variable | +| main.rs:427:6:427:6 | x | main.rs:427:6:427:6 | x | +| main.rs:429:9:429:10 | n2 | main.rs:429:9:429:10 | n2 | +| main.rs:436:9:436:9 | f | main.rs:436:9:436:9 | f | +| main.rs:437:10:437:10 | x | main.rs:437:10:437:10 | x | +| main.rs:441:10:441:10 | x | main.rs:441:10:441:10 | x | +| main.rs:450:14:450:14 | x | main.rs:450:14:450:14 | x | +| main.rs:459:13:459:13 | f | main.rs:459:13:459:13 | f | +| main.rs:460:14:460:14 | x | main.rs:460:14:460:14 | x | +| main.rs:467:9:467:9 | v | main.rs:467:9:467:9 | v | +| main.rs:469:9:469:12 | text | main.rs:469:9:469:12 | text | +| main.rs:476:13:476:13 | a | main.rs:476:13:476:13 | a | +| main.rs:477:5:477:5 | a | main.rs:476:13:476:13 | a | +| main.rs:479:6:479:11 | &mut a | main.rs:476:13:476:13 | a | +| main.rs:484:13:484:13 | i | main.rs:484:13:484:13 | i | +| main.rs:485:9:485:13 | ref_i | main.rs:485:9:485:13 | ref_i | +| main.rs:486:9:486:14 | &mut i | main.rs:484:13:484:13 | i | +| main.rs:491:17:491:17 | x | main.rs:491:17:491:17 | x | +| main.rs:498:22:498:22 | x | main.rs:498:22:498:22 | x | +| main.rs:498:38:498:38 | y | main.rs:498:38:498:38 | y | +| main.rs:507:13:507:13 | x | main.rs:507:13:507:13 | x | +| main.rs:508:9:508:9 | y | main.rs:508:9:508:9 | y | +| main.rs:509:22:509:27 | &mut x | main.rs:507:13:507:13 | x | +| main.rs:515:13:515:13 | z | main.rs:515:13:515:13 | z | +| main.rs:516:9:516:9 | w | main.rs:516:9:516:9 | w | +| main.rs:519:9:519:14 | &mut z | main.rs:515:13:515:13 | z | +| main.rs:529:13:529:13 | x | main.rs:529:13:529:13 | x | +| main.rs:530:9:530:9 | y | main.rs:530:9:530:9 | y | +| main.rs:531:9:531:14 | &mut x | main.rs:529:13:529:13 | x | +| main.rs:537:9:537:9 | x | main.rs:537:9:537:9 | x | +| main.rs:540:9:540:11 | cap | main.rs:540:9:540:11 | cap | +| main.rs:540:15:542:5 | x | main.rs:537:9:537:9 | x | +| main.rs:548:13:548:13 | x | main.rs:548:13:548:13 | x | +| main.rs:551:9:551:16 | closure1 | main.rs:551:9:551:16 | closure1 | +| main.rs:551:20:553:5 | x | main.rs:548:13:548:13 | x | +| main.rs:557:13:557:13 | y | main.rs:557:13:557:13 | y | +| main.rs:560:13:560:20 | closure2 | main.rs:560:13:560:20 | closure2 | +| main.rs:561:9:561:9 | y | main.rs:557:13:557:13 | y | +| main.rs:563:5:563:14 | y | main.rs:557:13:557:13 | y | +| main.rs:566:13:566:13 | z | main.rs:566:13:566:13 | z | +| main.rs:569:13:569:20 | closure3 | main.rs:569:13:569:20 | closure3 | +| main.rs:569:24:571:5 | z | main.rs:566:13:566:13 | z | +| main.rs:577:13:577:13 | i | main.rs:577:13:577:13 | i | +| main.rs:578:9:578:13 | block | main.rs:578:9:578:13 | block | +| main.rs:579:9:579:9 | i | main.rs:577:13:577:13 | i | +| main.rs:582:5:582:15 | i | main.rs:577:13:577:13 | i | +| main.rs:586:8:586:8 | b | main.rs:586:8:586:8 | b | +| main.rs:587:13:587:13 | x | main.rs:587:13:587:13 | x | +| main.rs:591:13:600:5 | SSA phi(x) | main.rs:587:13:587:13 | x | +| main.rs:593:9:593:9 | x | main.rs:587:13:587:13 | x | +| main.rs:597:9:597:9 | x | main.rs:587:13:587:13 | x | +| main.rs:604:13:604:14 | b1 | main.rs:604:13:604:14 | b1 | +| main.rs:604:23:604:24 | b2 | main.rs:604:23:604:24 | b2 | +| main.rs:605:9:605:9 | x | main.rs:605:9:605:9 | x | +| main.rs:628:20:628:23 | self | main.rs:628:20:628:23 | self | +| main.rs:632:11:632:14 | self | main.rs:632:11:632:14 | self | +| main.rs:636:23:636:26 | self | main.rs:636:23:636:26 | self | +| main.rs:637:17:637:17 | f | main.rs:637:17:637:17 | f | +| main.rs:637:21:640:9 | self | main.rs:636:23:636:26 | self | +| main.rs:637:22:637:22 | n | main.rs:637:22:637:22 | n | +| main.rs:647:13:647:13 | a | main.rs:647:13:647:13 | a | +| main.rs:648:15:648:15 | a | main.rs:647:13:647:13 | a | +| main.rs:651:5:651:5 | a | main.rs:647:13:647:13 | a | +| main.rs:656:13:656:13 | a | main.rs:656:13:656:13 | a | +| main.rs:660:5:660:5 | a | main.rs:656:13:656:13 | a | +| main.rs:665:9:665:9 | x | main.rs:665:9:665:9 | x | +| main.rs:669:9:669:9 | z | main.rs:669:9:669:9 | z | +| main.rs:678:17:678:20 | self | main.rs:678:17:678:20 | self | +| main.rs:684:13:684:13 | a | main.rs:684:13:684:13 | a | +| main.rs:685:5:685:5 | a | main.rs:684:13:684:13 | a | +| main.rs:706:9:706:22 | var_from_macro | main.rs:706:9:706:22 | var_from_macro | +| main.rs:707:9:707:21 | var_in_macro | main.rs:707:9:707:21 | var_in_macro | +| main.rs:709:9:709:20 | var_in_macro | main.rs:709:9:709:20 | var_in_macro | +| main.rs:714:15:714:28 | var_in_macro | main.rs:714:15:714:28 | var_in_macro | +| main.rs:720:5:720:5 | x | main.rs:719:9:719:9 | x | +| main.rs:725:13:725:13 | x | main.rs:725:13:725:13 | x | +| main.rs:726:13:726:15 | cap | main.rs:726:13:726:15 | cap | +| main.rs:726:19:731:5 | x | main.rs:725:13:725:13 | x | +| main.rs:726:20:726:20 | b | main.rs:726:20:726:20 | b | +| main.rs:728:17:730:9 | SSA phi(x) | main.rs:725:13:725:13 | x | +| main.rs:729:13:729:13 | x | main.rs:725:13:725:13 | x | +| main.rs:732:5:732:13 | x | main.rs:725:13:725:13 | x | read | main.rs:5:14:5:14 | s | main.rs:5:14:5:14 | s | main.rs:7:20:7:20 | s | | main.rs:10:14:10:14 | i | main.rs:10:14:10:14 | i | main.rs:12:20:12:20 | i | @@ -197,200 +198,202 @@ read | main.rs:20:9:20:10 | x1 | main.rs:20:9:20:10 | x1 | main.rs:21:15:21:16 | x1 | | main.rs:25:13:25:14 | x2 | main.rs:25:13:25:14 | x2 | main.rs:26:15:26:16 | x2 | | main.rs:27:5:27:6 | x2 | main.rs:25:13:25:14 | x2 | main.rs:28:15:28:16 | x2 | -| main.rs:32:13:32:13 | x | main.rs:32:13:32:13 | x | main.rs:33:20:33:20 | x | -| main.rs:34:5:34:5 | x | main.rs:32:13:32:13 | x | main.rs:35:20:35:20 | x | -| main.rs:39:9:39:10 | x3 | main.rs:39:9:39:10 | x3 | main.rs:40:15:40:16 | x3 | -| main.rs:39:9:39:10 | x3 | main.rs:39:9:39:10 | x3 | main.rs:42:9:42:10 | x3 | -| main.rs:41:9:41:10 | x3 | main.rs:41:9:41:10 | x3 | main.rs:43:15:43:16 | x3 | -| main.rs:47:9:47:10 | x4 | main.rs:47:9:47:10 | x4 | main.rs:48:15:48:16 | x4 | -| main.rs:47:9:47:10 | x4 | main.rs:47:9:47:10 | x4 | main.rs:53:15:53:16 | x4 | -| main.rs:50:13:50:14 | x4 | main.rs:50:13:50:14 | x4 | main.rs:51:19:51:20 | x4 | -| main.rs:64:13:64:14 | a1 | main.rs:64:13:64:14 | a1 | main.rs:72:15:72:16 | a1 | -| main.rs:65:13:65:14 | b1 | main.rs:65:13:65:14 | b1 | main.rs:73:15:73:16 | b1 | -| main.rs:68:13:68:13 | x | main.rs:68:13:68:13 | x | main.rs:74:15:74:15 | x | -| main.rs:69:13:69:13 | y | main.rs:69:13:69:13 | y | main.rs:75:15:75:15 | y | -| main.rs:79:9:79:10 | p1 | main.rs:79:9:79:10 | p1 | main.rs:83:9:83:10 | p1 | -| main.rs:81:12:81:13 | a2 | main.rs:81:12:81:13 | a2 | main.rs:84:15:84:16 | a2 | -| main.rs:82:12:82:13 | b2 | main.rs:82:12:82:13 | b2 | main.rs:85:15:85:16 | b2 | -| main.rs:89:9:89:10 | s1 | main.rs:89:9:89:10 | s1 | main.rs:92:11:92:12 | s1 | -| main.rs:91:21:91:22 | s2 | main.rs:91:21:91:22 | s2 | main.rs:93:19:93:20 | s2 | -| main.rs:98:9:98:9 | x | main.rs:98:9:98:9 | x | main.rs:100:7:100:7 | x | -| main.rs:98:9:98:9 | x | main.rs:98:9:98:9 | x | main.rs:103:13:103:13 | x | -| main.rs:99:14:99:14 | x | main.rs:99:14:99:14 | x | main.rs:107:15:107:15 | x | -| main.rs:102:13:102:13 | x | main.rs:102:13:102:13 | x | main.rs:104:19:104:19 | x | -| main.rs:111:9:111:10 | s1 | main.rs:111:9:111:10 | s1 | main.rs:114:11:114:12 | s1 | -| main.rs:113:24:113:25 | s2 | main.rs:113:24:113:25 | s2 | main.rs:115:19:115:20 | s2 | -| main.rs:120:9:120:10 | x6 | main.rs:120:9:120:10 | x6 | main.rs:123:11:123:12 | x6 | -| main.rs:121:9:121:10 | y1 | main.rs:121:9:121:10 | y1 | main.rs:133:15:133:16 | y1 | -| main.rs:125:14:125:15 | y1 | main.rs:125:14:125:15 | y1 | main.rs:128:23:128:24 | y1 | -| main.rs:137:9:137:15 | numbers | main.rs:137:9:137:15 | numbers | main.rs:139:11:139:17 | numbers | -| main.rs:137:9:137:15 | numbers | main.rs:137:9:137:15 | numbers | main.rs:154:11:154:17 | numbers | -| main.rs:142:13:142:17 | first | main.rs:142:13:142:17 | first | main.rs:148:23:148:27 | first | -| main.rs:144:13:144:17 | third | main.rs:144:13:144:17 | third | main.rs:149:23:149:27 | third | -| main.rs:146:13:146:17 | fifth | main.rs:146:13:146:17 | fifth | main.rs:150:23:150:27 | fifth | -| main.rs:157:13:157:17 | first | main.rs:157:13:157:17 | first | main.rs:161:23:161:27 | first | -| main.rs:159:13:159:16 | last | main.rs:159:13:159:16 | last | main.rs:162:23:162:26 | last | -| main.rs:168:9:168:10 | p2 | main.rs:168:9:168:10 | p2 | main.rs:170:11:170:12 | p2 | -| main.rs:172:16:172:17 | x7 | main.rs:172:16:172:17 | x7 | main.rs:173:24:173:25 | x7 | -| main.rs:182:9:182:11 | msg | main.rs:182:9:182:11 | msg | main.rs:184:11:184:13 | msg | -| main.rs:187:17:187:27 | id_variable | main.rs:187:17:187:27 | id_variable | main.rs:188:24:188:34 | id_variable | -| main.rs:192:26:192:27 | id | main.rs:192:26:192:27 | id | main.rs:195:23:195:24 | id | -| main.rs:206:9:206:14 | either | main.rs:206:9:206:14 | either | main.rs:207:11:207:16 | either | -| main.rs:208:9:208:44 | SSA phi(a3) | main.rs:208:9:208:44 | a3 | main.rs:209:26:209:27 | a3 | -| main.rs:220:9:220:10 | tv | main.rs:220:9:220:10 | tv | main.rs:221:11:221:12 | tv | -| main.rs:220:9:220:10 | tv | main.rs:220:9:220:10 | tv | main.rs:225:11:225:12 | tv | -| main.rs:220:9:220:10 | tv | main.rs:220:9:220:10 | tv | main.rs:229:11:229:12 | tv | -| main.rs:222:9:222:81 | SSA phi(a4) | main.rs:222:9:222:81 | a4 | main.rs:223:26:223:27 | a4 | -| main.rs:226:9:226:83 | SSA phi(a5) | main.rs:226:9:226:83 | a5 | main.rs:227:26:227:27 | a5 | -| main.rs:230:9:230:83 | SSA phi(a6) | main.rs:230:9:230:83 | a6 | main.rs:231:26:231:27 | a6 | -| main.rs:236:9:236:14 | either | main.rs:236:9:236:14 | either | main.rs:237:11:237:16 | either | -| main.rs:238:9:238:44 | [match(true)] SSA phi(a7) | main.rs:238:9:238:44 | a7 | main.rs:239:16:239:17 | a7 | -| main.rs:238:9:238:44 | [match(true)] SSA phi(a7) | main.rs:238:9:238:44 | a7 | main.rs:240:26:240:27 | a7 | -| main.rs:246:9:246:14 | either | main.rs:246:9:246:14 | either | main.rs:248:11:248:16 | either | -| main.rs:249:13:249:13 | e | main.rs:249:13:249:13 | e | main.rs:254:15:254:15 | e | -| main.rs:250:14:250:51 | [match(true)] SSA phi(a11) | main.rs:250:14:250:51 | a11 | main.rs:252:23:252:25 | a11 | -| main.rs:253:33:253:35 | a12 | main.rs:253:33:253:35 | a12 | main.rs:255:28:255:30 | a12 | -| main.rs:270:9:270:10 | fv | main.rs:270:9:270:10 | fv | main.rs:271:11:271:12 | fv | -| main.rs:272:9:272:109 | SSA phi(a13) | main.rs:272:9:272:109 | a13 | main.rs:273:26:273:28 | a13 | -| main.rs:279:9:279:9 | x | main.rs:279:9:279:9 | x | main.rs:281:7:281:7 | x | -| main.rs:279:9:279:9 | x | main.rs:279:9:279:9 | x | main.rs:288:13:288:13 | x | -| main.rs:280:17:280:17 | x | main.rs:280:17:280:17 | x | main.rs:283:5:283:5 | x | -| main.rs:280:17:280:17 | x | main.rs:280:17:280:17 | x | main.rs:285:19:285:19 | x | -| main.rs:287:13:287:13 | x | main.rs:287:13:287:13 | x | main.rs:289:19:289:19 | x | -| main.rs:295:9:295:9 | x | main.rs:295:9:295:9 | x | main.rs:297:7:297:7 | x | -| main.rs:295:9:295:9 | x | main.rs:295:9:295:9 | x | main.rs:307:13:307:13 | x | -| main.rs:296:17:296:17 | x | main.rs:296:17:296:17 | x | main.rs:300:12:300:12 | x | -| main.rs:299:14:299:14 | x | main.rs:299:14:299:14 | x | main.rs:302:5:302:5 | x | -| main.rs:299:14:299:14 | x | main.rs:299:14:299:14 | x | main.rs:304:19:304:19 | x | -| main.rs:306:13:306:13 | x | main.rs:306:13:306:13 | x | main.rs:308:19:308:19 | x | -| main.rs:314:9:314:9 | x | main.rs:314:9:314:9 | x | main.rs:316:7:316:7 | x | -| main.rs:314:9:314:9 | x | main.rs:314:9:314:9 | x | main.rs:327:15:327:15 | x | -| main.rs:315:20:315:20 | x | main.rs:315:20:315:20 | x | main.rs:319:12:319:12 | x | -| main.rs:318:14:318:14 | x | main.rs:318:14:318:14 | x | main.rs:321:5:321:5 | x | -| main.rs:318:14:318:14 | x | main.rs:318:14:318:14 | x | main.rs:323:19:323:19 | x | -| main.rs:332:9:332:9 | x | main.rs:332:9:332:9 | x | main.rs:333:11:333:11 | x | -| main.rs:332:9:332:9 | x | main.rs:332:9:332:9 | x | main.rs:341:15:341:15 | x | -| main.rs:334:14:334:14 | x | main.rs:334:14:334:14 | x | main.rs:336:18:336:18 | x | -| main.rs:335:20:335:20 | x | main.rs:335:20:335:20 | x | main.rs:337:19:337:19 | x | -| main.rs:346:9:346:9 | x | main.rs:346:9:346:9 | x | main.rs:348:7:348:7 | x | -| main.rs:346:9:346:9 | x | main.rs:346:9:346:9 | x | main.rs:353:7:353:7 | x | -| main.rs:346:9:346:9 | x | main.rs:346:9:346:9 | x | main.rs:357:19:357:19 | x | -| main.rs:347:16:347:16 | x | main.rs:347:16:347:16 | x | main.rs:350:19:350:19 | x | -| main.rs:352:20:352:20 | x | main.rs:352:20:352:20 | x | main.rs:355:19:355:19 | x | -| main.rs:362:5:362:6 | a8 | main.rs:362:5:362:6 | a8 | main.rs:368:15:368:16 | a8 | -| main.rs:364:9:364:10 | b3 | main.rs:364:9:364:10 | b3 | main.rs:369:15:369:16 | b3 | -| main.rs:365:9:365:10 | c1 | main.rs:365:9:365:10 | c1 | main.rs:370:15:370:16 | c1 | -| main.rs:373:20:373:55 | SSA phi(a9) | main.rs:373:20:373:55 | a9 | main.rs:375:15:375:16 | a9 | -| main.rs:380:13:380:15 | a10 | main.rs:380:13:380:15 | a10 | main.rs:384:15:384:17 | a10 | -| main.rs:381:13:381:14 | b4 | main.rs:381:13:381:14 | b4 | main.rs:385:15:385:16 | b4 | -| main.rs:382:13:382:14 | c2 | main.rs:382:13:382:14 | c2 | main.rs:386:15:386:16 | c2 | -| main.rs:389:9:389:10 | c2 | main.rs:382:13:382:14 | c2 | main.rs:395:9:395:10 | c2 | -| main.rs:389:9:389:10 | c2 | main.rs:382:13:382:14 | c2 | main.rs:399:15:399:16 | c2 | -| main.rs:390:9:390:10 | b4 | main.rs:381:13:381:14 | b4 | main.rs:394:9:394:10 | b4 | -| main.rs:390:9:390:10 | b4 | main.rs:381:13:381:14 | b4 | main.rs:398:15:398:16 | b4 | -| main.rs:390:9:390:10 | b4 | main.rs:381:13:381:14 | b4 | main.rs:412:15:412:16 | b4 | -| main.rs:391:9:391:11 | a10 | main.rs:380:13:380:15 | a10 | main.rs:393:9:393:11 | a10 | -| main.rs:391:9:391:11 | a10 | main.rs:380:13:380:15 | a10 | main.rs:397:15:397:17 | a10 | -| main.rs:391:9:391:11 | a10 | main.rs:380:13:380:15 | a10 | main.rs:411:15:411:17 | a10 | -| main.rs:403:13:403:15 | a10 | main.rs:403:13:403:15 | a10 | main.rs:406:23:406:25 | a10 | -| main.rs:404:13:404:14 | b4 | main.rs:404:13:404:14 | b4 | main.rs:407:23:407:24 | b4 | -| main.rs:416:9:416:23 | example_closure | main.rs:416:9:416:23 | example_closure | main.rs:420:9:420:23 | example_closure | -| main.rs:417:10:417:10 | x | main.rs:417:10:417:10 | x | main.rs:418:9:418:9 | x | -| main.rs:419:9:419:10 | n1 | main.rs:419:9:419:10 | n1 | main.rs:421:15:421:16 | n1 | -| main.rs:424:9:424:26 | immutable_variable | main.rs:424:9:424:26 | immutable_variable | main.rs:428:9:428:26 | immutable_variable | -| main.rs:425:6:425:6 | x | main.rs:425:6:425:6 | x | main.rs:426:9:426:9 | x | -| main.rs:427:9:427:10 | n2 | main.rs:427:9:427:10 | n2 | main.rs:429:15:429:16 | n2 | -| main.rs:434:9:434:9 | f | main.rs:434:9:434:9 | f | main.rs:437:15:437:15 | f | -| main.rs:434:9:434:9 | f | main.rs:434:9:434:9 | f | main.rs:444:15:444:15 | f | -| main.rs:435:10:435:10 | x | main.rs:435:10:435:10 | x | main.rs:436:9:436:9 | x | -| main.rs:439:10:439:10 | x | main.rs:439:10:439:10 | x | main.rs:441:9:441:9 | x | -| main.rs:448:14:448:14 | x | main.rs:448:14:448:14 | x | main.rs:450:17:450:17 | x | -| main.rs:457:13:457:13 | f | main.rs:457:13:457:13 | f | main.rs:460:19:460:19 | f | -| main.rs:458:14:458:14 | x | main.rs:458:14:458:14 | x | main.rs:459:13:459:13 | x | -| main.rs:465:9:465:9 | v | main.rs:465:9:465:9 | v | main.rs:468:12:468:12 | v | -| main.rs:467:9:467:12 | text | main.rs:467:9:467:12 | text | main.rs:469:19:469:22 | text | -| main.rs:474:13:474:13 | a | main.rs:474:13:474:13 | a | main.rs:475:5:475:5 | a | -| main.rs:475:5:475:5 | a | main.rs:474:13:474:13 | a | main.rs:476:15:476:15 | a | -| main.rs:475:5:475:5 | a | main.rs:474:13:474:13 | a | main.rs:477:11:477:11 | a | -| main.rs:477:6:477:11 | &mut a | main.rs:474:13:474:13 | a | main.rs:478:15:478:15 | a | -| main.rs:482:13:482:13 | i | main.rs:482:13:482:13 | i | main.rs:484:14:484:14 | i | -| main.rs:483:9:483:13 | ref_i | main.rs:483:9:483:13 | ref_i | main.rs:485:6:485:10 | ref_i | -| main.rs:484:9:484:14 | &mut i | main.rs:482:13:482:13 | i | main.rs:486:15:486:15 | i | -| main.rs:489:17:489:17 | x | main.rs:489:17:489:17 | x | main.rs:490:6:490:6 | x | -| main.rs:489:17:489:17 | x | main.rs:489:17:489:17 | x | main.rs:491:10:491:10 | x | -| main.rs:489:17:489:17 | x | main.rs:489:17:489:17 | x | main.rs:492:10:492:10 | x | -| main.rs:489:17:489:17 | x | main.rs:489:17:489:17 | x | main.rs:493:12:493:12 | x | -| main.rs:496:22:496:22 | x | main.rs:496:22:496:22 | x | main.rs:497:6:497:6 | x | -| main.rs:496:22:496:22 | x | main.rs:496:22:496:22 | x | main.rs:498:10:498:10 | x | -| main.rs:496:22:496:22 | x | main.rs:496:22:496:22 | x | main.rs:499:10:499:10 | x | -| main.rs:496:22:496:22 | x | main.rs:496:22:496:22 | x | main.rs:501:9:501:9 | x | -| main.rs:496:38:496:38 | y | main.rs:496:38:496:38 | y | main.rs:500:6:500:6 | y | -| main.rs:505:13:505:13 | x | main.rs:505:13:505:13 | x | main.rs:507:27:507:27 | x | -| main.rs:506:9:506:9 | y | main.rs:506:9:506:9 | y | main.rs:508:6:508:6 | y | -| main.rs:507:22:507:27 | &mut x | main.rs:505:13:505:13 | x | main.rs:511:15:511:15 | x | -| main.rs:507:22:507:27 | &mut x | main.rs:505:13:505:13 | x | main.rs:515:19:515:19 | x | -| main.rs:513:13:513:13 | z | main.rs:513:13:513:13 | z | main.rs:517:14:517:14 | z | -| main.rs:514:9:514:9 | w | main.rs:514:9:514:9 | w | main.rs:518:9:518:9 | w | -| main.rs:514:9:514:9 | w | main.rs:514:9:514:9 | w | main.rs:520:7:520:7 | w | -| main.rs:517:9:517:14 | &mut z | main.rs:513:13:513:13 | z | main.rs:523:15:523:15 | z | -| main.rs:527:13:527:13 | x | main.rs:527:13:527:13 | x | main.rs:529:14:529:14 | x | -| main.rs:528:9:528:9 | y | main.rs:528:9:528:9 | y | main.rs:530:6:530:6 | y | -| main.rs:529:9:529:14 | &mut x | main.rs:527:13:527:13 | x | main.rs:531:15:531:15 | x | -| main.rs:535:9:535:9 | x | main.rs:535:9:535:9 | x | main.rs:542:15:542:15 | x | -| main.rs:538:9:538:11 | cap | main.rs:538:9:538:11 | cap | main.rs:541:5:541:7 | cap | -| main.rs:538:15:540:5 | x | main.rs:535:9:535:9 | x | main.rs:539:19:539:19 | x | -| main.rs:546:13:546:13 | x | main.rs:546:13:546:13 | x | main.rs:553:15:553:15 | x | -| main.rs:549:9:549:16 | closure1 | main.rs:549:9:549:16 | closure1 | main.rs:552:5:552:12 | closure1 | -| main.rs:549:20:551:5 | x | main.rs:546:13:546:13 | x | main.rs:550:19:550:19 | x | -| main.rs:558:13:558:20 | closure2 | main.rs:558:13:558:20 | closure2 | main.rs:561:5:561:12 | closure2 | -| main.rs:561:5:561:14 | y | main.rs:555:13:555:13 | y | main.rs:562:15:562:15 | y | -| main.rs:564:13:564:13 | z | main.rs:564:13:564:13 | z | main.rs:571:15:571:15 | z | -| main.rs:567:13:567:20 | closure3 | main.rs:567:13:567:20 | closure3 | main.rs:570:5:570:12 | closure3 | -| main.rs:567:24:569:5 | z | main.rs:564:13:564:13 | z | main.rs:568:9:568:9 | z | -| main.rs:576:9:576:13 | block | main.rs:576:9:576:13 | block | main.rs:580:5:580:9 | block | -| main.rs:580:5:580:15 | i | main.rs:575:13:575:13 | i | main.rs:581:15:581:15 | i | -| main.rs:584:8:584:8 | b | main.rs:584:8:584:8 | b | main.rs:589:16:589:16 | b | -| main.rs:585:13:585:13 | x | main.rs:585:13:585:13 | x | main.rs:586:15:586:15 | x | -| main.rs:585:13:585:13 | x | main.rs:585:13:585:13 | x | main.rs:587:15:587:15 | x | -| main.rs:589:13:598:5 | SSA phi(x) | main.rs:585:13:585:13 | x | main.rs:599:15:599:15 | x | -| main.rs:591:9:591:9 | x | main.rs:585:13:585:13 | x | main.rs:592:19:592:19 | x | -| main.rs:591:9:591:9 | x | main.rs:585:13:585:13 | x | main.rs:593:19:593:19 | x | -| main.rs:595:9:595:9 | x | main.rs:585:13:585:13 | x | main.rs:596:19:596:19 | x | -| main.rs:595:9:595:9 | x | main.rs:585:13:585:13 | x | main.rs:597:19:597:19 | x | -| main.rs:602:13:602:14 | b1 | main.rs:602:13:602:14 | b1 | main.rs:605:16:605:17 | b1 | -| main.rs:602:23:602:24 | b2 | main.rs:602:23:602:24 | b2 | main.rs:613:16:613:17 | b2 | -| main.rs:603:9:603:9 | x | main.rs:603:9:603:9 | x | main.rs:607:19:607:19 | x | -| main.rs:603:9:603:9 | x | main.rs:603:9:603:9 | x | main.rs:609:19:609:19 | x | -| main.rs:603:9:603:9 | x | main.rs:603:9:603:9 | x | main.rs:615:19:615:19 | x | -| main.rs:603:9:603:9 | x | main.rs:603:9:603:9 | x | main.rs:617:19:617:19 | x | -| main.rs:626:20:626:23 | self | main.rs:626:20:626:23 | self | main.rs:627:16:627:19 | self | -| main.rs:630:11:630:14 | self | main.rs:630:11:630:14 | self | main.rs:631:9:631:12 | self | -| main.rs:635:17:635:17 | f | main.rs:635:17:635:17 | f | main.rs:639:9:639:9 | f | -| main.rs:635:17:635:17 | f | main.rs:635:17:635:17 | f | main.rs:640:9:640:9 | f | -| main.rs:635:21:638:9 | self | main.rs:634:23:634:26 | self | main.rs:637:13:637:16 | self | -| main.rs:635:22:635:22 | n | main.rs:635:22:635:22 | n | main.rs:637:25:637:25 | n | -| main.rs:645:13:645:13 | a | main.rs:645:13:645:13 | a | main.rs:646:15:646:15 | a | -| main.rs:646:15:646:15 | a | main.rs:645:13:645:13 | a | main.rs:647:5:647:5 | a | -| main.rs:646:15:646:15 | a | main.rs:645:13:645:13 | a | main.rs:648:15:648:15 | a | -| main.rs:649:5:649:5 | a | main.rs:645:13:645:13 | a | main.rs:650:15:650:15 | a | -| main.rs:654:13:654:13 | a | main.rs:654:13:654:13 | a | main.rs:655:15:655:15 | a | -| main.rs:654:13:654:13 | a | main.rs:654:13:654:13 | a | main.rs:656:5:656:5 | a | -| main.rs:654:13:654:13 | a | main.rs:654:13:654:13 | a | main.rs:657:15:657:15 | a | -| main.rs:658:5:658:5 | a | main.rs:654:13:654:13 | a | main.rs:659:15:659:15 | a | -| main.rs:663:9:663:9 | x | main.rs:663:9:663:9 | x | main.rs:664:20:664:20 | x | -| main.rs:663:9:663:9 | x | main.rs:663:9:663:9 | x | main.rs:665:15:665:15 | x | -| main.rs:667:9:667:9 | z | main.rs:667:9:667:9 | z | main.rs:668:20:668:20 | z | -| main.rs:676:17:676:20 | self | main.rs:676:17:676:20 | self | main.rs:677:10:677:13 | self | -| main.rs:682:13:682:13 | a | main.rs:682:13:682:13 | a | main.rs:683:5:683:5 | a | -| main.rs:683:5:683:5 | a | main.rs:682:13:682:13 | a | main.rs:686:15:686:15 | a | -| main.rs:704:9:704:22 | var_from_macro | main.rs:704:9:704:22 | var_from_macro | main.rs:706:15:706:28 | var_from_macro | -| main.rs:705:9:705:21 | var_in_macro | main.rs:705:9:705:21 | var_in_macro | main.rs:705:9:705:21 | var_in_macro | -| main.rs:707:9:707:20 | var_in_macro | main.rs:707:9:707:20 | var_in_macro | main.rs:713:15:713:26 | var_in_macro | -| main.rs:712:15:712:28 | var_in_macro | main.rs:712:15:712:28 | var_in_macro | main.rs:712:30:712:41 | var_in_macro | -| main.rs:718:5:718:5 | x | main.rs:717:9:717:9 | x | main.rs:719:15:719:15 | x | -| main.rs:724:13:724:15 | cap | main.rs:724:13:724:15 | cap | main.rs:730:5:730:7 | cap | -| main.rs:724:20:724:20 | b | main.rs:724:20:724:20 | b | main.rs:726:20:726:20 | b | -| main.rs:730:5:730:13 | x | main.rs:723:13:723:13 | x | main.rs:731:15:731:15 | x | +| main.rs:27:5:27:6 | x2 | main.rs:25:13:25:14 | x2 | main.rs:29:10:29:11 | x2 | +| main.rs:29:5:29:6 | x2 | main.rs:25:13:25:14 | x2 | main.rs:30:15:30:16 | x2 | +| main.rs:34:13:34:13 | x | main.rs:34:13:34:13 | x | main.rs:35:20:35:20 | x | +| main.rs:36:5:36:5 | x | main.rs:34:13:34:13 | x | main.rs:37:20:37:20 | x | +| main.rs:41:9:41:10 | x3 | main.rs:41:9:41:10 | x3 | main.rs:42:15:42:16 | x3 | +| main.rs:41:9:41:10 | x3 | main.rs:41:9:41:10 | x3 | main.rs:44:9:44:10 | x3 | +| main.rs:43:9:43:10 | x3 | main.rs:43:9:43:10 | x3 | main.rs:45:15:45:16 | x3 | +| main.rs:49:9:49:10 | x4 | main.rs:49:9:49:10 | x4 | main.rs:50:15:50:16 | x4 | +| main.rs:49:9:49:10 | x4 | main.rs:49:9:49:10 | x4 | main.rs:55:15:55:16 | x4 | +| main.rs:52:13:52:14 | x4 | main.rs:52:13:52:14 | x4 | main.rs:53:19:53:20 | x4 | +| main.rs:66:13:66:14 | a1 | main.rs:66:13:66:14 | a1 | main.rs:74:15:74:16 | a1 | +| main.rs:67:13:67:14 | b1 | main.rs:67:13:67:14 | b1 | main.rs:75:15:75:16 | b1 | +| main.rs:70:13:70:13 | x | main.rs:70:13:70:13 | x | main.rs:76:15:76:15 | x | +| main.rs:71:13:71:13 | y | main.rs:71:13:71:13 | y | main.rs:77:15:77:15 | y | +| main.rs:81:9:81:10 | p1 | main.rs:81:9:81:10 | p1 | main.rs:85:9:85:10 | p1 | +| main.rs:83:12:83:13 | a2 | main.rs:83:12:83:13 | a2 | main.rs:86:15:86:16 | a2 | +| main.rs:84:12:84:13 | b2 | main.rs:84:12:84:13 | b2 | main.rs:87:15:87:16 | b2 | +| main.rs:91:9:91:10 | s1 | main.rs:91:9:91:10 | s1 | main.rs:94:11:94:12 | s1 | +| main.rs:93:21:93:22 | s2 | main.rs:93:21:93:22 | s2 | main.rs:95:19:95:20 | s2 | +| main.rs:100:9:100:9 | x | main.rs:100:9:100:9 | x | main.rs:102:7:102:7 | x | +| main.rs:100:9:100:9 | x | main.rs:100:9:100:9 | x | main.rs:105:13:105:13 | x | +| main.rs:101:14:101:14 | x | main.rs:101:14:101:14 | x | main.rs:109:15:109:15 | x | +| main.rs:104:13:104:13 | x | main.rs:104:13:104:13 | x | main.rs:106:19:106:19 | x | +| main.rs:113:9:113:10 | s1 | main.rs:113:9:113:10 | s1 | main.rs:116:11:116:12 | s1 | +| main.rs:115:24:115:25 | s2 | main.rs:115:24:115:25 | s2 | main.rs:117:19:117:20 | s2 | +| main.rs:122:9:122:10 | x6 | main.rs:122:9:122:10 | x6 | main.rs:125:11:125:12 | x6 | +| main.rs:123:9:123:10 | y1 | main.rs:123:9:123:10 | y1 | main.rs:135:15:135:16 | y1 | +| main.rs:127:14:127:15 | y1 | main.rs:127:14:127:15 | y1 | main.rs:130:23:130:24 | y1 | +| main.rs:139:9:139:15 | numbers | main.rs:139:9:139:15 | numbers | main.rs:141:11:141:17 | numbers | +| main.rs:139:9:139:15 | numbers | main.rs:139:9:139:15 | numbers | main.rs:156:11:156:17 | numbers | +| main.rs:144:13:144:17 | first | main.rs:144:13:144:17 | first | main.rs:150:23:150:27 | first | +| main.rs:146:13:146:17 | third | main.rs:146:13:146:17 | third | main.rs:151:23:151:27 | third | +| main.rs:148:13:148:17 | fifth | main.rs:148:13:148:17 | fifth | main.rs:152:23:152:27 | fifth | +| main.rs:159:13:159:17 | first | main.rs:159:13:159:17 | first | main.rs:163:23:163:27 | first | +| main.rs:161:13:161:16 | last | main.rs:161:13:161:16 | last | main.rs:164:23:164:26 | last | +| main.rs:170:9:170:10 | p2 | main.rs:170:9:170:10 | p2 | main.rs:172:11:172:12 | p2 | +| main.rs:174:16:174:17 | x7 | main.rs:174:16:174:17 | x7 | main.rs:175:24:175:25 | x7 | +| main.rs:184:9:184:11 | msg | main.rs:184:9:184:11 | msg | main.rs:186:11:186:13 | msg | +| main.rs:189:17:189:27 | id_variable | main.rs:189:17:189:27 | id_variable | main.rs:190:24:190:34 | id_variable | +| main.rs:194:26:194:27 | id | main.rs:194:26:194:27 | id | main.rs:197:23:197:24 | id | +| main.rs:208:9:208:14 | either | main.rs:208:9:208:14 | either | main.rs:209:11:209:16 | either | +| main.rs:210:9:210:44 | SSA phi(a3) | main.rs:210:9:210:44 | a3 | main.rs:211:26:211:27 | a3 | +| main.rs:222:9:222:10 | tv | main.rs:222:9:222:10 | tv | main.rs:223:11:223:12 | tv | +| main.rs:222:9:222:10 | tv | main.rs:222:9:222:10 | tv | main.rs:227:11:227:12 | tv | +| main.rs:222:9:222:10 | tv | main.rs:222:9:222:10 | tv | main.rs:231:11:231:12 | tv | +| main.rs:224:9:224:81 | SSA phi(a4) | main.rs:224:9:224:81 | a4 | main.rs:225:26:225:27 | a4 | +| main.rs:228:9:228:83 | SSA phi(a5) | main.rs:228:9:228:83 | a5 | main.rs:229:26:229:27 | a5 | +| main.rs:232:9:232:83 | SSA phi(a6) | main.rs:232:9:232:83 | a6 | main.rs:233:26:233:27 | a6 | +| main.rs:238:9:238:14 | either | main.rs:238:9:238:14 | either | main.rs:239:11:239:16 | either | +| main.rs:240:9:240:44 | [match(true)] SSA phi(a7) | main.rs:240:9:240:44 | a7 | main.rs:241:16:241:17 | a7 | +| main.rs:240:9:240:44 | [match(true)] SSA phi(a7) | main.rs:240:9:240:44 | a7 | main.rs:242:26:242:27 | a7 | +| main.rs:248:9:248:14 | either | main.rs:248:9:248:14 | either | main.rs:250:11:250:16 | either | +| main.rs:251:13:251:13 | e | main.rs:251:13:251:13 | e | main.rs:256:15:256:15 | e | +| main.rs:252:14:252:51 | [match(true)] SSA phi(a11) | main.rs:252:14:252:51 | a11 | main.rs:254:23:254:25 | a11 | +| main.rs:255:33:255:35 | a12 | main.rs:255:33:255:35 | a12 | main.rs:257:28:257:30 | a12 | +| main.rs:272:9:272:10 | fv | main.rs:272:9:272:10 | fv | main.rs:273:11:273:12 | fv | +| main.rs:274:9:274:109 | SSA phi(a13) | main.rs:274:9:274:109 | a13 | main.rs:275:26:275:28 | a13 | +| main.rs:281:9:281:9 | x | main.rs:281:9:281:9 | x | main.rs:283:7:283:7 | x | +| main.rs:281:9:281:9 | x | main.rs:281:9:281:9 | x | main.rs:290:13:290:13 | x | +| main.rs:282:17:282:17 | x | main.rs:282:17:282:17 | x | main.rs:285:5:285:5 | x | +| main.rs:282:17:282:17 | x | main.rs:282:17:282:17 | x | main.rs:287:19:287:19 | x | +| main.rs:289:13:289:13 | x | main.rs:289:13:289:13 | x | main.rs:291:19:291:19 | x | +| main.rs:297:9:297:9 | x | main.rs:297:9:297:9 | x | main.rs:299:7:299:7 | x | +| main.rs:297:9:297:9 | x | main.rs:297:9:297:9 | x | main.rs:309:13:309:13 | x | +| main.rs:298:17:298:17 | x | main.rs:298:17:298:17 | x | main.rs:302:12:302:12 | x | +| main.rs:301:14:301:14 | x | main.rs:301:14:301:14 | x | main.rs:304:5:304:5 | x | +| main.rs:301:14:301:14 | x | main.rs:301:14:301:14 | x | main.rs:306:19:306:19 | x | +| main.rs:308:13:308:13 | x | main.rs:308:13:308:13 | x | main.rs:310:19:310:19 | x | +| main.rs:316:9:316:9 | x | main.rs:316:9:316:9 | x | main.rs:318:7:318:7 | x | +| main.rs:316:9:316:9 | x | main.rs:316:9:316:9 | x | main.rs:329:15:329:15 | x | +| main.rs:317:20:317:20 | x | main.rs:317:20:317:20 | x | main.rs:321:12:321:12 | x | +| main.rs:320:14:320:14 | x | main.rs:320:14:320:14 | x | main.rs:323:5:323:5 | x | +| main.rs:320:14:320:14 | x | main.rs:320:14:320:14 | x | main.rs:325:19:325:19 | x | +| main.rs:334:9:334:9 | x | main.rs:334:9:334:9 | x | main.rs:335:11:335:11 | x | +| main.rs:334:9:334:9 | x | main.rs:334:9:334:9 | x | main.rs:343:15:343:15 | x | +| main.rs:336:14:336:14 | x | main.rs:336:14:336:14 | x | main.rs:338:18:338:18 | x | +| main.rs:337:20:337:20 | x | main.rs:337:20:337:20 | x | main.rs:339:19:339:19 | x | +| main.rs:348:9:348:9 | x | main.rs:348:9:348:9 | x | main.rs:350:7:350:7 | x | +| main.rs:348:9:348:9 | x | main.rs:348:9:348:9 | x | main.rs:355:7:355:7 | x | +| main.rs:348:9:348:9 | x | main.rs:348:9:348:9 | x | main.rs:359:19:359:19 | x | +| main.rs:349:16:349:16 | x | main.rs:349:16:349:16 | x | main.rs:352:19:352:19 | x | +| main.rs:354:20:354:20 | x | main.rs:354:20:354:20 | x | main.rs:357:19:357:19 | x | +| main.rs:364:5:364:6 | a8 | main.rs:364:5:364:6 | a8 | main.rs:370:15:370:16 | a8 | +| main.rs:366:9:366:10 | b3 | main.rs:366:9:366:10 | b3 | main.rs:371:15:371:16 | b3 | +| main.rs:367:9:367:10 | c1 | main.rs:367:9:367:10 | c1 | main.rs:372:15:372:16 | c1 | +| main.rs:375:20:375:55 | SSA phi(a9) | main.rs:375:20:375:55 | a9 | main.rs:377:15:377:16 | a9 | +| main.rs:382:13:382:15 | a10 | main.rs:382:13:382:15 | a10 | main.rs:386:15:386:17 | a10 | +| main.rs:382:13:382:15 | a10 | main.rs:382:13:382:15 | a10 | main.rs:395:9:395:11 | a10 | +| main.rs:383:13:383:14 | b4 | main.rs:383:13:383:14 | b4 | main.rs:387:15:387:16 | b4 | +| main.rs:383:13:383:14 | b4 | main.rs:383:13:383:14 | b4 | main.rs:396:9:396:10 | b4 | +| main.rs:384:13:384:14 | c2 | main.rs:384:13:384:14 | c2 | main.rs:388:15:388:16 | c2 | +| main.rs:384:13:384:14 | c2 | main.rs:384:13:384:14 | c2 | main.rs:397:9:397:10 | c2 | +| main.rs:391:9:391:10 | c2 | main.rs:384:13:384:14 | c2 | main.rs:401:15:401:16 | c2 | +| main.rs:392:9:392:10 | b4 | main.rs:383:13:383:14 | b4 | main.rs:400:15:400:16 | b4 | +| main.rs:392:9:392:10 | b4 | main.rs:383:13:383:14 | b4 | main.rs:414:15:414:16 | b4 | +| main.rs:393:9:393:11 | a10 | main.rs:382:13:382:15 | a10 | main.rs:399:15:399:17 | a10 | +| main.rs:393:9:393:11 | a10 | main.rs:382:13:382:15 | a10 | main.rs:413:15:413:17 | a10 | +| main.rs:405:13:405:15 | a10 | main.rs:405:13:405:15 | a10 | main.rs:408:23:408:25 | a10 | +| main.rs:406:13:406:14 | b4 | main.rs:406:13:406:14 | b4 | main.rs:409:23:409:24 | b4 | +| main.rs:418:9:418:23 | example_closure | main.rs:418:9:418:23 | example_closure | main.rs:422:9:422:23 | example_closure | +| main.rs:419:10:419:10 | x | main.rs:419:10:419:10 | x | main.rs:420:9:420:9 | x | +| main.rs:421:9:421:10 | n1 | main.rs:421:9:421:10 | n1 | main.rs:423:15:423:16 | n1 | +| main.rs:426:9:426:26 | immutable_variable | main.rs:426:9:426:26 | immutable_variable | main.rs:430:9:430:26 | immutable_variable | +| main.rs:427:6:427:6 | x | main.rs:427:6:427:6 | x | main.rs:428:9:428:9 | x | +| main.rs:429:9:429:10 | n2 | main.rs:429:9:429:10 | n2 | main.rs:431:15:431:16 | n2 | +| main.rs:436:9:436:9 | f | main.rs:436:9:436:9 | f | main.rs:439:15:439:15 | f | +| main.rs:436:9:436:9 | f | main.rs:436:9:436:9 | f | main.rs:446:15:446:15 | f | +| main.rs:437:10:437:10 | x | main.rs:437:10:437:10 | x | main.rs:438:9:438:9 | x | +| main.rs:441:10:441:10 | x | main.rs:441:10:441:10 | x | main.rs:443:9:443:9 | x | +| main.rs:450:14:450:14 | x | main.rs:450:14:450:14 | x | main.rs:452:17:452:17 | x | +| main.rs:459:13:459:13 | f | main.rs:459:13:459:13 | f | main.rs:462:19:462:19 | f | +| main.rs:460:14:460:14 | x | main.rs:460:14:460:14 | x | main.rs:461:13:461:13 | x | +| main.rs:467:9:467:9 | v | main.rs:467:9:467:9 | v | main.rs:470:12:470:12 | v | +| main.rs:469:9:469:12 | text | main.rs:469:9:469:12 | text | main.rs:471:19:471:22 | text | +| main.rs:476:13:476:13 | a | main.rs:476:13:476:13 | a | main.rs:477:5:477:5 | a | +| main.rs:477:5:477:5 | a | main.rs:476:13:476:13 | a | main.rs:478:15:478:15 | a | +| main.rs:477:5:477:5 | a | main.rs:476:13:476:13 | a | main.rs:479:11:479:11 | a | +| main.rs:479:6:479:11 | &mut a | main.rs:476:13:476:13 | a | main.rs:480:15:480:15 | a | +| main.rs:484:13:484:13 | i | main.rs:484:13:484:13 | i | main.rs:486:14:486:14 | i | +| main.rs:485:9:485:13 | ref_i | main.rs:485:9:485:13 | ref_i | main.rs:487:6:487:10 | ref_i | +| main.rs:486:9:486:14 | &mut i | main.rs:484:13:484:13 | i | main.rs:488:15:488:15 | i | +| main.rs:491:17:491:17 | x | main.rs:491:17:491:17 | x | main.rs:492:6:492:6 | x | +| main.rs:491:17:491:17 | x | main.rs:491:17:491:17 | x | main.rs:493:10:493:10 | x | +| main.rs:491:17:491:17 | x | main.rs:491:17:491:17 | x | main.rs:494:10:494:10 | x | +| main.rs:491:17:491:17 | x | main.rs:491:17:491:17 | x | main.rs:495:12:495:12 | x | +| main.rs:498:22:498:22 | x | main.rs:498:22:498:22 | x | main.rs:499:6:499:6 | x | +| main.rs:498:22:498:22 | x | main.rs:498:22:498:22 | x | main.rs:500:10:500:10 | x | +| main.rs:498:22:498:22 | x | main.rs:498:22:498:22 | x | main.rs:501:10:501:10 | x | +| main.rs:498:22:498:22 | x | main.rs:498:22:498:22 | x | main.rs:503:9:503:9 | x | +| main.rs:498:38:498:38 | y | main.rs:498:38:498:38 | y | main.rs:502:6:502:6 | y | +| main.rs:507:13:507:13 | x | main.rs:507:13:507:13 | x | main.rs:509:27:509:27 | x | +| main.rs:508:9:508:9 | y | main.rs:508:9:508:9 | y | main.rs:510:6:510:6 | y | +| main.rs:509:22:509:27 | &mut x | main.rs:507:13:507:13 | x | main.rs:513:15:513:15 | x | +| main.rs:509:22:509:27 | &mut x | main.rs:507:13:507:13 | x | main.rs:517:19:517:19 | x | +| main.rs:515:13:515:13 | z | main.rs:515:13:515:13 | z | main.rs:519:14:519:14 | z | +| main.rs:516:9:516:9 | w | main.rs:516:9:516:9 | w | main.rs:520:9:520:9 | w | +| main.rs:516:9:516:9 | w | main.rs:516:9:516:9 | w | main.rs:522:7:522:7 | w | +| main.rs:519:9:519:14 | &mut z | main.rs:515:13:515:13 | z | main.rs:525:15:525:15 | z | +| main.rs:529:13:529:13 | x | main.rs:529:13:529:13 | x | main.rs:531:14:531:14 | x | +| main.rs:530:9:530:9 | y | main.rs:530:9:530:9 | y | main.rs:532:6:532:6 | y | +| main.rs:531:9:531:14 | &mut x | main.rs:529:13:529:13 | x | main.rs:533:15:533:15 | x | +| main.rs:537:9:537:9 | x | main.rs:537:9:537:9 | x | main.rs:544:15:544:15 | x | +| main.rs:540:9:540:11 | cap | main.rs:540:9:540:11 | cap | main.rs:543:5:543:7 | cap | +| main.rs:540:15:542:5 | x | main.rs:537:9:537:9 | x | main.rs:541:19:541:19 | x | +| main.rs:548:13:548:13 | x | main.rs:548:13:548:13 | x | main.rs:555:15:555:15 | x | +| main.rs:551:9:551:16 | closure1 | main.rs:551:9:551:16 | closure1 | main.rs:554:5:554:12 | closure1 | +| main.rs:551:20:553:5 | x | main.rs:548:13:548:13 | x | main.rs:552:19:552:19 | x | +| main.rs:560:13:560:20 | closure2 | main.rs:560:13:560:20 | closure2 | main.rs:563:5:563:12 | closure2 | +| main.rs:563:5:563:14 | y | main.rs:557:13:557:13 | y | main.rs:564:15:564:15 | y | +| main.rs:566:13:566:13 | z | main.rs:566:13:566:13 | z | main.rs:573:15:573:15 | z | +| main.rs:569:13:569:20 | closure3 | main.rs:569:13:569:20 | closure3 | main.rs:572:5:572:12 | closure3 | +| main.rs:569:24:571:5 | z | main.rs:566:13:566:13 | z | main.rs:570:9:570:9 | z | +| main.rs:578:9:578:13 | block | main.rs:578:9:578:13 | block | main.rs:582:5:582:9 | block | +| main.rs:582:5:582:15 | i | main.rs:577:13:577:13 | i | main.rs:583:15:583:15 | i | +| main.rs:586:8:586:8 | b | main.rs:586:8:586:8 | b | main.rs:591:16:591:16 | b | +| main.rs:587:13:587:13 | x | main.rs:587:13:587:13 | x | main.rs:588:15:588:15 | x | +| main.rs:587:13:587:13 | x | main.rs:587:13:587:13 | x | main.rs:589:15:589:15 | x | +| main.rs:591:13:600:5 | SSA phi(x) | main.rs:587:13:587:13 | x | main.rs:601:15:601:15 | x | +| main.rs:593:9:593:9 | x | main.rs:587:13:587:13 | x | main.rs:594:19:594:19 | x | +| main.rs:593:9:593:9 | x | main.rs:587:13:587:13 | x | main.rs:595:19:595:19 | x | +| main.rs:597:9:597:9 | x | main.rs:587:13:587:13 | x | main.rs:598:19:598:19 | x | +| main.rs:597:9:597:9 | x | main.rs:587:13:587:13 | x | main.rs:599:19:599:19 | x | +| main.rs:604:13:604:14 | b1 | main.rs:604:13:604:14 | b1 | main.rs:607:16:607:17 | b1 | +| main.rs:604:23:604:24 | b2 | main.rs:604:23:604:24 | b2 | main.rs:615:16:615:17 | b2 | +| main.rs:605:9:605:9 | x | main.rs:605:9:605:9 | x | main.rs:609:19:609:19 | x | +| main.rs:605:9:605:9 | x | main.rs:605:9:605:9 | x | main.rs:611:19:611:19 | x | +| main.rs:605:9:605:9 | x | main.rs:605:9:605:9 | x | main.rs:617:19:617:19 | x | +| main.rs:605:9:605:9 | x | main.rs:605:9:605:9 | x | main.rs:619:19:619:19 | x | +| main.rs:628:20:628:23 | self | main.rs:628:20:628:23 | self | main.rs:629:16:629:19 | self | +| main.rs:632:11:632:14 | self | main.rs:632:11:632:14 | self | main.rs:633:9:633:12 | self | +| main.rs:637:17:637:17 | f | main.rs:637:17:637:17 | f | main.rs:641:9:641:9 | f | +| main.rs:637:17:637:17 | f | main.rs:637:17:637:17 | f | main.rs:642:9:642:9 | f | +| main.rs:637:21:640:9 | self | main.rs:636:23:636:26 | self | main.rs:639:13:639:16 | self | +| main.rs:637:22:637:22 | n | main.rs:637:22:637:22 | n | main.rs:639:25:639:25 | n | +| main.rs:647:13:647:13 | a | main.rs:647:13:647:13 | a | main.rs:648:15:648:15 | a | +| main.rs:648:15:648:15 | a | main.rs:647:13:647:13 | a | main.rs:649:5:649:5 | a | +| main.rs:648:15:648:15 | a | main.rs:647:13:647:13 | a | main.rs:650:15:650:15 | a | +| main.rs:651:5:651:5 | a | main.rs:647:13:647:13 | a | main.rs:652:15:652:15 | a | +| main.rs:656:13:656:13 | a | main.rs:656:13:656:13 | a | main.rs:657:15:657:15 | a | +| main.rs:656:13:656:13 | a | main.rs:656:13:656:13 | a | main.rs:658:5:658:5 | a | +| main.rs:656:13:656:13 | a | main.rs:656:13:656:13 | a | main.rs:659:15:659:15 | a | +| main.rs:660:5:660:5 | a | main.rs:656:13:656:13 | a | main.rs:661:15:661:15 | a | +| main.rs:665:9:665:9 | x | main.rs:665:9:665:9 | x | main.rs:666:20:666:20 | x | +| main.rs:665:9:665:9 | x | main.rs:665:9:665:9 | x | main.rs:667:15:667:15 | x | +| main.rs:669:9:669:9 | z | main.rs:669:9:669:9 | z | main.rs:670:20:670:20 | z | +| main.rs:678:17:678:20 | self | main.rs:678:17:678:20 | self | main.rs:679:10:679:13 | self | +| main.rs:684:13:684:13 | a | main.rs:684:13:684:13 | a | main.rs:685:5:685:5 | a | +| main.rs:685:5:685:5 | a | main.rs:684:13:684:13 | a | main.rs:688:15:688:15 | a | +| main.rs:706:9:706:22 | var_from_macro | main.rs:706:9:706:22 | var_from_macro | main.rs:708:15:708:28 | var_from_macro | +| main.rs:707:9:707:21 | var_in_macro | main.rs:707:9:707:21 | var_in_macro | main.rs:707:9:707:21 | var_in_macro | +| main.rs:709:9:709:20 | var_in_macro | main.rs:709:9:709:20 | var_in_macro | main.rs:715:15:715:26 | var_in_macro | +| main.rs:714:15:714:28 | var_in_macro | main.rs:714:15:714:28 | var_in_macro | main.rs:714:30:714:41 | var_in_macro | +| main.rs:720:5:720:5 | x | main.rs:719:9:719:9 | x | main.rs:721:15:721:15 | x | +| main.rs:726:13:726:15 | cap | main.rs:726:13:726:15 | cap | main.rs:732:5:732:7 | cap | +| main.rs:726:20:726:20 | b | main.rs:726:20:726:20 | b | main.rs:728:20:728:20 | b | +| main.rs:732:5:732:13 | x | main.rs:725:13:725:13 | x | main.rs:733:15:733:15 | x | firstRead | main.rs:5:14:5:14 | s | main.rs:5:14:5:14 | s | main.rs:7:20:7:20 | s | | main.rs:10:14:10:14 | i | main.rs:10:14:10:14 | i | main.rs:12:20:12:20 | i | @@ -398,355 +401,358 @@ firstRead | main.rs:20:9:20:10 | x1 | main.rs:20:9:20:10 | x1 | main.rs:21:15:21:16 | x1 | | main.rs:25:13:25:14 | x2 | main.rs:25:13:25:14 | x2 | main.rs:26:15:26:16 | x2 | | main.rs:27:5:27:6 | x2 | main.rs:25:13:25:14 | x2 | main.rs:28:15:28:16 | x2 | -| main.rs:32:13:32:13 | x | main.rs:32:13:32:13 | x | main.rs:33:20:33:20 | x | -| main.rs:34:5:34:5 | x | main.rs:32:13:32:13 | x | main.rs:35:20:35:20 | x | -| main.rs:39:9:39:10 | x3 | main.rs:39:9:39:10 | x3 | main.rs:40:15:40:16 | x3 | -| main.rs:41:9:41:10 | x3 | main.rs:41:9:41:10 | x3 | main.rs:43:15:43:16 | x3 | -| main.rs:47:9:47:10 | x4 | main.rs:47:9:47:10 | x4 | main.rs:48:15:48:16 | x4 | -| main.rs:50:13:50:14 | x4 | main.rs:50:13:50:14 | x4 | main.rs:51:19:51:20 | x4 | -| main.rs:64:13:64:14 | a1 | main.rs:64:13:64:14 | a1 | main.rs:72:15:72:16 | a1 | -| main.rs:65:13:65:14 | b1 | main.rs:65:13:65:14 | b1 | main.rs:73:15:73:16 | b1 | -| main.rs:68:13:68:13 | x | main.rs:68:13:68:13 | x | main.rs:74:15:74:15 | x | -| main.rs:69:13:69:13 | y | main.rs:69:13:69:13 | y | main.rs:75:15:75:15 | y | -| main.rs:79:9:79:10 | p1 | main.rs:79:9:79:10 | p1 | main.rs:83:9:83:10 | p1 | -| main.rs:81:12:81:13 | a2 | main.rs:81:12:81:13 | a2 | main.rs:84:15:84:16 | a2 | -| main.rs:82:12:82:13 | b2 | main.rs:82:12:82:13 | b2 | main.rs:85:15:85:16 | b2 | -| main.rs:89:9:89:10 | s1 | main.rs:89:9:89:10 | s1 | main.rs:92:11:92:12 | s1 | -| main.rs:91:21:91:22 | s2 | main.rs:91:21:91:22 | s2 | main.rs:93:19:93:20 | s2 | -| main.rs:98:9:98:9 | x | main.rs:98:9:98:9 | x | main.rs:100:7:100:7 | x | -| main.rs:99:14:99:14 | x | main.rs:99:14:99:14 | x | main.rs:107:15:107:15 | x | -| main.rs:102:13:102:13 | x | main.rs:102:13:102:13 | x | main.rs:104:19:104:19 | x | -| main.rs:111:9:111:10 | s1 | main.rs:111:9:111:10 | s1 | main.rs:114:11:114:12 | s1 | -| main.rs:113:24:113:25 | s2 | main.rs:113:24:113:25 | s2 | main.rs:115:19:115:20 | s2 | -| main.rs:120:9:120:10 | x6 | main.rs:120:9:120:10 | x6 | main.rs:123:11:123:12 | x6 | -| main.rs:121:9:121:10 | y1 | main.rs:121:9:121:10 | y1 | main.rs:133:15:133:16 | y1 | -| main.rs:125:14:125:15 | y1 | main.rs:125:14:125:15 | y1 | main.rs:128:23:128:24 | y1 | -| main.rs:137:9:137:15 | numbers | main.rs:137:9:137:15 | numbers | main.rs:139:11:139:17 | numbers | -| main.rs:142:13:142:17 | first | main.rs:142:13:142:17 | first | main.rs:148:23:148:27 | first | -| main.rs:144:13:144:17 | third | main.rs:144:13:144:17 | third | main.rs:149:23:149:27 | third | -| main.rs:146:13:146:17 | fifth | main.rs:146:13:146:17 | fifth | main.rs:150:23:150:27 | fifth | -| main.rs:157:13:157:17 | first | main.rs:157:13:157:17 | first | main.rs:161:23:161:27 | first | -| main.rs:159:13:159:16 | last | main.rs:159:13:159:16 | last | main.rs:162:23:162:26 | last | -| main.rs:168:9:168:10 | p2 | main.rs:168:9:168:10 | p2 | main.rs:170:11:170:12 | p2 | -| main.rs:172:16:172:17 | x7 | main.rs:172:16:172:17 | x7 | main.rs:173:24:173:25 | x7 | -| main.rs:182:9:182:11 | msg | main.rs:182:9:182:11 | msg | main.rs:184:11:184:13 | msg | -| main.rs:187:17:187:27 | id_variable | main.rs:187:17:187:27 | id_variable | main.rs:188:24:188:34 | id_variable | -| main.rs:192:26:192:27 | id | main.rs:192:26:192:27 | id | main.rs:195:23:195:24 | id | -| main.rs:206:9:206:14 | either | main.rs:206:9:206:14 | either | main.rs:207:11:207:16 | either | -| main.rs:208:9:208:44 | SSA phi(a3) | main.rs:208:9:208:44 | a3 | main.rs:209:26:209:27 | a3 | -| main.rs:220:9:220:10 | tv | main.rs:220:9:220:10 | tv | main.rs:221:11:221:12 | tv | -| main.rs:222:9:222:81 | SSA phi(a4) | main.rs:222:9:222:81 | a4 | main.rs:223:26:223:27 | a4 | -| main.rs:226:9:226:83 | SSA phi(a5) | main.rs:226:9:226:83 | a5 | main.rs:227:26:227:27 | a5 | -| main.rs:230:9:230:83 | SSA phi(a6) | main.rs:230:9:230:83 | a6 | main.rs:231:26:231:27 | a6 | -| main.rs:236:9:236:14 | either | main.rs:236:9:236:14 | either | main.rs:237:11:237:16 | either | -| main.rs:238:9:238:44 | [match(true)] SSA phi(a7) | main.rs:238:9:238:44 | a7 | main.rs:239:16:239:17 | a7 | -| main.rs:246:9:246:14 | either | main.rs:246:9:246:14 | either | main.rs:248:11:248:16 | either | -| main.rs:249:13:249:13 | e | main.rs:249:13:249:13 | e | main.rs:254:15:254:15 | e | -| main.rs:250:14:250:51 | [match(true)] SSA phi(a11) | main.rs:250:14:250:51 | a11 | main.rs:252:23:252:25 | a11 | -| main.rs:253:33:253:35 | a12 | main.rs:253:33:253:35 | a12 | main.rs:255:28:255:30 | a12 | -| main.rs:270:9:270:10 | fv | main.rs:270:9:270:10 | fv | main.rs:271:11:271:12 | fv | -| main.rs:272:9:272:109 | SSA phi(a13) | main.rs:272:9:272:109 | a13 | main.rs:273:26:273:28 | a13 | -| main.rs:279:9:279:9 | x | main.rs:279:9:279:9 | x | main.rs:281:7:281:7 | x | -| main.rs:280:17:280:17 | x | main.rs:280:17:280:17 | x | main.rs:283:5:283:5 | x | -| main.rs:287:13:287:13 | x | main.rs:287:13:287:13 | x | main.rs:289:19:289:19 | x | -| main.rs:295:9:295:9 | x | main.rs:295:9:295:9 | x | main.rs:297:7:297:7 | x | -| main.rs:296:17:296:17 | x | main.rs:296:17:296:17 | x | main.rs:300:12:300:12 | x | -| main.rs:299:14:299:14 | x | main.rs:299:14:299:14 | x | main.rs:302:5:302:5 | x | -| main.rs:306:13:306:13 | x | main.rs:306:13:306:13 | x | main.rs:308:19:308:19 | x | -| main.rs:314:9:314:9 | x | main.rs:314:9:314:9 | x | main.rs:316:7:316:7 | x | -| main.rs:315:20:315:20 | x | main.rs:315:20:315:20 | x | main.rs:319:12:319:12 | x | -| main.rs:318:14:318:14 | x | main.rs:318:14:318:14 | x | main.rs:321:5:321:5 | x | -| main.rs:332:9:332:9 | x | main.rs:332:9:332:9 | x | main.rs:333:11:333:11 | x | -| main.rs:334:14:334:14 | x | main.rs:334:14:334:14 | x | main.rs:336:18:336:18 | x | -| main.rs:335:20:335:20 | x | main.rs:335:20:335:20 | x | main.rs:337:19:337:19 | x | -| main.rs:346:9:346:9 | x | main.rs:346:9:346:9 | x | main.rs:348:7:348:7 | x | -| main.rs:347:16:347:16 | x | main.rs:347:16:347:16 | x | main.rs:350:19:350:19 | x | -| main.rs:352:20:352:20 | x | main.rs:352:20:352:20 | x | main.rs:355:19:355:19 | x | -| main.rs:362:5:362:6 | a8 | main.rs:362:5:362:6 | a8 | main.rs:368:15:368:16 | a8 | -| main.rs:364:9:364:10 | b3 | main.rs:364:9:364:10 | b3 | main.rs:369:15:369:16 | b3 | -| main.rs:365:9:365:10 | c1 | main.rs:365:9:365:10 | c1 | main.rs:370:15:370:16 | c1 | -| main.rs:373:20:373:55 | SSA phi(a9) | main.rs:373:20:373:55 | a9 | main.rs:375:15:375:16 | a9 | -| main.rs:380:13:380:15 | a10 | main.rs:380:13:380:15 | a10 | main.rs:384:15:384:17 | a10 | -| main.rs:381:13:381:14 | b4 | main.rs:381:13:381:14 | b4 | main.rs:385:15:385:16 | b4 | -| main.rs:382:13:382:14 | c2 | main.rs:382:13:382:14 | c2 | main.rs:386:15:386:16 | c2 | -| main.rs:389:9:389:10 | c2 | main.rs:382:13:382:14 | c2 | main.rs:395:9:395:10 | c2 | -| main.rs:390:9:390:10 | b4 | main.rs:381:13:381:14 | b4 | main.rs:394:9:394:10 | b4 | -| main.rs:391:9:391:11 | a10 | main.rs:380:13:380:15 | a10 | main.rs:393:9:393:11 | a10 | -| main.rs:403:13:403:15 | a10 | main.rs:403:13:403:15 | a10 | main.rs:406:23:406:25 | a10 | -| main.rs:404:13:404:14 | b4 | main.rs:404:13:404:14 | b4 | main.rs:407:23:407:24 | b4 | -| main.rs:416:9:416:23 | example_closure | main.rs:416:9:416:23 | example_closure | main.rs:420:9:420:23 | example_closure | -| main.rs:417:10:417:10 | x | main.rs:417:10:417:10 | x | main.rs:418:9:418:9 | x | -| main.rs:419:9:419:10 | n1 | main.rs:419:9:419:10 | n1 | main.rs:421:15:421:16 | n1 | -| main.rs:424:9:424:26 | immutable_variable | main.rs:424:9:424:26 | immutable_variable | main.rs:428:9:428:26 | immutable_variable | -| main.rs:425:6:425:6 | x | main.rs:425:6:425:6 | x | main.rs:426:9:426:9 | x | -| main.rs:427:9:427:10 | n2 | main.rs:427:9:427:10 | n2 | main.rs:429:15:429:16 | n2 | -| main.rs:434:9:434:9 | f | main.rs:434:9:434:9 | f | main.rs:437:15:437:15 | f | -| main.rs:435:10:435:10 | x | main.rs:435:10:435:10 | x | main.rs:436:9:436:9 | x | -| main.rs:439:10:439:10 | x | main.rs:439:10:439:10 | x | main.rs:441:9:441:9 | x | -| main.rs:448:14:448:14 | x | main.rs:448:14:448:14 | x | main.rs:450:17:450:17 | x | -| main.rs:457:13:457:13 | f | main.rs:457:13:457:13 | f | main.rs:460:19:460:19 | f | -| main.rs:458:14:458:14 | x | main.rs:458:14:458:14 | x | main.rs:459:13:459:13 | x | -| main.rs:465:9:465:9 | v | main.rs:465:9:465:9 | v | main.rs:468:12:468:12 | v | -| main.rs:467:9:467:12 | text | main.rs:467:9:467:12 | text | main.rs:469:19:469:22 | text | -| main.rs:474:13:474:13 | a | main.rs:474:13:474:13 | a | main.rs:475:5:475:5 | a | -| main.rs:475:5:475:5 | a | main.rs:474:13:474:13 | a | main.rs:476:15:476:15 | a | -| main.rs:477:6:477:11 | &mut a | main.rs:474:13:474:13 | a | main.rs:478:15:478:15 | a | -| main.rs:482:13:482:13 | i | main.rs:482:13:482:13 | i | main.rs:484:14:484:14 | i | -| main.rs:483:9:483:13 | ref_i | main.rs:483:9:483:13 | ref_i | main.rs:485:6:485:10 | ref_i | -| main.rs:484:9:484:14 | &mut i | main.rs:482:13:482:13 | i | main.rs:486:15:486:15 | i | -| main.rs:489:17:489:17 | x | main.rs:489:17:489:17 | x | main.rs:490:6:490:6 | x | -| main.rs:496:22:496:22 | x | main.rs:496:22:496:22 | x | main.rs:497:6:497:6 | x | -| main.rs:496:38:496:38 | y | main.rs:496:38:496:38 | y | main.rs:500:6:500:6 | y | -| main.rs:505:13:505:13 | x | main.rs:505:13:505:13 | x | main.rs:507:27:507:27 | x | -| main.rs:506:9:506:9 | y | main.rs:506:9:506:9 | y | main.rs:508:6:508:6 | y | -| main.rs:507:22:507:27 | &mut x | main.rs:505:13:505:13 | x | main.rs:511:15:511:15 | x | -| main.rs:513:13:513:13 | z | main.rs:513:13:513:13 | z | main.rs:517:14:517:14 | z | -| main.rs:514:9:514:9 | w | main.rs:514:9:514:9 | w | main.rs:518:9:518:9 | w | -| main.rs:517:9:517:14 | &mut z | main.rs:513:13:513:13 | z | main.rs:523:15:523:15 | z | -| main.rs:527:13:527:13 | x | main.rs:527:13:527:13 | x | main.rs:529:14:529:14 | x | -| main.rs:528:9:528:9 | y | main.rs:528:9:528:9 | y | main.rs:530:6:530:6 | y | -| main.rs:529:9:529:14 | &mut x | main.rs:527:13:527:13 | x | main.rs:531:15:531:15 | x | -| main.rs:535:9:535:9 | x | main.rs:535:9:535:9 | x | main.rs:542:15:542:15 | x | -| main.rs:538:9:538:11 | cap | main.rs:538:9:538:11 | cap | main.rs:541:5:541:7 | cap | -| main.rs:538:15:540:5 | x | main.rs:535:9:535:9 | x | main.rs:539:19:539:19 | x | -| main.rs:546:13:546:13 | x | main.rs:546:13:546:13 | x | main.rs:553:15:553:15 | x | -| main.rs:549:9:549:16 | closure1 | main.rs:549:9:549:16 | closure1 | main.rs:552:5:552:12 | closure1 | -| main.rs:549:20:551:5 | x | main.rs:546:13:546:13 | x | main.rs:550:19:550:19 | x | -| main.rs:558:13:558:20 | closure2 | main.rs:558:13:558:20 | closure2 | main.rs:561:5:561:12 | closure2 | -| main.rs:561:5:561:14 | y | main.rs:555:13:555:13 | y | main.rs:562:15:562:15 | y | -| main.rs:564:13:564:13 | z | main.rs:564:13:564:13 | z | main.rs:571:15:571:15 | z | -| main.rs:567:13:567:20 | closure3 | main.rs:567:13:567:20 | closure3 | main.rs:570:5:570:12 | closure3 | -| main.rs:567:24:569:5 | z | main.rs:564:13:564:13 | z | main.rs:568:9:568:9 | z | -| main.rs:576:9:576:13 | block | main.rs:576:9:576:13 | block | main.rs:580:5:580:9 | block | -| main.rs:580:5:580:15 | i | main.rs:575:13:575:13 | i | main.rs:581:15:581:15 | i | -| main.rs:584:8:584:8 | b | main.rs:584:8:584:8 | b | main.rs:589:16:589:16 | b | -| main.rs:585:13:585:13 | x | main.rs:585:13:585:13 | x | main.rs:586:15:586:15 | x | -| main.rs:589:13:598:5 | SSA phi(x) | main.rs:585:13:585:13 | x | main.rs:599:15:599:15 | x | -| main.rs:591:9:591:9 | x | main.rs:585:13:585:13 | x | main.rs:592:19:592:19 | x | -| main.rs:595:9:595:9 | x | main.rs:585:13:585:13 | x | main.rs:596:19:596:19 | x | -| main.rs:602:13:602:14 | b1 | main.rs:602:13:602:14 | b1 | main.rs:605:16:605:17 | b1 | -| main.rs:602:23:602:24 | b2 | main.rs:602:23:602:24 | b2 | main.rs:613:16:613:17 | b2 | -| main.rs:603:9:603:9 | x | main.rs:603:9:603:9 | x | main.rs:607:19:607:19 | x | -| main.rs:603:9:603:9 | x | main.rs:603:9:603:9 | x | main.rs:609:19:609:19 | x | -| main.rs:626:20:626:23 | self | main.rs:626:20:626:23 | self | main.rs:627:16:627:19 | self | -| main.rs:630:11:630:14 | self | main.rs:630:11:630:14 | self | main.rs:631:9:631:12 | self | -| main.rs:635:17:635:17 | f | main.rs:635:17:635:17 | f | main.rs:639:9:639:9 | f | -| main.rs:635:21:638:9 | self | main.rs:634:23:634:26 | self | main.rs:637:13:637:16 | self | -| main.rs:635:22:635:22 | n | main.rs:635:22:635:22 | n | main.rs:637:25:637:25 | n | -| main.rs:645:13:645:13 | a | main.rs:645:13:645:13 | a | main.rs:646:15:646:15 | a | -| main.rs:646:15:646:15 | a | main.rs:645:13:645:13 | a | main.rs:647:5:647:5 | a | -| main.rs:649:5:649:5 | a | main.rs:645:13:645:13 | a | main.rs:650:15:650:15 | a | -| main.rs:654:13:654:13 | a | main.rs:654:13:654:13 | a | main.rs:655:15:655:15 | a | -| main.rs:658:5:658:5 | a | main.rs:654:13:654:13 | a | main.rs:659:15:659:15 | a | -| main.rs:663:9:663:9 | x | main.rs:663:9:663:9 | x | main.rs:664:20:664:20 | x | -| main.rs:667:9:667:9 | z | main.rs:667:9:667:9 | z | main.rs:668:20:668:20 | z | -| main.rs:676:17:676:20 | self | main.rs:676:17:676:20 | self | main.rs:677:10:677:13 | self | -| main.rs:682:13:682:13 | a | main.rs:682:13:682:13 | a | main.rs:683:5:683:5 | a | -| main.rs:683:5:683:5 | a | main.rs:682:13:682:13 | a | main.rs:686:15:686:15 | a | -| main.rs:704:9:704:22 | var_from_macro | main.rs:704:9:704:22 | var_from_macro | main.rs:706:15:706:28 | var_from_macro | -| main.rs:705:9:705:21 | var_in_macro | main.rs:705:9:705:21 | var_in_macro | main.rs:705:9:705:21 | var_in_macro | -| main.rs:707:9:707:20 | var_in_macro | main.rs:707:9:707:20 | var_in_macro | main.rs:713:15:713:26 | var_in_macro | -| main.rs:712:15:712:28 | var_in_macro | main.rs:712:15:712:28 | var_in_macro | main.rs:712:30:712:41 | var_in_macro | -| main.rs:718:5:718:5 | x | main.rs:717:9:717:9 | x | main.rs:719:15:719:15 | x | -| main.rs:724:13:724:15 | cap | main.rs:724:13:724:15 | cap | main.rs:730:5:730:7 | cap | -| main.rs:724:20:724:20 | b | main.rs:724:20:724:20 | b | main.rs:726:20:726:20 | b | -| main.rs:730:5:730:13 | x | main.rs:723:13:723:13 | x | main.rs:731:15:731:15 | x | +| main.rs:29:5:29:6 | x2 | main.rs:25:13:25:14 | x2 | main.rs:30:15:30:16 | x2 | +| main.rs:34:13:34:13 | x | main.rs:34:13:34:13 | x | main.rs:35:20:35:20 | x | +| main.rs:36:5:36:5 | x | main.rs:34:13:34:13 | x | main.rs:37:20:37:20 | x | +| main.rs:41:9:41:10 | x3 | main.rs:41:9:41:10 | x3 | main.rs:42:15:42:16 | x3 | +| main.rs:43:9:43:10 | x3 | main.rs:43:9:43:10 | x3 | main.rs:45:15:45:16 | x3 | +| main.rs:49:9:49:10 | x4 | main.rs:49:9:49:10 | x4 | main.rs:50:15:50:16 | x4 | +| main.rs:52:13:52:14 | x4 | main.rs:52:13:52:14 | x4 | main.rs:53:19:53:20 | x4 | +| main.rs:66:13:66:14 | a1 | main.rs:66:13:66:14 | a1 | main.rs:74:15:74:16 | a1 | +| main.rs:67:13:67:14 | b1 | main.rs:67:13:67:14 | b1 | main.rs:75:15:75:16 | b1 | +| main.rs:70:13:70:13 | x | main.rs:70:13:70:13 | x | main.rs:76:15:76:15 | x | +| main.rs:71:13:71:13 | y | main.rs:71:13:71:13 | y | main.rs:77:15:77:15 | y | +| main.rs:81:9:81:10 | p1 | main.rs:81:9:81:10 | p1 | main.rs:85:9:85:10 | p1 | +| main.rs:83:12:83:13 | a2 | main.rs:83:12:83:13 | a2 | main.rs:86:15:86:16 | a2 | +| main.rs:84:12:84:13 | b2 | main.rs:84:12:84:13 | b2 | main.rs:87:15:87:16 | b2 | +| main.rs:91:9:91:10 | s1 | main.rs:91:9:91:10 | s1 | main.rs:94:11:94:12 | s1 | +| main.rs:93:21:93:22 | s2 | main.rs:93:21:93:22 | s2 | main.rs:95:19:95:20 | s2 | +| main.rs:100:9:100:9 | x | main.rs:100:9:100:9 | x | main.rs:102:7:102:7 | x | +| main.rs:101:14:101:14 | x | main.rs:101:14:101:14 | x | main.rs:109:15:109:15 | x | +| main.rs:104:13:104:13 | x | main.rs:104:13:104:13 | x | main.rs:106:19:106:19 | x | +| main.rs:113:9:113:10 | s1 | main.rs:113:9:113:10 | s1 | main.rs:116:11:116:12 | s1 | +| main.rs:115:24:115:25 | s2 | main.rs:115:24:115:25 | s2 | main.rs:117:19:117:20 | s2 | +| main.rs:122:9:122:10 | x6 | main.rs:122:9:122:10 | x6 | main.rs:125:11:125:12 | x6 | +| main.rs:123:9:123:10 | y1 | main.rs:123:9:123:10 | y1 | main.rs:135:15:135:16 | y1 | +| main.rs:127:14:127:15 | y1 | main.rs:127:14:127:15 | y1 | main.rs:130:23:130:24 | y1 | +| main.rs:139:9:139:15 | numbers | main.rs:139:9:139:15 | numbers | main.rs:141:11:141:17 | numbers | +| main.rs:144:13:144:17 | first | main.rs:144:13:144:17 | first | main.rs:150:23:150:27 | first | +| main.rs:146:13:146:17 | third | main.rs:146:13:146:17 | third | main.rs:151:23:151:27 | third | +| main.rs:148:13:148:17 | fifth | main.rs:148:13:148:17 | fifth | main.rs:152:23:152:27 | fifth | +| main.rs:159:13:159:17 | first | main.rs:159:13:159:17 | first | main.rs:163:23:163:27 | first | +| main.rs:161:13:161:16 | last | main.rs:161:13:161:16 | last | main.rs:164:23:164:26 | last | +| main.rs:170:9:170:10 | p2 | main.rs:170:9:170:10 | p2 | main.rs:172:11:172:12 | p2 | +| main.rs:174:16:174:17 | x7 | main.rs:174:16:174:17 | x7 | main.rs:175:24:175:25 | x7 | +| main.rs:184:9:184:11 | msg | main.rs:184:9:184:11 | msg | main.rs:186:11:186:13 | msg | +| main.rs:189:17:189:27 | id_variable | main.rs:189:17:189:27 | id_variable | main.rs:190:24:190:34 | id_variable | +| main.rs:194:26:194:27 | id | main.rs:194:26:194:27 | id | main.rs:197:23:197:24 | id | +| main.rs:208:9:208:14 | either | main.rs:208:9:208:14 | either | main.rs:209:11:209:16 | either | +| main.rs:210:9:210:44 | SSA phi(a3) | main.rs:210:9:210:44 | a3 | main.rs:211:26:211:27 | a3 | +| main.rs:222:9:222:10 | tv | main.rs:222:9:222:10 | tv | main.rs:223:11:223:12 | tv | +| main.rs:224:9:224:81 | SSA phi(a4) | main.rs:224:9:224:81 | a4 | main.rs:225:26:225:27 | a4 | +| main.rs:228:9:228:83 | SSA phi(a5) | main.rs:228:9:228:83 | a5 | main.rs:229:26:229:27 | a5 | +| main.rs:232:9:232:83 | SSA phi(a6) | main.rs:232:9:232:83 | a6 | main.rs:233:26:233:27 | a6 | +| main.rs:238:9:238:14 | either | main.rs:238:9:238:14 | either | main.rs:239:11:239:16 | either | +| main.rs:240:9:240:44 | [match(true)] SSA phi(a7) | main.rs:240:9:240:44 | a7 | main.rs:241:16:241:17 | a7 | +| main.rs:248:9:248:14 | either | main.rs:248:9:248:14 | either | main.rs:250:11:250:16 | either | +| main.rs:251:13:251:13 | e | main.rs:251:13:251:13 | e | main.rs:256:15:256:15 | e | +| main.rs:252:14:252:51 | [match(true)] SSA phi(a11) | main.rs:252:14:252:51 | a11 | main.rs:254:23:254:25 | a11 | +| main.rs:255:33:255:35 | a12 | main.rs:255:33:255:35 | a12 | main.rs:257:28:257:30 | a12 | +| main.rs:272:9:272:10 | fv | main.rs:272:9:272:10 | fv | main.rs:273:11:273:12 | fv | +| main.rs:274:9:274:109 | SSA phi(a13) | main.rs:274:9:274:109 | a13 | main.rs:275:26:275:28 | a13 | +| main.rs:281:9:281:9 | x | main.rs:281:9:281:9 | x | main.rs:283:7:283:7 | x | +| main.rs:282:17:282:17 | x | main.rs:282:17:282:17 | x | main.rs:285:5:285:5 | x | +| main.rs:289:13:289:13 | x | main.rs:289:13:289:13 | x | main.rs:291:19:291:19 | x | +| main.rs:297:9:297:9 | x | main.rs:297:9:297:9 | x | main.rs:299:7:299:7 | x | +| main.rs:298:17:298:17 | x | main.rs:298:17:298:17 | x | main.rs:302:12:302:12 | x | +| main.rs:301:14:301:14 | x | main.rs:301:14:301:14 | x | main.rs:304:5:304:5 | x | +| main.rs:308:13:308:13 | x | main.rs:308:13:308:13 | x | main.rs:310:19:310:19 | x | +| main.rs:316:9:316:9 | x | main.rs:316:9:316:9 | x | main.rs:318:7:318:7 | x | +| main.rs:317:20:317:20 | x | main.rs:317:20:317:20 | x | main.rs:321:12:321:12 | x | +| main.rs:320:14:320:14 | x | main.rs:320:14:320:14 | x | main.rs:323:5:323:5 | x | +| main.rs:334:9:334:9 | x | main.rs:334:9:334:9 | x | main.rs:335:11:335:11 | x | +| main.rs:336:14:336:14 | x | main.rs:336:14:336:14 | x | main.rs:338:18:338:18 | x | +| main.rs:337:20:337:20 | x | main.rs:337:20:337:20 | x | main.rs:339:19:339:19 | x | +| main.rs:348:9:348:9 | x | main.rs:348:9:348:9 | x | main.rs:350:7:350:7 | x | +| main.rs:349:16:349:16 | x | main.rs:349:16:349:16 | x | main.rs:352:19:352:19 | x | +| main.rs:354:20:354:20 | x | main.rs:354:20:354:20 | x | main.rs:357:19:357:19 | x | +| main.rs:364:5:364:6 | a8 | main.rs:364:5:364:6 | a8 | main.rs:370:15:370:16 | a8 | +| main.rs:366:9:366:10 | b3 | main.rs:366:9:366:10 | b3 | main.rs:371:15:371:16 | b3 | +| main.rs:367:9:367:10 | c1 | main.rs:367:9:367:10 | c1 | main.rs:372:15:372:16 | c1 | +| main.rs:375:20:375:55 | SSA phi(a9) | main.rs:375:20:375:55 | a9 | main.rs:377:15:377:16 | a9 | +| main.rs:382:13:382:15 | a10 | main.rs:382:13:382:15 | a10 | main.rs:386:15:386:17 | a10 | +| main.rs:383:13:383:14 | b4 | main.rs:383:13:383:14 | b4 | main.rs:387:15:387:16 | b4 | +| main.rs:384:13:384:14 | c2 | main.rs:384:13:384:14 | c2 | main.rs:388:15:388:16 | c2 | +| main.rs:391:9:391:10 | c2 | main.rs:384:13:384:14 | c2 | main.rs:401:15:401:16 | c2 | +| main.rs:392:9:392:10 | b4 | main.rs:383:13:383:14 | b4 | main.rs:400:15:400:16 | b4 | +| main.rs:393:9:393:11 | a10 | main.rs:382:13:382:15 | a10 | main.rs:399:15:399:17 | a10 | +| main.rs:405:13:405:15 | a10 | main.rs:405:13:405:15 | a10 | main.rs:408:23:408:25 | a10 | +| main.rs:406:13:406:14 | b4 | main.rs:406:13:406:14 | b4 | main.rs:409:23:409:24 | b4 | +| main.rs:418:9:418:23 | example_closure | main.rs:418:9:418:23 | example_closure | main.rs:422:9:422:23 | example_closure | +| main.rs:419:10:419:10 | x | main.rs:419:10:419:10 | x | main.rs:420:9:420:9 | x | +| main.rs:421:9:421:10 | n1 | main.rs:421:9:421:10 | n1 | main.rs:423:15:423:16 | n1 | +| main.rs:426:9:426:26 | immutable_variable | main.rs:426:9:426:26 | immutable_variable | main.rs:430:9:430:26 | immutable_variable | +| main.rs:427:6:427:6 | x | main.rs:427:6:427:6 | x | main.rs:428:9:428:9 | x | +| main.rs:429:9:429:10 | n2 | main.rs:429:9:429:10 | n2 | main.rs:431:15:431:16 | n2 | +| main.rs:436:9:436:9 | f | main.rs:436:9:436:9 | f | main.rs:439:15:439:15 | f | +| main.rs:437:10:437:10 | x | main.rs:437:10:437:10 | x | main.rs:438:9:438:9 | x | +| main.rs:441:10:441:10 | x | main.rs:441:10:441:10 | x | main.rs:443:9:443:9 | x | +| main.rs:450:14:450:14 | x | main.rs:450:14:450:14 | x | main.rs:452:17:452:17 | x | +| main.rs:459:13:459:13 | f | main.rs:459:13:459:13 | f | main.rs:462:19:462:19 | f | +| main.rs:460:14:460:14 | x | main.rs:460:14:460:14 | x | main.rs:461:13:461:13 | x | +| main.rs:467:9:467:9 | v | main.rs:467:9:467:9 | v | main.rs:470:12:470:12 | v | +| main.rs:469:9:469:12 | text | main.rs:469:9:469:12 | text | main.rs:471:19:471:22 | text | +| main.rs:476:13:476:13 | a | main.rs:476:13:476:13 | a | main.rs:477:5:477:5 | a | +| main.rs:477:5:477:5 | a | main.rs:476:13:476:13 | a | main.rs:478:15:478:15 | a | +| main.rs:479:6:479:11 | &mut a | main.rs:476:13:476:13 | a | main.rs:480:15:480:15 | a | +| main.rs:484:13:484:13 | i | main.rs:484:13:484:13 | i | main.rs:486:14:486:14 | i | +| main.rs:485:9:485:13 | ref_i | main.rs:485:9:485:13 | ref_i | main.rs:487:6:487:10 | ref_i | +| main.rs:486:9:486:14 | &mut i | main.rs:484:13:484:13 | i | main.rs:488:15:488:15 | i | +| main.rs:491:17:491:17 | x | main.rs:491:17:491:17 | x | main.rs:492:6:492:6 | x | +| main.rs:498:22:498:22 | x | main.rs:498:22:498:22 | x | main.rs:499:6:499:6 | x | +| main.rs:498:38:498:38 | y | main.rs:498:38:498:38 | y | main.rs:502:6:502:6 | y | +| main.rs:507:13:507:13 | x | main.rs:507:13:507:13 | x | main.rs:509:27:509:27 | x | +| main.rs:508:9:508:9 | y | main.rs:508:9:508:9 | y | main.rs:510:6:510:6 | y | +| main.rs:509:22:509:27 | &mut x | main.rs:507:13:507:13 | x | main.rs:513:15:513:15 | x | +| main.rs:515:13:515:13 | z | main.rs:515:13:515:13 | z | main.rs:519:14:519:14 | z | +| main.rs:516:9:516:9 | w | main.rs:516:9:516:9 | w | main.rs:520:9:520:9 | w | +| main.rs:519:9:519:14 | &mut z | main.rs:515:13:515:13 | z | main.rs:525:15:525:15 | z | +| main.rs:529:13:529:13 | x | main.rs:529:13:529:13 | x | main.rs:531:14:531:14 | x | +| main.rs:530:9:530:9 | y | main.rs:530:9:530:9 | y | main.rs:532:6:532:6 | y | +| main.rs:531:9:531:14 | &mut x | main.rs:529:13:529:13 | x | main.rs:533:15:533:15 | x | +| main.rs:537:9:537:9 | x | main.rs:537:9:537:9 | x | main.rs:544:15:544:15 | x | +| main.rs:540:9:540:11 | cap | main.rs:540:9:540:11 | cap | main.rs:543:5:543:7 | cap | +| main.rs:540:15:542:5 | x | main.rs:537:9:537:9 | x | main.rs:541:19:541:19 | x | +| main.rs:548:13:548:13 | x | main.rs:548:13:548:13 | x | main.rs:555:15:555:15 | x | +| main.rs:551:9:551:16 | closure1 | main.rs:551:9:551:16 | closure1 | main.rs:554:5:554:12 | closure1 | +| main.rs:551:20:553:5 | x | main.rs:548:13:548:13 | x | main.rs:552:19:552:19 | x | +| main.rs:560:13:560:20 | closure2 | main.rs:560:13:560:20 | closure2 | main.rs:563:5:563:12 | closure2 | +| main.rs:563:5:563:14 | y | main.rs:557:13:557:13 | y | main.rs:564:15:564:15 | y | +| main.rs:566:13:566:13 | z | main.rs:566:13:566:13 | z | main.rs:573:15:573:15 | z | +| main.rs:569:13:569:20 | closure3 | main.rs:569:13:569:20 | closure3 | main.rs:572:5:572:12 | closure3 | +| main.rs:569:24:571:5 | z | main.rs:566:13:566:13 | z | main.rs:570:9:570:9 | z | +| main.rs:578:9:578:13 | block | main.rs:578:9:578:13 | block | main.rs:582:5:582:9 | block | +| main.rs:582:5:582:15 | i | main.rs:577:13:577:13 | i | main.rs:583:15:583:15 | i | +| main.rs:586:8:586:8 | b | main.rs:586:8:586:8 | b | main.rs:591:16:591:16 | b | +| main.rs:587:13:587:13 | x | main.rs:587:13:587:13 | x | main.rs:588:15:588:15 | x | +| main.rs:591:13:600:5 | SSA phi(x) | main.rs:587:13:587:13 | x | main.rs:601:15:601:15 | x | +| main.rs:593:9:593:9 | x | main.rs:587:13:587:13 | x | main.rs:594:19:594:19 | x | +| main.rs:597:9:597:9 | x | main.rs:587:13:587:13 | x | main.rs:598:19:598:19 | x | +| main.rs:604:13:604:14 | b1 | main.rs:604:13:604:14 | b1 | main.rs:607:16:607:17 | b1 | +| main.rs:604:23:604:24 | b2 | main.rs:604:23:604:24 | b2 | main.rs:615:16:615:17 | b2 | +| main.rs:605:9:605:9 | x | main.rs:605:9:605:9 | x | main.rs:609:19:609:19 | x | +| main.rs:605:9:605:9 | x | main.rs:605:9:605:9 | x | main.rs:611:19:611:19 | x | +| main.rs:628:20:628:23 | self | main.rs:628:20:628:23 | self | main.rs:629:16:629:19 | self | +| main.rs:632:11:632:14 | self | main.rs:632:11:632:14 | self | main.rs:633:9:633:12 | self | +| main.rs:637:17:637:17 | f | main.rs:637:17:637:17 | f | main.rs:641:9:641:9 | f | +| main.rs:637:21:640:9 | self | main.rs:636:23:636:26 | self | main.rs:639:13:639:16 | self | +| main.rs:637:22:637:22 | n | main.rs:637:22:637:22 | n | main.rs:639:25:639:25 | n | +| main.rs:647:13:647:13 | a | main.rs:647:13:647:13 | a | main.rs:648:15:648:15 | a | +| main.rs:648:15:648:15 | a | main.rs:647:13:647:13 | a | main.rs:649:5:649:5 | a | +| main.rs:651:5:651:5 | a | main.rs:647:13:647:13 | a | main.rs:652:15:652:15 | a | +| main.rs:656:13:656:13 | a | main.rs:656:13:656:13 | a | main.rs:657:15:657:15 | a | +| main.rs:660:5:660:5 | a | main.rs:656:13:656:13 | a | main.rs:661:15:661:15 | a | +| main.rs:665:9:665:9 | x | main.rs:665:9:665:9 | x | main.rs:666:20:666:20 | x | +| main.rs:669:9:669:9 | z | main.rs:669:9:669:9 | z | main.rs:670:20:670:20 | z | +| main.rs:678:17:678:20 | self | main.rs:678:17:678:20 | self | main.rs:679:10:679:13 | self | +| main.rs:684:13:684:13 | a | main.rs:684:13:684:13 | a | main.rs:685:5:685:5 | a | +| main.rs:685:5:685:5 | a | main.rs:684:13:684:13 | a | main.rs:688:15:688:15 | a | +| main.rs:706:9:706:22 | var_from_macro | main.rs:706:9:706:22 | var_from_macro | main.rs:708:15:708:28 | var_from_macro | +| main.rs:707:9:707:21 | var_in_macro | main.rs:707:9:707:21 | var_in_macro | main.rs:707:9:707:21 | var_in_macro | +| main.rs:709:9:709:20 | var_in_macro | main.rs:709:9:709:20 | var_in_macro | main.rs:715:15:715:26 | var_in_macro | +| main.rs:714:15:714:28 | var_in_macro | main.rs:714:15:714:28 | var_in_macro | main.rs:714:30:714:41 | var_in_macro | +| main.rs:720:5:720:5 | x | main.rs:719:9:719:9 | x | main.rs:721:15:721:15 | x | +| main.rs:726:13:726:15 | cap | main.rs:726:13:726:15 | cap | main.rs:732:5:732:7 | cap | +| main.rs:726:20:726:20 | b | main.rs:726:20:726:20 | b | main.rs:728:20:728:20 | b | +| main.rs:732:5:732:13 | x | main.rs:725:13:725:13 | x | main.rs:733:15:733:15 | x | adjacentReads -| main.rs:39:9:39:10 | x3 | main.rs:39:9:39:10 | x3 | main.rs:40:15:40:16 | x3 | main.rs:42:9:42:10 | x3 | -| main.rs:47:9:47:10 | x4 | main.rs:47:9:47:10 | x4 | main.rs:48:15:48:16 | x4 | main.rs:53:15:53:16 | x4 | -| main.rs:98:9:98:9 | x | main.rs:98:9:98:9 | x | main.rs:100:7:100:7 | x | main.rs:103:13:103:13 | x | -| main.rs:111:9:111:10 | s1 | main.rs:111:9:111:10 | s1 | main.rs:114:11:114:12 | s1 | main.rs:114:11:114:12 | s1 | -| main.rs:137:9:137:15 | numbers | main.rs:137:9:137:15 | numbers | main.rs:139:11:139:17 | numbers | main.rs:154:11:154:17 | numbers | -| main.rs:220:9:220:10 | tv | main.rs:220:9:220:10 | tv | main.rs:221:11:221:12 | tv | main.rs:225:11:225:12 | tv | -| main.rs:220:9:220:10 | tv | main.rs:220:9:220:10 | tv | main.rs:225:11:225:12 | tv | main.rs:229:11:229:12 | tv | -| main.rs:238:9:238:44 | [match(true)] SSA phi(a7) | main.rs:238:9:238:44 | a7 | main.rs:239:16:239:17 | a7 | main.rs:240:26:240:27 | a7 | -| main.rs:279:9:279:9 | x | main.rs:279:9:279:9 | x | main.rs:281:7:281:7 | x | main.rs:288:13:288:13 | x | -| main.rs:280:17:280:17 | x | main.rs:280:17:280:17 | x | main.rs:283:5:283:5 | x | main.rs:285:19:285:19 | x | -| main.rs:295:9:295:9 | x | main.rs:295:9:295:9 | x | main.rs:297:7:297:7 | x | main.rs:307:13:307:13 | x | -| main.rs:299:14:299:14 | x | main.rs:299:14:299:14 | x | main.rs:302:5:302:5 | x | main.rs:304:19:304:19 | x | -| main.rs:314:9:314:9 | x | main.rs:314:9:314:9 | x | main.rs:316:7:316:7 | x | main.rs:327:15:327:15 | x | -| main.rs:318:14:318:14 | x | main.rs:318:14:318:14 | x | main.rs:321:5:321:5 | x | main.rs:323:19:323:19 | x | -| main.rs:332:9:332:9 | x | main.rs:332:9:332:9 | x | main.rs:333:11:333:11 | x | main.rs:341:15:341:15 | x | -| main.rs:346:9:346:9 | x | main.rs:346:9:346:9 | x | main.rs:348:7:348:7 | x | main.rs:353:7:353:7 | x | -| main.rs:346:9:346:9 | x | main.rs:346:9:346:9 | x | main.rs:353:7:353:7 | x | main.rs:357:19:357:19 | x | -| main.rs:389:9:389:10 | c2 | main.rs:382:13:382:14 | c2 | main.rs:395:9:395:10 | c2 | main.rs:399:15:399:16 | c2 | -| main.rs:390:9:390:10 | b4 | main.rs:381:13:381:14 | b4 | main.rs:394:9:394:10 | b4 | main.rs:398:15:398:16 | b4 | -| main.rs:390:9:390:10 | b4 | main.rs:381:13:381:14 | b4 | main.rs:398:15:398:16 | b4 | main.rs:412:15:412:16 | b4 | -| main.rs:391:9:391:11 | a10 | main.rs:380:13:380:15 | a10 | main.rs:393:9:393:11 | a10 | main.rs:397:15:397:17 | a10 | -| main.rs:391:9:391:11 | a10 | main.rs:380:13:380:15 | a10 | main.rs:397:15:397:17 | a10 | main.rs:411:15:411:17 | a10 | -| main.rs:434:9:434:9 | f | main.rs:434:9:434:9 | f | main.rs:437:15:437:15 | f | main.rs:444:15:444:15 | f | -| main.rs:475:5:475:5 | a | main.rs:474:13:474:13 | a | main.rs:476:15:476:15 | a | main.rs:477:11:477:11 | a | -| main.rs:489:17:489:17 | x | main.rs:489:17:489:17 | x | main.rs:490:6:490:6 | x | main.rs:491:10:491:10 | x | -| main.rs:489:17:489:17 | x | main.rs:489:17:489:17 | x | main.rs:491:10:491:10 | x | main.rs:492:10:492:10 | x | -| main.rs:489:17:489:17 | x | main.rs:489:17:489:17 | x | main.rs:492:10:492:10 | x | main.rs:493:12:493:12 | x | -| main.rs:496:22:496:22 | x | main.rs:496:22:496:22 | x | main.rs:497:6:497:6 | x | main.rs:498:10:498:10 | x | -| main.rs:496:22:496:22 | x | main.rs:496:22:496:22 | x | main.rs:498:10:498:10 | x | main.rs:499:10:499:10 | x | -| main.rs:496:22:496:22 | x | main.rs:496:22:496:22 | x | main.rs:499:10:499:10 | x | main.rs:501:9:501:9 | x | -| main.rs:507:22:507:27 | &mut x | main.rs:505:13:505:13 | x | main.rs:511:15:511:15 | x | main.rs:515:19:515:19 | x | -| main.rs:514:9:514:9 | w | main.rs:514:9:514:9 | w | main.rs:518:9:518:9 | w | main.rs:520:7:520:7 | w | -| main.rs:585:13:585:13 | x | main.rs:585:13:585:13 | x | main.rs:586:15:586:15 | x | main.rs:587:15:587:15 | x | -| main.rs:591:9:591:9 | x | main.rs:585:13:585:13 | x | main.rs:592:19:592:19 | x | main.rs:593:19:593:19 | x | -| main.rs:595:9:595:9 | x | main.rs:585:13:585:13 | x | main.rs:596:19:596:19 | x | main.rs:597:19:597:19 | x | -| main.rs:603:9:603:9 | x | main.rs:603:9:603:9 | x | main.rs:607:19:607:19 | x | main.rs:615:19:615:19 | x | -| main.rs:603:9:603:9 | x | main.rs:603:9:603:9 | x | main.rs:607:19:607:19 | x | main.rs:617:19:617:19 | x | -| main.rs:603:9:603:9 | x | main.rs:603:9:603:9 | x | main.rs:609:19:609:19 | x | main.rs:615:19:615:19 | x | -| main.rs:603:9:603:9 | x | main.rs:603:9:603:9 | x | main.rs:609:19:609:19 | x | main.rs:617:19:617:19 | x | -| main.rs:635:17:635:17 | f | main.rs:635:17:635:17 | f | main.rs:639:9:639:9 | f | main.rs:640:9:640:9 | f | -| main.rs:646:15:646:15 | a | main.rs:645:13:645:13 | a | main.rs:647:5:647:5 | a | main.rs:648:15:648:15 | a | -| main.rs:654:13:654:13 | a | main.rs:654:13:654:13 | a | main.rs:655:15:655:15 | a | main.rs:656:5:656:5 | a | -| main.rs:654:13:654:13 | a | main.rs:654:13:654:13 | a | main.rs:656:5:656:5 | a | main.rs:657:15:657:15 | a | -| main.rs:663:9:663:9 | x | main.rs:663:9:663:9 | x | main.rs:664:20:664:20 | x | main.rs:665:15:665:15 | x | +| main.rs:27:5:27:6 | x2 | main.rs:25:13:25:14 | x2 | main.rs:28:15:28:16 | x2 | main.rs:29:10:29:11 | x2 | +| main.rs:41:9:41:10 | x3 | main.rs:41:9:41:10 | x3 | main.rs:42:15:42:16 | x3 | main.rs:44:9:44:10 | x3 | +| main.rs:49:9:49:10 | x4 | main.rs:49:9:49:10 | x4 | main.rs:50:15:50:16 | x4 | main.rs:55:15:55:16 | x4 | +| main.rs:100:9:100:9 | x | main.rs:100:9:100:9 | x | main.rs:102:7:102:7 | x | main.rs:105:13:105:13 | x | +| main.rs:113:9:113:10 | s1 | main.rs:113:9:113:10 | s1 | main.rs:116:11:116:12 | s1 | main.rs:116:11:116:12 | s1 | +| main.rs:139:9:139:15 | numbers | main.rs:139:9:139:15 | numbers | main.rs:141:11:141:17 | numbers | main.rs:156:11:156:17 | numbers | +| main.rs:222:9:222:10 | tv | main.rs:222:9:222:10 | tv | main.rs:223:11:223:12 | tv | main.rs:227:11:227:12 | tv | +| main.rs:222:9:222:10 | tv | main.rs:222:9:222:10 | tv | main.rs:227:11:227:12 | tv | main.rs:231:11:231:12 | tv | +| main.rs:240:9:240:44 | [match(true)] SSA phi(a7) | main.rs:240:9:240:44 | a7 | main.rs:241:16:241:17 | a7 | main.rs:242:26:242:27 | a7 | +| main.rs:281:9:281:9 | x | main.rs:281:9:281:9 | x | main.rs:283:7:283:7 | x | main.rs:290:13:290:13 | x | +| main.rs:282:17:282:17 | x | main.rs:282:17:282:17 | x | main.rs:285:5:285:5 | x | main.rs:287:19:287:19 | x | +| main.rs:297:9:297:9 | x | main.rs:297:9:297:9 | x | main.rs:299:7:299:7 | x | main.rs:309:13:309:13 | x | +| main.rs:301:14:301:14 | x | main.rs:301:14:301:14 | x | main.rs:304:5:304:5 | x | main.rs:306:19:306:19 | x | +| main.rs:316:9:316:9 | x | main.rs:316:9:316:9 | x | main.rs:318:7:318:7 | x | main.rs:329:15:329:15 | x | +| main.rs:320:14:320:14 | x | main.rs:320:14:320:14 | x | main.rs:323:5:323:5 | x | main.rs:325:19:325:19 | x | +| main.rs:334:9:334:9 | x | main.rs:334:9:334:9 | x | main.rs:335:11:335:11 | x | main.rs:343:15:343:15 | x | +| main.rs:348:9:348:9 | x | main.rs:348:9:348:9 | x | main.rs:350:7:350:7 | x | main.rs:355:7:355:7 | x | +| main.rs:348:9:348:9 | x | main.rs:348:9:348:9 | x | main.rs:355:7:355:7 | x | main.rs:359:19:359:19 | x | +| main.rs:382:13:382:15 | a10 | main.rs:382:13:382:15 | a10 | main.rs:386:15:386:17 | a10 | main.rs:395:9:395:11 | a10 | +| main.rs:383:13:383:14 | b4 | main.rs:383:13:383:14 | b4 | main.rs:387:15:387:16 | b4 | main.rs:396:9:396:10 | b4 | +| main.rs:384:13:384:14 | c2 | main.rs:384:13:384:14 | c2 | main.rs:388:15:388:16 | c2 | main.rs:397:9:397:10 | c2 | +| main.rs:392:9:392:10 | b4 | main.rs:383:13:383:14 | b4 | main.rs:400:15:400:16 | b4 | main.rs:414:15:414:16 | b4 | +| main.rs:393:9:393:11 | a10 | main.rs:382:13:382:15 | a10 | main.rs:399:15:399:17 | a10 | main.rs:413:15:413:17 | a10 | +| main.rs:436:9:436:9 | f | main.rs:436:9:436:9 | f | main.rs:439:15:439:15 | f | main.rs:446:15:446:15 | f | +| main.rs:477:5:477:5 | a | main.rs:476:13:476:13 | a | main.rs:478:15:478:15 | a | main.rs:479:11:479:11 | a | +| main.rs:491:17:491:17 | x | main.rs:491:17:491:17 | x | main.rs:492:6:492:6 | x | main.rs:493:10:493:10 | x | +| main.rs:491:17:491:17 | x | main.rs:491:17:491:17 | x | main.rs:493:10:493:10 | x | main.rs:494:10:494:10 | x | +| main.rs:491:17:491:17 | x | main.rs:491:17:491:17 | x | main.rs:494:10:494:10 | x | main.rs:495:12:495:12 | x | +| main.rs:498:22:498:22 | x | main.rs:498:22:498:22 | x | main.rs:499:6:499:6 | x | main.rs:500:10:500:10 | x | +| main.rs:498:22:498:22 | x | main.rs:498:22:498:22 | x | main.rs:500:10:500:10 | x | main.rs:501:10:501:10 | x | +| main.rs:498:22:498:22 | x | main.rs:498:22:498:22 | x | main.rs:501:10:501:10 | x | main.rs:503:9:503:9 | x | +| main.rs:509:22:509:27 | &mut x | main.rs:507:13:507:13 | x | main.rs:513:15:513:15 | x | main.rs:517:19:517:19 | x | +| main.rs:516:9:516:9 | w | main.rs:516:9:516:9 | w | main.rs:520:9:520:9 | w | main.rs:522:7:522:7 | w | +| main.rs:587:13:587:13 | x | main.rs:587:13:587:13 | x | main.rs:588:15:588:15 | x | main.rs:589:15:589:15 | x | +| main.rs:593:9:593:9 | x | main.rs:587:13:587:13 | x | main.rs:594:19:594:19 | x | main.rs:595:19:595:19 | x | +| main.rs:597:9:597:9 | x | main.rs:587:13:587:13 | x | main.rs:598:19:598:19 | x | main.rs:599:19:599:19 | x | +| main.rs:605:9:605:9 | x | main.rs:605:9:605:9 | x | main.rs:609:19:609:19 | x | main.rs:617:19:617:19 | x | +| main.rs:605:9:605:9 | x | main.rs:605:9:605:9 | x | main.rs:609:19:609:19 | x | main.rs:619:19:619:19 | x | +| main.rs:605:9:605:9 | x | main.rs:605:9:605:9 | x | main.rs:611:19:611:19 | x | main.rs:617:19:617:19 | x | +| main.rs:605:9:605:9 | x | main.rs:605:9:605:9 | x | main.rs:611:19:611:19 | x | main.rs:619:19:619:19 | x | +| main.rs:637:17:637:17 | f | main.rs:637:17:637:17 | f | main.rs:641:9:641:9 | f | main.rs:642:9:642:9 | f | +| main.rs:648:15:648:15 | a | main.rs:647:13:647:13 | a | main.rs:649:5:649:5 | a | main.rs:650:15:650:15 | a | +| main.rs:656:13:656:13 | a | main.rs:656:13:656:13 | a | main.rs:657:15:657:15 | a | main.rs:658:5:658:5 | a | +| main.rs:656:13:656:13 | a | main.rs:656:13:656:13 | a | main.rs:658:5:658:5 | a | main.rs:659:15:659:15 | a | +| main.rs:665:9:665:9 | x | main.rs:665:9:665:9 | x | main.rs:666:20:666:20 | x | main.rs:667:15:667:15 | x | phi -| main.rs:208:9:208:44 | SSA phi(a3) | main.rs:208:9:208:44 | a3 | main.rs:208:22:208:23 | a3 | -| main.rs:208:9:208:44 | SSA phi(a3) | main.rs:208:9:208:44 | a3 | main.rs:208:42:208:43 | a3 | -| main.rs:222:9:222:81 | SSA phi(a4) | main.rs:222:9:222:81 | a4 | main.rs:222:28:222:29 | a4 | -| main.rs:222:9:222:81 | SSA phi(a4) | main.rs:222:9:222:81 | a4 | main.rs:222:54:222:55 | a4 | -| main.rs:222:9:222:81 | SSA phi(a4) | main.rs:222:9:222:81 | a4 | main.rs:222:79:222:80 | a4 | -| main.rs:226:9:226:83 | SSA phi(a5) | main.rs:226:9:226:83 | a5 | main.rs:226:10:226:57 | [match(true)] SSA phi(a5) | -| main.rs:226:9:226:83 | SSA phi(a5) | main.rs:226:9:226:83 | a5 | main.rs:226:81:226:82 | a5 | -| main.rs:226:10:226:57 | [match(true)] SSA phi(a5) | main.rs:226:9:226:83 | a5 | main.rs:226:29:226:30 | a5 | -| main.rs:226:10:226:57 | [match(true)] SSA phi(a5) | main.rs:226:9:226:83 | a5 | main.rs:226:55:226:56 | a5 | -| main.rs:230:9:230:83 | SSA phi(a6) | main.rs:230:9:230:83 | a6 | main.rs:230:28:230:29 | a6 | -| main.rs:230:9:230:83 | SSA phi(a6) | main.rs:230:9:230:83 | a6 | main.rs:230:35:230:82 | SSA phi(a6) | -| main.rs:230:35:230:82 | SSA phi(a6) | main.rs:230:9:230:83 | a6 | main.rs:230:55:230:56 | a6 | -| main.rs:230:35:230:82 | SSA phi(a6) | main.rs:230:9:230:83 | a6 | main.rs:230:80:230:81 | a6 | -| main.rs:238:9:238:44 | [match(true)] SSA phi(a7) | main.rs:238:9:238:44 | a7 | main.rs:238:22:238:23 | a7 | -| main.rs:238:9:238:44 | [match(true)] SSA phi(a7) | main.rs:238:9:238:44 | a7 | main.rs:238:42:238:43 | a7 | -| main.rs:250:14:250:51 | [match(true)] SSA phi(a11) | main.rs:250:14:250:51 | a11 | main.rs:250:27:250:29 | a11 | -| main.rs:250:14:250:51 | [match(true)] SSA phi(a11) | main.rs:250:14:250:51 | a11 | main.rs:250:48:250:50 | a11 | -| main.rs:272:9:272:109 | SSA phi(a13) | main.rs:272:9:272:109 | a13 | main.rs:272:27:272:29 | a13 | -| main.rs:272:9:272:109 | SSA phi(a13) | main.rs:272:9:272:109 | a13 | main.rs:272:35:272:82 | [match(true)] SSA phi(a13) | -| main.rs:272:9:272:109 | SSA phi(a13) | main.rs:272:9:272:109 | a13 | main.rs:272:106:272:108 | a13 | -| main.rs:272:35:272:82 | [match(true)] SSA phi(a13) | main.rs:272:9:272:109 | a13 | main.rs:272:54:272:56 | a13 | -| main.rs:272:35:272:82 | [match(true)] SSA phi(a13) | main.rs:272:9:272:109 | a13 | main.rs:272:79:272:81 | a13 | -| main.rs:373:20:373:55 | SSA phi(a9) | main.rs:373:20:373:55 | a9 | main.rs:373:33:373:34 | a9 | -| main.rs:373:20:373:55 | SSA phi(a9) | main.rs:373:20:373:55 | a9 | main.rs:373:53:373:54 | a9 | -| main.rs:589:13:598:5 | SSA phi(x) | main.rs:585:13:585:13 | x | main.rs:591:9:591:9 | x | -| main.rs:589:13:598:5 | SSA phi(x) | main.rs:585:13:585:13 | x | main.rs:595:9:595:9 | x | -| main.rs:726:17:728:9 | SSA phi(x) | main.rs:723:13:723:13 | x | main.rs:724:19:729:5 | x | -| main.rs:726:17:728:9 | SSA phi(x) | main.rs:723:13:723:13 | x | main.rs:727:13:727:13 | x | +| main.rs:210:9:210:44 | SSA phi(a3) | main.rs:210:9:210:44 | a3 | main.rs:210:22:210:23 | a3 | +| main.rs:210:9:210:44 | SSA phi(a3) | main.rs:210:9:210:44 | a3 | main.rs:210:42:210:43 | a3 | +| main.rs:224:9:224:81 | SSA phi(a4) | main.rs:224:9:224:81 | a4 | main.rs:224:28:224:29 | a4 | +| main.rs:224:9:224:81 | SSA phi(a4) | main.rs:224:9:224:81 | a4 | main.rs:224:54:224:55 | a4 | +| main.rs:224:9:224:81 | SSA phi(a4) | main.rs:224:9:224:81 | a4 | main.rs:224:79:224:80 | a4 | +| main.rs:228:9:228:83 | SSA phi(a5) | main.rs:228:9:228:83 | a5 | main.rs:228:10:228:57 | [match(true)] SSA phi(a5) | +| main.rs:228:9:228:83 | SSA phi(a5) | main.rs:228:9:228:83 | a5 | main.rs:228:81:228:82 | a5 | +| main.rs:228:10:228:57 | [match(true)] SSA phi(a5) | main.rs:228:9:228:83 | a5 | main.rs:228:29:228:30 | a5 | +| main.rs:228:10:228:57 | [match(true)] SSA phi(a5) | main.rs:228:9:228:83 | a5 | main.rs:228:55:228:56 | a5 | +| main.rs:232:9:232:83 | SSA phi(a6) | main.rs:232:9:232:83 | a6 | main.rs:232:28:232:29 | a6 | +| main.rs:232:9:232:83 | SSA phi(a6) | main.rs:232:9:232:83 | a6 | main.rs:232:35:232:82 | SSA phi(a6) | +| main.rs:232:35:232:82 | SSA phi(a6) | main.rs:232:9:232:83 | a6 | main.rs:232:55:232:56 | a6 | +| main.rs:232:35:232:82 | SSA phi(a6) | main.rs:232:9:232:83 | a6 | main.rs:232:80:232:81 | a6 | +| main.rs:240:9:240:44 | [match(true)] SSA phi(a7) | main.rs:240:9:240:44 | a7 | main.rs:240:22:240:23 | a7 | +| main.rs:240:9:240:44 | [match(true)] SSA phi(a7) | main.rs:240:9:240:44 | a7 | main.rs:240:42:240:43 | a7 | +| main.rs:252:14:252:51 | [match(true)] SSA phi(a11) | main.rs:252:14:252:51 | a11 | main.rs:252:27:252:29 | a11 | +| main.rs:252:14:252:51 | [match(true)] SSA phi(a11) | main.rs:252:14:252:51 | a11 | main.rs:252:48:252:50 | a11 | +| main.rs:274:9:274:109 | SSA phi(a13) | main.rs:274:9:274:109 | a13 | main.rs:274:27:274:29 | a13 | +| main.rs:274:9:274:109 | SSA phi(a13) | main.rs:274:9:274:109 | a13 | main.rs:274:35:274:82 | [match(true)] SSA phi(a13) | +| main.rs:274:9:274:109 | SSA phi(a13) | main.rs:274:9:274:109 | a13 | main.rs:274:106:274:108 | a13 | +| main.rs:274:35:274:82 | [match(true)] SSA phi(a13) | main.rs:274:9:274:109 | a13 | main.rs:274:54:274:56 | a13 | +| main.rs:274:35:274:82 | [match(true)] SSA phi(a13) | main.rs:274:9:274:109 | a13 | main.rs:274:79:274:81 | a13 | +| main.rs:375:20:375:55 | SSA phi(a9) | main.rs:375:20:375:55 | a9 | main.rs:375:33:375:34 | a9 | +| main.rs:375:20:375:55 | SSA phi(a9) | main.rs:375:20:375:55 | a9 | main.rs:375:53:375:54 | a9 | +| main.rs:591:13:600:5 | SSA phi(x) | main.rs:587:13:587:13 | x | main.rs:593:9:593:9 | x | +| main.rs:591:13:600:5 | SSA phi(x) | main.rs:587:13:587:13 | x | main.rs:597:9:597:9 | x | +| main.rs:728:17:730:9 | SSA phi(x) | main.rs:725:13:725:13 | x | main.rs:726:19:731:5 | x | +| main.rs:728:17:730:9 | SSA phi(x) | main.rs:725:13:725:13 | x | main.rs:729:13:729:13 | x | phiReadNode -| main.rs:114:11:114:12 | SSA phi read(s1) | main.rs:111:9:111:10 | s1 | -| main.rs:605:13:610:5 | SSA phi read(x) | main.rs:603:9:603:9 | x | +| main.rs:116:11:116:12 | SSA phi read(s1) | main.rs:113:9:113:10 | s1 | +| main.rs:607:13:612:5 | SSA phi read(x) | main.rs:605:9:605:9 | x | phiReadNodeFirstRead -| main.rs:114:11:114:12 | SSA phi read(s1) | main.rs:111:9:111:10 | s1 | main.rs:114:11:114:12 | s1 | -| main.rs:605:13:610:5 | SSA phi read(x) | main.rs:603:9:603:9 | x | main.rs:615:19:615:19 | x | -| main.rs:605:13:610:5 | SSA phi read(x) | main.rs:603:9:603:9 | x | main.rs:617:19:617:19 | x | +| main.rs:116:11:116:12 | SSA phi read(s1) | main.rs:113:9:113:10 | s1 | main.rs:116:11:116:12 | s1 | +| main.rs:607:13:612:5 | SSA phi read(x) | main.rs:605:9:605:9 | x | main.rs:617:19:617:19 | x | +| main.rs:607:13:612:5 | SSA phi read(x) | main.rs:605:9:605:9 | x | main.rs:619:19:619:19 | x | phiReadInput -| main.rs:114:11:114:12 | SSA phi read(s1) | main.rs:111:9:111:10 | s1 | -| main.rs:114:11:114:12 | SSA phi read(s1) | main.rs:114:11:114:12 | SSA read(s1) | -| main.rs:605:13:610:5 | SSA phi read(x) | main.rs:607:19:607:19 | SSA read(x) | -| main.rs:605:13:610:5 | SSA phi read(x) | main.rs:609:19:609:19 | SSA read(x) | +| main.rs:116:11:116:12 | SSA phi read(s1) | main.rs:113:9:113:10 | s1 | +| main.rs:116:11:116:12 | SSA phi read(s1) | main.rs:116:11:116:12 | SSA read(s1) | +| main.rs:607:13:612:5 | SSA phi read(x) | main.rs:609:19:609:19 | SSA read(x) | +| main.rs:607:13:612:5 | SSA phi read(x) | main.rs:611:19:611:19 | SSA read(x) | ultimateDef -| main.rs:208:9:208:44 | SSA phi(a3) | main.rs:208:22:208:23 | a3 | -| main.rs:208:9:208:44 | SSA phi(a3) | main.rs:208:42:208:43 | a3 | -| main.rs:222:9:222:81 | SSA phi(a4) | main.rs:222:28:222:29 | a4 | -| main.rs:222:9:222:81 | SSA phi(a4) | main.rs:222:54:222:55 | a4 | -| main.rs:222:9:222:81 | SSA phi(a4) | main.rs:222:79:222:80 | a4 | -| main.rs:226:9:226:83 | SSA phi(a5) | main.rs:226:29:226:30 | a5 | -| main.rs:226:9:226:83 | SSA phi(a5) | main.rs:226:55:226:56 | a5 | -| main.rs:226:9:226:83 | SSA phi(a5) | main.rs:226:81:226:82 | a5 | -| main.rs:226:10:226:57 | [match(true)] SSA phi(a5) | main.rs:226:29:226:30 | a5 | -| main.rs:226:10:226:57 | [match(true)] SSA phi(a5) | main.rs:226:55:226:56 | a5 | -| main.rs:230:9:230:83 | SSA phi(a6) | main.rs:230:28:230:29 | a6 | -| main.rs:230:9:230:83 | SSA phi(a6) | main.rs:230:55:230:56 | a6 | -| main.rs:230:9:230:83 | SSA phi(a6) | main.rs:230:80:230:81 | a6 | -| main.rs:230:35:230:82 | SSA phi(a6) | main.rs:230:55:230:56 | a6 | -| main.rs:230:35:230:82 | SSA phi(a6) | main.rs:230:80:230:81 | a6 | -| main.rs:238:9:238:44 | [match(true)] SSA phi(a7) | main.rs:238:22:238:23 | a7 | -| main.rs:238:9:238:44 | [match(true)] SSA phi(a7) | main.rs:238:42:238:43 | a7 | -| main.rs:250:14:250:51 | [match(true)] SSA phi(a11) | main.rs:250:27:250:29 | a11 | -| main.rs:250:14:250:51 | [match(true)] SSA phi(a11) | main.rs:250:48:250:50 | a11 | -| main.rs:272:9:272:109 | SSA phi(a13) | main.rs:272:27:272:29 | a13 | -| main.rs:272:9:272:109 | SSA phi(a13) | main.rs:272:54:272:56 | a13 | -| main.rs:272:9:272:109 | SSA phi(a13) | main.rs:272:79:272:81 | a13 | -| main.rs:272:9:272:109 | SSA phi(a13) | main.rs:272:106:272:108 | a13 | -| main.rs:272:35:272:82 | [match(true)] SSA phi(a13) | main.rs:272:54:272:56 | a13 | -| main.rs:272:35:272:82 | [match(true)] SSA phi(a13) | main.rs:272:79:272:81 | a13 | -| main.rs:373:20:373:55 | SSA phi(a9) | main.rs:373:33:373:34 | a9 | -| main.rs:373:20:373:55 | SSA phi(a9) | main.rs:373:53:373:54 | a9 | -| main.rs:589:13:598:5 | SSA phi(x) | main.rs:591:9:591:9 | x | -| main.rs:589:13:598:5 | SSA phi(x) | main.rs:595:9:595:9 | x | -| main.rs:726:17:728:9 | SSA phi(x) | main.rs:724:19:729:5 | x | -| main.rs:726:17:728:9 | SSA phi(x) | main.rs:727:13:727:13 | x | +| main.rs:210:9:210:44 | SSA phi(a3) | main.rs:210:22:210:23 | a3 | +| main.rs:210:9:210:44 | SSA phi(a3) | main.rs:210:42:210:43 | a3 | +| main.rs:224:9:224:81 | SSA phi(a4) | main.rs:224:28:224:29 | a4 | +| main.rs:224:9:224:81 | SSA phi(a4) | main.rs:224:54:224:55 | a4 | +| main.rs:224:9:224:81 | SSA phi(a4) | main.rs:224:79:224:80 | a4 | +| main.rs:228:9:228:83 | SSA phi(a5) | main.rs:228:29:228:30 | a5 | +| main.rs:228:9:228:83 | SSA phi(a5) | main.rs:228:55:228:56 | a5 | +| main.rs:228:9:228:83 | SSA phi(a5) | main.rs:228:81:228:82 | a5 | +| main.rs:228:10:228:57 | [match(true)] SSA phi(a5) | main.rs:228:29:228:30 | a5 | +| main.rs:228:10:228:57 | [match(true)] SSA phi(a5) | main.rs:228:55:228:56 | a5 | +| main.rs:232:9:232:83 | SSA phi(a6) | main.rs:232:28:232:29 | a6 | +| main.rs:232:9:232:83 | SSA phi(a6) | main.rs:232:55:232:56 | a6 | +| main.rs:232:9:232:83 | SSA phi(a6) | main.rs:232:80:232:81 | a6 | +| main.rs:232:35:232:82 | SSA phi(a6) | main.rs:232:55:232:56 | a6 | +| main.rs:232:35:232:82 | SSA phi(a6) | main.rs:232:80:232:81 | a6 | +| main.rs:240:9:240:44 | [match(true)] SSA phi(a7) | main.rs:240:22:240:23 | a7 | +| main.rs:240:9:240:44 | [match(true)] SSA phi(a7) | main.rs:240:42:240:43 | a7 | +| main.rs:252:14:252:51 | [match(true)] SSA phi(a11) | main.rs:252:27:252:29 | a11 | +| main.rs:252:14:252:51 | [match(true)] SSA phi(a11) | main.rs:252:48:252:50 | a11 | +| main.rs:274:9:274:109 | SSA phi(a13) | main.rs:274:27:274:29 | a13 | +| main.rs:274:9:274:109 | SSA phi(a13) | main.rs:274:54:274:56 | a13 | +| main.rs:274:9:274:109 | SSA phi(a13) | main.rs:274:79:274:81 | a13 | +| main.rs:274:9:274:109 | SSA phi(a13) | main.rs:274:106:274:108 | a13 | +| main.rs:274:35:274:82 | [match(true)] SSA phi(a13) | main.rs:274:54:274:56 | a13 | +| main.rs:274:35:274:82 | [match(true)] SSA phi(a13) | main.rs:274:79:274:81 | a13 | +| main.rs:375:20:375:55 | SSA phi(a9) | main.rs:375:33:375:34 | a9 | +| main.rs:375:20:375:55 | SSA phi(a9) | main.rs:375:53:375:54 | a9 | +| main.rs:591:13:600:5 | SSA phi(x) | main.rs:593:9:593:9 | x | +| main.rs:591:13:600:5 | SSA phi(x) | main.rs:597:9:597:9 | x | +| main.rs:728:17:730:9 | SSA phi(x) | main.rs:726:19:731:5 | x | +| main.rs:728:17:730:9 | SSA phi(x) | main.rs:729:13:729:13 | x | assigns | main.rs:20:9:20:10 | x1 | main.rs:20:14:20:16 | "a" | | main.rs:25:13:25:14 | x2 | main.rs:25:18:25:18 | 4 | | main.rs:27:5:27:6 | x2 | main.rs:27:10:27:10 | 5 | -| main.rs:32:13:32:13 | x | main.rs:32:17:32:17 | 1 | -| main.rs:34:5:34:5 | x | main.rs:34:9:34:9 | 2 | -| main.rs:39:9:39:10 | x3 | main.rs:39:14:39:14 | 1 | -| main.rs:41:9:41:10 | x3 | main.rs:42:9:42:14 | ... + ... | -| main.rs:47:9:47:10 | x4 | main.rs:47:14:47:16 | "a" | -| main.rs:50:13:50:14 | x4 | main.rs:50:18:50:20 | "b" | -| main.rs:79:9:79:10 | p1 | main.rs:79:14:79:37 | Point {...} | -| main.rs:89:9:89:10 | s1 | main.rs:89:14:89:41 | Some(...) | -| main.rs:98:9:98:9 | x | main.rs:98:13:98:22 | Some(...) | -| main.rs:102:13:102:13 | x | main.rs:103:13:103:13 | x | -| main.rs:111:9:111:10 | s1 | main.rs:111:14:111:41 | Some(...) | -| main.rs:120:9:120:10 | x6 | main.rs:120:14:120:20 | Some(...) | -| main.rs:121:9:121:10 | y1 | main.rs:121:14:121:15 | 10 | -| main.rs:137:9:137:15 | numbers | main.rs:137:19:137:35 | TupleExpr | -| main.rs:168:9:168:10 | p2 | main.rs:168:14:168:37 | Point {...} | -| main.rs:182:9:182:11 | msg | main.rs:182:15:182:38 | ...::Hello {...} | -| main.rs:206:9:206:14 | either | main.rs:206:18:206:33 | ...::Left(...) | -| main.rs:220:9:220:10 | tv | main.rs:220:14:220:36 | ...::Second(...) | -| main.rs:236:9:236:14 | either | main.rs:236:18:236:33 | ...::Left(...) | -| main.rs:246:9:246:14 | either | main.rs:246:18:246:33 | ...::Left(...) | -| main.rs:270:9:270:10 | fv | main.rs:270:14:270:35 | ...::Second(...) | -| main.rs:279:9:279:9 | x | main.rs:279:12:279:19 | Some(...) | -| main.rs:287:13:287:13 | x | main.rs:288:13:288:13 | x | -| main.rs:295:9:295:9 | x | main.rs:295:13:295:20 | Some(...) | -| main.rs:306:13:306:13 | x | main.rs:307:13:307:13 | x | -| main.rs:314:9:314:9 | x | main.rs:314:13:314:20 | Some(...) | -| main.rs:332:9:332:9 | x | main.rs:332:13:332:20 | Some(...) | -| main.rs:335:20:335:20 | x | main.rs:336:18:336:18 | x | -| main.rs:346:9:346:9 | x | main.rs:346:13:346:18 | Ok(...) | -| main.rs:416:9:416:23 | example_closure | main.rs:417:9:418:9 | \|...\| x | -| main.rs:419:9:419:10 | n1 | main.rs:420:9:420:26 | example_closure(...) | -| main.rs:424:9:424:26 | immutable_variable | main.rs:425:5:426:9 | \|...\| x | -| main.rs:427:9:427:10 | n2 | main.rs:428:9:428:29 | immutable_variable(...) | -| main.rs:434:9:434:9 | f | main.rs:435:9:436:9 | \|...\| x | -| main.rs:457:13:457:13 | f | main.rs:458:13:459:13 | \|...\| x | -| main.rs:465:9:465:9 | v | main.rs:465:13:465:41 | &... | -| main.rs:474:13:474:13 | a | main.rs:474:17:474:17 | 0 | -| main.rs:482:13:482:13 | i | main.rs:482:17:482:17 | 1 | -| main.rs:483:9:483:13 | ref_i | main.rs:484:9:484:14 | &mut i | -| main.rs:505:13:505:13 | x | main.rs:505:17:505:17 | 2 | -| main.rs:506:9:506:9 | y | main.rs:507:9:507:28 | mutate_param(...) | -| main.rs:513:13:513:13 | z | main.rs:513:17:513:17 | 4 | -| main.rs:514:9:514:9 | w | main.rs:515:9:515:19 | &mut ... | -| main.rs:527:13:527:13 | x | main.rs:527:17:527:17 | 1 | -| main.rs:528:9:528:9 | y | main.rs:529:9:529:14 | &mut x | -| main.rs:535:9:535:9 | x | main.rs:535:13:535:15 | 100 | -| main.rs:538:9:538:11 | cap | main.rs:538:15:540:5 | \|...\| ... | -| main.rs:546:13:546:13 | x | main.rs:546:17:546:17 | 1 | -| main.rs:549:9:549:16 | closure1 | main.rs:549:20:551:5 | \|...\| ... | -| main.rs:555:13:555:13 | y | main.rs:555:17:555:17 | 2 | -| main.rs:558:13:558:20 | closure2 | main.rs:558:24:560:5 | \|...\| ... | -| main.rs:559:9:559:9 | y | main.rs:559:13:559:13 | 3 | -| main.rs:564:13:564:13 | z | main.rs:564:17:564:17 | 2 | -| main.rs:567:13:567:20 | closure3 | main.rs:567:24:569:5 | \|...\| ... | -| main.rs:575:13:575:13 | i | main.rs:575:22:575:22 | 0 | -| main.rs:576:9:576:13 | block | main.rs:576:17:578:5 | { ... } | -| main.rs:577:9:577:9 | i | main.rs:577:13:577:13 | 1 | -| main.rs:585:13:585:13 | x | main.rs:585:17:585:17 | 1 | -| main.rs:591:9:591:9 | x | main.rs:591:13:591:13 | 2 | -| main.rs:595:9:595:9 | x | main.rs:595:13:595:13 | 3 | -| main.rs:603:9:603:9 | x | main.rs:603:13:603:13 | 1 | -| main.rs:635:17:635:17 | f | main.rs:635:21:638:9 | \|...\| ... | -| main.rs:645:13:645:13 | a | main.rs:645:17:645:35 | MyStruct {...} | -| main.rs:649:5:649:5 | a | main.rs:649:9:649:27 | MyStruct {...} | -| main.rs:654:13:654:13 | a | main.rs:654:17:654:25 | [...] | -| main.rs:658:5:658:5 | a | main.rs:658:9:658:17 | [...] | -| main.rs:663:9:663:9 | x | main.rs:663:13:663:14 | 16 | -| main.rs:667:9:667:9 | z | main.rs:667:13:667:14 | 17 | -| main.rs:682:13:682:13 | a | main.rs:682:17:682:35 | MyStruct {...} | -| main.rs:704:9:704:22 | var_from_macro | main.rs:705:9:705:25 | MacroExpr | -| main.rs:705:9:705:21 | var_in_macro | main.rs:705:23:705:24 | 37 | -| main.rs:707:9:707:20 | var_in_macro | main.rs:707:24:707:25 | 33 | -| main.rs:712:15:712:28 | var_in_macro | main.rs:712:15:712:28 | 0 | -| main.rs:718:5:718:5 | x | main.rs:718:9:718:9 | 1 | -| main.rs:723:13:723:13 | x | main.rs:723:17:723:19 | 100 | -| main.rs:724:13:724:15 | cap | main.rs:724:19:729:5 | \|...\| ... | -| main.rs:727:13:727:13 | x | main.rs:727:17:727:19 | 200 | +| main.rs:29:5:29:6 | x2 | main.rs:29:10:29:11 | x2 | +| main.rs:34:13:34:13 | x | main.rs:34:17:34:17 | 1 | +| main.rs:36:5:36:5 | x | main.rs:36:9:36:9 | 2 | +| main.rs:41:9:41:10 | x3 | main.rs:41:14:41:14 | 1 | +| main.rs:43:9:43:10 | x3 | main.rs:44:9:44:14 | ... + ... | +| main.rs:49:9:49:10 | x4 | main.rs:49:14:49:16 | "a" | +| main.rs:52:13:52:14 | x4 | main.rs:52:18:52:20 | "b" | +| main.rs:81:9:81:10 | p1 | main.rs:81:14:81:37 | Point {...} | +| main.rs:91:9:91:10 | s1 | main.rs:91:14:91:41 | Some(...) | +| main.rs:100:9:100:9 | x | main.rs:100:13:100:22 | Some(...) | +| main.rs:104:13:104:13 | x | main.rs:105:13:105:13 | x | +| main.rs:113:9:113:10 | s1 | main.rs:113:14:113:41 | Some(...) | +| main.rs:122:9:122:10 | x6 | main.rs:122:14:122:20 | Some(...) | +| main.rs:123:9:123:10 | y1 | main.rs:123:14:123:15 | 10 | +| main.rs:139:9:139:15 | numbers | main.rs:139:19:139:35 | TupleExpr | +| main.rs:170:9:170:10 | p2 | main.rs:170:14:170:37 | Point {...} | +| main.rs:184:9:184:11 | msg | main.rs:184:15:184:38 | ...::Hello {...} | +| main.rs:208:9:208:14 | either | main.rs:208:18:208:33 | ...::Left(...) | +| main.rs:222:9:222:10 | tv | main.rs:222:14:222:36 | ...::Second(...) | +| main.rs:238:9:238:14 | either | main.rs:238:18:238:33 | ...::Left(...) | +| main.rs:248:9:248:14 | either | main.rs:248:18:248:33 | ...::Left(...) | +| main.rs:272:9:272:10 | fv | main.rs:272:14:272:35 | ...::Second(...) | +| main.rs:281:9:281:9 | x | main.rs:281:12:281:19 | Some(...) | +| main.rs:289:13:289:13 | x | main.rs:290:13:290:13 | x | +| main.rs:297:9:297:9 | x | main.rs:297:13:297:20 | Some(...) | +| main.rs:308:13:308:13 | x | main.rs:309:13:309:13 | x | +| main.rs:316:9:316:9 | x | main.rs:316:13:316:20 | Some(...) | +| main.rs:334:9:334:9 | x | main.rs:334:13:334:20 | Some(...) | +| main.rs:337:20:337:20 | x | main.rs:338:18:338:18 | x | +| main.rs:348:9:348:9 | x | main.rs:348:13:348:18 | Ok(...) | +| main.rs:418:9:418:23 | example_closure | main.rs:419:9:420:9 | \|...\| x | +| main.rs:421:9:421:10 | n1 | main.rs:422:9:422:26 | example_closure(...) | +| main.rs:426:9:426:26 | immutable_variable | main.rs:427:5:428:9 | \|...\| x | +| main.rs:429:9:429:10 | n2 | main.rs:430:9:430:29 | immutable_variable(...) | +| main.rs:436:9:436:9 | f | main.rs:437:9:438:9 | \|...\| x | +| main.rs:459:13:459:13 | f | main.rs:460:13:461:13 | \|...\| x | +| main.rs:467:9:467:9 | v | main.rs:467:13:467:41 | &... | +| main.rs:476:13:476:13 | a | main.rs:476:17:476:17 | 0 | +| main.rs:484:13:484:13 | i | main.rs:484:17:484:17 | 1 | +| main.rs:485:9:485:13 | ref_i | main.rs:486:9:486:14 | &mut i | +| main.rs:507:13:507:13 | x | main.rs:507:17:507:17 | 2 | +| main.rs:508:9:508:9 | y | main.rs:509:9:509:28 | mutate_param(...) | +| main.rs:515:13:515:13 | z | main.rs:515:17:515:17 | 4 | +| main.rs:516:9:516:9 | w | main.rs:517:9:517:19 | &mut ... | +| main.rs:529:13:529:13 | x | main.rs:529:17:529:17 | 1 | +| main.rs:530:9:530:9 | y | main.rs:531:9:531:14 | &mut x | +| main.rs:537:9:537:9 | x | main.rs:537:13:537:15 | 100 | +| main.rs:540:9:540:11 | cap | main.rs:540:15:542:5 | \|...\| ... | +| main.rs:548:13:548:13 | x | main.rs:548:17:548:17 | 1 | +| main.rs:551:9:551:16 | closure1 | main.rs:551:20:553:5 | \|...\| ... | +| main.rs:557:13:557:13 | y | main.rs:557:17:557:17 | 2 | +| main.rs:560:13:560:20 | closure2 | main.rs:560:24:562:5 | \|...\| ... | +| main.rs:561:9:561:9 | y | main.rs:561:13:561:13 | 3 | +| main.rs:566:13:566:13 | z | main.rs:566:17:566:17 | 2 | +| main.rs:569:13:569:20 | closure3 | main.rs:569:24:571:5 | \|...\| ... | +| main.rs:577:13:577:13 | i | main.rs:577:22:577:22 | 0 | +| main.rs:578:9:578:13 | block | main.rs:578:17:580:5 | { ... } | +| main.rs:579:9:579:9 | i | main.rs:579:13:579:13 | 1 | +| main.rs:587:13:587:13 | x | main.rs:587:17:587:17 | 1 | +| main.rs:593:9:593:9 | x | main.rs:593:13:593:13 | 2 | +| main.rs:597:9:597:9 | x | main.rs:597:13:597:13 | 3 | +| main.rs:605:9:605:9 | x | main.rs:605:13:605:13 | 1 | +| main.rs:637:17:637:17 | f | main.rs:637:21:640:9 | \|...\| ... | +| main.rs:647:13:647:13 | a | main.rs:647:17:647:35 | MyStruct {...} | +| main.rs:651:5:651:5 | a | main.rs:651:9:651:27 | MyStruct {...} | +| main.rs:656:13:656:13 | a | main.rs:656:17:656:25 | [...] | +| main.rs:660:5:660:5 | a | main.rs:660:9:660:17 | [...] | +| main.rs:665:9:665:9 | x | main.rs:665:13:665:14 | 16 | +| main.rs:669:9:669:9 | z | main.rs:669:13:669:14 | 17 | +| main.rs:684:13:684:13 | a | main.rs:684:17:684:35 | MyStruct {...} | +| main.rs:706:9:706:22 | var_from_macro | main.rs:707:9:707:25 | MacroExpr | +| main.rs:707:9:707:21 | var_in_macro | main.rs:707:23:707:24 | 37 | +| main.rs:709:9:709:20 | var_in_macro | main.rs:709:24:709:25 | 33 | +| main.rs:714:15:714:28 | var_in_macro | main.rs:714:15:714:28 | 0 | +| main.rs:720:5:720:5 | x | main.rs:720:9:720:9 | 1 | +| main.rs:725:13:725:13 | x | main.rs:725:17:725:19 | 100 | +| main.rs:726:13:726:15 | cap | main.rs:726:19:731:5 | \|...\| ... | +| main.rs:729:13:729:13 | x | main.rs:729:17:729:19 | 200 | diff --git a/rust/ql/test/library-tests/variables/main.rs b/rust/ql/test/library-tests/variables/main.rs index 97ab183099e..948d9134be3 100644 --- a/rust/ql/test/library-tests/variables/main.rs +++ b/rust/ql/test/library-tests/variables/main.rs @@ -26,6 +26,8 @@ fn mutable_variable() { print_i64(x2); // $ read_access=x2 x2 = 5; // $ write_access=x2 print_i64(x2); // $ read_access=x2 + x2 = x2; // $ read_access=x2 $ write_access=x2 + print_i64(x2); // $ read_access=x2 } fn mutable_variable_immutable_borrow() { diff --git a/rust/ql/test/library-tests/variables/variables.expected b/rust/ql/test/library-tests/variables/variables.expected index 2a8673172d2..d2194a59cad 100644 --- a/rust/ql/test/library-tests/variables/variables.expected +++ b/rust/ql/test/library-tests/variables/variables.expected @@ -5,138 +5,138 @@ variable | main.rs:15:18:15:18 | i | | main.rs:20:9:20:10 | x1 | | main.rs:25:13:25:14 | x2 | -| main.rs:32:13:32:13 | x | -| main.rs:39:9:39:10 | x3 | +| main.rs:34:13:34:13 | x | | main.rs:41:9:41:10 | x3 | -| main.rs:47:9:47:10 | x4 | -| main.rs:50:13:50:14 | x4 | -| main.rs:64:13:64:14 | a1 | -| main.rs:65:13:65:14 | b1 | -| main.rs:68:13:68:13 | x | -| main.rs:69:13:69:13 | y | -| main.rs:79:9:79:10 | p1 | -| main.rs:81:12:81:13 | a2 | -| main.rs:82:12:82:13 | b2 | -| main.rs:89:9:89:10 | s1 | -| main.rs:91:21:91:22 | s2 | -| main.rs:98:9:98:9 | x | -| main.rs:99:14:99:14 | x | -| main.rs:102:13:102:13 | x | -| main.rs:111:9:111:10 | s1 | -| main.rs:113:24:113:25 | s2 | -| main.rs:120:9:120:10 | x6 | -| main.rs:121:9:121:10 | y1 | -| main.rs:125:14:125:15 | y1 | -| main.rs:137:9:137:15 | numbers | -| main.rs:142:13:142:17 | first | -| main.rs:144:13:144:17 | third | -| main.rs:146:13:146:17 | fifth | -| main.rs:157:13:157:17 | first | -| main.rs:159:13:159:16 | last | -| main.rs:168:9:168:10 | p2 | -| main.rs:172:16:172:17 | x7 | -| main.rs:182:9:182:11 | msg | -| main.rs:187:17:187:27 | id_variable | -| main.rs:192:26:192:27 | id | -| main.rs:206:9:206:14 | either | -| main.rs:208:9:208:44 | a3 | -| main.rs:220:9:220:10 | tv | -| main.rs:222:9:222:81 | a4 | -| main.rs:226:9:226:83 | a5 | -| main.rs:230:9:230:83 | a6 | -| main.rs:236:9:236:14 | either | -| main.rs:238:9:238:44 | a7 | -| main.rs:246:9:246:14 | either | -| main.rs:249:13:249:13 | e | -| main.rs:250:14:250:51 | a11 | -| main.rs:253:33:253:35 | a12 | -| main.rs:270:9:270:10 | fv | -| main.rs:272:9:272:109 | a13 | -| main.rs:279:9:279:9 | x | -| main.rs:280:17:280:17 | x | -| main.rs:287:13:287:13 | x | -| main.rs:295:9:295:9 | x | -| main.rs:296:17:296:17 | x | -| main.rs:299:14:299:14 | x | -| main.rs:306:13:306:13 | x | -| main.rs:314:9:314:9 | x | -| main.rs:315:20:315:20 | x | -| main.rs:318:14:318:14 | x | -| main.rs:332:9:332:9 | x | -| main.rs:334:14:334:14 | x | -| main.rs:335:20:335:20 | x | -| main.rs:346:9:346:9 | x | -| main.rs:347:16:347:16 | x | -| main.rs:352:20:352:20 | x | -| main.rs:362:5:362:6 | a8 | -| main.rs:364:9:364:10 | b3 | -| main.rs:365:9:365:10 | c1 | -| main.rs:373:20:373:55 | a9 | -| main.rs:380:13:380:15 | a10 | -| main.rs:381:13:381:14 | b4 | -| main.rs:382:13:382:14 | c2 | -| main.rs:403:13:403:15 | a10 | -| main.rs:404:13:404:14 | b4 | -| main.rs:416:9:416:23 | example_closure | -| main.rs:417:10:417:10 | x | -| main.rs:419:9:419:10 | n1 | -| main.rs:424:9:424:26 | immutable_variable | -| main.rs:425:6:425:6 | x | -| main.rs:427:9:427:10 | n2 | -| main.rs:434:9:434:9 | f | -| main.rs:435:10:435:10 | x | -| main.rs:439:10:439:10 | x | -| main.rs:448:14:448:14 | x | -| main.rs:457:13:457:13 | f | -| main.rs:458:14:458:14 | x | -| main.rs:465:9:465:9 | v | -| main.rs:467:9:467:12 | text | -| main.rs:474:13:474:13 | a | -| main.rs:482:13:482:13 | i | -| main.rs:483:9:483:13 | ref_i | -| main.rs:489:17:489:17 | x | -| main.rs:496:22:496:22 | x | -| main.rs:496:38:496:38 | y | -| main.rs:505:13:505:13 | x | -| main.rs:506:9:506:9 | y | -| main.rs:513:13:513:13 | z | -| main.rs:514:9:514:9 | w | -| main.rs:527:13:527:13 | x | -| main.rs:528:9:528:9 | y | -| main.rs:535:9:535:9 | x | -| main.rs:538:9:538:11 | cap | -| main.rs:546:13:546:13 | x | -| main.rs:549:9:549:16 | closure1 | -| main.rs:555:13:555:13 | y | -| main.rs:558:13:558:20 | closure2 | -| main.rs:564:13:564:13 | z | -| main.rs:567:13:567:20 | closure3 | -| main.rs:575:13:575:13 | i | -| main.rs:576:9:576:13 | block | -| main.rs:584:8:584:8 | b | -| main.rs:585:13:585:13 | x | -| main.rs:602:13:602:14 | b1 | -| main.rs:602:23:602:24 | b2 | -| main.rs:603:9:603:9 | x | -| main.rs:626:20:626:23 | self | -| main.rs:630:11:630:14 | self | -| main.rs:634:23:634:26 | self | -| main.rs:635:17:635:17 | f | -| main.rs:635:22:635:22 | n | -| main.rs:645:13:645:13 | a | -| main.rs:654:13:654:13 | a | -| main.rs:663:9:663:9 | x | -| main.rs:667:9:667:9 | z | -| main.rs:676:17:676:20 | self | -| main.rs:682:13:682:13 | a | -| main.rs:704:9:704:22 | var_from_macro | -| main.rs:705:9:705:21 | var_in_macro | -| main.rs:707:9:707:20 | var_in_macro | -| main.rs:712:15:712:28 | var_in_macro | -| main.rs:717:9:717:9 | x | -| main.rs:723:13:723:13 | x | -| main.rs:724:13:724:15 | cap | -| main.rs:724:20:724:20 | b | +| main.rs:43:9:43:10 | x3 | +| main.rs:49:9:49:10 | x4 | +| main.rs:52:13:52:14 | x4 | +| main.rs:66:13:66:14 | a1 | +| main.rs:67:13:67:14 | b1 | +| main.rs:70:13:70:13 | x | +| main.rs:71:13:71:13 | y | +| main.rs:81:9:81:10 | p1 | +| main.rs:83:12:83:13 | a2 | +| main.rs:84:12:84:13 | b2 | +| main.rs:91:9:91:10 | s1 | +| main.rs:93:21:93:22 | s2 | +| main.rs:100:9:100:9 | x | +| main.rs:101:14:101:14 | x | +| main.rs:104:13:104:13 | x | +| main.rs:113:9:113:10 | s1 | +| main.rs:115:24:115:25 | s2 | +| main.rs:122:9:122:10 | x6 | +| main.rs:123:9:123:10 | y1 | +| main.rs:127:14:127:15 | y1 | +| main.rs:139:9:139:15 | numbers | +| main.rs:144:13:144:17 | first | +| main.rs:146:13:146:17 | third | +| main.rs:148:13:148:17 | fifth | +| main.rs:159:13:159:17 | first | +| main.rs:161:13:161:16 | last | +| main.rs:170:9:170:10 | p2 | +| main.rs:174:16:174:17 | x7 | +| main.rs:184:9:184:11 | msg | +| main.rs:189:17:189:27 | id_variable | +| main.rs:194:26:194:27 | id | +| main.rs:208:9:208:14 | either | +| main.rs:210:9:210:44 | a3 | +| main.rs:222:9:222:10 | tv | +| main.rs:224:9:224:81 | a4 | +| main.rs:228:9:228:83 | a5 | +| main.rs:232:9:232:83 | a6 | +| main.rs:238:9:238:14 | either | +| main.rs:240:9:240:44 | a7 | +| main.rs:248:9:248:14 | either | +| main.rs:251:13:251:13 | e | +| main.rs:252:14:252:51 | a11 | +| main.rs:255:33:255:35 | a12 | +| main.rs:272:9:272:10 | fv | +| main.rs:274:9:274:109 | a13 | +| main.rs:281:9:281:9 | x | +| main.rs:282:17:282:17 | x | +| main.rs:289:13:289:13 | x | +| main.rs:297:9:297:9 | x | +| main.rs:298:17:298:17 | x | +| main.rs:301:14:301:14 | x | +| main.rs:308:13:308:13 | x | +| main.rs:316:9:316:9 | x | +| main.rs:317:20:317:20 | x | +| main.rs:320:14:320:14 | x | +| main.rs:334:9:334:9 | x | +| main.rs:336:14:336:14 | x | +| main.rs:337:20:337:20 | x | +| main.rs:348:9:348:9 | x | +| main.rs:349:16:349:16 | x | +| main.rs:354:20:354:20 | x | +| main.rs:364:5:364:6 | a8 | +| main.rs:366:9:366:10 | b3 | +| main.rs:367:9:367:10 | c1 | +| main.rs:375:20:375:55 | a9 | +| main.rs:382:13:382:15 | a10 | +| main.rs:383:13:383:14 | b4 | +| main.rs:384:13:384:14 | c2 | +| main.rs:405:13:405:15 | a10 | +| main.rs:406:13:406:14 | b4 | +| main.rs:418:9:418:23 | example_closure | +| main.rs:419:10:419:10 | x | +| main.rs:421:9:421:10 | n1 | +| main.rs:426:9:426:26 | immutable_variable | +| main.rs:427:6:427:6 | x | +| main.rs:429:9:429:10 | n2 | +| main.rs:436:9:436:9 | f | +| main.rs:437:10:437:10 | x | +| main.rs:441:10:441:10 | x | +| main.rs:450:14:450:14 | x | +| main.rs:459:13:459:13 | f | +| main.rs:460:14:460:14 | x | +| main.rs:467:9:467:9 | v | +| main.rs:469:9:469:12 | text | +| main.rs:476:13:476:13 | a | +| main.rs:484:13:484:13 | i | +| main.rs:485:9:485:13 | ref_i | +| main.rs:491:17:491:17 | x | +| main.rs:498:22:498:22 | x | +| main.rs:498:38:498:38 | y | +| main.rs:507:13:507:13 | x | +| main.rs:508:9:508:9 | y | +| main.rs:515:13:515:13 | z | +| main.rs:516:9:516:9 | w | +| main.rs:529:13:529:13 | x | +| main.rs:530:9:530:9 | y | +| main.rs:537:9:537:9 | x | +| main.rs:540:9:540:11 | cap | +| main.rs:548:13:548:13 | x | +| main.rs:551:9:551:16 | closure1 | +| main.rs:557:13:557:13 | y | +| main.rs:560:13:560:20 | closure2 | +| main.rs:566:13:566:13 | z | +| main.rs:569:13:569:20 | closure3 | +| main.rs:577:13:577:13 | i | +| main.rs:578:9:578:13 | block | +| main.rs:586:8:586:8 | b | +| main.rs:587:13:587:13 | x | +| main.rs:604:13:604:14 | b1 | +| main.rs:604:23:604:24 | b2 | +| main.rs:605:9:605:9 | x | +| main.rs:628:20:628:23 | self | +| main.rs:632:11:632:14 | self | +| main.rs:636:23:636:26 | self | +| main.rs:637:17:637:17 | f | +| main.rs:637:22:637:22 | n | +| main.rs:647:13:647:13 | a | +| main.rs:656:13:656:13 | a | +| main.rs:665:9:665:9 | x | +| main.rs:669:9:669:9 | z | +| main.rs:678:17:678:20 | self | +| main.rs:684:13:684:13 | a | +| main.rs:706:9:706:22 | var_from_macro | +| main.rs:707:9:707:21 | var_in_macro | +| main.rs:709:9:709:20 | var_in_macro | +| main.rs:714:15:714:28 | var_in_macro | +| main.rs:719:9:719:9 | x | +| main.rs:725:13:725:13 | x | +| main.rs:726:13:726:15 | cap | +| main.rs:726:20:726:20 | b | variableAccess | main.rs:7:20:7:20 | s | main.rs:5:14:5:14 | s | | main.rs:12:20:12:20 | i | main.rs:10:14:10:14 | i | @@ -145,226 +145,230 @@ variableAccess | main.rs:26:15:26:16 | x2 | main.rs:25:13:25:14 | x2 | | main.rs:27:5:27:6 | x2 | main.rs:25:13:25:14 | x2 | | main.rs:28:15:28:16 | x2 | main.rs:25:13:25:14 | x2 | -| main.rs:33:20:33:20 | x | main.rs:32:13:32:13 | x | -| main.rs:34:5:34:5 | x | main.rs:32:13:32:13 | x | -| main.rs:35:20:35:20 | x | main.rs:32:13:32:13 | x | -| main.rs:40:15:40:16 | x3 | main.rs:39:9:39:10 | x3 | -| main.rs:42:9:42:10 | x3 | main.rs:39:9:39:10 | x3 | -| main.rs:43:15:43:16 | x3 | main.rs:41:9:41:10 | x3 | -| main.rs:48:15:48:16 | x4 | main.rs:47:9:47:10 | x4 | -| main.rs:51:19:51:20 | x4 | main.rs:50:13:50:14 | x4 | -| main.rs:53:15:53:16 | x4 | main.rs:47:9:47:10 | x4 | -| main.rs:72:15:72:16 | a1 | main.rs:64:13:64:14 | a1 | -| main.rs:73:15:73:16 | b1 | main.rs:65:13:65:14 | b1 | -| main.rs:74:15:74:15 | x | main.rs:68:13:68:13 | x | -| main.rs:75:15:75:15 | y | main.rs:69:13:69:13 | y | -| main.rs:83:9:83:10 | p1 | main.rs:79:9:79:10 | p1 | -| main.rs:84:15:84:16 | a2 | main.rs:81:12:81:13 | a2 | -| main.rs:85:15:85:16 | b2 | main.rs:82:12:82:13 | b2 | -| main.rs:92:11:92:12 | s1 | main.rs:89:9:89:10 | s1 | -| main.rs:93:19:93:20 | s2 | main.rs:91:21:91:22 | s2 | -| main.rs:100:7:100:7 | x | main.rs:98:9:98:9 | x | -| main.rs:103:13:103:13 | x | main.rs:98:9:98:9 | x | -| main.rs:104:19:104:19 | x | main.rs:102:13:102:13 | x | -| main.rs:107:15:107:15 | x | main.rs:99:14:99:14 | x | -| main.rs:114:11:114:12 | s1 | main.rs:111:9:111:10 | s1 | -| main.rs:115:19:115:20 | s2 | main.rs:113:24:113:25 | s2 | -| main.rs:123:11:123:12 | x6 | main.rs:120:9:120:10 | x6 | -| main.rs:128:23:128:24 | y1 | main.rs:125:14:125:15 | y1 | -| main.rs:133:15:133:16 | y1 | main.rs:121:9:121:10 | y1 | -| main.rs:139:11:139:17 | numbers | main.rs:137:9:137:15 | numbers | -| main.rs:148:23:148:27 | first | main.rs:142:13:142:17 | first | -| main.rs:149:23:149:27 | third | main.rs:144:13:144:17 | third | -| main.rs:150:23:150:27 | fifth | main.rs:146:13:146:17 | fifth | -| main.rs:154:11:154:17 | numbers | main.rs:137:9:137:15 | numbers | -| main.rs:161:23:161:27 | first | main.rs:157:13:157:17 | first | -| main.rs:162:23:162:26 | last | main.rs:159:13:159:16 | last | -| main.rs:170:11:170:12 | p2 | main.rs:168:9:168:10 | p2 | -| main.rs:173:24:173:25 | x7 | main.rs:172:16:172:17 | x7 | -| main.rs:184:11:184:13 | msg | main.rs:182:9:182:11 | msg | -| main.rs:188:24:188:34 | id_variable | main.rs:187:17:187:27 | id_variable | -| main.rs:195:23:195:24 | id | main.rs:192:26:192:27 | id | -| main.rs:207:11:207:16 | either | main.rs:206:9:206:14 | either | -| main.rs:209:26:209:27 | a3 | main.rs:208:9:208:44 | a3 | -| main.rs:221:11:221:12 | tv | main.rs:220:9:220:10 | tv | -| main.rs:223:26:223:27 | a4 | main.rs:222:9:222:81 | a4 | -| main.rs:225:11:225:12 | tv | main.rs:220:9:220:10 | tv | -| main.rs:227:26:227:27 | a5 | main.rs:226:9:226:83 | a5 | -| main.rs:229:11:229:12 | tv | main.rs:220:9:220:10 | tv | -| main.rs:231:26:231:27 | a6 | main.rs:230:9:230:83 | a6 | -| main.rs:237:11:237:16 | either | main.rs:236:9:236:14 | either | -| main.rs:239:16:239:17 | a7 | main.rs:238:9:238:44 | a7 | -| main.rs:240:26:240:27 | a7 | main.rs:238:9:238:44 | a7 | -| main.rs:248:11:248:16 | either | main.rs:246:9:246:14 | either | -| main.rs:252:23:252:25 | a11 | main.rs:250:14:250:51 | a11 | -| main.rs:254:15:254:15 | e | main.rs:249:13:249:13 | e | -| main.rs:255:28:255:30 | a12 | main.rs:253:33:253:35 | a12 | -| main.rs:271:11:271:12 | fv | main.rs:270:9:270:10 | fv | -| main.rs:273:26:273:28 | a13 | main.rs:272:9:272:109 | a13 | -| main.rs:281:7:281:7 | x | main.rs:279:9:279:9 | x | -| main.rs:283:5:283:5 | x | main.rs:280:17:280:17 | x | -| main.rs:285:19:285:19 | x | main.rs:280:17:280:17 | x | -| main.rs:288:13:288:13 | x | main.rs:279:9:279:9 | x | -| main.rs:289:19:289:19 | x | main.rs:287:13:287:13 | x | -| main.rs:297:7:297:7 | x | main.rs:295:9:295:9 | x | -| main.rs:300:12:300:12 | x | main.rs:296:17:296:17 | x | -| main.rs:302:5:302:5 | x | main.rs:299:14:299:14 | x | -| main.rs:304:19:304:19 | x | main.rs:299:14:299:14 | x | -| main.rs:307:13:307:13 | x | main.rs:295:9:295:9 | x | -| main.rs:308:19:308:19 | x | main.rs:306:13:306:13 | x | -| main.rs:316:7:316:7 | x | main.rs:314:9:314:9 | x | -| main.rs:319:12:319:12 | x | main.rs:315:20:315:20 | x | -| main.rs:321:5:321:5 | x | main.rs:318:14:318:14 | x | -| main.rs:323:19:323:19 | x | main.rs:318:14:318:14 | x | -| main.rs:327:15:327:15 | x | main.rs:314:9:314:9 | x | -| main.rs:333:11:333:11 | x | main.rs:332:9:332:9 | x | -| main.rs:336:18:336:18 | x | main.rs:334:14:334:14 | x | -| main.rs:337:19:337:19 | x | main.rs:335:20:335:20 | x | -| main.rs:341:15:341:15 | x | main.rs:332:9:332:9 | x | -| main.rs:348:7:348:7 | x | main.rs:346:9:346:9 | x | -| main.rs:350:19:350:19 | x | main.rs:347:16:347:16 | x | -| main.rs:353:7:353:7 | x | main.rs:346:9:346:9 | x | -| main.rs:355:19:355:19 | x | main.rs:352:20:352:20 | x | -| main.rs:357:19:357:19 | x | main.rs:346:9:346:9 | x | -| main.rs:368:15:368:16 | a8 | main.rs:362:5:362:6 | a8 | -| main.rs:369:15:369:16 | b3 | main.rs:364:9:364:10 | b3 | -| main.rs:370:15:370:16 | c1 | main.rs:365:9:365:10 | c1 | -| main.rs:375:15:375:16 | a9 | main.rs:373:20:373:55 | a9 | -| main.rs:384:15:384:17 | a10 | main.rs:380:13:380:15 | a10 | -| main.rs:385:15:385:16 | b4 | main.rs:381:13:381:14 | b4 | -| main.rs:386:15:386:16 | c2 | main.rs:382:13:382:14 | c2 | -| main.rs:389:9:389:10 | c2 | main.rs:382:13:382:14 | c2 | -| main.rs:390:9:390:10 | b4 | main.rs:381:13:381:14 | b4 | -| main.rs:391:9:391:11 | a10 | main.rs:380:13:380:15 | a10 | -| main.rs:393:9:393:11 | a10 | main.rs:380:13:380:15 | a10 | -| main.rs:394:9:394:10 | b4 | main.rs:381:13:381:14 | b4 | -| main.rs:395:9:395:10 | c2 | main.rs:382:13:382:14 | c2 | -| main.rs:397:15:397:17 | a10 | main.rs:380:13:380:15 | a10 | -| main.rs:398:15:398:16 | b4 | main.rs:381:13:381:14 | b4 | -| main.rs:399:15:399:16 | c2 | main.rs:382:13:382:14 | c2 | -| main.rs:406:23:406:25 | a10 | main.rs:403:13:403:15 | a10 | -| main.rs:407:23:407:24 | b4 | main.rs:404:13:404:14 | b4 | -| main.rs:411:15:411:17 | a10 | main.rs:380:13:380:15 | a10 | -| main.rs:412:15:412:16 | b4 | main.rs:381:13:381:14 | b4 | -| main.rs:418:9:418:9 | x | main.rs:417:10:417:10 | x | -| main.rs:420:9:420:23 | example_closure | main.rs:416:9:416:23 | example_closure | -| main.rs:421:15:421:16 | n1 | main.rs:419:9:419:10 | n1 | -| main.rs:426:9:426:9 | x | main.rs:425:6:425:6 | x | -| main.rs:428:9:428:26 | immutable_variable | main.rs:424:9:424:26 | immutable_variable | -| main.rs:429:15:429:16 | n2 | main.rs:427:9:427:10 | n2 | -| main.rs:436:9:436:9 | x | main.rs:435:10:435:10 | x | -| main.rs:437:15:437:15 | f | main.rs:434:9:434:9 | f | -| main.rs:441:9:441:9 | x | main.rs:439:10:439:10 | x | -| main.rs:444:15:444:15 | f | main.rs:434:9:434:9 | f | -| main.rs:450:17:450:17 | x | main.rs:448:14:448:14 | x | -| main.rs:459:13:459:13 | x | main.rs:458:14:458:14 | x | -| main.rs:460:19:460:19 | f | main.rs:457:13:457:13 | f | -| main.rs:468:12:468:12 | v | main.rs:465:9:465:9 | v | -| main.rs:469:19:469:22 | text | main.rs:467:9:467:12 | text | -| main.rs:475:5:475:5 | a | main.rs:474:13:474:13 | a | -| main.rs:476:15:476:15 | a | main.rs:474:13:474:13 | a | -| main.rs:477:11:477:11 | a | main.rs:474:13:474:13 | a | -| main.rs:478:15:478:15 | a | main.rs:474:13:474:13 | a | -| main.rs:484:14:484:14 | i | main.rs:482:13:482:13 | i | -| main.rs:485:6:485:10 | ref_i | main.rs:483:9:483:13 | ref_i | -| main.rs:486:15:486:15 | i | main.rs:482:13:482:13 | i | -| main.rs:490:6:490:6 | x | main.rs:489:17:489:17 | x | -| main.rs:491:10:491:10 | x | main.rs:489:17:489:17 | x | -| main.rs:492:10:492:10 | x | main.rs:489:17:489:17 | x | -| main.rs:493:12:493:12 | x | main.rs:489:17:489:17 | x | -| main.rs:497:6:497:6 | x | main.rs:496:22:496:22 | x | -| main.rs:498:10:498:10 | x | main.rs:496:22:496:22 | x | -| main.rs:499:10:499:10 | x | main.rs:496:22:496:22 | x | -| main.rs:500:6:500:6 | y | main.rs:496:38:496:38 | y | -| main.rs:501:9:501:9 | x | main.rs:496:22:496:22 | x | -| main.rs:507:27:507:27 | x | main.rs:505:13:505:13 | x | -| main.rs:508:6:508:6 | y | main.rs:506:9:506:9 | y | -| main.rs:511:15:511:15 | x | main.rs:505:13:505:13 | x | -| main.rs:515:19:515:19 | x | main.rs:505:13:505:13 | x | -| main.rs:517:14:517:14 | z | main.rs:513:13:513:13 | z | -| main.rs:518:9:518:9 | w | main.rs:514:9:514:9 | w | -| main.rs:520:7:520:7 | w | main.rs:514:9:514:9 | w | -| main.rs:523:15:523:15 | z | main.rs:513:13:513:13 | z | -| main.rs:529:14:529:14 | x | main.rs:527:13:527:13 | x | -| main.rs:530:6:530:6 | y | main.rs:528:9:528:9 | y | -| main.rs:531:15:531:15 | x | main.rs:527:13:527:13 | x | -| main.rs:539:19:539:19 | x | main.rs:535:9:535:9 | x | -| main.rs:541:5:541:7 | cap | main.rs:538:9:538:11 | cap | -| main.rs:542:15:542:15 | x | main.rs:535:9:535:9 | x | -| main.rs:550:19:550:19 | x | main.rs:546:13:546:13 | x | -| main.rs:552:5:552:12 | closure1 | main.rs:549:9:549:16 | closure1 | -| main.rs:553:15:553:15 | x | main.rs:546:13:546:13 | x | -| main.rs:559:9:559:9 | y | main.rs:555:13:555:13 | y | -| main.rs:561:5:561:12 | closure2 | main.rs:558:13:558:20 | closure2 | -| main.rs:562:15:562:15 | y | main.rs:555:13:555:13 | y | -| main.rs:568:9:568:9 | z | main.rs:564:13:564:13 | z | -| main.rs:570:5:570:12 | closure3 | main.rs:567:13:567:20 | closure3 | -| main.rs:571:15:571:15 | z | main.rs:564:13:564:13 | z | -| main.rs:577:9:577:9 | i | main.rs:575:13:575:13 | i | -| main.rs:580:5:580:9 | block | main.rs:576:9:576:13 | block | -| main.rs:581:15:581:15 | i | main.rs:575:13:575:13 | i | -| main.rs:586:15:586:15 | x | main.rs:585:13:585:13 | x | -| main.rs:587:15:587:15 | x | main.rs:585:13:585:13 | x | -| main.rs:589:16:589:16 | b | main.rs:584:8:584:8 | b | -| main.rs:591:9:591:9 | x | main.rs:585:13:585:13 | x | -| main.rs:592:19:592:19 | x | main.rs:585:13:585:13 | x | -| main.rs:593:19:593:19 | x | main.rs:585:13:585:13 | x | -| main.rs:595:9:595:9 | x | main.rs:585:13:585:13 | x | -| main.rs:596:19:596:19 | x | main.rs:585:13:585:13 | x | -| main.rs:597:19:597:19 | x | main.rs:585:13:585:13 | x | -| main.rs:599:15:599:15 | x | main.rs:585:13:585:13 | x | -| main.rs:605:16:605:17 | b1 | main.rs:602:13:602:14 | b1 | -| main.rs:607:19:607:19 | x | main.rs:603:9:603:9 | x | -| main.rs:609:19:609:19 | x | main.rs:603:9:603:9 | x | -| main.rs:613:16:613:17 | b2 | main.rs:602:23:602:24 | b2 | -| main.rs:615:19:615:19 | x | main.rs:603:9:603:9 | x | -| main.rs:617:19:617:19 | x | main.rs:603:9:603:9 | x | -| main.rs:627:16:627:19 | self | main.rs:626:20:626:23 | self | -| main.rs:631:9:631:12 | self | main.rs:630:11:630:14 | self | -| main.rs:637:13:637:16 | self | main.rs:634:23:634:26 | self | -| main.rs:637:25:637:25 | n | main.rs:635:22:635:22 | n | -| main.rs:639:9:639:9 | f | main.rs:635:17:635:17 | f | -| main.rs:640:9:640:9 | f | main.rs:635:17:635:17 | f | -| main.rs:646:15:646:15 | a | main.rs:645:13:645:13 | a | -| main.rs:647:5:647:5 | a | main.rs:645:13:645:13 | a | -| main.rs:648:15:648:15 | a | main.rs:645:13:645:13 | a | -| main.rs:649:5:649:5 | a | main.rs:645:13:645:13 | a | -| main.rs:650:15:650:15 | a | main.rs:645:13:645:13 | a | -| main.rs:655:15:655:15 | a | main.rs:654:13:654:13 | a | -| main.rs:656:5:656:5 | a | main.rs:654:13:654:13 | a | -| main.rs:657:15:657:15 | a | main.rs:654:13:654:13 | a | -| main.rs:658:5:658:5 | a | main.rs:654:13:654:13 | a | -| main.rs:659:15:659:15 | a | main.rs:654:13:654:13 | a | -| main.rs:664:20:664:20 | x | main.rs:663:9:663:9 | x | -| main.rs:665:15:665:15 | x | main.rs:663:9:663:9 | x | -| main.rs:668:20:668:20 | z | main.rs:667:9:667:9 | z | -| main.rs:677:10:677:13 | self | main.rs:676:17:676:20 | self | -| main.rs:683:5:683:5 | a | main.rs:682:13:682:13 | a | -| main.rs:686:15:686:15 | a | main.rs:682:13:682:13 | a | -| main.rs:705:9:705:21 | var_in_macro | main.rs:705:9:705:21 | var_in_macro | -| main.rs:706:15:706:28 | var_from_macro | main.rs:704:9:704:22 | var_from_macro | -| main.rs:712:30:712:41 | var_in_macro | main.rs:712:15:712:28 | var_in_macro | -| main.rs:713:15:713:26 | var_in_macro | main.rs:707:9:707:20 | var_in_macro | -| main.rs:718:5:718:5 | x | main.rs:717:9:717:9 | x | -| main.rs:719:15:719:15 | x | main.rs:717:9:717:9 | x | -| main.rs:726:20:726:20 | b | main.rs:724:20:724:20 | b | -| main.rs:727:13:727:13 | x | main.rs:723:13:723:13 | x | -| main.rs:730:5:730:7 | cap | main.rs:724:13:724:15 | cap | -| main.rs:731:15:731:15 | x | main.rs:723:13:723:13 | x | +| main.rs:29:5:29:6 | x2 | main.rs:25:13:25:14 | x2 | +| main.rs:29:10:29:11 | x2 | main.rs:25:13:25:14 | x2 | +| main.rs:30:15:30:16 | x2 | main.rs:25:13:25:14 | x2 | +| main.rs:35:20:35:20 | x | main.rs:34:13:34:13 | x | +| main.rs:36:5:36:5 | x | main.rs:34:13:34:13 | x | +| main.rs:37:20:37:20 | x | main.rs:34:13:34:13 | x | +| main.rs:42:15:42:16 | x3 | main.rs:41:9:41:10 | x3 | +| main.rs:44:9:44:10 | x3 | main.rs:41:9:41:10 | x3 | +| main.rs:45:15:45:16 | x3 | main.rs:43:9:43:10 | x3 | +| main.rs:50:15:50:16 | x4 | main.rs:49:9:49:10 | x4 | +| main.rs:53:19:53:20 | x4 | main.rs:52:13:52:14 | x4 | +| main.rs:55:15:55:16 | x4 | main.rs:49:9:49:10 | x4 | +| main.rs:74:15:74:16 | a1 | main.rs:66:13:66:14 | a1 | +| main.rs:75:15:75:16 | b1 | main.rs:67:13:67:14 | b1 | +| main.rs:76:15:76:15 | x | main.rs:70:13:70:13 | x | +| main.rs:77:15:77:15 | y | main.rs:71:13:71:13 | y | +| main.rs:85:9:85:10 | p1 | main.rs:81:9:81:10 | p1 | +| main.rs:86:15:86:16 | a2 | main.rs:83:12:83:13 | a2 | +| main.rs:87:15:87:16 | b2 | main.rs:84:12:84:13 | b2 | +| main.rs:94:11:94:12 | s1 | main.rs:91:9:91:10 | s1 | +| main.rs:95:19:95:20 | s2 | main.rs:93:21:93:22 | s2 | +| main.rs:102:7:102:7 | x | main.rs:100:9:100:9 | x | +| main.rs:105:13:105:13 | x | main.rs:100:9:100:9 | x | +| main.rs:106:19:106:19 | x | main.rs:104:13:104:13 | x | +| main.rs:109:15:109:15 | x | main.rs:101:14:101:14 | x | +| main.rs:116:11:116:12 | s1 | main.rs:113:9:113:10 | s1 | +| main.rs:117:19:117:20 | s2 | main.rs:115:24:115:25 | s2 | +| main.rs:125:11:125:12 | x6 | main.rs:122:9:122:10 | x6 | +| main.rs:130:23:130:24 | y1 | main.rs:127:14:127:15 | y1 | +| main.rs:135:15:135:16 | y1 | main.rs:123:9:123:10 | y1 | +| main.rs:141:11:141:17 | numbers | main.rs:139:9:139:15 | numbers | +| main.rs:150:23:150:27 | first | main.rs:144:13:144:17 | first | +| main.rs:151:23:151:27 | third | main.rs:146:13:146:17 | third | +| main.rs:152:23:152:27 | fifth | main.rs:148:13:148:17 | fifth | +| main.rs:156:11:156:17 | numbers | main.rs:139:9:139:15 | numbers | +| main.rs:163:23:163:27 | first | main.rs:159:13:159:17 | first | +| main.rs:164:23:164:26 | last | main.rs:161:13:161:16 | last | +| main.rs:172:11:172:12 | p2 | main.rs:170:9:170:10 | p2 | +| main.rs:175:24:175:25 | x7 | main.rs:174:16:174:17 | x7 | +| main.rs:186:11:186:13 | msg | main.rs:184:9:184:11 | msg | +| main.rs:190:24:190:34 | id_variable | main.rs:189:17:189:27 | id_variable | +| main.rs:197:23:197:24 | id | main.rs:194:26:194:27 | id | +| main.rs:209:11:209:16 | either | main.rs:208:9:208:14 | either | +| main.rs:211:26:211:27 | a3 | main.rs:210:9:210:44 | a3 | +| main.rs:223:11:223:12 | tv | main.rs:222:9:222:10 | tv | +| main.rs:225:26:225:27 | a4 | main.rs:224:9:224:81 | a4 | +| main.rs:227:11:227:12 | tv | main.rs:222:9:222:10 | tv | +| main.rs:229:26:229:27 | a5 | main.rs:228:9:228:83 | a5 | +| main.rs:231:11:231:12 | tv | main.rs:222:9:222:10 | tv | +| main.rs:233:26:233:27 | a6 | main.rs:232:9:232:83 | a6 | +| main.rs:239:11:239:16 | either | main.rs:238:9:238:14 | either | +| main.rs:241:16:241:17 | a7 | main.rs:240:9:240:44 | a7 | +| main.rs:242:26:242:27 | a7 | main.rs:240:9:240:44 | a7 | +| main.rs:250:11:250:16 | either | main.rs:248:9:248:14 | either | +| main.rs:254:23:254:25 | a11 | main.rs:252:14:252:51 | a11 | +| main.rs:256:15:256:15 | e | main.rs:251:13:251:13 | e | +| main.rs:257:28:257:30 | a12 | main.rs:255:33:255:35 | a12 | +| main.rs:273:11:273:12 | fv | main.rs:272:9:272:10 | fv | +| main.rs:275:26:275:28 | a13 | main.rs:274:9:274:109 | a13 | +| main.rs:283:7:283:7 | x | main.rs:281:9:281:9 | x | +| main.rs:285:5:285:5 | x | main.rs:282:17:282:17 | x | +| main.rs:287:19:287:19 | x | main.rs:282:17:282:17 | x | +| main.rs:290:13:290:13 | x | main.rs:281:9:281:9 | x | +| main.rs:291:19:291:19 | x | main.rs:289:13:289:13 | x | +| main.rs:299:7:299:7 | x | main.rs:297:9:297:9 | x | +| main.rs:302:12:302:12 | x | main.rs:298:17:298:17 | x | +| main.rs:304:5:304:5 | x | main.rs:301:14:301:14 | x | +| main.rs:306:19:306:19 | x | main.rs:301:14:301:14 | x | +| main.rs:309:13:309:13 | x | main.rs:297:9:297:9 | x | +| main.rs:310:19:310:19 | x | main.rs:308:13:308:13 | x | +| main.rs:318:7:318:7 | x | main.rs:316:9:316:9 | x | +| main.rs:321:12:321:12 | x | main.rs:317:20:317:20 | x | +| main.rs:323:5:323:5 | x | main.rs:320:14:320:14 | x | +| main.rs:325:19:325:19 | x | main.rs:320:14:320:14 | x | +| main.rs:329:15:329:15 | x | main.rs:316:9:316:9 | x | +| main.rs:335:11:335:11 | x | main.rs:334:9:334:9 | x | +| main.rs:338:18:338:18 | x | main.rs:336:14:336:14 | x | +| main.rs:339:19:339:19 | x | main.rs:337:20:337:20 | x | +| main.rs:343:15:343:15 | x | main.rs:334:9:334:9 | x | +| main.rs:350:7:350:7 | x | main.rs:348:9:348:9 | x | +| main.rs:352:19:352:19 | x | main.rs:349:16:349:16 | x | +| main.rs:355:7:355:7 | x | main.rs:348:9:348:9 | x | +| main.rs:357:19:357:19 | x | main.rs:354:20:354:20 | x | +| main.rs:359:19:359:19 | x | main.rs:348:9:348:9 | x | +| main.rs:370:15:370:16 | a8 | main.rs:364:5:364:6 | a8 | +| main.rs:371:15:371:16 | b3 | main.rs:366:9:366:10 | b3 | +| main.rs:372:15:372:16 | c1 | main.rs:367:9:367:10 | c1 | +| main.rs:377:15:377:16 | a9 | main.rs:375:20:375:55 | a9 | +| main.rs:386:15:386:17 | a10 | main.rs:382:13:382:15 | a10 | +| main.rs:387:15:387:16 | b4 | main.rs:383:13:383:14 | b4 | +| main.rs:388:15:388:16 | c2 | main.rs:384:13:384:14 | c2 | +| main.rs:391:9:391:10 | c2 | main.rs:384:13:384:14 | c2 | +| main.rs:392:9:392:10 | b4 | main.rs:383:13:383:14 | b4 | +| main.rs:393:9:393:11 | a10 | main.rs:382:13:382:15 | a10 | +| main.rs:395:9:395:11 | a10 | main.rs:382:13:382:15 | a10 | +| main.rs:396:9:396:10 | b4 | main.rs:383:13:383:14 | b4 | +| main.rs:397:9:397:10 | c2 | main.rs:384:13:384:14 | c2 | +| main.rs:399:15:399:17 | a10 | main.rs:382:13:382:15 | a10 | +| main.rs:400:15:400:16 | b4 | main.rs:383:13:383:14 | b4 | +| main.rs:401:15:401:16 | c2 | main.rs:384:13:384:14 | c2 | +| main.rs:408:23:408:25 | a10 | main.rs:405:13:405:15 | a10 | +| main.rs:409:23:409:24 | b4 | main.rs:406:13:406:14 | b4 | +| main.rs:413:15:413:17 | a10 | main.rs:382:13:382:15 | a10 | +| main.rs:414:15:414:16 | b4 | main.rs:383:13:383:14 | b4 | +| main.rs:420:9:420:9 | x | main.rs:419:10:419:10 | x | +| main.rs:422:9:422:23 | example_closure | main.rs:418:9:418:23 | example_closure | +| main.rs:423:15:423:16 | n1 | main.rs:421:9:421:10 | n1 | +| main.rs:428:9:428:9 | x | main.rs:427:6:427:6 | x | +| main.rs:430:9:430:26 | immutable_variable | main.rs:426:9:426:26 | immutable_variable | +| main.rs:431:15:431:16 | n2 | main.rs:429:9:429:10 | n2 | +| main.rs:438:9:438:9 | x | main.rs:437:10:437:10 | x | +| main.rs:439:15:439:15 | f | main.rs:436:9:436:9 | f | +| main.rs:443:9:443:9 | x | main.rs:441:10:441:10 | x | +| main.rs:446:15:446:15 | f | main.rs:436:9:436:9 | f | +| main.rs:452:17:452:17 | x | main.rs:450:14:450:14 | x | +| main.rs:461:13:461:13 | x | main.rs:460:14:460:14 | x | +| main.rs:462:19:462:19 | f | main.rs:459:13:459:13 | f | +| main.rs:470:12:470:12 | v | main.rs:467:9:467:9 | v | +| main.rs:471:19:471:22 | text | main.rs:469:9:469:12 | text | +| main.rs:477:5:477:5 | a | main.rs:476:13:476:13 | a | +| main.rs:478:15:478:15 | a | main.rs:476:13:476:13 | a | +| main.rs:479:11:479:11 | a | main.rs:476:13:476:13 | a | +| main.rs:480:15:480:15 | a | main.rs:476:13:476:13 | a | +| main.rs:486:14:486:14 | i | main.rs:484:13:484:13 | i | +| main.rs:487:6:487:10 | ref_i | main.rs:485:9:485:13 | ref_i | +| main.rs:488:15:488:15 | i | main.rs:484:13:484:13 | i | +| main.rs:492:6:492:6 | x | main.rs:491:17:491:17 | x | +| main.rs:493:10:493:10 | x | main.rs:491:17:491:17 | x | +| main.rs:494:10:494:10 | x | main.rs:491:17:491:17 | x | +| main.rs:495:12:495:12 | x | main.rs:491:17:491:17 | x | +| main.rs:499:6:499:6 | x | main.rs:498:22:498:22 | x | +| main.rs:500:10:500:10 | x | main.rs:498:22:498:22 | x | +| main.rs:501:10:501:10 | x | main.rs:498:22:498:22 | x | +| main.rs:502:6:502:6 | y | main.rs:498:38:498:38 | y | +| main.rs:503:9:503:9 | x | main.rs:498:22:498:22 | x | +| main.rs:509:27:509:27 | x | main.rs:507:13:507:13 | x | +| main.rs:510:6:510:6 | y | main.rs:508:9:508:9 | y | +| main.rs:513:15:513:15 | x | main.rs:507:13:507:13 | x | +| main.rs:517:19:517:19 | x | main.rs:507:13:507:13 | x | +| main.rs:519:14:519:14 | z | main.rs:515:13:515:13 | z | +| main.rs:520:9:520:9 | w | main.rs:516:9:516:9 | w | +| main.rs:522:7:522:7 | w | main.rs:516:9:516:9 | w | +| main.rs:525:15:525:15 | z | main.rs:515:13:515:13 | z | +| main.rs:531:14:531:14 | x | main.rs:529:13:529:13 | x | +| main.rs:532:6:532:6 | y | main.rs:530:9:530:9 | y | +| main.rs:533:15:533:15 | x | main.rs:529:13:529:13 | x | +| main.rs:541:19:541:19 | x | main.rs:537:9:537:9 | x | +| main.rs:543:5:543:7 | cap | main.rs:540:9:540:11 | cap | +| main.rs:544:15:544:15 | x | main.rs:537:9:537:9 | x | +| main.rs:552:19:552:19 | x | main.rs:548:13:548:13 | x | +| main.rs:554:5:554:12 | closure1 | main.rs:551:9:551:16 | closure1 | +| main.rs:555:15:555:15 | x | main.rs:548:13:548:13 | x | +| main.rs:561:9:561:9 | y | main.rs:557:13:557:13 | y | +| main.rs:563:5:563:12 | closure2 | main.rs:560:13:560:20 | closure2 | +| main.rs:564:15:564:15 | y | main.rs:557:13:557:13 | y | +| main.rs:570:9:570:9 | z | main.rs:566:13:566:13 | z | +| main.rs:572:5:572:12 | closure3 | main.rs:569:13:569:20 | closure3 | +| main.rs:573:15:573:15 | z | main.rs:566:13:566:13 | z | +| main.rs:579:9:579:9 | i | main.rs:577:13:577:13 | i | +| main.rs:582:5:582:9 | block | main.rs:578:9:578:13 | block | +| main.rs:583:15:583:15 | i | main.rs:577:13:577:13 | i | +| main.rs:588:15:588:15 | x | main.rs:587:13:587:13 | x | +| main.rs:589:15:589:15 | x | main.rs:587:13:587:13 | x | +| main.rs:591:16:591:16 | b | main.rs:586:8:586:8 | b | +| main.rs:593:9:593:9 | x | main.rs:587:13:587:13 | x | +| main.rs:594:19:594:19 | x | main.rs:587:13:587:13 | x | +| main.rs:595:19:595:19 | x | main.rs:587:13:587:13 | x | +| main.rs:597:9:597:9 | x | main.rs:587:13:587:13 | x | +| main.rs:598:19:598:19 | x | main.rs:587:13:587:13 | x | +| main.rs:599:19:599:19 | x | main.rs:587:13:587:13 | x | +| main.rs:601:15:601:15 | x | main.rs:587:13:587:13 | x | +| main.rs:607:16:607:17 | b1 | main.rs:604:13:604:14 | b1 | +| main.rs:609:19:609:19 | x | main.rs:605:9:605:9 | x | +| main.rs:611:19:611:19 | x | main.rs:605:9:605:9 | x | +| main.rs:615:16:615:17 | b2 | main.rs:604:23:604:24 | b2 | +| main.rs:617:19:617:19 | x | main.rs:605:9:605:9 | x | +| main.rs:619:19:619:19 | x | main.rs:605:9:605:9 | x | +| main.rs:629:16:629:19 | self | main.rs:628:20:628:23 | self | +| main.rs:633:9:633:12 | self | main.rs:632:11:632:14 | self | +| main.rs:639:13:639:16 | self | main.rs:636:23:636:26 | self | +| main.rs:639:25:639:25 | n | main.rs:637:22:637:22 | n | +| main.rs:641:9:641:9 | f | main.rs:637:17:637:17 | f | +| main.rs:642:9:642:9 | f | main.rs:637:17:637:17 | f | +| main.rs:648:15:648:15 | a | main.rs:647:13:647:13 | a | +| main.rs:649:5:649:5 | a | main.rs:647:13:647:13 | a | +| main.rs:650:15:650:15 | a | main.rs:647:13:647:13 | a | +| main.rs:651:5:651:5 | a | main.rs:647:13:647:13 | a | +| main.rs:652:15:652:15 | a | main.rs:647:13:647:13 | a | +| main.rs:657:15:657:15 | a | main.rs:656:13:656:13 | a | +| main.rs:658:5:658:5 | a | main.rs:656:13:656:13 | a | +| main.rs:659:15:659:15 | a | main.rs:656:13:656:13 | a | +| main.rs:660:5:660:5 | a | main.rs:656:13:656:13 | a | +| main.rs:661:15:661:15 | a | main.rs:656:13:656:13 | a | +| main.rs:666:20:666:20 | x | main.rs:665:9:665:9 | x | +| main.rs:667:15:667:15 | x | main.rs:665:9:665:9 | x | +| main.rs:670:20:670:20 | z | main.rs:669:9:669:9 | z | +| main.rs:679:10:679:13 | self | main.rs:678:17:678:20 | self | +| main.rs:685:5:685:5 | a | main.rs:684:13:684:13 | a | +| main.rs:688:15:688:15 | a | main.rs:684:13:684:13 | a | +| main.rs:707:9:707:21 | var_in_macro | main.rs:707:9:707:21 | var_in_macro | +| main.rs:708:15:708:28 | var_from_macro | main.rs:706:9:706:22 | var_from_macro | +| main.rs:714:30:714:41 | var_in_macro | main.rs:714:15:714:28 | var_in_macro | +| main.rs:715:15:715:26 | var_in_macro | main.rs:709:9:709:20 | var_in_macro | +| main.rs:720:5:720:5 | x | main.rs:719:9:719:9 | x | +| main.rs:721:15:721:15 | x | main.rs:719:9:719:9 | x | +| main.rs:728:20:728:20 | b | main.rs:726:20:726:20 | b | +| main.rs:729:13:729:13 | x | main.rs:725:13:725:13 | x | +| main.rs:732:5:732:7 | cap | main.rs:726:13:726:15 | cap | +| main.rs:733:15:733:15 | x | main.rs:725:13:725:13 | x | variableWriteAccess | main.rs:27:5:27:6 | x2 | main.rs:25:13:25:14 | x2 | -| main.rs:34:5:34:5 | x | main.rs:32:13:32:13 | x | -| main.rs:389:9:389:10 | c2 | main.rs:382:13:382:14 | c2 | -| main.rs:390:9:390:10 | b4 | main.rs:381:13:381:14 | b4 | -| main.rs:391:9:391:11 | a10 | main.rs:380:13:380:15 | a10 | -| main.rs:559:9:559:9 | y | main.rs:555:13:555:13 | y | -| main.rs:577:9:577:9 | i | main.rs:575:13:575:13 | i | -| main.rs:591:9:591:9 | x | main.rs:585:13:585:13 | x | -| main.rs:595:9:595:9 | x | main.rs:585:13:585:13 | x | -| main.rs:649:5:649:5 | a | main.rs:645:13:645:13 | a | -| main.rs:658:5:658:5 | a | main.rs:654:13:654:13 | a | -| main.rs:718:5:718:5 | x | main.rs:717:9:717:9 | x | -| main.rs:727:13:727:13 | x | main.rs:723:13:723:13 | x | +| main.rs:29:5:29:6 | x2 | main.rs:25:13:25:14 | x2 | +| main.rs:36:5:36:5 | x | main.rs:34:13:34:13 | x | +| main.rs:391:9:391:10 | c2 | main.rs:384:13:384:14 | c2 | +| main.rs:392:9:392:10 | b4 | main.rs:383:13:383:14 | b4 | +| main.rs:393:9:393:11 | a10 | main.rs:382:13:382:15 | a10 | +| main.rs:561:9:561:9 | y | main.rs:557:13:557:13 | y | +| main.rs:579:9:579:9 | i | main.rs:577:13:577:13 | i | +| main.rs:593:9:593:9 | x | main.rs:587:13:587:13 | x | +| main.rs:597:9:597:9 | x | main.rs:587:13:587:13 | x | +| main.rs:651:5:651:5 | a | main.rs:647:13:647:13 | a | +| main.rs:660:5:660:5 | a | main.rs:656:13:656:13 | a | +| main.rs:720:5:720:5 | x | main.rs:719:9:719:9 | x | +| main.rs:729:13:729:13 | x | main.rs:725:13:725:13 | x | variableReadAccess | main.rs:7:20:7:20 | s | main.rs:5:14:5:14 | s | | main.rs:12:20:12:20 | i | main.rs:10:14:10:14 | i | @@ -372,276 +376,278 @@ variableReadAccess | main.rs:21:15:21:16 | x1 | main.rs:20:9:20:10 | x1 | | main.rs:26:15:26:16 | x2 | main.rs:25:13:25:14 | x2 | | main.rs:28:15:28:16 | x2 | main.rs:25:13:25:14 | x2 | -| main.rs:40:15:40:16 | x3 | main.rs:39:9:39:10 | x3 | -| main.rs:42:9:42:10 | x3 | main.rs:39:9:39:10 | x3 | -| main.rs:43:15:43:16 | x3 | main.rs:41:9:41:10 | x3 | -| main.rs:48:15:48:16 | x4 | main.rs:47:9:47:10 | x4 | -| main.rs:51:19:51:20 | x4 | main.rs:50:13:50:14 | x4 | -| main.rs:53:15:53:16 | x4 | main.rs:47:9:47:10 | x4 | -| main.rs:72:15:72:16 | a1 | main.rs:64:13:64:14 | a1 | -| main.rs:73:15:73:16 | b1 | main.rs:65:13:65:14 | b1 | -| main.rs:74:15:74:15 | x | main.rs:68:13:68:13 | x | -| main.rs:75:15:75:15 | y | main.rs:69:13:69:13 | y | -| main.rs:83:9:83:10 | p1 | main.rs:79:9:79:10 | p1 | -| main.rs:84:15:84:16 | a2 | main.rs:81:12:81:13 | a2 | -| main.rs:85:15:85:16 | b2 | main.rs:82:12:82:13 | b2 | -| main.rs:92:11:92:12 | s1 | main.rs:89:9:89:10 | s1 | -| main.rs:93:19:93:20 | s2 | main.rs:91:21:91:22 | s2 | -| main.rs:100:7:100:7 | x | main.rs:98:9:98:9 | x | -| main.rs:103:13:103:13 | x | main.rs:98:9:98:9 | x | -| main.rs:104:19:104:19 | x | main.rs:102:13:102:13 | x | -| main.rs:107:15:107:15 | x | main.rs:99:14:99:14 | x | -| main.rs:114:11:114:12 | s1 | main.rs:111:9:111:10 | s1 | -| main.rs:115:19:115:20 | s2 | main.rs:113:24:113:25 | s2 | -| main.rs:123:11:123:12 | x6 | main.rs:120:9:120:10 | x6 | -| main.rs:128:23:128:24 | y1 | main.rs:125:14:125:15 | y1 | -| main.rs:133:15:133:16 | y1 | main.rs:121:9:121:10 | y1 | -| main.rs:139:11:139:17 | numbers | main.rs:137:9:137:15 | numbers | -| main.rs:148:23:148:27 | first | main.rs:142:13:142:17 | first | -| main.rs:149:23:149:27 | third | main.rs:144:13:144:17 | third | -| main.rs:150:23:150:27 | fifth | main.rs:146:13:146:17 | fifth | -| main.rs:154:11:154:17 | numbers | main.rs:137:9:137:15 | numbers | -| main.rs:161:23:161:27 | first | main.rs:157:13:157:17 | first | -| main.rs:162:23:162:26 | last | main.rs:159:13:159:16 | last | -| main.rs:170:11:170:12 | p2 | main.rs:168:9:168:10 | p2 | -| main.rs:173:24:173:25 | x7 | main.rs:172:16:172:17 | x7 | -| main.rs:184:11:184:13 | msg | main.rs:182:9:182:11 | msg | -| main.rs:188:24:188:34 | id_variable | main.rs:187:17:187:27 | id_variable | -| main.rs:195:23:195:24 | id | main.rs:192:26:192:27 | id | -| main.rs:207:11:207:16 | either | main.rs:206:9:206:14 | either | -| main.rs:209:26:209:27 | a3 | main.rs:208:9:208:44 | a3 | -| main.rs:221:11:221:12 | tv | main.rs:220:9:220:10 | tv | -| main.rs:223:26:223:27 | a4 | main.rs:222:9:222:81 | a4 | -| main.rs:225:11:225:12 | tv | main.rs:220:9:220:10 | tv | -| main.rs:227:26:227:27 | a5 | main.rs:226:9:226:83 | a5 | -| main.rs:229:11:229:12 | tv | main.rs:220:9:220:10 | tv | -| main.rs:231:26:231:27 | a6 | main.rs:230:9:230:83 | a6 | -| main.rs:237:11:237:16 | either | main.rs:236:9:236:14 | either | -| main.rs:239:16:239:17 | a7 | main.rs:238:9:238:44 | a7 | -| main.rs:240:26:240:27 | a7 | main.rs:238:9:238:44 | a7 | -| main.rs:248:11:248:16 | either | main.rs:246:9:246:14 | either | -| main.rs:252:23:252:25 | a11 | main.rs:250:14:250:51 | a11 | -| main.rs:254:15:254:15 | e | main.rs:249:13:249:13 | e | -| main.rs:255:28:255:30 | a12 | main.rs:253:33:253:35 | a12 | -| main.rs:271:11:271:12 | fv | main.rs:270:9:270:10 | fv | -| main.rs:273:26:273:28 | a13 | main.rs:272:9:272:109 | a13 | -| main.rs:281:7:281:7 | x | main.rs:279:9:279:9 | x | -| main.rs:283:5:283:5 | x | main.rs:280:17:280:17 | x | -| main.rs:285:19:285:19 | x | main.rs:280:17:280:17 | x | -| main.rs:288:13:288:13 | x | main.rs:279:9:279:9 | x | -| main.rs:289:19:289:19 | x | main.rs:287:13:287:13 | x | -| main.rs:297:7:297:7 | x | main.rs:295:9:295:9 | x | -| main.rs:300:12:300:12 | x | main.rs:296:17:296:17 | x | -| main.rs:302:5:302:5 | x | main.rs:299:14:299:14 | x | -| main.rs:304:19:304:19 | x | main.rs:299:14:299:14 | x | -| main.rs:307:13:307:13 | x | main.rs:295:9:295:9 | x | -| main.rs:308:19:308:19 | x | main.rs:306:13:306:13 | x | -| main.rs:316:7:316:7 | x | main.rs:314:9:314:9 | x | -| main.rs:319:12:319:12 | x | main.rs:315:20:315:20 | x | -| main.rs:321:5:321:5 | x | main.rs:318:14:318:14 | x | -| main.rs:323:19:323:19 | x | main.rs:318:14:318:14 | x | -| main.rs:327:15:327:15 | x | main.rs:314:9:314:9 | x | -| main.rs:333:11:333:11 | x | main.rs:332:9:332:9 | x | -| main.rs:336:18:336:18 | x | main.rs:334:14:334:14 | x | -| main.rs:337:19:337:19 | x | main.rs:335:20:335:20 | x | -| main.rs:341:15:341:15 | x | main.rs:332:9:332:9 | x | -| main.rs:348:7:348:7 | x | main.rs:346:9:346:9 | x | -| main.rs:350:19:350:19 | x | main.rs:347:16:347:16 | x | -| main.rs:353:7:353:7 | x | main.rs:346:9:346:9 | x | -| main.rs:355:19:355:19 | x | main.rs:352:20:352:20 | x | -| main.rs:357:19:357:19 | x | main.rs:346:9:346:9 | x | -| main.rs:368:15:368:16 | a8 | main.rs:362:5:362:6 | a8 | -| main.rs:369:15:369:16 | b3 | main.rs:364:9:364:10 | b3 | -| main.rs:370:15:370:16 | c1 | main.rs:365:9:365:10 | c1 | -| main.rs:375:15:375:16 | a9 | main.rs:373:20:373:55 | a9 | -| main.rs:384:15:384:17 | a10 | main.rs:380:13:380:15 | a10 | -| main.rs:385:15:385:16 | b4 | main.rs:381:13:381:14 | b4 | -| main.rs:386:15:386:16 | c2 | main.rs:382:13:382:14 | c2 | -| main.rs:393:9:393:11 | a10 | main.rs:380:13:380:15 | a10 | -| main.rs:394:9:394:10 | b4 | main.rs:381:13:381:14 | b4 | -| main.rs:395:9:395:10 | c2 | main.rs:382:13:382:14 | c2 | -| main.rs:397:15:397:17 | a10 | main.rs:380:13:380:15 | a10 | -| main.rs:398:15:398:16 | b4 | main.rs:381:13:381:14 | b4 | -| main.rs:399:15:399:16 | c2 | main.rs:382:13:382:14 | c2 | -| main.rs:406:23:406:25 | a10 | main.rs:403:13:403:15 | a10 | -| main.rs:407:23:407:24 | b4 | main.rs:404:13:404:14 | b4 | -| main.rs:411:15:411:17 | a10 | main.rs:380:13:380:15 | a10 | -| main.rs:412:15:412:16 | b4 | main.rs:381:13:381:14 | b4 | -| main.rs:418:9:418:9 | x | main.rs:417:10:417:10 | x | -| main.rs:420:9:420:23 | example_closure | main.rs:416:9:416:23 | example_closure | -| main.rs:421:15:421:16 | n1 | main.rs:419:9:419:10 | n1 | -| main.rs:426:9:426:9 | x | main.rs:425:6:425:6 | x | -| main.rs:428:9:428:26 | immutable_variable | main.rs:424:9:424:26 | immutable_variable | -| main.rs:429:15:429:16 | n2 | main.rs:427:9:427:10 | n2 | -| main.rs:436:9:436:9 | x | main.rs:435:10:435:10 | x | -| main.rs:437:15:437:15 | f | main.rs:434:9:434:9 | f | -| main.rs:441:9:441:9 | x | main.rs:439:10:439:10 | x | -| main.rs:444:15:444:15 | f | main.rs:434:9:434:9 | f | -| main.rs:450:17:450:17 | x | main.rs:448:14:448:14 | x | -| main.rs:459:13:459:13 | x | main.rs:458:14:458:14 | x | -| main.rs:460:19:460:19 | f | main.rs:457:13:457:13 | f | -| main.rs:468:12:468:12 | v | main.rs:465:9:465:9 | v | -| main.rs:469:19:469:22 | text | main.rs:467:9:467:12 | text | -| main.rs:476:15:476:15 | a | main.rs:474:13:474:13 | a | -| main.rs:478:15:478:15 | a | main.rs:474:13:474:13 | a | -| main.rs:485:6:485:10 | ref_i | main.rs:483:9:483:13 | ref_i | -| main.rs:486:15:486:15 | i | main.rs:482:13:482:13 | i | -| main.rs:490:6:490:6 | x | main.rs:489:17:489:17 | x | -| main.rs:491:10:491:10 | x | main.rs:489:17:489:17 | x | -| main.rs:492:10:492:10 | x | main.rs:489:17:489:17 | x | -| main.rs:493:12:493:12 | x | main.rs:489:17:489:17 | x | -| main.rs:497:6:497:6 | x | main.rs:496:22:496:22 | x | -| main.rs:498:10:498:10 | x | main.rs:496:22:496:22 | x | -| main.rs:499:10:499:10 | x | main.rs:496:22:496:22 | x | -| main.rs:500:6:500:6 | y | main.rs:496:38:496:38 | y | -| main.rs:501:9:501:9 | x | main.rs:496:22:496:22 | x | -| main.rs:508:6:508:6 | y | main.rs:506:9:506:9 | y | -| main.rs:511:15:511:15 | x | main.rs:505:13:505:13 | x | -| main.rs:518:9:518:9 | w | main.rs:514:9:514:9 | w | -| main.rs:520:7:520:7 | w | main.rs:514:9:514:9 | w | -| main.rs:523:15:523:15 | z | main.rs:513:13:513:13 | z | -| main.rs:530:6:530:6 | y | main.rs:528:9:528:9 | y | -| main.rs:531:15:531:15 | x | main.rs:527:13:527:13 | x | -| main.rs:539:19:539:19 | x | main.rs:535:9:535:9 | x | -| main.rs:541:5:541:7 | cap | main.rs:538:9:538:11 | cap | -| main.rs:542:15:542:15 | x | main.rs:535:9:535:9 | x | -| main.rs:550:19:550:19 | x | main.rs:546:13:546:13 | x | -| main.rs:552:5:552:12 | closure1 | main.rs:549:9:549:16 | closure1 | -| main.rs:553:15:553:15 | x | main.rs:546:13:546:13 | x | -| main.rs:561:5:561:12 | closure2 | main.rs:558:13:558:20 | closure2 | -| main.rs:562:15:562:15 | y | main.rs:555:13:555:13 | y | -| main.rs:568:9:568:9 | z | main.rs:564:13:564:13 | z | -| main.rs:570:5:570:12 | closure3 | main.rs:567:13:567:20 | closure3 | -| main.rs:571:15:571:15 | z | main.rs:564:13:564:13 | z | -| main.rs:580:5:580:9 | block | main.rs:576:9:576:13 | block | -| main.rs:581:15:581:15 | i | main.rs:575:13:575:13 | i | -| main.rs:586:15:586:15 | x | main.rs:585:13:585:13 | x | -| main.rs:587:15:587:15 | x | main.rs:585:13:585:13 | x | -| main.rs:589:16:589:16 | b | main.rs:584:8:584:8 | b | -| main.rs:592:19:592:19 | x | main.rs:585:13:585:13 | x | -| main.rs:593:19:593:19 | x | main.rs:585:13:585:13 | x | -| main.rs:596:19:596:19 | x | main.rs:585:13:585:13 | x | -| main.rs:597:19:597:19 | x | main.rs:585:13:585:13 | x | -| main.rs:599:15:599:15 | x | main.rs:585:13:585:13 | x | -| main.rs:605:16:605:17 | b1 | main.rs:602:13:602:14 | b1 | -| main.rs:607:19:607:19 | x | main.rs:603:9:603:9 | x | -| main.rs:609:19:609:19 | x | main.rs:603:9:603:9 | x | -| main.rs:613:16:613:17 | b2 | main.rs:602:23:602:24 | b2 | -| main.rs:615:19:615:19 | x | main.rs:603:9:603:9 | x | -| main.rs:617:19:617:19 | x | main.rs:603:9:603:9 | x | -| main.rs:627:16:627:19 | self | main.rs:626:20:626:23 | self | -| main.rs:631:9:631:12 | self | main.rs:630:11:630:14 | self | -| main.rs:637:13:637:16 | self | main.rs:634:23:634:26 | self | -| main.rs:637:25:637:25 | n | main.rs:635:22:635:22 | n | -| main.rs:639:9:639:9 | f | main.rs:635:17:635:17 | f | -| main.rs:640:9:640:9 | f | main.rs:635:17:635:17 | f | -| main.rs:646:15:646:15 | a | main.rs:645:13:645:13 | a | -| main.rs:647:5:647:5 | a | main.rs:645:13:645:13 | a | -| main.rs:648:15:648:15 | a | main.rs:645:13:645:13 | a | -| main.rs:650:15:650:15 | a | main.rs:645:13:645:13 | a | -| main.rs:655:15:655:15 | a | main.rs:654:13:654:13 | a | -| main.rs:656:5:656:5 | a | main.rs:654:13:654:13 | a | -| main.rs:657:15:657:15 | a | main.rs:654:13:654:13 | a | -| main.rs:659:15:659:15 | a | main.rs:654:13:654:13 | a | -| main.rs:665:15:665:15 | x | main.rs:663:9:663:9 | x | -| main.rs:677:10:677:13 | self | main.rs:676:17:676:20 | self | -| main.rs:683:5:683:5 | a | main.rs:682:13:682:13 | a | -| main.rs:686:15:686:15 | a | main.rs:682:13:682:13 | a | -| main.rs:705:9:705:21 | var_in_macro | main.rs:705:9:705:21 | var_in_macro | -| main.rs:706:15:706:28 | var_from_macro | main.rs:704:9:704:22 | var_from_macro | -| main.rs:712:30:712:41 | var_in_macro | main.rs:712:15:712:28 | var_in_macro | -| main.rs:713:15:713:26 | var_in_macro | main.rs:707:9:707:20 | var_in_macro | -| main.rs:719:15:719:15 | x | main.rs:717:9:717:9 | x | -| main.rs:726:20:726:20 | b | main.rs:724:20:724:20 | b | -| main.rs:730:5:730:7 | cap | main.rs:724:13:724:15 | cap | -| main.rs:731:15:731:15 | x | main.rs:723:13:723:13 | x | +| main.rs:29:10:29:11 | x2 | main.rs:25:13:25:14 | x2 | +| main.rs:30:15:30:16 | x2 | main.rs:25:13:25:14 | x2 | +| main.rs:42:15:42:16 | x3 | main.rs:41:9:41:10 | x3 | +| main.rs:44:9:44:10 | x3 | main.rs:41:9:41:10 | x3 | +| main.rs:45:15:45:16 | x3 | main.rs:43:9:43:10 | x3 | +| main.rs:50:15:50:16 | x4 | main.rs:49:9:49:10 | x4 | +| main.rs:53:19:53:20 | x4 | main.rs:52:13:52:14 | x4 | +| main.rs:55:15:55:16 | x4 | main.rs:49:9:49:10 | x4 | +| main.rs:74:15:74:16 | a1 | main.rs:66:13:66:14 | a1 | +| main.rs:75:15:75:16 | b1 | main.rs:67:13:67:14 | b1 | +| main.rs:76:15:76:15 | x | main.rs:70:13:70:13 | x | +| main.rs:77:15:77:15 | y | main.rs:71:13:71:13 | y | +| main.rs:85:9:85:10 | p1 | main.rs:81:9:81:10 | p1 | +| main.rs:86:15:86:16 | a2 | main.rs:83:12:83:13 | a2 | +| main.rs:87:15:87:16 | b2 | main.rs:84:12:84:13 | b2 | +| main.rs:94:11:94:12 | s1 | main.rs:91:9:91:10 | s1 | +| main.rs:95:19:95:20 | s2 | main.rs:93:21:93:22 | s2 | +| main.rs:102:7:102:7 | x | main.rs:100:9:100:9 | x | +| main.rs:105:13:105:13 | x | main.rs:100:9:100:9 | x | +| main.rs:106:19:106:19 | x | main.rs:104:13:104:13 | x | +| main.rs:109:15:109:15 | x | main.rs:101:14:101:14 | x | +| main.rs:116:11:116:12 | s1 | main.rs:113:9:113:10 | s1 | +| main.rs:117:19:117:20 | s2 | main.rs:115:24:115:25 | s2 | +| main.rs:125:11:125:12 | x6 | main.rs:122:9:122:10 | x6 | +| main.rs:130:23:130:24 | y1 | main.rs:127:14:127:15 | y1 | +| main.rs:135:15:135:16 | y1 | main.rs:123:9:123:10 | y1 | +| main.rs:141:11:141:17 | numbers | main.rs:139:9:139:15 | numbers | +| main.rs:150:23:150:27 | first | main.rs:144:13:144:17 | first | +| main.rs:151:23:151:27 | third | main.rs:146:13:146:17 | third | +| main.rs:152:23:152:27 | fifth | main.rs:148:13:148:17 | fifth | +| main.rs:156:11:156:17 | numbers | main.rs:139:9:139:15 | numbers | +| main.rs:163:23:163:27 | first | main.rs:159:13:159:17 | first | +| main.rs:164:23:164:26 | last | main.rs:161:13:161:16 | last | +| main.rs:172:11:172:12 | p2 | main.rs:170:9:170:10 | p2 | +| main.rs:175:24:175:25 | x7 | main.rs:174:16:174:17 | x7 | +| main.rs:186:11:186:13 | msg | main.rs:184:9:184:11 | msg | +| main.rs:190:24:190:34 | id_variable | main.rs:189:17:189:27 | id_variable | +| main.rs:197:23:197:24 | id | main.rs:194:26:194:27 | id | +| main.rs:209:11:209:16 | either | main.rs:208:9:208:14 | either | +| main.rs:211:26:211:27 | a3 | main.rs:210:9:210:44 | a3 | +| main.rs:223:11:223:12 | tv | main.rs:222:9:222:10 | tv | +| main.rs:225:26:225:27 | a4 | main.rs:224:9:224:81 | a4 | +| main.rs:227:11:227:12 | tv | main.rs:222:9:222:10 | tv | +| main.rs:229:26:229:27 | a5 | main.rs:228:9:228:83 | a5 | +| main.rs:231:11:231:12 | tv | main.rs:222:9:222:10 | tv | +| main.rs:233:26:233:27 | a6 | main.rs:232:9:232:83 | a6 | +| main.rs:239:11:239:16 | either | main.rs:238:9:238:14 | either | +| main.rs:241:16:241:17 | a7 | main.rs:240:9:240:44 | a7 | +| main.rs:242:26:242:27 | a7 | main.rs:240:9:240:44 | a7 | +| main.rs:250:11:250:16 | either | main.rs:248:9:248:14 | either | +| main.rs:254:23:254:25 | a11 | main.rs:252:14:252:51 | a11 | +| main.rs:256:15:256:15 | e | main.rs:251:13:251:13 | e | +| main.rs:257:28:257:30 | a12 | main.rs:255:33:255:35 | a12 | +| main.rs:273:11:273:12 | fv | main.rs:272:9:272:10 | fv | +| main.rs:275:26:275:28 | a13 | main.rs:274:9:274:109 | a13 | +| main.rs:283:7:283:7 | x | main.rs:281:9:281:9 | x | +| main.rs:285:5:285:5 | x | main.rs:282:17:282:17 | x | +| main.rs:287:19:287:19 | x | main.rs:282:17:282:17 | x | +| main.rs:290:13:290:13 | x | main.rs:281:9:281:9 | x | +| main.rs:291:19:291:19 | x | main.rs:289:13:289:13 | x | +| main.rs:299:7:299:7 | x | main.rs:297:9:297:9 | x | +| main.rs:302:12:302:12 | x | main.rs:298:17:298:17 | x | +| main.rs:304:5:304:5 | x | main.rs:301:14:301:14 | x | +| main.rs:306:19:306:19 | x | main.rs:301:14:301:14 | x | +| main.rs:309:13:309:13 | x | main.rs:297:9:297:9 | x | +| main.rs:310:19:310:19 | x | main.rs:308:13:308:13 | x | +| main.rs:318:7:318:7 | x | main.rs:316:9:316:9 | x | +| main.rs:321:12:321:12 | x | main.rs:317:20:317:20 | x | +| main.rs:323:5:323:5 | x | main.rs:320:14:320:14 | x | +| main.rs:325:19:325:19 | x | main.rs:320:14:320:14 | x | +| main.rs:329:15:329:15 | x | main.rs:316:9:316:9 | x | +| main.rs:335:11:335:11 | x | main.rs:334:9:334:9 | x | +| main.rs:338:18:338:18 | x | main.rs:336:14:336:14 | x | +| main.rs:339:19:339:19 | x | main.rs:337:20:337:20 | x | +| main.rs:343:15:343:15 | x | main.rs:334:9:334:9 | x | +| main.rs:350:7:350:7 | x | main.rs:348:9:348:9 | x | +| main.rs:352:19:352:19 | x | main.rs:349:16:349:16 | x | +| main.rs:355:7:355:7 | x | main.rs:348:9:348:9 | x | +| main.rs:357:19:357:19 | x | main.rs:354:20:354:20 | x | +| main.rs:359:19:359:19 | x | main.rs:348:9:348:9 | x | +| main.rs:370:15:370:16 | a8 | main.rs:364:5:364:6 | a8 | +| main.rs:371:15:371:16 | b3 | main.rs:366:9:366:10 | b3 | +| main.rs:372:15:372:16 | c1 | main.rs:367:9:367:10 | c1 | +| main.rs:377:15:377:16 | a9 | main.rs:375:20:375:55 | a9 | +| main.rs:386:15:386:17 | a10 | main.rs:382:13:382:15 | a10 | +| main.rs:387:15:387:16 | b4 | main.rs:383:13:383:14 | b4 | +| main.rs:388:15:388:16 | c2 | main.rs:384:13:384:14 | c2 | +| main.rs:395:9:395:11 | a10 | main.rs:382:13:382:15 | a10 | +| main.rs:396:9:396:10 | b4 | main.rs:383:13:383:14 | b4 | +| main.rs:397:9:397:10 | c2 | main.rs:384:13:384:14 | c2 | +| main.rs:399:15:399:17 | a10 | main.rs:382:13:382:15 | a10 | +| main.rs:400:15:400:16 | b4 | main.rs:383:13:383:14 | b4 | +| main.rs:401:15:401:16 | c2 | main.rs:384:13:384:14 | c2 | +| main.rs:408:23:408:25 | a10 | main.rs:405:13:405:15 | a10 | +| main.rs:409:23:409:24 | b4 | main.rs:406:13:406:14 | b4 | +| main.rs:413:15:413:17 | a10 | main.rs:382:13:382:15 | a10 | +| main.rs:414:15:414:16 | b4 | main.rs:383:13:383:14 | b4 | +| main.rs:420:9:420:9 | x | main.rs:419:10:419:10 | x | +| main.rs:422:9:422:23 | example_closure | main.rs:418:9:418:23 | example_closure | +| main.rs:423:15:423:16 | n1 | main.rs:421:9:421:10 | n1 | +| main.rs:428:9:428:9 | x | main.rs:427:6:427:6 | x | +| main.rs:430:9:430:26 | immutable_variable | main.rs:426:9:426:26 | immutable_variable | +| main.rs:431:15:431:16 | n2 | main.rs:429:9:429:10 | n2 | +| main.rs:438:9:438:9 | x | main.rs:437:10:437:10 | x | +| main.rs:439:15:439:15 | f | main.rs:436:9:436:9 | f | +| main.rs:443:9:443:9 | x | main.rs:441:10:441:10 | x | +| main.rs:446:15:446:15 | f | main.rs:436:9:436:9 | f | +| main.rs:452:17:452:17 | x | main.rs:450:14:450:14 | x | +| main.rs:461:13:461:13 | x | main.rs:460:14:460:14 | x | +| main.rs:462:19:462:19 | f | main.rs:459:13:459:13 | f | +| main.rs:470:12:470:12 | v | main.rs:467:9:467:9 | v | +| main.rs:471:19:471:22 | text | main.rs:469:9:469:12 | text | +| main.rs:478:15:478:15 | a | main.rs:476:13:476:13 | a | +| main.rs:480:15:480:15 | a | main.rs:476:13:476:13 | a | +| main.rs:487:6:487:10 | ref_i | main.rs:485:9:485:13 | ref_i | +| main.rs:488:15:488:15 | i | main.rs:484:13:484:13 | i | +| main.rs:492:6:492:6 | x | main.rs:491:17:491:17 | x | +| main.rs:493:10:493:10 | x | main.rs:491:17:491:17 | x | +| main.rs:494:10:494:10 | x | main.rs:491:17:491:17 | x | +| main.rs:495:12:495:12 | x | main.rs:491:17:491:17 | x | +| main.rs:499:6:499:6 | x | main.rs:498:22:498:22 | x | +| main.rs:500:10:500:10 | x | main.rs:498:22:498:22 | x | +| main.rs:501:10:501:10 | x | main.rs:498:22:498:22 | x | +| main.rs:502:6:502:6 | y | main.rs:498:38:498:38 | y | +| main.rs:503:9:503:9 | x | main.rs:498:22:498:22 | x | +| main.rs:510:6:510:6 | y | main.rs:508:9:508:9 | y | +| main.rs:513:15:513:15 | x | main.rs:507:13:507:13 | x | +| main.rs:520:9:520:9 | w | main.rs:516:9:516:9 | w | +| main.rs:522:7:522:7 | w | main.rs:516:9:516:9 | w | +| main.rs:525:15:525:15 | z | main.rs:515:13:515:13 | z | +| main.rs:532:6:532:6 | y | main.rs:530:9:530:9 | y | +| main.rs:533:15:533:15 | x | main.rs:529:13:529:13 | x | +| main.rs:541:19:541:19 | x | main.rs:537:9:537:9 | x | +| main.rs:543:5:543:7 | cap | main.rs:540:9:540:11 | cap | +| main.rs:544:15:544:15 | x | main.rs:537:9:537:9 | x | +| main.rs:552:19:552:19 | x | main.rs:548:13:548:13 | x | +| main.rs:554:5:554:12 | closure1 | main.rs:551:9:551:16 | closure1 | +| main.rs:555:15:555:15 | x | main.rs:548:13:548:13 | x | +| main.rs:563:5:563:12 | closure2 | main.rs:560:13:560:20 | closure2 | +| main.rs:564:15:564:15 | y | main.rs:557:13:557:13 | y | +| main.rs:570:9:570:9 | z | main.rs:566:13:566:13 | z | +| main.rs:572:5:572:12 | closure3 | main.rs:569:13:569:20 | closure3 | +| main.rs:573:15:573:15 | z | main.rs:566:13:566:13 | z | +| main.rs:582:5:582:9 | block | main.rs:578:9:578:13 | block | +| main.rs:583:15:583:15 | i | main.rs:577:13:577:13 | i | +| main.rs:588:15:588:15 | x | main.rs:587:13:587:13 | x | +| main.rs:589:15:589:15 | x | main.rs:587:13:587:13 | x | +| main.rs:591:16:591:16 | b | main.rs:586:8:586:8 | b | +| main.rs:594:19:594:19 | x | main.rs:587:13:587:13 | x | +| main.rs:595:19:595:19 | x | main.rs:587:13:587:13 | x | +| main.rs:598:19:598:19 | x | main.rs:587:13:587:13 | x | +| main.rs:599:19:599:19 | x | main.rs:587:13:587:13 | x | +| main.rs:601:15:601:15 | x | main.rs:587:13:587:13 | x | +| main.rs:607:16:607:17 | b1 | main.rs:604:13:604:14 | b1 | +| main.rs:609:19:609:19 | x | main.rs:605:9:605:9 | x | +| main.rs:611:19:611:19 | x | main.rs:605:9:605:9 | x | +| main.rs:615:16:615:17 | b2 | main.rs:604:23:604:24 | b2 | +| main.rs:617:19:617:19 | x | main.rs:605:9:605:9 | x | +| main.rs:619:19:619:19 | x | main.rs:605:9:605:9 | x | +| main.rs:629:16:629:19 | self | main.rs:628:20:628:23 | self | +| main.rs:633:9:633:12 | self | main.rs:632:11:632:14 | self | +| main.rs:639:13:639:16 | self | main.rs:636:23:636:26 | self | +| main.rs:639:25:639:25 | n | main.rs:637:22:637:22 | n | +| main.rs:641:9:641:9 | f | main.rs:637:17:637:17 | f | +| main.rs:642:9:642:9 | f | main.rs:637:17:637:17 | f | +| main.rs:648:15:648:15 | a | main.rs:647:13:647:13 | a | +| main.rs:649:5:649:5 | a | main.rs:647:13:647:13 | a | +| main.rs:650:15:650:15 | a | main.rs:647:13:647:13 | a | +| main.rs:652:15:652:15 | a | main.rs:647:13:647:13 | a | +| main.rs:657:15:657:15 | a | main.rs:656:13:656:13 | a | +| main.rs:658:5:658:5 | a | main.rs:656:13:656:13 | a | +| main.rs:659:15:659:15 | a | main.rs:656:13:656:13 | a | +| main.rs:661:15:661:15 | a | main.rs:656:13:656:13 | a | +| main.rs:667:15:667:15 | x | main.rs:665:9:665:9 | x | +| main.rs:679:10:679:13 | self | main.rs:678:17:678:20 | self | +| main.rs:685:5:685:5 | a | main.rs:684:13:684:13 | a | +| main.rs:688:15:688:15 | a | main.rs:684:13:684:13 | a | +| main.rs:707:9:707:21 | var_in_macro | main.rs:707:9:707:21 | var_in_macro | +| main.rs:708:15:708:28 | var_from_macro | main.rs:706:9:706:22 | var_from_macro | +| main.rs:714:30:714:41 | var_in_macro | main.rs:714:15:714:28 | var_in_macro | +| main.rs:715:15:715:26 | var_in_macro | main.rs:709:9:709:20 | var_in_macro | +| main.rs:721:15:721:15 | x | main.rs:719:9:719:9 | x | +| main.rs:728:20:728:20 | b | main.rs:726:20:726:20 | b | +| main.rs:732:5:732:7 | cap | main.rs:726:13:726:15 | cap | +| main.rs:733:15:733:15 | x | main.rs:725:13:725:13 | x | variableInitializer | main.rs:20:9:20:10 | x1 | main.rs:20:14:20:16 | "a" | | main.rs:25:13:25:14 | x2 | main.rs:25:18:25:18 | 4 | -| main.rs:32:13:32:13 | x | main.rs:32:17:32:17 | 1 | -| main.rs:39:9:39:10 | x3 | main.rs:39:14:39:14 | 1 | -| main.rs:41:9:41:10 | x3 | main.rs:42:9:42:14 | ... + ... | -| main.rs:47:9:47:10 | x4 | main.rs:47:14:47:16 | "a" | -| main.rs:50:13:50:14 | x4 | main.rs:50:18:50:20 | "b" | -| main.rs:79:9:79:10 | p1 | main.rs:79:14:79:37 | Point {...} | -| main.rs:89:9:89:10 | s1 | main.rs:89:14:89:41 | Some(...) | -| main.rs:98:9:98:9 | x | main.rs:98:13:98:22 | Some(...) | -| main.rs:102:13:102:13 | x | main.rs:103:13:103:13 | x | -| main.rs:111:9:111:10 | s1 | main.rs:111:14:111:41 | Some(...) | -| main.rs:120:9:120:10 | x6 | main.rs:120:14:120:20 | Some(...) | -| main.rs:121:9:121:10 | y1 | main.rs:121:14:121:15 | 10 | -| main.rs:137:9:137:15 | numbers | main.rs:137:19:137:35 | TupleExpr | -| main.rs:168:9:168:10 | p2 | main.rs:168:14:168:37 | Point {...} | -| main.rs:182:9:182:11 | msg | main.rs:182:15:182:38 | ...::Hello {...} | -| main.rs:206:9:206:14 | either | main.rs:206:18:206:33 | ...::Left(...) | -| main.rs:220:9:220:10 | tv | main.rs:220:14:220:36 | ...::Second(...) | -| main.rs:236:9:236:14 | either | main.rs:236:18:236:33 | ...::Left(...) | -| main.rs:246:9:246:14 | either | main.rs:246:18:246:33 | ...::Left(...) | -| main.rs:270:9:270:10 | fv | main.rs:270:14:270:35 | ...::Second(...) | -| main.rs:279:9:279:9 | x | main.rs:279:12:279:19 | Some(...) | -| main.rs:287:13:287:13 | x | main.rs:288:13:288:13 | x | -| main.rs:295:9:295:9 | x | main.rs:295:13:295:20 | Some(...) | -| main.rs:306:13:306:13 | x | main.rs:307:13:307:13 | x | -| main.rs:314:9:314:9 | x | main.rs:314:13:314:20 | Some(...) | -| main.rs:332:9:332:9 | x | main.rs:332:13:332:20 | Some(...) | -| main.rs:335:20:335:20 | x | main.rs:336:18:336:18 | x | -| main.rs:346:9:346:9 | x | main.rs:346:13:346:18 | Ok(...) | -| main.rs:416:9:416:23 | example_closure | main.rs:417:9:418:9 | \|...\| x | -| main.rs:419:9:419:10 | n1 | main.rs:420:9:420:26 | example_closure(...) | -| main.rs:424:9:424:26 | immutable_variable | main.rs:425:5:426:9 | \|...\| x | -| main.rs:427:9:427:10 | n2 | main.rs:428:9:428:29 | immutable_variable(...) | -| main.rs:434:9:434:9 | f | main.rs:435:9:436:9 | \|...\| x | -| main.rs:457:13:457:13 | f | main.rs:458:13:459:13 | \|...\| x | -| main.rs:465:9:465:9 | v | main.rs:465:13:465:41 | &... | -| main.rs:474:13:474:13 | a | main.rs:474:17:474:17 | 0 | -| main.rs:482:13:482:13 | i | main.rs:482:17:482:17 | 1 | -| main.rs:483:9:483:13 | ref_i | main.rs:484:9:484:14 | &mut i | -| main.rs:505:13:505:13 | x | main.rs:505:17:505:17 | 2 | -| main.rs:506:9:506:9 | y | main.rs:507:9:507:28 | mutate_param(...) | -| main.rs:513:13:513:13 | z | main.rs:513:17:513:17 | 4 | -| main.rs:514:9:514:9 | w | main.rs:515:9:515:19 | &mut ... | -| main.rs:527:13:527:13 | x | main.rs:527:17:527:17 | 1 | -| main.rs:528:9:528:9 | y | main.rs:529:9:529:14 | &mut x | -| main.rs:535:9:535:9 | x | main.rs:535:13:535:15 | 100 | -| main.rs:538:9:538:11 | cap | main.rs:538:15:540:5 | \|...\| ... | -| main.rs:546:13:546:13 | x | main.rs:546:17:546:17 | 1 | -| main.rs:549:9:549:16 | closure1 | main.rs:549:20:551:5 | \|...\| ... | -| main.rs:555:13:555:13 | y | main.rs:555:17:555:17 | 2 | -| main.rs:558:13:558:20 | closure2 | main.rs:558:24:560:5 | \|...\| ... | -| main.rs:564:13:564:13 | z | main.rs:564:17:564:17 | 2 | -| main.rs:567:13:567:20 | closure3 | main.rs:567:24:569:5 | \|...\| ... | -| main.rs:575:13:575:13 | i | main.rs:575:22:575:22 | 0 | -| main.rs:576:9:576:13 | block | main.rs:576:17:578:5 | { ... } | -| main.rs:585:13:585:13 | x | main.rs:585:17:585:17 | 1 | -| main.rs:603:9:603:9 | x | main.rs:603:13:603:13 | 1 | -| main.rs:635:17:635:17 | f | main.rs:635:21:638:9 | \|...\| ... | -| main.rs:645:13:645:13 | a | main.rs:645:17:645:35 | MyStruct {...} | -| main.rs:654:13:654:13 | a | main.rs:654:17:654:25 | [...] | -| main.rs:663:9:663:9 | x | main.rs:663:13:663:14 | 16 | -| main.rs:667:9:667:9 | z | main.rs:667:13:667:14 | 17 | -| main.rs:682:13:682:13 | a | main.rs:682:17:682:35 | MyStruct {...} | -| main.rs:704:9:704:22 | var_from_macro | main.rs:705:9:705:25 | MacroExpr | -| main.rs:705:9:705:21 | var_in_macro | main.rs:705:23:705:24 | 37 | -| main.rs:707:9:707:20 | var_in_macro | main.rs:707:24:707:25 | 33 | -| main.rs:712:15:712:28 | var_in_macro | main.rs:712:15:712:28 | 0 | -| main.rs:723:13:723:13 | x | main.rs:723:17:723:19 | 100 | -| main.rs:724:13:724:15 | cap | main.rs:724:19:729:5 | \|...\| ... | +| main.rs:34:13:34:13 | x | main.rs:34:17:34:17 | 1 | +| main.rs:41:9:41:10 | x3 | main.rs:41:14:41:14 | 1 | +| main.rs:43:9:43:10 | x3 | main.rs:44:9:44:14 | ... + ... | +| main.rs:49:9:49:10 | x4 | main.rs:49:14:49:16 | "a" | +| main.rs:52:13:52:14 | x4 | main.rs:52:18:52:20 | "b" | +| main.rs:81:9:81:10 | p1 | main.rs:81:14:81:37 | Point {...} | +| main.rs:91:9:91:10 | s1 | main.rs:91:14:91:41 | Some(...) | +| main.rs:100:9:100:9 | x | main.rs:100:13:100:22 | Some(...) | +| main.rs:104:13:104:13 | x | main.rs:105:13:105:13 | x | +| main.rs:113:9:113:10 | s1 | main.rs:113:14:113:41 | Some(...) | +| main.rs:122:9:122:10 | x6 | main.rs:122:14:122:20 | Some(...) | +| main.rs:123:9:123:10 | y1 | main.rs:123:14:123:15 | 10 | +| main.rs:139:9:139:15 | numbers | main.rs:139:19:139:35 | TupleExpr | +| main.rs:170:9:170:10 | p2 | main.rs:170:14:170:37 | Point {...} | +| main.rs:184:9:184:11 | msg | main.rs:184:15:184:38 | ...::Hello {...} | +| main.rs:208:9:208:14 | either | main.rs:208:18:208:33 | ...::Left(...) | +| main.rs:222:9:222:10 | tv | main.rs:222:14:222:36 | ...::Second(...) | +| main.rs:238:9:238:14 | either | main.rs:238:18:238:33 | ...::Left(...) | +| main.rs:248:9:248:14 | either | main.rs:248:18:248:33 | ...::Left(...) | +| main.rs:272:9:272:10 | fv | main.rs:272:14:272:35 | ...::Second(...) | +| main.rs:281:9:281:9 | x | main.rs:281:12:281:19 | Some(...) | +| main.rs:289:13:289:13 | x | main.rs:290:13:290:13 | x | +| main.rs:297:9:297:9 | x | main.rs:297:13:297:20 | Some(...) | +| main.rs:308:13:308:13 | x | main.rs:309:13:309:13 | x | +| main.rs:316:9:316:9 | x | main.rs:316:13:316:20 | Some(...) | +| main.rs:334:9:334:9 | x | main.rs:334:13:334:20 | Some(...) | +| main.rs:337:20:337:20 | x | main.rs:338:18:338:18 | x | +| main.rs:348:9:348:9 | x | main.rs:348:13:348:18 | Ok(...) | +| main.rs:418:9:418:23 | example_closure | main.rs:419:9:420:9 | \|...\| x | +| main.rs:421:9:421:10 | n1 | main.rs:422:9:422:26 | example_closure(...) | +| main.rs:426:9:426:26 | immutable_variable | main.rs:427:5:428:9 | \|...\| x | +| main.rs:429:9:429:10 | n2 | main.rs:430:9:430:29 | immutable_variable(...) | +| main.rs:436:9:436:9 | f | main.rs:437:9:438:9 | \|...\| x | +| main.rs:459:13:459:13 | f | main.rs:460:13:461:13 | \|...\| x | +| main.rs:467:9:467:9 | v | main.rs:467:13:467:41 | &... | +| main.rs:476:13:476:13 | a | main.rs:476:17:476:17 | 0 | +| main.rs:484:13:484:13 | i | main.rs:484:17:484:17 | 1 | +| main.rs:485:9:485:13 | ref_i | main.rs:486:9:486:14 | &mut i | +| main.rs:507:13:507:13 | x | main.rs:507:17:507:17 | 2 | +| main.rs:508:9:508:9 | y | main.rs:509:9:509:28 | mutate_param(...) | +| main.rs:515:13:515:13 | z | main.rs:515:17:515:17 | 4 | +| main.rs:516:9:516:9 | w | main.rs:517:9:517:19 | &mut ... | +| main.rs:529:13:529:13 | x | main.rs:529:17:529:17 | 1 | +| main.rs:530:9:530:9 | y | main.rs:531:9:531:14 | &mut x | +| main.rs:537:9:537:9 | x | main.rs:537:13:537:15 | 100 | +| main.rs:540:9:540:11 | cap | main.rs:540:15:542:5 | \|...\| ... | +| main.rs:548:13:548:13 | x | main.rs:548:17:548:17 | 1 | +| main.rs:551:9:551:16 | closure1 | main.rs:551:20:553:5 | \|...\| ... | +| main.rs:557:13:557:13 | y | main.rs:557:17:557:17 | 2 | +| main.rs:560:13:560:20 | closure2 | main.rs:560:24:562:5 | \|...\| ... | +| main.rs:566:13:566:13 | z | main.rs:566:17:566:17 | 2 | +| main.rs:569:13:569:20 | closure3 | main.rs:569:24:571:5 | \|...\| ... | +| main.rs:577:13:577:13 | i | main.rs:577:22:577:22 | 0 | +| main.rs:578:9:578:13 | block | main.rs:578:17:580:5 | { ... } | +| main.rs:587:13:587:13 | x | main.rs:587:17:587:17 | 1 | +| main.rs:605:9:605:9 | x | main.rs:605:13:605:13 | 1 | +| main.rs:637:17:637:17 | f | main.rs:637:21:640:9 | \|...\| ... | +| main.rs:647:13:647:13 | a | main.rs:647:17:647:35 | MyStruct {...} | +| main.rs:656:13:656:13 | a | main.rs:656:17:656:25 | [...] | +| main.rs:665:9:665:9 | x | main.rs:665:13:665:14 | 16 | +| main.rs:669:9:669:9 | z | main.rs:669:13:669:14 | 17 | +| main.rs:684:13:684:13 | a | main.rs:684:17:684:35 | MyStruct {...} | +| main.rs:706:9:706:22 | var_from_macro | main.rs:707:9:707:25 | MacroExpr | +| main.rs:707:9:707:21 | var_in_macro | main.rs:707:23:707:24 | 37 | +| main.rs:709:9:709:20 | var_in_macro | main.rs:709:24:709:25 | 33 | +| main.rs:714:15:714:28 | var_in_macro | main.rs:714:15:714:28 | 0 | +| main.rs:725:13:725:13 | x | main.rs:725:17:725:19 | 100 | +| main.rs:726:13:726:15 | cap | main.rs:726:19:731:5 | \|...\| ... | capturedVariable -| main.rs:535:9:535:9 | x | -| main.rs:546:13:546:13 | x | -| main.rs:555:13:555:13 | y | -| main.rs:564:13:564:13 | z | -| main.rs:575:13:575:13 | i | -| main.rs:634:23:634:26 | self | -| main.rs:723:13:723:13 | x | +| main.rs:537:9:537:9 | x | +| main.rs:548:13:548:13 | x | +| main.rs:557:13:557:13 | y | +| main.rs:566:13:566:13 | z | +| main.rs:577:13:577:13 | i | +| main.rs:636:23:636:26 | self | +| main.rs:725:13:725:13 | x | capturedAccess -| main.rs:539:19:539:19 | x | -| main.rs:550:19:550:19 | x | -| main.rs:559:9:559:9 | y | -| main.rs:568:9:568:9 | z | -| main.rs:577:9:577:9 | i | -| main.rs:637:13:637:16 | self | -| main.rs:727:13:727:13 | x | +| main.rs:541:19:541:19 | x | +| main.rs:552:19:552:19 | x | +| main.rs:561:9:561:9 | y | +| main.rs:570:9:570:9 | z | +| main.rs:579:9:579:9 | i | +| main.rs:639:13:639:16 | self | +| main.rs:729:13:729:13 | x | nestedFunctionAccess -| main.rs:447:19:447:19 | f | main.rs:448:9:451:9 | fn f | -| main.rs:454:23:454:23 | f | main.rs:448:9:451:9 | fn f | +| main.rs:449:19:449:19 | f | main.rs:450:9:453:9 | fn f | +| main.rs:456:23:456:23 | f | main.rs:450:9:453:9 | fn f | diff --git a/rust/ql/test/query-tests/security/CWE-918/RequestForgery.expected b/rust/ql/test/query-tests/security/CWE-918/RequestForgery.expected index 29c5d122ae2..4d44df7349f 100644 --- a/rust/ql/test/query-tests/security/CWE-918/RequestForgery.expected +++ b/rust/ql/test/query-tests/security/CWE-918/RequestForgery.expected @@ -21,39 +21,43 @@ edges | request_forgery_tests.rs:5:29:5:36 | user_url | request_forgery_tests.rs:31:43:31:50 | user_url | provenance | | | request_forgery_tests.rs:5:29:5:36 | user_url | request_forgery_tests.rs:37:51:37:58 | user_url | provenance | | | request_forgery_tests.rs:5:29:5:36 | user_url | request_forgery_tests.rs:37:51:37:58 | user_url | provenance | | -| request_forgery_tests.rs:8:37:8:45 | &user_url [&ref] | request_forgery_tests.rs:8:24:8:35 | ...::get | provenance | MaD:3680 Sink:MaD:3680 | -| request_forgery_tests.rs:8:37:8:45 | &user_url [&ref] | request_forgery_tests.rs:8:24:8:35 | ...::get | provenance | MaD:3680 Sink:MaD:3680 | +| request_forgery_tests.rs:8:37:8:45 | &user_url [&ref] | request_forgery_tests.rs:8:24:8:35 | ...::get | provenance | MaD:1 Sink:MaD:1 | +| request_forgery_tests.rs:8:37:8:45 | &user_url [&ref] | request_forgery_tests.rs:8:24:8:35 | ...::get | provenance | MaD:1 Sink:MaD:1 | | request_forgery_tests.rs:8:38:8:45 | user_url | request_forgery_tests.rs:8:37:8:45 | &user_url [&ref] | provenance | | | request_forgery_tests.rs:8:38:8:45 | user_url | request_forgery_tests.rs:8:37:8:45 | &user_url [&ref] | provenance | | | request_forgery_tests.rs:16:13:16:15 | url | request_forgery_tests.rs:17:39:17:41 | url | provenance | | | request_forgery_tests.rs:16:27:16:49 | ...::format(...) | request_forgery_tests.rs:4:5:4:14 | res | provenance | | | request_forgery_tests.rs:16:27:16:49 | ...::must_use(...) | request_forgery_tests.rs:16:13:16:15 | url | provenance | | -| request_forgery_tests.rs:16:27:16:49 | MacroExpr | request_forgery_tests.rs:16:27:16:49 | ...::format(...) | provenance | MaD:291 | -| request_forgery_tests.rs:16:27:16:49 | { ... } | request_forgery_tests.rs:16:27:16:49 | ...::must_use(...) | provenance | MaD:10629 | -| request_forgery_tests.rs:17:38:17:41 | &url [&ref] | request_forgery_tests.rs:17:25:17:36 | ...::get | provenance | MaD:3680 Sink:MaD:3680 | +| request_forgery_tests.rs:16:27:16:49 | MacroExpr | request_forgery_tests.rs:16:27:16:49 | ...::format(...) | provenance | MaD:2 | +| request_forgery_tests.rs:16:27:16:49 | { ... } | request_forgery_tests.rs:16:27:16:49 | ...::must_use(...) | provenance | MaD:3 | +| request_forgery_tests.rs:17:38:17:41 | &url [&ref] | request_forgery_tests.rs:17:25:17:36 | ...::get | provenance | MaD:1 Sink:MaD:1 | | request_forgery_tests.rs:17:39:17:41 | url | request_forgery_tests.rs:17:38:17:41 | &url [&ref] | provenance | | | request_forgery_tests.rs:20:13:20:15 | url | request_forgery_tests.rs:21:39:21:41 | url | provenance | | | request_forgery_tests.rs:20:27:20:57 | ...::format(...) | request_forgery_tests.rs:4:5:4:14 | res | provenance | | | request_forgery_tests.rs:20:27:20:57 | ...::must_use(...) | request_forgery_tests.rs:20:13:20:15 | url | provenance | | -| request_forgery_tests.rs:20:27:20:57 | MacroExpr | request_forgery_tests.rs:20:27:20:57 | ...::format(...) | provenance | MaD:291 | -| request_forgery_tests.rs:20:27:20:57 | { ... } | request_forgery_tests.rs:20:27:20:57 | ...::must_use(...) | provenance | MaD:10629 | -| request_forgery_tests.rs:21:38:21:41 | &url [&ref] | request_forgery_tests.rs:21:25:21:36 | ...::get | provenance | MaD:3680 Sink:MaD:3680 | +| request_forgery_tests.rs:20:27:20:57 | MacroExpr | request_forgery_tests.rs:20:27:20:57 | ...::format(...) | provenance | MaD:2 | +| request_forgery_tests.rs:20:27:20:57 | { ... } | request_forgery_tests.rs:20:27:20:57 | ...::must_use(...) | provenance | MaD:3 | +| request_forgery_tests.rs:21:38:21:41 | &url [&ref] | request_forgery_tests.rs:21:25:21:36 | ...::get | provenance | MaD:1 Sink:MaD:1 | | request_forgery_tests.rs:21:39:21:41 | url | request_forgery_tests.rs:21:38:21:41 | &url [&ref] | provenance | | | request_forgery_tests.rs:24:13:24:15 | url | request_forgery_tests.rs:25:39:25:41 | url | provenance | | | request_forgery_tests.rs:24:27:24:70 | ...::format(...) | request_forgery_tests.rs:4:5:4:14 | res | provenance | | | request_forgery_tests.rs:24:27:24:70 | ...::must_use(...) | request_forgery_tests.rs:24:13:24:15 | url | provenance | | -| request_forgery_tests.rs:24:27:24:70 | MacroExpr | request_forgery_tests.rs:24:27:24:70 | ...::format(...) | provenance | MaD:291 | -| request_forgery_tests.rs:24:27:24:70 | { ... } | request_forgery_tests.rs:24:27:24:70 | ...::must_use(...) | provenance | MaD:10629 | -| request_forgery_tests.rs:25:38:25:41 | &url [&ref] | request_forgery_tests.rs:25:25:25:36 | ...::get | provenance | MaD:3680 Sink:MaD:3680 | +| request_forgery_tests.rs:24:27:24:70 | MacroExpr | request_forgery_tests.rs:24:27:24:70 | ...::format(...) | provenance | MaD:2 | +| request_forgery_tests.rs:24:27:24:70 | { ... } | request_forgery_tests.rs:24:27:24:70 | ...::must_use(...) | provenance | MaD:3 | +| request_forgery_tests.rs:25:38:25:41 | &url [&ref] | request_forgery_tests.rs:25:25:25:36 | ...::get | provenance | MaD:1 Sink:MaD:1 | | request_forgery_tests.rs:25:39:25:41 | url | request_forgery_tests.rs:25:38:25:41 | &url [&ref] | provenance | | -| request_forgery_tests.rs:31:42:31:50 | &user_url [&ref] | request_forgery_tests.rs:31:29:31:40 | ...::get | provenance | MaD:3680 Sink:MaD:3680 | -| request_forgery_tests.rs:31:42:31:50 | &user_url [&ref] | request_forgery_tests.rs:31:29:31:40 | ...::get | provenance | MaD:3680 Sink:MaD:3680 | +| request_forgery_tests.rs:31:42:31:50 | &user_url [&ref] | request_forgery_tests.rs:31:29:31:40 | ...::get | provenance | MaD:1 Sink:MaD:1 | +| request_forgery_tests.rs:31:42:31:50 | &user_url [&ref] | request_forgery_tests.rs:31:29:31:40 | ...::get | provenance | MaD:1 Sink:MaD:1 | | request_forgery_tests.rs:31:43:31:50 | user_url | request_forgery_tests.rs:31:42:31:50 | &user_url [&ref] | provenance | | | request_forgery_tests.rs:31:43:31:50 | user_url | request_forgery_tests.rs:31:42:31:50 | &user_url [&ref] | provenance | | -| request_forgery_tests.rs:37:50:37:58 | &user_url [&ref] | request_forgery_tests.rs:37:37:37:48 | ...::get | provenance | MaD:3680 Sink:MaD:3680 | -| request_forgery_tests.rs:37:50:37:58 | &user_url [&ref] | request_forgery_tests.rs:37:37:37:48 | ...::get | provenance | MaD:3680 Sink:MaD:3680 | +| request_forgery_tests.rs:37:50:37:58 | &user_url [&ref] | request_forgery_tests.rs:37:37:37:48 | ...::get | provenance | MaD:1 Sink:MaD:1 | +| request_forgery_tests.rs:37:50:37:58 | &user_url [&ref] | request_forgery_tests.rs:37:37:37:48 | ...::get | provenance | MaD:1 Sink:MaD:1 | | request_forgery_tests.rs:37:51:37:58 | user_url | request_forgery_tests.rs:37:50:37:58 | &user_url [&ref] | provenance | | | request_forgery_tests.rs:37:51:37:58 | user_url | request_forgery_tests.rs:37:50:37:58 | &user_url [&ref] | provenance | | +models +| 1 | Sink: reqwest::get; Argument[0]; request-url | +| 2 | Summary: alloc::fmt::format; Argument[0]; ReturnValue; taint | +| 3 | Summary: core::hint::must_use; Argument[0]; ReturnValue; value | nodes | request_forgery_tests.rs:4:5:4:14 | res | semmle.label | res | | request_forgery_tests.rs:4:5:4:14 | res | semmle.label | res | diff --git a/rust/ql/test/query-tests/security/CWE-918/RequestForgery.qlref b/rust/ql/test/query-tests/security/CWE-918/RequestForgery.qlref index f5c9df78ac2..6ed39ea71f5 100644 --- a/rust/ql/test/query-tests/security/CWE-918/RequestForgery.qlref +++ b/rust/ql/test/query-tests/security/CWE-918/RequestForgery.qlref @@ -1,2 +1,4 @@ query: queries/security/CWE-918/RequestForgery.ql -postprocess: utils/test/InlineExpectationsTestQuery.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/shared/concepts/CHANGELOG.md b/shared/concepts/CHANGELOG.md index 88abeb21fd8..bac19b9b77f 100644 --- a/shared/concepts/CHANGELOG.md +++ b/shared/concepts/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.5 + +No user-facing changes. + ## 0.0.4 No user-facing changes. diff --git a/shared/concepts/change-notes/released/0.0.5.md b/shared/concepts/change-notes/released/0.0.5.md new file mode 100644 index 00000000000..766ec2723b5 --- /dev/null +++ b/shared/concepts/change-notes/released/0.0.5.md @@ -0,0 +1,3 @@ +## 0.0.5 + +No user-facing changes. diff --git a/shared/concepts/codeql-pack.release.yml b/shared/concepts/codeql-pack.release.yml index ec411a674bc..bb45a1ab018 100644 --- a/shared/concepts/codeql-pack.release.yml +++ b/shared/concepts/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.4 +lastReleaseVersion: 0.0.5 diff --git a/shared/concepts/qlpack.yml b/shared/concepts/qlpack.yml index 151939d739a..8b0fc6c6f7a 100644 --- a/shared/concepts/qlpack.yml +++ b/shared/concepts/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/concepts -version: 0.0.5-dev +version: 0.0.6-dev groups: shared library: true dependencies: diff --git a/shared/controlflow/CHANGELOG.md b/shared/controlflow/CHANGELOG.md index 7e3580fae37..9b9c04fd8d8 100644 --- a/shared/controlflow/CHANGELOG.md +++ b/shared/controlflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.15 + +No user-facing changes. + ## 2.0.14 No user-facing changes. diff --git a/shared/controlflow/change-notes/released/2.0.15.md b/shared/controlflow/change-notes/released/2.0.15.md new file mode 100644 index 00000000000..3b59db4224a --- /dev/null +++ b/shared/controlflow/change-notes/released/2.0.15.md @@ -0,0 +1,3 @@ +## 2.0.15 + +No user-facing changes. diff --git a/shared/controlflow/codeql-pack.release.yml b/shared/controlflow/codeql-pack.release.yml index 23aa0864b29..0377ae283a3 100644 --- a/shared/controlflow/codeql-pack.release.yml +++ b/shared/controlflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.14 +lastReleaseVersion: 2.0.15 diff --git a/shared/controlflow/codeql/controlflow/ControlFlow.qll b/shared/controlflow/codeql/controlflow/ControlFlow.qll new file mode 100644 index 00000000000..bfb878e6756 --- /dev/null +++ b/shared/controlflow/codeql/controlflow/ControlFlow.qll @@ -0,0 +1,929 @@ +/** + * Provides an implementation of local (intraprocedural) control flow reachability. + */ +overlay[local?] +module; + +private import codeql.controlflow.BasicBlock as BB +private import codeql.controlflow.SuccessorType +private import codeql.util.Boolean +private import codeql.util.Location +private import codeql.util.Option + +private signature class TypSig; + +signature module InputSig { + AstNode getEnclosingAstNode(ControlFlowNode node); + + class AstNode { + /** Gets a textual representation of this AST node. */ + string toString(); + + /** Gets the location of this AST node. */ + Location getLocation(); + } + + AstNode getParent(AstNode node); + + class Expr extends AstNode; + + class FinallyBlock extends AstNode; + + /** A variable that can be SSA converted. */ + class SourceVariable { + /** Gets a textual representation of this variable. */ + string toString(); + + /** Gets the location of this variable. */ + Location getLocation(); + } + + class SsaDefinition { + SourceVariable getSourceVariable(); + + predicate definesAt(SourceVariable v, BasicBlock bb, int i); + + /** Gets the basic block to which this SSA definition belongs. */ + BasicBlock getBasicBlock(); + + /** Gets a textual representation of this SSA definition. */ + string toString(); + + /** Gets the location of this SSA definition. */ + Location getLocation(); + + /** Holds if this SSA variable is live at the end of `b`. */ + predicate isLiveAtEndOfBlock(BasicBlock b); + } + + class SsaWriteDefinition extends SsaDefinition { + Expr getDefinition(); + } + + class SsaPhiNode extends SsaDefinition { + /** Holds if `inp` is an input to the phi node along the edge originating in `bb`. */ + predicate hasInputFromBlock(SsaDefinition inp, BasicBlock bb); + + SsaDefinition getAPhiInput(); + } + + class SsaUncertainDefinition extends SsaDefinition { + /** + * Gets the immediately preceding definition. Since this update is uncertain, + * the value from the preceding definition might still be valid. + */ + SsaDefinition getPriorDefinition(); + } + + /** An abstract value that a `Guard` may evaluate to. */ + class GuardValue { + /** Gets a textual representation of this value. */ + string toString(); + + /** + * Gets the dual value. Examples of dual values include: + * - null vs. not null + * - true vs. false + * - evaluating to a specific value vs. evaluating to any other value + * - throwing an exception vs. not throwing an exception + */ + GuardValue getDualValue(); + + /** Gets the integer that this value represents, if any. */ + int asIntValue(); + + /** + * Holds if this value represents an integer range. + * + * If `upper = true` the range is `(-infinity, bound]`. + * If `upper = false` the range is `[bound, infinity)`. + */ + predicate isIntRange(int bound, boolean upper); + } + + /** + * Holds if `def` evaluating to `v` controls the control-flow branch + * edge from `bb1` to `bb2`. That is, following the edge from `bb1` to + * `bb2` implies that `def` evaluated to `v`. + */ + predicate ssaControlsBranchEdge(SsaDefinition def, BasicBlock bb1, BasicBlock bb2, GuardValue v); + + /** + * Holds if `def` evaluating to `v` controls the basic block `bb`. + * That is, execution of `bb` implies that `def` evaluated to `v`. + */ + predicate ssaControls(SsaDefinition def, BasicBlock bb, GuardValue v); + + predicate exprHasValue(Expr e, GuardValue gv); + + bindingset[gv1, gv2] + predicate disjointValues(GuardValue gv1, GuardValue gv2); +} + +module Make< + LocationSig Location, BB::CfgSig Cfg, + InputSig Input> +{ + private module Cfg_ = Cfg; + + private import Cfg_ + private import Input + + final private class FinalAstNode = Input::AstNode; + + class AstNode extends FinalAstNode { + AstNode getParent() { result = getParent(this) } + } + + /** + * Holds if `node` is enclosed by `finally`. In case of nested finally + * blocks, this predicate only holds for the innermost block enclosing + * `node`. + */ + private predicate hasEnclosingFinally(AstNode node, FinallyBlock finally) { + node = finally + or + not node instanceof FinallyBlock and + hasEnclosingFinally(node.getParent(), finally) + } + + /** + * Holds if `inner` is nested within `outer`. + */ + private predicate nestedFinally(FinallyBlock inner, FinallyBlock outer) { + hasEnclosingFinally(inner.(AstNode).getParent(), outer) + } + + /** Gets the nesting depth of `finally` in terms of number of finally blocks. */ + private int finallyNestLevel(FinallyBlock finally) { + not nestedFinally(finally, _) and result = 1 + or + exists(FinallyBlock outer | + nestedFinally(finally, outer) and result = 1 + finallyNestLevel(outer) + ) + } + + private int maxFinallyNesting() { result = max(finallyNestLevel(_)) } + + private newtype TFinallyStack = + TNil() or + TCons(Boolean abrupt, FinallyStack tail) { tail.length() < maxFinallyNesting() } + + /** + * A stack of split values to track whether entered finally blocks have + * waiting completions. + */ + private class FinallyStack extends TFinallyStack { + string toString() { + result = "" and this = TNil() + or + exists(boolean abrupt, FinallyStack tail | + result = abrupt + ";" + tail.toString() and this = TCons(abrupt, tail) + ) + } + + /** Gets the length of this stack. */ + int length() { + result = 0 and this = TNil() + or + exists(FinallyStack tail | result = 1 + tail.length() and this = TCons(_, tail)) + } + + /** + * Gets the stack resulting from pushing information about entering a + * finally block through a specific edge onto this stack. + * + * The `abrupt` value indicates whether the edge has an `AbruptSuccessor` + * or not. + */ + FinallyStack enter(boolean abrupt) { result = TCons(abrupt, this) } + + /** + * Gets the stack resulting from popping a value, if any, consistent with + * leaving a finally block through a specific edge. + * + * The `abrupt` value indicates whether the edge has an `AbruptSuccessor` + * or not. + */ + FinallyStack leave(Boolean abrupt) { + this = TNil() and result = TNil() and exists(abrupt) + or + abrupt = false and this = TCons(false, result) + or + abrupt = true and this = TCons(_, result) + } + } + + private ControlFlowNode basicBlockEndPoint() { + result = any(BasicBlock bb).getNode(0) or + result = any(BasicBlock bb).getLastNode() + } + + private predicate inFinally(AstNode node, FinallyBlock finally) { + node = getEnclosingAstNode(basicBlockEndPoint()) and + hasEnclosingFinally(node, finally) + or + exists(FinallyBlock inner | nestedFinally(inner, finally) and inFinally(node, inner)) + } + + private predicate irrelevantFinally(FinallyBlock finally) { + exists(BasicBlock bb, AstNode n1, AstNode n2 | + n1 = getEnclosingAstNode(bb.getNode(0)) and + n2 = getEnclosingAstNode(bb.getLastNode()) + | + inFinally(n1, finally) and not inFinally(n2, finally) + or + not inFinally(n1, finally) and inFinally(n2, finally) + ) + } + + private predicate entersFinally( + BasicBlock bb1, BasicBlock bb2, boolean abrupt, FinallyBlock finally + ) { + exists(AstNode n1, AstNode n2, SuccessorType t | + not irrelevantFinally(finally) and + bb1.getASuccessor(t) = bb2 and + n1 = getEnclosingAstNode(bb1.getLastNode()) and + n2 = getEnclosingAstNode(bb2.getNode(0)) and + not inFinally(n1, finally) and + inFinally(n2, finally) and + if t instanceof AbruptSuccessor then abrupt = true else abrupt = false + ) + } + + private predicate leavesFinally( + BasicBlock bb1, BasicBlock bb2, boolean abrupt, FinallyBlock finally + ) { + exists(AstNode n1, AstNode n2, SuccessorType t | + not irrelevantFinally(finally) and + bb1.getASuccessor(t) = bb2 and + n1 = getEnclosingAstNode(bb1.getLastNode()) and + n2 = getEnclosingAstNode(bb2.getNode(0)) and + inFinally(n1, finally) and + not inFinally(n2, finally) and + if t instanceof AbruptSuccessor then abrupt = true else abrupt = false + ) + } + + /** Holds if `gv1` is a strict subset of `gv2`. */ + bindingset[gv1, gv2] + private predicate smaller(GuardValue gv1, GuardValue gv2) { + disjointValues(gv1, gv2.getDualValue()) and + gv1 != gv2 + } + + /** + * Holds if the value of `def` is `gv`. + * + * If multiple values apply, then we only include the most precise ones. + */ + private predicate ssaHasValue(SsaWriteDefinition def, GuardValue gv) { + exists(Expr e | + def.getDefinition() = e and + exprHasValue(e, gv) and + not exists(GuardValue gv0 | exprHasValue(e, gv0) and smaller(gv0, gv)) + ) + } + + pragma[nomagic] + private predicate ssaLiveAtEndOfBlock(SourceVariable var, SsaDefinition def, BasicBlock bb) { + def.getSourceVariable() = var and + def.isLiveAtEndOfBlock(bb) + } + + pragma[nomagic] + private predicate initSsaValue0(SourceVariable var, BasicBlock bb, SsaDefinition t, GuardValue val) { + ssaLiveAtEndOfBlock(var, t, bb) and + ( + ssaControls(t, bb, val) + or + ssaHasValue(t, val) + ) + } + + /** + * Holds if the value of `t` in `bb` is `val` and that `t` is live at the + * end of `bb`. + * + * If multiple values apply, then we only include the most precise ones. + * + * The underlying variable of `t` is `var`. + */ + private predicate initSsaValue(SourceVariable var, BasicBlock bb, SsaDefinition t, GuardValue val) { + initSsaValue0(var, bb, t, val) and + not exists(GuardValue val0 | initSsaValue0(var, bb, t, val0) and smaller(val0, val)) + } + + private predicate possibleValue(SourceVariable var, GuardValue gv) { + exists(SsaDefinition def | def.getSourceVariable() = var | + ssaHasValue(def, gv) + or + ssaControlsBranchEdge(def, _, _, gv) + ) + } + + private predicate possibleRangeBound(SourceVariable var, int bound, boolean upper) { + exists(GuardValue gv | possibleValue(var, gv) and gv.isIntRange(bound, upper)) + } + + private predicate possibleClosedRange(SourceVariable var, int low, int high) { + possibleRangeBound(var, low, false) and + possibleRangeBound(var, high, true) and + low < high + } + + private newtype TGuardValueExt = + AnyValue() or + BaseValue(GuardValue gv) { possibleValue(_, gv) } or + IntRange(int low, int high) { possibleClosedRange(_, low, high) } + + private class GuardValueExt extends TGuardValueExt { + string toString() { + result = "Any" and this = AnyValue() + or + result = this.asBase().toString() + or + exists(int low, int high | + this = IntRange(low, high) and result = "[" + low + ", " + high + "]" + ) + } + + GuardValue asBase() { this = BaseValue(result) } + } + + private class TGuardValueOrAny = AnyValue or BaseValue; + + private class GuardValueOrAny extends GuardValueExt, TGuardValueOrAny { } + + private GuardValueExt mkRange(int low, int high) { + result = IntRange(low, high) + or + low = high and + result.asBase().asIntValue() = low + } + + private GuardValueExt intersectBase1(GuardValue gv1, GuardValue gv2) { + exists(SourceVariable var | + possibleValue(var, gv1) and + possibleValue(var, gv2) + | + smaller(gv1, gv2) and result.asBase() = gv1 + or + exists(int low, int high | + gv1.isIntRange(low, false) and + gv2.isIntRange(high, true) and + result = mkRange(low, high) + ) + or + exists(int bound, boolean upper, int d | + gv1.isIntRange(bound, upper) and + gv2.getDualValue().asIntValue() = bound and + result.asBase().isIntRange(bound + d, upper) + | + upper = true and d = -1 + or + upper = false and d = 1 + ) + ) + } + + private GuardValueExt intersectBase2(GuardValueExt v1, GuardValue v2) { + result = intersectBase1(v1.asBase(), v2) + or + result = intersectBase1(v2, v1.asBase()) + } + + bindingset[v1, v2] + pragma[inline_late] + private GuardValueExt intersectRange(GuardValueExt v1, GuardValue v2) { + exists(int low, int high | v1 = IntRange(low, high) | + exists(int bound, boolean upper | v2.isIntRange(bound, upper) | + upper = true and result = mkRange(low, high.minimum(bound)) + or + upper = false and result = mkRange(low.maximum(bound), high) + ) + or + exists(int k | + v2.asIntValue() = k and + result.asBase() = v2 and + low <= k and + k <= high + ) + or + not v2.isIntRange(_, _) and not exists(v2.asIntValue()) and result = v1 + ) + } + + bindingset[v1, v2] + pragma[inline_late] + private GuardValueExt intersect(GuardValueExt v1, GuardValue v2) { + v1 = AnyValue() and result.asBase() = v2 + or + result = intersectBase2(v1, v2) + or + result = v1 and + v1 instanceof BaseValue and + not exists(intersectBase2(v1, v2)) + or + result = intersectRange(v1, v2) + } + + bindingset[v1, gv2] + private predicate disjointValuesExt(GuardValueExt v1, GuardValue gv2) { + disjointValues(v1.asBase(), gv2) + or + exists(int low, int high | v1 = IntRange(low, high) | + gv2.asIntValue() < low + or + high < gv2.asIntValue() + or + exists(int bound, boolean upper | gv2.isIntRange(bound, upper) | + upper = true and bound < low + or + upper = false and high < bound + ) + ) + } + + /** An input configuration for control flow reachability. */ + signature module ConfigSig { + /** + * Holds if the value of `def` at `node` is a source for the reachability + * computation. + */ + predicate source(ControlFlowNode node, SsaDefinition def); + + /** + * Holds if the value of `def` at `node` is a sink for the reachability + * computation. + */ + predicate sink(ControlFlowNode node, SsaDefinition def); + + /** + * Holds if the value of `gv` is a barrier for the reachability computation. + * That is, paths where the tracked variable can be inferred to have the + * value of `gv` are excluded from the reachability analysis. + */ + default predicate barrierValue(GuardValue gv) { none() } + + /** + * Holds if the edge from `bb1` to `bb2` should be excluded from the + * reachability analysis. + */ + default predicate barrierEdge(BasicBlock bb1, BasicBlock bb2) { none() } + + /** + * Holds if flow through uncertain SSA updates should be included. + */ + default predicate uncertainFlow() { any() } + } + + /** + * Constructs a control flow reachability computation. + */ + module Flow { + private predicate ssaRelevantAtEndOfBlock(SsaDefinition def, BasicBlock bb) { + def.isLiveAtEndOfBlock(bb) + or + def.getBasicBlock().strictlyPostDominates(bb) + } + + pragma[nomagic] + private predicate isSource( + ControlFlowNode src, SsaDefinition srcDef, SourceVariable var, BasicBlock bb, int i + ) { + Config::source(src, srcDef) and + bb.getNode(i) = src and + srcDef.getSourceVariable() = var + } + + pragma[nomagic] + private predicate isSink( + ControlFlowNode sink, SsaDefinition sinkDef, SourceVariable var, BasicBlock bb, int i + ) { + Config::sink(sink, sinkDef) and + bb.getNode(i) = sink and + sinkDef.getSourceVariable() = var + } + + private predicate uncertainStep(SsaDefinition def1, SsaDefinition def2) { + def2.(SsaUncertainDefinition).getPriorDefinition() = def1 and + Config::uncertainFlow() + } + + private predicate intraBlockStep(SsaDefinition def1, SsaDefinition def2) { + exists(BasicBlock bb | + uncertainStep(def1, def2) and + bb = def2.getBasicBlock() and + isSource(_, _, _, bb, _) and + isSink(_, _, _, bb, _) + ) + } + + private predicate intraBlockFlowAll( + ControlFlowNode src, SsaDefinition srcDef, int i, ControlFlowNode sink, SsaDefinition sinkDef, + int j + ) { + exists(SourceVariable var, BasicBlock bb | + isSource(src, srcDef, var, bb, i) and + isSink(sink, sinkDef, var, bb, j) and + i <= j and + intraBlockStep*(srcDef, sinkDef) + ) + } + + private predicate intraBlockFlow( + ControlFlowNode src, SsaDefinition srcDef, ControlFlowNode sink, SsaDefinition sinkDef + ) { + exists(int i, int j | + intraBlockFlowAll(src, srcDef, i, sink, sinkDef, j) and + not exists(int k | + intraBlockFlowAll(src, srcDef, i, _, _, k) and + k < j + ) + ) + } + + private predicate sourceBlock(SsaDefinition def, BasicBlock bb, ControlFlowNode src) { + isSource(src, def, _, bb, _) and + not intraBlockFlow(src, def, _, _) + } + + private predicate sinkBlock(SsaDefinition def, BasicBlock bb, ControlFlowNode sink) { + sink = + min(ControlFlowNode n, int i | bb.getNode(i) = n and Config::sink(n, def) | n order by i) + } + + /** + * Holds if the edge from `bb1` to `bb2` implies that `def` has a value + * that is considered a barrier. + */ + private predicate ssaValueBarrierEdge(SsaDefinition def, BasicBlock bb1, BasicBlock bb2) { + exists(GuardValue v | + ssaControlsBranchEdge(def, bb1, bb2, v) and + Config::barrierValue(v) + ) + } + + /** Holds if `def1` in `bb1` may step to `def2` in `bb2`. */ + private predicate step(SsaDefinition def1, BasicBlock bb1, SsaDefinition def2, BasicBlock bb2) { + not sinkBlock(def1, bb1, _) and + not Config::barrierEdge(bb1, bb2) and + not ssaValueBarrierEdge(def1, bb1, bb2) and + ( + def2.(SsaPhiNode).hasInputFromBlock(def1, bb1) and bb2 = def2.getBasicBlock() + or + exists(SourceVariable v | + ssaRelevantAtEndOfBlock(def1, bb1) and + bb1.getASuccessor() = bb2 and + v = def1.getSourceVariable() and + not exists(SsaPhiNode phi | phi.getBasicBlock() = bb2 and phi.getSourceVariable() = v) and + def1 = def2 + ) + or + uncertainStep(def1, def2) and + bb2 = def2.getBasicBlock() and + bb1 = bb2 + ) + } + + bindingset[bb1, bb2, fs1] + pragma[inline_late] + private predicate stepFinallyStack( + BasicBlock bb1, BasicBlock bb2, FinallyStack fs1, FinallyStack fs2 + ) { + exists(boolean abrupt | entersFinally(bb1, bb2, abrupt, _) and fs2 = fs1.enter(abrupt)) and + not leavesFinally(bb1, bb2, _, _) + or + exists(boolean abrupt | leavesFinally(bb1, bb2, abrupt, _) and fs2 = fs1.leave(abrupt)) and + not entersFinally(bb1, bb2, _, _) + or + exists(boolean abrupt | + leavesFinally(bb1, bb2, abrupt, _) and + entersFinally(bb1, bb2, abrupt, _) and + fs2 = fs1.leave(abrupt).enter(abrupt) + ) + or + not entersFinally(bb1, bb2, _, _) and not leavesFinally(bb1, bb2, _, _) and fs2 = fs1 + } + + /** + * Holds if the source `srcDef` in `srcBb` may reach `def` in `bb`. If the + * path has entered one or more finally blocks then `fs` tracks the + * `SuccessorType`s of the edges entering those blocks. + */ + private predicate sourceReachesBlock( + SsaDefinition srcDef, BasicBlock srcBb, SsaDefinition def, BasicBlock bb, FinallyStack fs + ) { + sourceBlock(srcDef, srcBb, _) and + def = srcDef and + bb = srcBb and + fs = TNil() + or + exists(SsaDefinition middef, BasicBlock midbb, FinallyStack midfs | + sourceReachesBlock(srcDef, srcBb, middef, midbb, midfs) and + step(middef, midbb, def, bb) and + stepFinallyStack(midbb, bb, midfs, fs) + ) + } + + /** + * Holds if `def` in `bb` is reachable from a source and may reach a sink. + */ + private predicate blockReachesSink(SsaDefinition def, BasicBlock bb) { + sourceReachesBlock(_, _, def, bb, _) and + ( + sinkBlock(def, bb, _) + or + exists(SsaDefinition middef, BasicBlock midbb | + step(def, bb, middef, midbb) and + blockReachesSink(middef, midbb) + ) + ) + } + + private predicate escapeCandidate(SsaDefinition def, BasicBlock bb) { + sourceBlock(def, bb, _) + or + exists(SsaDefinition middef, BasicBlock midbb | + blockReachesSink(middef, midbb) and + step(middef, midbb, def, bb) + ) + } + + /** + * Holds if the source `srcDef` in `srcBb` may reach `escDef` in `escBb` and from + * there cannot reach a sink. + */ + private predicate sourceEscapesSink( + SsaDefinition srcDef, BasicBlock srcBb, SsaDefinition escDef, BasicBlock escBb + ) { + sourceReachesBlock(srcDef, srcBb, escDef, escBb, _) and + escapeCandidate(escDef, escBb) and + not blockReachesSink(escDef, escBb) + } + + /** Holds if `bb` is a relevant block for computing reachability of `src`. */ + private predicate pathBlock(SourceVariable src, BasicBlock bb) { + exists(SsaDefinition def | def.getSourceVariable() = src | + blockReachesSink(def, bb) + or + escapeCandidate(def, bb) + ) + } + + /** + * Holds if `bb1` to `bb2` is a relevant edge for computing reachability + * of `src`. + */ + private predicate pathEdge(SourceVariable src, BasicBlock bb1, BasicBlock bb2) { + step(_, bb1, _, bb2) and + pathBlock(pragma[only_bind_into](src), bb1) and + pathBlock(pragma[only_bind_into](src), bb2) and + bb1 != bb2 + } + + /** + * Holds if the edge from `bb1` to `bb2` implies that `def` has the value + * `gv` and that the edge is relevant for computing reachability of `src`. + * + * If multiple values may be implied by this edge, then we only include the + * most precise ones. + * + * The underlying variable of `t` is `var`. + */ + private predicate ssaControlsPathEdge( + SourceVariable src, SsaDefinition t, SourceVariable var, GuardValue gv, BasicBlock bb1, + BasicBlock bb2 + ) { + ssaControlsBranchEdge(t, bb1, bb2, gv) and + not exists(GuardValue gv0 | ssaControlsBranchEdge(t, bb1, bb2, gv0) and smaller(gv0, gv)) and + pathEdge(src, bb1, bb2) and + t.getSourceVariable() = var + } + + /** + * Holds if the reachability path for `src` may go through a loop with + * entry point `entry`. + */ + pragma[nomagic] + private predicate loopEntryBlock(SourceVariable src, BasicBlock entry) { + exists(BasicBlock pred | pathEdge(src, pred, entry) and entry.strictlyDominates(pred)) + } + + /** + * Holds if precision may be improved by splitting control flow on the + * value of `var` during the reachability computation of `src`. + */ + private predicate relevantSplit(SourceVariable src, SourceVariable var) { + // `var` may be a relevant split if we encounter 2+ conditional edges + // that imply information about `var`. + 2 <= strictcount(BasicBlock bb1 | ssaControlsPathEdge(src, _, var, _, bb1, _)) + or + // Or if we encounter a conditional edge that imply a value that's + // incompatible with an initial or later assigned value. + exists(GuardValue gv1, GuardValue gv2, BasicBlock bb | + ssaControlsPathEdge(src, _, var, gv1, _, _) and + initSsaValue(var, bb, _, gv2) and + disjointValues(gv1, gv2) and + pathBlock(src, bb) + ) + or + // Or if we encounter a conditional edge in a loop that imply a value for + // `var` that may be unchanged from one iteration to the next. + exists(SsaDefinition def, BasicBlock bb1, BasicBlock bb2, BasicBlock loopEntry | + ssaControlsPathEdge(src, def, var, _, bb1, bb2) and + loopEntryBlock(src, loopEntry) and + loopEntry.strictlyDominates(bb1) and + bb2.getASuccessor*() = loopEntry + | + def.getBasicBlock().dominates(loopEntry) + or + exists(SsaPhiNode phi | + phi.definesAt(var, loopEntry, _) and + phi.getAPhiInput+() = def and + def.(SsaPhiNode).getAPhiInput*() = phi + ) + ) + } + + private module SsaDefOption = Option; + + private class SsaDefOption = SsaDefOption::Option; + + private predicate lastDefInBlock(SourceVariable var, SsaDefinition def, BasicBlock bb) { + def = max(SsaDefinition d, int i | d.definesAt(var, bb, i) | d order by i) + } + + /** + * Holds if `bb1` to `bb2` is a relevant edge for computing reachability of + * `src`, and `var` is a relevant splitting variable that gets (re-)defined + * in `bb2` by `t`, which is not a phi node. + * + * `val` is the best known value for `t` in `bb2`. + */ + private predicate stepSsaValueRedef( + SourceVariable src, BasicBlock bb1, BasicBlock bb2, SourceVariable var, SsaDefinition t, + GuardValueOrAny val + ) { + pathEdge(src, bb1, bb2) and + relevantSplit(src, var) and + lastDefInBlock(var, t, bb2) and + not t instanceof SsaPhiNode and + ( + ssaHasValue(t, val.asBase()) + or + not ssaHasValue(t, _) and val = AnyValue() + ) + } + + /** + * Holds if `bb1` to `bb2` is a relevant edge for computing reachability of + * `src`, and `var` is a relevant splitting variable that has a phi node, + * `t2`, in `bb2` taking input from `t1` along this edge. Furthermore, + * there is no further redefinition of `var` in `bb2`. + * + * `val` is the best value for `t1`/`t2` implied by taking this edge. + */ + private predicate stepSsaValuePhi( + SourceVariable src, BasicBlock bb1, BasicBlock bb2, SourceVariable var, SsaDefinition t1, + SsaDefinition t2, GuardValueOrAny val + ) { + pathEdge(src, bb1, bb2) and + relevantSplit(src, var) and + lastDefInBlock(var, t2, bb2) and + t2.(SsaPhiNode).hasInputFromBlock(t1, bb1) and + ( + ssaControlsPathEdge(src, t1, _, val.asBase(), bb1, bb2) + or + not ssaControlsPathEdge(src, t1, _, _, bb1, bb2) and + val = AnyValue() + ) + } + + /** + * Holds if `bb1` to `bb2` is a relevant edge for computing reachability of + * `src`, and `var` is a relevant splitting variable that has no + * redefinition along this edge nor in `bb2`. + * + * Additionally, this edge implies that the SSA definition `t` of `var` has + * value `val`. + */ + private predicate stepSsaValueNoRedef( + SourceVariable src, BasicBlock bb1, BasicBlock bb2, SourceVariable var, SsaDefinition t, + GuardValue val + ) { + pathEdge(src, bb1, bb2) and + relevantSplit(src, var) and + not lastDefInBlock(var, _, bb2) and + ssaControlsPathEdge(src, t, var, val, bb1, bb2) + } + + /** + * Holds if the source `srcDef` in `srcBb` may reach `def` in `bb`. The + * taken path takes splitting based on the value of `var` into account. + * The pair `(tracked, val)` is the current SSA definition and known value + * for `var` in `bb`. + */ + private predicate sourceReachesBlockWithTrackedVar( + SsaDefinition srcDef, BasicBlock srcBb, SsaDefinition def, BasicBlock bb, FinallyStack fs, + SsaDefOption tracked, GuardValueExt val, SourceVariable var + ) { + sourceBlock(srcDef, srcBb, _) and + def = srcDef and + bb = srcBb and + fs = TNil() and + relevantSplit(def.getSourceVariable(), var) and + ( + // tracking variable is not yet live + not ssaLiveAtEndOfBlock(var, _, bb) and + tracked.isNone() and + val = AnyValue() + or + // tracking variable is live but without known value + ssaLiveAtEndOfBlock(var, tracked.asSome(), bb) and + not initSsaValue(var, bb, _, _) and + val = AnyValue() + or + // tracking variable has known value + initSsaValue(var, bb, tracked.asSome(), val.asBase()) + ) + or + exists( + SourceVariable src, SsaDefinition middef, BasicBlock midbb, FinallyStack midfs, + SsaDefOption tracked0, GuardValueExt val0 + | + sourceReachesBlockWithTrackedVar(srcDef, srcBb, middef, midbb, midfs, tracked0, val0, var) and + src = srcDef.getSourceVariable() and + step(middef, midbb, def, bb) and + stepFinallyStack(midbb, bb, midfs, fs) and + pathBlock(src, bb) and + not exists(GuardValue gv | + ssaControlsPathEdge(src, tracked0.asSome(), _, gv, midbb, bb) and + disjointValuesExt(val0, gv) + ) + | + // tracking variable is redefined + stepSsaValueRedef(src, midbb, bb, var, tracked.asSome(), val) + or + exists(GuardValueOrAny val1 | + // tracking variable has a phi node, and maybe value information from the edge + stepSsaValuePhi(src, midbb, bb, var, tracked0.asSome(), tracked.asSome(), val1) + | + val = val0 and val1 = AnyValue() + or + val = intersect(val0, val1.asBase()) + ) + or + exists(GuardValue val1 | + // tracking variable is unchanged, and has value information from the edge + stepSsaValueNoRedef(src, midbb, bb, var, tracked0.asSome(), val1) and + tracked = tracked0 and + val = intersect(val0, val1) + ) + or + // tracking variable is unchanged, and has no value information from the edge + not lastDefInBlock(var, _, bb) and + not stepSsaValueNoRedef(src, midbb, bb, var, tracked0.asSome(), _) and + tracked = tracked0 and + val = val0 + ) + } + + /** + * Holds if the source `srcDef` at `src` may reach the sink `sinkDef` at `sink`. + */ + predicate flow( + ControlFlowNode src, SsaDefinition srcDef, ControlFlowNode sink, SsaDefinition sinkDef + ) { + intraBlockFlow(src, srcDef, sink, sinkDef) + or + exists(BasicBlock srcBb, BasicBlock sinkBb, SourceVariable srcVar | + sourceBlock(srcDef, srcBb, src) and + sourceReachesBlock(srcDef, srcBb, sinkDef, sinkBb, _) and + sinkBlock(sinkDef, sinkBb, sink) and + srcVar = srcDef.getSourceVariable() and + forall(SourceVariable t | relevantSplit(srcVar, t) | + sourceReachesBlockWithTrackedVar(srcDef, srcBb, sinkDef, sinkBb, _, _, _, t) + ) + ) + } + + /** + * Holds if the source `srcDef` at `src` may escape, that is, there exists + * a path from `src` that circumvents all sinks to a point from which no + * sink is reachable. + */ + predicate escapeFlow(ControlFlowNode src, SsaDefinition srcDef) { + not intraBlockFlow(src, srcDef, _, _) and + exists(BasicBlock srcBb, SsaDefinition escDef, BasicBlock escBb, SourceVariable srcVar | + sourceBlock(srcDef, srcBb, src) and + sourceEscapesSink(srcDef, srcBb, escDef, escBb) and + srcVar = srcDef.getSourceVariable() and + forall(SourceVariable t | relevantSplit(srcVar, t) | + sourceReachesBlockWithTrackedVar(srcDef, srcBb, escDef, escBb, _, _, _, t) + ) + ) + } + } +} diff --git a/shared/controlflow/codeql/controlflow/Guards.qll b/shared/controlflow/codeql/controlflow/Guards.qll index 3fe63a7118c..0bbfb29e4e6 100644 --- a/shared/controlflow/codeql/controlflow/Guards.qll +++ b/shared/controlflow/codeql/controlflow/Guards.qll @@ -208,6 +208,12 @@ module Make< private newtype TGuardValue = TValue(TAbstractSingleValue val, Boolean isVal) or + TIntRange(int bound, Boolean upper) { + exists(ConstantExpr c | c.asIntegerValue() + [-1, 0, 1] = bound) and + // exclude edge cases to avoid overflow issues when computing duals + bound != 2147483647 and + bound != -2147483648 + } or TException(Boolean throws) private class AbstractSingleValue extends TAbstractSingleValue { @@ -238,6 +244,15 @@ module Make< result = TValue(val, isVal.booleanNot()) ) or + exists(int bound, int d, boolean upper | + upper = true and d = 1 + or + upper = false and d = -1 + | + this = TIntRange(bound, pragma[only_bind_into](upper)) and + result = TIntRange(bound + d, pragma[only_bind_into](upper.booleanNot())) + ) + or exists(boolean throws | this = TException(throws) and result = TException(throws.booleanNot()) @@ -262,6 +277,14 @@ module Make< /** Gets the constant that this value represents, if any. */ ConstantValue asConstantValue() { this = TValue(TValueConstant(result), true) } + /** + * Holds if this value represents an integer range. + * + * If `upper = true` the range is `(-infinity, bound]`. + * If `upper = false` the range is `[bound, infinity)`. + */ + predicate isIntRange(int bound, boolean upper) { this = TIntRange(bound, upper) } + /** Holds if this value represents throwing an exception. */ predicate isThrowsException() { this = TException(true) } @@ -275,6 +298,12 @@ module Make< this = TValue(val, false) and result = "not " + val.toString() ) or + exists(int bound | + this = TIntRange(bound, true) and result = "Upper bound " + bound.toString() + or + this = TIntRange(bound, false) and result = "Lower bound " + bound.toString() + ) + or exists(boolean throws | this = TException(throws) | throws = true and result = "exception" or @@ -293,6 +322,24 @@ module Make< b = TValue(b1, true) and a1 != b1 ) + or + exists(int upperbound, int lowerbound | + a = TIntRange(upperbound, true) and b = TIntRange(lowerbound, false) + or + b = TIntRange(upperbound, true) and a = TIntRange(lowerbound, false) + | + upperbound < lowerbound + ) + or + exists(int bound, boolean upper, int k | + a = TIntRange(bound, upper) and b.asIntValue() = k + or + b = TIntRange(bound, upper) and a.asIntValue() = k + | + upper = true and bound < k + or + upper = false and bound > k + ) } private predicate constantHasValue(ConstantExpr c, GuardValue v) { @@ -681,38 +728,22 @@ module Make< ) } - /** Holds if `e` may take the value `k` */ - private predicate relevantInt(Expr e, int k) { - e.(ConstantExpr).asIntegerValue() = k - or - relevantInt(any(Expr e1 | valueStep(e1, e)), k) - or - exists(SsaDefinition def | - guardReadsSsaVar(e, def) and - relevantInt(getAnUltimateDefinition(def, _).(SsaWriteDefinition).getDefinition(), k) - ) - } - private predicate impliesStep1(Guard g1, GuardValue v1, Guard g2, GuardValue v2) { baseImpliesStep(g1, v1, g2, v2) or - exists(SsaDefinition def, Expr e | + exists(SsaDefinition def, Expr e, BasicBlock bb1 | // If `def = g2 ? v1 : ...` and all other assignments to `def` are different from // `v1` then a guard proving `def == v1` ensures that `g2` evaluates to `v2`. uniqueValue(def, e, v1) and guardReadsSsaVar(g1, def) and g2.directlyValueControls(e.getBasicBlock(), v2) and - not g2.directlyValueControls(g1.getBasicBlock(), v2) + bb1 = g1.getBasicBlock() and + not g2.directlyValueControls(bb1, v2) ) or - exists(int k1, int k2, boolean upper | - rangeGuard(g1, v1, g2, k1, upper) and - relevantInt(g2, k2) and - v2 = TValue(TValueInt(k2), false) - | - upper = true and k1 < k2 // g2 <= k1 < k2 ==> g2 != k2 - or - upper = false and k1 > k2 // g2 >= k1 > k2 ==> g2 != k2 + exists(int k, boolean upper | + rangeGuard(g1, v1, g2, k, upper) and + v2 = TIntRange(k, upper) ) or exists(boolean isNull | @@ -744,6 +775,10 @@ module Make< or exprHasValue(e.(IdExpr).getEqualChildExpr(), v) or + exists(ConditionalExpr cond | cond = e | + exprHasValue(cond.getThen(), v) and exprHasValue(cond.getElse(), v) + ) + or exists(SsaDefinition def, Guard g, GuardValue gv | e = def.getARead() and g.directlyValueControls(e.getBasicBlock(), gv) and @@ -1213,5 +1248,16 @@ module Make< this.valueControls(bb, any(GuardValue gv | gv.asBooleanValue() = branch)) } } + + private predicate exprHasValueAlias = exprHasValue/2; + + private predicate disjointValuesAlias = disjointValues/2; + + /** Provides utility predicates for working with `GuardValue`s. */ + module InternalUtil { + predicate exprHasValue = exprHasValueAlias/2; + + predicate disjointValues = disjointValuesAlias/2; + } } } diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index e1647c3a2f4..56945c0709d 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 2.0.15-dev +version: 2.0.16-dev groups: shared library: true dependencies: diff --git a/shared/dataflow/CHANGELOG.md b/shared/dataflow/CHANGELOG.md index b5b86ffbccb..1a867888e89 100644 --- a/shared/dataflow/CHANGELOG.md +++ b/shared/dataflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.15 + +No user-facing changes. + ## 2.0.14 No user-facing changes. diff --git a/shared/dataflow/change-notes/released/2.0.15.md b/shared/dataflow/change-notes/released/2.0.15.md new file mode 100644 index 00000000000..3b59db4224a --- /dev/null +++ b/shared/dataflow/change-notes/released/2.0.15.md @@ -0,0 +1,3 @@ +## 2.0.15 + +No user-facing changes. diff --git a/shared/dataflow/codeql-pack.release.yml b/shared/dataflow/codeql-pack.release.yml index 23aa0864b29..0377ae283a3 100644 --- a/shared/dataflow/codeql-pack.release.yml +++ b/shared/dataflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.14 +lastReleaseVersion: 2.0.15 diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImplConsistency.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImplConsistency.qll index 83abd41f5e6..8f0d2cbdb77 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImplConsistency.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImplConsistency.qll @@ -254,7 +254,10 @@ module MakeConsistency< query predicate postWithInFlow(PostUpdateNode n, string msg) { not clearsContent(n, _) and - simpleLocalFlowStep(_, n, _) and + exists(Node pred | + simpleLocalFlowStep(pred, n, _) and + not pred instanceof PostUpdateNode + ) and not Input::postWithInFlowExclude(n) and msg = "PostUpdateNode should not be the target of local flow." } diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index 62a66a7e228..4c0a9bdfe8c 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 2.0.15-dev +version: 2.0.16-dev groups: shared library: true dependencies: diff --git a/shared/mad/CHANGELOG.md b/shared/mad/CHANGELOG.md index bd3e670038c..e6cf183a1d4 100644 --- a/shared/mad/CHANGELOG.md +++ b/shared/mad/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.31 + +No user-facing changes. + ## 1.0.30 No user-facing changes. diff --git a/shared/mad/change-notes/released/1.0.31.md b/shared/mad/change-notes/released/1.0.31.md new file mode 100644 index 00000000000..b2642bbb5f8 --- /dev/null +++ b/shared/mad/change-notes/released/1.0.31.md @@ -0,0 +1,3 @@ +## 1.0.31 + +No user-facing changes. diff --git a/shared/mad/codeql-pack.release.yml b/shared/mad/codeql-pack.release.yml index f04640951de..f5bdc98ffc8 100644 --- a/shared/mad/codeql-pack.release.yml +++ b/shared/mad/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.30 +lastReleaseVersion: 1.0.31 diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index 33968071a42..b6f4e8c2bc1 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 1.0.31-dev +version: 1.0.32-dev groups: shared library: true dependencies: diff --git a/shared/quantum/CHANGELOG.md b/shared/quantum/CHANGELOG.md index fba2a870356..a59e560c415 100644 --- a/shared/quantum/CHANGELOG.md +++ b/shared/quantum/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.9 + +No user-facing changes. + ## 0.0.8 No user-facing changes. diff --git a/shared/quantum/change-notes/released/0.0.9.md b/shared/quantum/change-notes/released/0.0.9.md new file mode 100644 index 00000000000..c9e17c6d6cf --- /dev/null +++ b/shared/quantum/change-notes/released/0.0.9.md @@ -0,0 +1,3 @@ +## 0.0.9 + +No user-facing changes. diff --git a/shared/quantum/codeql-pack.release.yml b/shared/quantum/codeql-pack.release.yml index 58fdc6b45de..ecdd64fbab8 100644 --- a/shared/quantum/codeql-pack.release.yml +++ b/shared/quantum/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.8 +lastReleaseVersion: 0.0.9 diff --git a/shared/quantum/qlpack.yml b/shared/quantum/qlpack.yml index 023d04f544d..3741ff55855 100644 --- a/shared/quantum/qlpack.yml +++ b/shared/quantum/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/quantum -version: 0.0.9-dev +version: 0.0.10-dev groups: shared library: true dependencies: diff --git a/shared/rangeanalysis/CHANGELOG.md b/shared/rangeanalysis/CHANGELOG.md index e64dff3b1e6..10466480900 100644 --- a/shared/rangeanalysis/CHANGELOG.md +++ b/shared/rangeanalysis/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.31 + +No user-facing changes. + ## 1.0.30 No user-facing changes. diff --git a/shared/rangeanalysis/change-notes/released/1.0.31.md b/shared/rangeanalysis/change-notes/released/1.0.31.md new file mode 100644 index 00000000000..b2642bbb5f8 --- /dev/null +++ b/shared/rangeanalysis/change-notes/released/1.0.31.md @@ -0,0 +1,3 @@ +## 1.0.31 + +No user-facing changes. diff --git a/shared/rangeanalysis/codeql-pack.release.yml b/shared/rangeanalysis/codeql-pack.release.yml index f04640951de..f5bdc98ffc8 100644 --- a/shared/rangeanalysis/codeql-pack.release.yml +++ b/shared/rangeanalysis/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.30 +lastReleaseVersion: 1.0.31 diff --git a/shared/rangeanalysis/qlpack.yml b/shared/rangeanalysis/qlpack.yml index 5ee5c466a3d..e67c274bf51 100644 --- a/shared/rangeanalysis/qlpack.yml +++ b/shared/rangeanalysis/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rangeanalysis -version: 1.0.31-dev +version: 1.0.32-dev groups: shared library: true dependencies: diff --git a/shared/regex/CHANGELOG.md b/shared/regex/CHANGELOG.md index 11353af62b1..3b3fcb5a55f 100644 --- a/shared/regex/CHANGELOG.md +++ b/shared/regex/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.31 + +No user-facing changes. + ## 1.0.30 No user-facing changes. diff --git a/shared/regex/change-notes/released/1.0.31.md b/shared/regex/change-notes/released/1.0.31.md new file mode 100644 index 00000000000..b2642bbb5f8 --- /dev/null +++ b/shared/regex/change-notes/released/1.0.31.md @@ -0,0 +1,3 @@ +## 1.0.31 + +No user-facing changes. diff --git a/shared/regex/codeql-pack.release.yml b/shared/regex/codeql-pack.release.yml index f04640951de..f5bdc98ffc8 100644 --- a/shared/regex/codeql-pack.release.yml +++ b/shared/regex/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.30 +lastReleaseVersion: 1.0.31 diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index 30748219abb..5aebaf9bffb 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 1.0.31-dev +version: 1.0.32-dev groups: shared library: true dependencies: diff --git a/shared/ssa/CHANGELOG.md b/shared/ssa/CHANGELOG.md index 5a9cf1a7175..e7e17bf044b 100644 --- a/shared/ssa/CHANGELOG.md +++ b/shared/ssa/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.7 + +No user-facing changes. + ## 2.0.6 No user-facing changes. diff --git a/shared/ssa/change-notes/released/2.0.7.md b/shared/ssa/change-notes/released/2.0.7.md new file mode 100644 index 00000000000..4eb1353458c --- /dev/null +++ b/shared/ssa/change-notes/released/2.0.7.md @@ -0,0 +1,3 @@ +## 2.0.7 + +No user-facing changes. diff --git a/shared/ssa/codeql-pack.release.yml b/shared/ssa/codeql-pack.release.yml index fbbc03c7642..08d5e959449 100644 --- a/shared/ssa/codeql-pack.release.yml +++ b/shared/ssa/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.6 +lastReleaseVersion: 2.0.7 diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index 1bb80db8eb8..8337226f574 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 2.0.7-dev +version: 2.0.8-dev groups: shared library: true dependencies: diff --git a/shared/threat-models/CHANGELOG.md b/shared/threat-models/CHANGELOG.md index c30f8de8bc9..d5040623557 100644 --- a/shared/threat-models/CHANGELOG.md +++ b/shared/threat-models/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.31 + +No user-facing changes. + ## 1.0.30 No user-facing changes. diff --git a/shared/threat-models/change-notes/released/1.0.31.md b/shared/threat-models/change-notes/released/1.0.31.md new file mode 100644 index 00000000000..b2642bbb5f8 --- /dev/null +++ b/shared/threat-models/change-notes/released/1.0.31.md @@ -0,0 +1,3 @@ +## 1.0.31 + +No user-facing changes. diff --git a/shared/threat-models/codeql-pack.release.yml b/shared/threat-models/codeql-pack.release.yml index f04640951de..f5bdc98ffc8 100644 --- a/shared/threat-models/codeql-pack.release.yml +++ b/shared/threat-models/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.30 +lastReleaseVersion: 1.0.31 diff --git a/shared/threat-models/qlpack.yml b/shared/threat-models/qlpack.yml index 4295c7e7024..8f72fd8ad3f 100644 --- a/shared/threat-models/qlpack.yml +++ b/shared/threat-models/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/threat-models -version: 1.0.31-dev +version: 1.0.32-dev library: true groups: shared dataExtensions: diff --git a/shared/tree-sitter-extractor/Cargo.toml b/shared/tree-sitter-extractor/Cargo.toml index e47ef3577e2..8e60be7274f 100644 --- a/shared/tree-sitter-extractor/Cargo.toml +++ b/shared/tree-sitter-extractor/Cargo.toml @@ -10,14 +10,14 @@ flate2 = "1.1" globset = "0.4" tree-sitter = ">= 0.23.0" tracing = "0.1" -tracing-subscriber = { version = "0.3.19", features = ["env-filter"] } -rayon = "1.10.0" -regex = "1.11.1" +tracing-subscriber = { version = "0.3.20", features = ["env-filter"] } +rayon = "1.11.0" +regex = "1.11.2" encoding = "0.2" lazy_static = "1.5.0" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" -chrono = { version = "0.4.41", features = ["serde"] } +chrono = { version = "0.4.42", features = ["serde"] } num_cpus = "1.17.0" zstd = "0.13.3" diff --git a/shared/tutorial/CHANGELOG.md b/shared/tutorial/CHANGELOG.md index 61441b61061..f4a80412ca8 100644 --- a/shared/tutorial/CHANGELOG.md +++ b/shared/tutorial/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.31 + +No user-facing changes. + ## 1.0.30 No user-facing changes. diff --git a/shared/tutorial/change-notes/released/1.0.31.md b/shared/tutorial/change-notes/released/1.0.31.md new file mode 100644 index 00000000000..b2642bbb5f8 --- /dev/null +++ b/shared/tutorial/change-notes/released/1.0.31.md @@ -0,0 +1,3 @@ +## 1.0.31 + +No user-facing changes. diff --git a/shared/tutorial/codeql-pack.release.yml b/shared/tutorial/codeql-pack.release.yml index f04640951de..f5bdc98ffc8 100644 --- a/shared/tutorial/codeql-pack.release.yml +++ b/shared/tutorial/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.30 +lastReleaseVersion: 1.0.31 diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index f640ccc3116..aabb0356b86 100644 --- a/shared/tutorial/qlpack.yml +++ b/shared/tutorial/qlpack.yml @@ -1,7 +1,7 @@ name: codeql/tutorial description: Library for the CodeQL detective tutorials, helping new users learn to write CodeQL queries. -version: 1.0.31-dev +version: 1.0.32-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typeflow/CHANGELOG.md b/shared/typeflow/CHANGELOG.md index 94df766d756..bf429698022 100644 --- a/shared/typeflow/CHANGELOG.md +++ b/shared/typeflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.31 + +No user-facing changes. + ## 1.0.30 No user-facing changes. diff --git a/shared/typeflow/change-notes/released/1.0.31.md b/shared/typeflow/change-notes/released/1.0.31.md new file mode 100644 index 00000000000..b2642bbb5f8 --- /dev/null +++ b/shared/typeflow/change-notes/released/1.0.31.md @@ -0,0 +1,3 @@ +## 1.0.31 + +No user-facing changes. diff --git a/shared/typeflow/codeql-pack.release.yml b/shared/typeflow/codeql-pack.release.yml index f04640951de..f5bdc98ffc8 100644 --- a/shared/typeflow/codeql-pack.release.yml +++ b/shared/typeflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.30 +lastReleaseVersion: 1.0.31 diff --git a/shared/typeflow/qlpack.yml b/shared/typeflow/qlpack.yml index f98b15e1540..98566858903 100644 --- a/shared/typeflow/qlpack.yml +++ b/shared/typeflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeflow -version: 1.0.31-dev +version: 1.0.32-dev groups: shared library: true dependencies: diff --git a/shared/typeinference/CHANGELOG.md b/shared/typeinference/CHANGELOG.md index d9dd6b6f2e2..83a42fb0551 100644 --- a/shared/typeinference/CHANGELOG.md +++ b/shared/typeinference/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.12 + +No user-facing changes. + ## 0.0.11 No user-facing changes. diff --git a/shared/typeinference/change-notes/released/0.0.12.md b/shared/typeinference/change-notes/released/0.0.12.md new file mode 100644 index 00000000000..0e206033bc4 --- /dev/null +++ b/shared/typeinference/change-notes/released/0.0.12.md @@ -0,0 +1,3 @@ +## 0.0.12 + +No user-facing changes. diff --git a/shared/typeinference/codeql-pack.release.yml b/shared/typeinference/codeql-pack.release.yml index e679dc42092..997fb8da83c 100644 --- a/shared/typeinference/codeql-pack.release.yml +++ b/shared/typeinference/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.11 +lastReleaseVersion: 0.0.12 diff --git a/shared/typeinference/qlpack.yml b/shared/typeinference/qlpack.yml index ca81b09ba49..954a850cf0f 100644 --- a/shared/typeinference/qlpack.yml +++ b/shared/typeinference/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeinference -version: 0.0.12-dev +version: 0.0.13-dev groups: shared library: true dependencies: diff --git a/shared/typetracking/CHANGELOG.md b/shared/typetracking/CHANGELOG.md index 4e7d55fc700..1372c8c89ea 100644 --- a/shared/typetracking/CHANGELOG.md +++ b/shared/typetracking/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.15 + +No user-facing changes. + ## 2.0.14 No user-facing changes. diff --git a/shared/typetracking/change-notes/released/2.0.15.md b/shared/typetracking/change-notes/released/2.0.15.md new file mode 100644 index 00000000000..3b59db4224a --- /dev/null +++ b/shared/typetracking/change-notes/released/2.0.15.md @@ -0,0 +1,3 @@ +## 2.0.15 + +No user-facing changes. diff --git a/shared/typetracking/codeql-pack.release.yml b/shared/typetracking/codeql-pack.release.yml index 23aa0864b29..0377ae283a3 100644 --- a/shared/typetracking/codeql-pack.release.yml +++ b/shared/typetracking/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.14 +lastReleaseVersion: 2.0.15 diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index 95228f4b0d7..2bf6f01d218 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 2.0.15-dev +version: 2.0.16-dev groups: shared library: true dependencies: diff --git a/shared/typos/CHANGELOG.md b/shared/typos/CHANGELOG.md index 37548ac47d5..c44b941f9e3 100644 --- a/shared/typos/CHANGELOG.md +++ b/shared/typos/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.31 + +No user-facing changes. + ## 1.0.30 No user-facing changes. diff --git a/shared/typos/change-notes/released/1.0.31.md b/shared/typos/change-notes/released/1.0.31.md new file mode 100644 index 00000000000..b2642bbb5f8 --- /dev/null +++ b/shared/typos/change-notes/released/1.0.31.md @@ -0,0 +1,3 @@ +## 1.0.31 + +No user-facing changes. diff --git a/shared/typos/codeql-pack.release.yml b/shared/typos/codeql-pack.release.yml index f04640951de..f5bdc98ffc8 100644 --- a/shared/typos/codeql-pack.release.yml +++ b/shared/typos/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.30 +lastReleaseVersion: 1.0.31 diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index 42c6e4df22e..b01883668b7 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 1.0.31-dev +version: 1.0.32-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/CHANGELOG.md b/shared/util/CHANGELOG.md index 193ce4e9521..d9169a8d5d8 100644 --- a/shared/util/CHANGELOG.md +++ b/shared/util/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.18 + +No user-facing changes. + ## 2.0.17 ### Minor Analysis Improvements diff --git a/shared/util/change-notes/released/2.0.18.md b/shared/util/change-notes/released/2.0.18.md new file mode 100644 index 00000000000..11e398dac31 --- /dev/null +++ b/shared/util/change-notes/released/2.0.18.md @@ -0,0 +1,3 @@ +## 2.0.18 + +No user-facing changes. diff --git a/shared/util/codeql-pack.release.yml b/shared/util/codeql-pack.release.yml index a5f7c15c020..16342205c73 100644 --- a/shared/util/codeql-pack.release.yml +++ b/shared/util/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.17 +lastReleaseVersion: 2.0.18 diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index 2587ddb147a..1c1f5670d3e 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 2.0.18-dev +version: 2.0.19-dev groups: shared library: true dependencies: null diff --git a/shared/xml/CHANGELOG.md b/shared/xml/CHANGELOG.md index 96204491536..59ae3e2581a 100644 --- a/shared/xml/CHANGELOG.md +++ b/shared/xml/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.31 + +No user-facing changes. + ## 1.0.30 No user-facing changes. diff --git a/shared/xml/change-notes/released/1.0.31.md b/shared/xml/change-notes/released/1.0.31.md new file mode 100644 index 00000000000..b2642bbb5f8 --- /dev/null +++ b/shared/xml/change-notes/released/1.0.31.md @@ -0,0 +1,3 @@ +## 1.0.31 + +No user-facing changes. diff --git a/shared/xml/codeql-pack.release.yml b/shared/xml/codeql-pack.release.yml index f04640951de..f5bdc98ffc8 100644 --- a/shared/xml/codeql-pack.release.yml +++ b/shared/xml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.30 +lastReleaseVersion: 1.0.31 diff --git a/shared/xml/qlpack.yml b/shared/xml/qlpack.yml index 4e9a5bf0a63..0908201b182 100644 --- a/shared/xml/qlpack.yml +++ b/shared/xml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/xml -version: 1.0.31-dev +version: 1.0.32-dev groups: shared library: true dependencies: diff --git a/shared/yaml/CHANGELOG.md b/shared/yaml/CHANGELOG.md index 67e07b08467..2254f38fb9f 100644 --- a/shared/yaml/CHANGELOG.md +++ b/shared/yaml/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.31 + +No user-facing changes. + ## 1.0.30 No user-facing changes. diff --git a/shared/yaml/change-notes/released/1.0.31.md b/shared/yaml/change-notes/released/1.0.31.md new file mode 100644 index 00000000000..b2642bbb5f8 --- /dev/null +++ b/shared/yaml/change-notes/released/1.0.31.md @@ -0,0 +1,3 @@ +## 1.0.31 + +No user-facing changes. diff --git a/shared/yaml/codeql-pack.release.yml b/shared/yaml/codeql-pack.release.yml index f04640951de..f5bdc98ffc8 100644 --- a/shared/yaml/codeql-pack.release.yml +++ b/shared/yaml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.30 +lastReleaseVersion: 1.0.31 diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index 56aa47072f0..cbbdd896341 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 1.0.31-dev +version: 1.0.32-dev groups: shared library: true warnOnImplicitThis: true diff --git a/swift/ql/lib/CHANGELOG.md b/swift/ql/lib/CHANGELOG.md index cef716a2578..7138ed02a2b 100644 --- a/swift/ql/lib/CHANGELOG.md +++ b/swift/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 5.0.7 + +### Minor Analysis Improvements + +* Updated to allow analysis of Swift 6.1.3. + ## 5.0.6 No user-facing changes. diff --git a/swift/ql/lib/change-notes/2025-09-08-swift-6.1.3.md b/swift/ql/lib/change-notes/released/5.0.7.md similarity index 50% rename from swift/ql/lib/change-notes/2025-09-08-swift-6.1.3.md rename to swift/ql/lib/change-notes/released/5.0.7.md index 7d2cde3c421..f10f4382e26 100644 --- a/swift/ql/lib/change-notes/2025-09-08-swift-6.1.3.md +++ b/swift/ql/lib/change-notes/released/5.0.7.md @@ -1,4 +1,5 @@ ---- -category: minorAnalysis ---- +## 5.0.7 + +### Minor Analysis Improvements + * Updated to allow analysis of Swift 6.1.3. diff --git a/swift/ql/lib/codeql-pack.release.yml b/swift/ql/lib/codeql-pack.release.yml index cc6fded2554..accf4086d8a 100644 --- a/swift/ql/lib/codeql-pack.release.yml +++ b/swift/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.0.6 +lastReleaseVersion: 5.0.7 diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index 451e86b8b3d..88950de258f 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 5.0.7-dev +version: 5.0.8-dev groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/CHANGELOG.md b/swift/ql/src/CHANGELOG.md index 58d42ca7813..eac65864617 100644 --- a/swift/ql/src/CHANGELOG.md +++ b/swift/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.2.5 + +No user-facing changes. + ## 1.2.4 ### Bug Fixes diff --git a/swift/ql/src/change-notes/released/1.2.5.md b/swift/ql/src/change-notes/released/1.2.5.md new file mode 100644 index 00000000000..c805dc2cd4c --- /dev/null +++ b/swift/ql/src/change-notes/released/1.2.5.md @@ -0,0 +1,3 @@ +## 1.2.5 + +No user-facing changes. diff --git a/swift/ql/src/codeql-pack.release.yml b/swift/ql/src/codeql-pack.release.yml index 172090f46b6..40355f0807f 100644 --- a/swift/ql/src/codeql-pack.release.yml +++ b/swift/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.2.4 +lastReleaseVersion: 1.2.5 diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index 7d0821afdd7..f49b81cec75 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 1.2.5-dev +version: 1.2.6-dev groups: - swift - queries