[INFO] fetching crate rustbolt_resolver 0.5.3... [INFO] linting rustbolt_resolver-0.5.3 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate rustbolt_resolver 0.5.3 into /workspace/builds/worker-5-tc1/source [INFO] started tweaking crates.io crate rustbolt_resolver 0.5.3 [INFO] removed 0 missing examples [INFO] finished tweaking crates.io crate rustbolt_resolver 0.5.3 [INFO] tweaked toml for crates.io crate rustbolt_resolver 0.5.3 written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate rustbolt_resolver 0.5.3 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate rustbolt_resolver 0.5.3 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded normalize-path v0.2.1 [INFO] [stderr] Downloaded codspeed v2.9.1 [INFO] [stderr] Downloaded codspeed-criterion-compat v2.9.1 [INFO] [stderr] Downloaded arca v0.7.0 [INFO] [stderr] Downloaded iana-time-zone v0.1.62 [INFO] [stderr] Downloaded indexmap v2.8.0 [INFO] [stderr] Downloaded vfs v0.12.1 [INFO] [stderr] Downloaded codspeed-criterion-compat-walltime v2.9.1 [INFO] [stderr] Downloaded pnp v0.9.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a7ea236e53a4ef1c888240be00e661a57c8146cf7aa1d867dd1006e011cfd006 [INFO] running `Command { std: "docker" "start" "-a" "a7ea236e53a4ef1c888240be00e661a57c8146cf7aa1d867dd1006e011cfd006", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a7ea236e53a4ef1c888240be00e661a57c8146cf7aa1d867dd1006e011cfd006", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a7ea236e53a4ef1c888240be00e661a57c8146cf7aa1d867dd1006e011cfd006", kill_on_drop: false }` [INFO] [stdout] a7ea236e53a4ef1c888240be00e661a57c8146cf7aa1d867dd1006e011cfd006 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b0cb2e50fb1ba63c092ce24d91d1cc3a1e256c909d62fc6d7817c8bfc9661f1b [INFO] running `Command { std: "docker" "start" "-a" "b0cb2e50fb1ba63c092ce24d91d1cc3a1e256c909d62fc6d7817c8bfc9661f1b", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.171 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling getrandom v0.3.2 [INFO] [stderr] Checking half v2.5.0 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking nibble_vec v0.1.0 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Checking endian-type v0.1.2 [INFO] [stderr] Checking bit-vec v0.6.3 [INFO] [stderr] Checking clap_builder v4.5.34 [INFO] [stderr] Checking colored v2.2.0 [INFO] [stderr] Checking miniz_oxide v0.7.4 [INFO] [stderr] Checking concurrent_lru v0.2.0 [INFO] [stderr] Checking tracing-core v0.1.33 [INFO] [stderr] Compiling codspeed-criterion-compat v2.9.1 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking pathdiff v0.2.3 [INFO] [stderr] Checking json-strip-comments v1.0.4 [INFO] [stderr] Checking radix_trie v0.2.1 [INFO] [stderr] Checking rustc-hash v2.1.1 [INFO] [stderr] Checking bit-set v0.5.3 [INFO] [stderr] Checking dunce v1.0.5 [INFO] [stderr] Checking simdutf8 v0.1.5 [INFO] [stderr] Checking normalize-path v0.2.1 [INFO] [stderr] Checking ciborium-ll v0.2.2 [INFO] [stderr] Compiling syn v2.0.100 [INFO] [stderr] Checking arca v0.7.0 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking is-terminal v0.4.16 [INFO] [stderr] Checking filetime v0.2.25 [INFO] [stderr] Checking uuid v1.16.0 [INFO] [stderr] Checking vfs v0.12.1 [INFO] [stderr] Checking dashmap v6.1.0 [INFO] [stderr] Checking clap v4.5.34 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Checking fancy-regex v0.13.0 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling tracing-attributes v0.1.28 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling serde_with_macros v3.12.0 [INFO] [stderr] Checking indexmap v2.8.0 [INFO] [stderr] Checking ciborium v0.2.2 [INFO] [stderr] Checking serde_with v3.12.0 [INFO] [stderr] Checking codspeed v2.9.1 [INFO] [stderr] Checking tinytemplate v1.2.1 [INFO] [stderr] Checking codspeed-criterion-compat-walltime v2.9.1 [INFO] [stderr] Checking pnp v0.9.1 [INFO] [stderr] Checking rustbolt_resolver v0.5.3 (/opt/rustwide/workdir) [INFO] [stdout] warning: binding's name is too similar to existing binding [INFO] [stdout] --> src/tests/dependencies.rs:99:17 [INFO] [stdout] | [INFO] [stdout] 99 | let resolved = [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing binding defined here [INFO] [stdout] --> src/tests/dependencies.rs:25:13 [INFO] [stdout] | [INFO] [stdout] 25 | let resolver = ResolverGeneric::::new_with_file_system( [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#similar_names [INFO] [stdout] = note: `-W clippy::similar-names` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::similar_names)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary semicolon [INFO] [stdout] --> src/cache.rs:206:18 [INFO] [stdout] | [INFO] [stdout] 206 | }; [INFO] [stdout] | ^ help: remove [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_semicolon [INFO] [stdout] = note: `-W clippy::unnecessary-semicolon` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::unnecessary_semicolon)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/cache.rs:337:6 [INFO] [stdout] | [INFO] [stdout] 337 | impl<'a> CacheKey for (u64, &'a Path) { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `-W clippy::needless-lifetimes` implied by `-W clippy::all` [INFO] [stdout] = help: to override `-W clippy::all` add `#[allow(clippy::needless_lifetimes)]` [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 337 - impl<'a> CacheKey for (u64, &'a Path) { [INFO] [stdout] 337 + impl CacheKey for (u64, &Path) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary semicolon [INFO] [stdout] --> src/lib.rs:235:10 [INFO] [stdout] | [INFO] [stdout] 235 | }; [INFO] [stdout] | ^ help: remove [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary semicolon [INFO] [stdout] --> src/lib.rs:882:14 [INFO] [stdout] | [INFO] [stdout] 882 | }; [INFO] [stdout] | ^ help: remove [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::is_some_and` [INFO] [stdout] --> src/lib.rs:989:16 [INFO] [stdout] | [INFO] [stdout] 989 | if new_specifier.strip_prefix("./").filter(|s| path.ends_with(Path::new(s))).is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `new_specifier.strip_prefix("./").as_ref().is_some_and(|s| path.ends_with(Path::new(s)))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_variant_and [INFO] [stdout] = note: `-W clippy::manual-is-variant-and` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::manual_is_variant_and)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implicitly cloning a `String` by calling `to_string` on its dereferenced type [INFO] [stdout] --> src/lib.rs:1657:29 [INFO] [stdout] | [INFO] [stdout] 1657 | ... target.to_string(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using: `target.clone()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_clone [INFO] [stdout] = note: `-W clippy::implicit-clone` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::implicit_clone)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `as_bytes` after slicing a string [INFO] [stdout] --> src/lib.rs:1772:35 [INFO] [stdout] | [INFO] [stdout] 1772 | separator_index = specifier[*index + 1..] [INFO] [stdout] | ___________________________________^ [INFO] [stdout] 1773 | | .as_bytes() [INFO] [stdout] | |_______________________________^ help: try: `&specifier.as_bytes()[*index + 1..]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#sliced_string_as_bytes [INFO] [stdout] = note: `-W clippy::sliced-string-as-bytes` implied by `-W clippy::all` [INFO] [stdout] = help: to override `-W clippy::all` add `#[allow(clippy::sliced_string_as_bytes)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/package_json.rs:129:42 [INFO] [stdout] | [INFO] [stdout] 127 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 128 | main_fields: &'a [String], [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 129 | ) -> impl Iterator + '_ { [INFO] [stdout] | -- ^^ the same lifetime is elided here [INFO] [stdout] | | [INFO] [stdout] | the same lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 129 - ) -> impl Iterator + '_ { [INFO] [stdout] 129 + ) -> impl Iterator + 'a { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/package_json.rs:142:48 [INFO] [stdout] | [INFO] [stdout] 140 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 141 | exports_fields: &'a [Vec], [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 142 | ) -> impl Iterator + '_ { [INFO] [stdout] | -- ^^ the same lifetime is elided here [INFO] [stdout] | | [INFO] [stdout] | the same lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 142 - ) -> impl Iterator + '_ { [INFO] [stdout] 142 + ) -> impl Iterator + 'a { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/package_json.rs:156:46 [INFO] [stdout] | [INFO] [stdout] 154 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 155 | imports_fields: &'a [Vec], [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 156 | ) -> impl Iterator + '_ { [INFO] [stdout] | -- ^^ the same lifetime is elided here [INFO] [stdout] | | [INFO] [stdout] | the same lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 156 - ) -> impl Iterator + '_ { [INFO] [stdout] 156 + ) -> impl Iterator + 'a { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/package_json.rs:172:46 [INFO] [stdout] | [INFO] [stdout] 170 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 171 | alias_fields: &'a [Vec], [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 172 | ) -> impl Iterator + '_ { [INFO] [stdout] | -- ^^ the same lifetime is elided here [INFO] [stdout] | | [INFO] [stdout] | the same lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 172 - ) -> impl Iterator + '_ { [INFO] [stdout] 172 + ) -> impl Iterator + 'a { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/package_json.rs:193:24 [INFO] [stdout] | [INFO] [stdout] 189 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] ... [INFO] [stdout] 192 | alias_fields: &'a [Vec], [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 193 | ) -> Result, ResolveError> { [INFO] [stdout] | ^^^^ the same lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 193 | ) -> Result, ResolveError> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/specifier.rs:34:32 [INFO] [stdout] | [INFO] [stdout] 32 | specifier: &'a str, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 33 | skip: usize, [INFO] [stdout] 34 | ) -> (Cow<'a, str>, Option<&str>, Option<&str>) { [INFO] [stdout] | -- ^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the same lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 34 | ) -> (Cow<'a, str>, Option<&'a str>, Option<&'a str>) { [INFO] [stdout] | ++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this is an outer doc comment and does not apply to the parent module or crate [INFO] [stdout] --> examples/resolver.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | ///! See documentation at [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_doc_comments [INFO] [stdout] = note: `-W clippy::suspicious-doc-comments` implied by `-W clippy::all` [INFO] [stdout] = help: to override `-W clippy::all` add `#[allow(clippy::suspicious_doc_comments)]` [INFO] [stdout] help: use an inner doc comment to document the parent module or crate [INFO] [stdout] | [INFO] [stdout] 1 - ///! See documentation at [INFO] [stdout] 1 + //! See documentation at [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `Debug` formatting in `assert!` args [INFO] [stdout] --> examples/resolver.rs:9:30 [INFO] [stdout] | [INFO] [stdout] 9 | assert!(path.is_dir(), "{path:?} must be a directory that will be resolved against."); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `Display` formatting and change this to `path.display()` [INFO] [stdout] = note: switching to `Display` formatting will change how the value is shown; escaped characters will no longer be escaped and surrounding quotes will be removed [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_debug_formatting [INFO] [stdout] = note: `-W clippy::unnecessary-debug-formatting` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::unnecessary_debug_formatting)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing comma [INFO] [stdout] --> examples/resolver.rs:10:69 [INFO] [stdout] | [INFO] [stdout] 10 | assert!(path.is_absolute(), "{path:?} must be an absolute path.",); [INFO] [stdout] | ^ help: remove the trailing comma [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_trailing_comma [INFO] [stdout] = note: `-W clippy::unnecessary-trailing-comma` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::unnecessary_trailing_comma)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `Debug` formatting in `assert!` args [INFO] [stdout] --> examples/resolver.rs:10:35 [INFO] [stdout] | [INFO] [stdout] 10 | assert!(path.is_absolute(), "{path:?} must be an absolute path.",); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `Display` formatting and change this to `path.display()` [INFO] [stdout] = note: switching to `Display` formatting will change how the value is shown; escaped characters will no longer be escaped and surrounding quotes will be removed [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_debug_formatting [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `Debug` formatting in `println!` args [INFO] [stdout] --> examples/resolver.rs:14:22 [INFO] [stdout] | [INFO] [stdout] 14 | println!("path: {path:?}"); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `Display` formatting and change this to `path.display()` [INFO] [stdout] = note: switching to `Display` formatting will change how the value is shown; escaped characters will no longer be escaped and surrounding quotes will be removed [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_debug_formatting [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `Debug` formatting in `println!` args [INFO] [stdout] --> examples/resolver.rs:31:54 [INFO] [stdout] | [INFO] [stdout] 31 | Ok(resolution) => println!("Resolved: {:?}", resolution.full_path()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `Display` formatting and change this to `resolution.full_path().display()` [INFO] [stdout] = note: switching to `Display` formatting will change how the value is shown; escaped characters will no longer be escaped and surrounding quotes will be removed [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_debug_formatting [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> benches/resolver.rs:101:12 [INFO] [stdout] | [INFO] [stdout] 101 | if !r.is_ok() { [INFO] [stdout] | ^^^^^^^^^^ help: try: `r.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `-W clippy::nonminimal-bool` implied by `-W clippy::all` [INFO] [stdout] = help: to override `-W clippy::all` add `#[allow(clippy::nonminimal_bool)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: only a `panic!` in `if`-then statement [INFO] [stdout] --> benches/resolver.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 101 | / if !r.is_ok() { [INFO] [stdout] 102 | | panic!("resolve failed {path:?} {request},\n\nplease run npm install in `/benches` before running the benchmarks"); [INFO] [stdout] 103 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_assert [INFO] [stdout] = note: `-W clippy::manual-assert` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::manual_assert)]` [INFO] [stdout] help: replace `if`-then-`panic!` with `assert!` [INFO] [stdout] | [INFO] [stdout] 101 - if !r.is_ok() { [INFO] [stdout] 102 - panic!("resolve failed {path:?} {request},\n\nplease run npm install in `/benches` before running the benchmarks"); [INFO] [stdout] 103 - } [INFO] [stdout] 101 + assert!(r.is_ok(), "resolve failed {path:?} {request},\n\nplease run npm install in `/benches` before running the benchmarks") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `Debug` formatting in `panic!` args [INFO] [stdout] --> benches/resolver.rs:102:37 [INFO] [stdout] | [INFO] [stdout] 102 | panic!("resolve failed {path:?} {request},\n\nplease run npm install in `/benches` before running the benchmarks"); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `Display` formatting and change this to `path.display()` [INFO] [stdout] = note: switching to `Display` formatting will change how the value is shown; escaped characters will no longer be escaped and surrounding quotes will be removed [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_debug_formatting [INFO] [stdout] = note: `-W clippy::unnecessary-debug-formatting` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::unnecessary_debug_formatting)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: matching over `()` is more explicit [INFO] [stdout] --> benches/resolver.rs:131:14 [INFO] [stdout] | [INFO] [stdout] 131 | |_| { [INFO] [stdout] | ^ help: use `()` instead of `_`: `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ignored_unit_patterns [INFO] [stdout] = note: `-W clippy::ignored-unit-patterns` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::ignored_unit_patterns)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: matching over `()` is more explicit [INFO] [stdout] --> benches/resolver.rs:145:14 [INFO] [stdout] | [INFO] [stdout] 145 | |_| { [INFO] [stdout] | ^ help: use `()` instead of `_`: `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ignored_unit_patterns [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: temporary with significant `Drop` can be early dropped [INFO] [stdout] --> benches/resolver.rs:170:1 [INFO] [stdout] | [INFO] [stdout] 170 | criterion_group!(resolver, bench_resolver); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ temporary `criterion` is currently being dropped at the end of its contained scope [INFO] [stdout] | [INFO] [stdout] = note: this might lead to unnecessary resource contention [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#significant_drop_tightening [INFO] [stdout] = note: `-W clippy::significant-drop-tightening` implied by `-W clippy::nursery` [INFO] [stdout] = help: to override `-W clippy::nursery` add `#[allow(clippy::significant_drop_tightening)]` [INFO] [stdout] = note: this warning originates in the macro `$crate::criterion_group` which comes from the expansion of the macro `criterion_group` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary semicolon [INFO] [stdout] --> src/cache.rs:206:18 [INFO] [stdout] | [INFO] [stdout] 206 | }; [INFO] [stdout] | ^ help: remove [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_semicolon [INFO] [stdout] = note: `-W clippy::unnecessary-semicolon` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::unnecessary_semicolon)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/cache.rs:337:6 [INFO] [stdout] | [INFO] [stdout] 337 | impl<'a> CacheKey for (u64, &'a Path) { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `-W clippy::needless-lifetimes` implied by `-W clippy::all` [INFO] [stdout] = help: to override `-W clippy::all` add `#[allow(clippy::needless_lifetimes)]` [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 337 - impl<'a> CacheKey for (u64, &'a Path) { [INFO] [stdout] 337 + impl CacheKey for (u64, &Path) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `FromIterator::from_iter` [INFO] [stdout] --> src/tests/dependencies.rs:103:17 [INFO] [stdout] | [INFO] [stdout] 103 | FxHashSet::from_iter(file_dependencies.iter().map(PathBuf::from)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `.collect()` instead of `::from_iter()`: `file_dependencies.iter().map(PathBuf::from).collect::>()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_iter_instead_of_collect [INFO] [stdout] = note: `-W clippy::from-iter-instead-of-collect` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::from_iter_instead_of_collect)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `FromIterator::from_iter` [INFO] [stdout] --> src/tests/dependencies.rs:105:17 [INFO] [stdout] | [INFO] [stdout] 105 | FxHashSet::from_iter(missing_dependencies.iter().map(PathBuf::from)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `.collect()` instead of `::from_iter()`: `missing_dependencies.iter().map(PathBuf::from).collect::>()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_iter_instead_of_collect [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: allocating a local array larger than 16384 bytes [INFO] [stdout] --> src/tests/exports_field.rs:317:22 [INFO] [stdout] | [INFO] [stdout] 317 | let test_cases = [ [INFO] [stdout] | ______________________^ [INFO] [stdout] 318 | | TestCase { [INFO] [stdout] 319 | | name: "sample #1", [INFO] [stdout] 320 | | expect: Some(vec!["./dist/test/file.js"]), [INFO] [stdout] ... | [INFO] [stdout] 2515 | | }, [INFO] [stdout] 2516 | | ]; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider allocating on the heap with `vec![ [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #1", [INFO] [stdout] expect: Some(vec!["./dist/test/file.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./foo/": { [INFO] [stdout] "import": [ [INFO] [stdout] "./dist/", [INFO] [stdout] "./src/" [INFO] [stdout] ], [INFO] [stdout] "webpack": "./wp/" [INFO] [stdout] }, [INFO] [stdout] ".": "./main.js" [INFO] [stdout] })), [INFO] [stdout] request: "./foo/test/file.js", [INFO] [stdout] condition_names: vec!["import", "webpack"], [INFO] [stdout] }, [INFO] [stdout] // Duplicated due to not supporting returning an array [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #1", [INFO] [stdout] expect: Some(vec!["./src/test/file.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./foo/": { [INFO] [stdout] "import": [ [INFO] [stdout] "./src/" [INFO] [stdout] ], [INFO] [stdout] "webpack": "./wp/" [INFO] [stdout] }, [INFO] [stdout] ".": "./main.js" [INFO] [stdout] })), [INFO] [stdout] request: "./foo/test/file.js", [INFO] [stdout] condition_names: vec!["import", "webpack"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #1 (wildcard)", [INFO] [stdout] expect: Some(vec!["./dist/test/file.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./foo/*": { [INFO] [stdout] "import": [ [INFO] [stdout] "./dist/*", [INFO] [stdout] "./src/*" [INFO] [stdout] ], [INFO] [stdout] "webpack": "./wp/*" [INFO] [stdout] }, [INFO] [stdout] ".": "./main.js" [INFO] [stdout] })), [INFO] [stdout] request: "./foo/test/file.js", [INFO] [stdout] condition_names: vec!["import", "webpack"], [INFO] [stdout] }, [INFO] [stdout] // Duplicated due to not supporting returning an array [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #1 (wildcard)", [INFO] [stdout] expect: Some(vec!["./src/test/file.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./foo/*": { [INFO] [stdout] "import": [ [INFO] [stdout] "./src/*" [INFO] [stdout] ], [INFO] [stdout] "webpack": "./wp/*" [INFO] [stdout] }, [INFO] [stdout] ".": "./main.js" [INFO] [stdout] })), [INFO] [stdout] request: "./foo/test/file.js", [INFO] [stdout] condition_names: vec!["import", "webpack"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #2", [INFO] [stdout] expect: Some(vec!["./data/timezones/pdt.mjs"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./timezones/": "./data/timezones/" [INFO] [stdout] })), [INFO] [stdout] request: "./timezones/pdt.mjs", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #2 (wildcard)", [INFO] [stdout] expect: Some(vec!["./data/timezones/pdt.mjs"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./timezones/*": "./data/timezones/*" [INFO] [stdout] })), [INFO] [stdout] request: "./timezones/pdt.mjs", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #3", [INFO] [stdout] expect: Some(vec!["./data/timezones/timezones/pdt.mjs"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./": "./data/timezones/" [INFO] [stdout] })), [INFO] [stdout] request: "./timezones/pdt.mjs", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #3 (wildcard)", [INFO] [stdout] expect: Some(vec!["./data/timezones/timezones/pdt.mjs"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./*": "./data/timezones/*.mjs" [INFO] [stdout] })), [INFO] [stdout] request: "./timezones/pdt", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #4", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./lib/": { [INFO] [stdout] "browser": [ [INFO] [stdout] "./browser/" [INFO] [stdout] ] [INFO] [stdout] }, [INFO] [stdout] "./dist/index.js": { [INFO] [stdout] "node": "./index.js" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./dist/index.js", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #4 (wildcard)", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./lib/*": { [INFO] [stdout] "browser": [ [INFO] [stdout] "./browser/*" [INFO] [stdout] ] [INFO] [stdout] }, [INFO] [stdout] "./dist/index.js": { [INFO] [stdout] "node": "./index.js" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./dist/index.js", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #5", [INFO] [stdout] expect: Some(vec!["./browser/index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./lib/": { [INFO] [stdout] "browser": [ [INFO] [stdout] "./browser/" [INFO] [stdout] ] [INFO] [stdout] }, [INFO] [stdout] "./dist/index.js": { [INFO] [stdout] "node": "./index.js", [INFO] [stdout] "default": "./browser/index.js" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./dist/index.js", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #5 (wildcard)", [INFO] [stdout] expect: Some(vec!["./browser/index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./lib/*": { [INFO] [stdout] "browser": [ [INFO] [stdout] "./browser/*" [INFO] [stdout] ] [INFO] [stdout] }, [INFO] [stdout] "./dist/index.js": { [INFO] [stdout] "node": "./index.js", [INFO] [stdout] "default": "./browser/index.js" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./dist/index.js", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #6", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./dist/a": "./dist/index.js" [INFO] [stdout] })), [INFO] [stdout] request: "./dist/aaa", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #7", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./dist/a/a/": "./dist/index.js" [INFO] [stdout] })), [INFO] [stdout] request: "./dist/a/a", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #7 (wildcard)", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./dist/a/a/*": "./dist/index.js" [INFO] [stdout] })), [INFO] [stdout] request: "./dist/a/a", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #8", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] ".": "./index.js" [INFO] [stdout] })), [INFO] [stdout] request: "./timezones/pdt.mjs", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #9", [INFO] [stdout] expect: Some(vec!["./main.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./index.js": "./main.js" [INFO] [stdout] })), [INFO] [stdout] request: "./index.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #10", [INFO] [stdout] expect: Some(vec!["./ok.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./#foo": "./ok.js", [INFO] [stdout] "./module": "./ok.js", [INFO] [stdout] "./🎉": "./ok.js", [INFO] [stdout] "./%F0%9F%8E%89": "./other.js", [INFO] [stdout] "./bar#foo": "./ok.js", [INFO] [stdout] "./#zapp/": "./", [INFO] [stdout] "./#zipp*": "./zzz*" [INFO] [stdout] })), [INFO] [stdout] request: "./#foo", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #11", [INFO] [stdout] expect: Some(vec!["./ok.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./#foo": "./ok.js", [INFO] [stdout] "./module": "./ok.js", [INFO] [stdout] "./🎉": "./ok.js", [INFO] [stdout] "./%F0%9F%8E%89": "./other.js", [INFO] [stdout] "./bar#foo": "./ok.js", [INFO] [stdout] "./#zapp/": "./", [INFO] [stdout] "./#zipp*": "./zzz*" [INFO] [stdout] })), [INFO] [stdout] request: "./bar#foo", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #12", [INFO] [stdout] expect: Some(vec!["./ok.js#abc"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./#foo": "./ok.js", [INFO] [stdout] "./module": "./ok.js", [INFO] [stdout] "./🎉": "./ok.js", [INFO] [stdout] "./%F0%9F%8E%89": "./other.js", [INFO] [stdout] "./bar#foo": "./ok.js", [INFO] [stdout] "./#zapp/": "./", [INFO] [stdout] "./#zipp*": "./zzz*" [INFO] [stdout] })), [INFO] [stdout] request: "./#zapp/ok.js#abc", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #12", [INFO] [stdout] expect: Some(vec!["./ok.js#abc"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./#foo": "./ok.js", [INFO] [stdout] "./module": "./ok.js", [INFO] [stdout] "./🎉": "./ok.js", [INFO] [stdout] "./%F0%9F%8E%89": "./other.js", [INFO] [stdout] "./bar#foo": "./ok.js", [INFO] [stdout] "./#zapp/": "./", [INFO] [stdout] "./#zipp*": "./zzz*" [INFO] [stdout] })), [INFO] [stdout] request: "./#zapp/ok.js#abc", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #13", [INFO] [stdout] expect: Some(vec!["./ok.js?abc"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./#foo": "./ok.js", [INFO] [stdout] "./module": "./ok.js", [INFO] [stdout] "./🎉": "./ok.js", [INFO] [stdout] "./%F0%9F%8E%89": "./other.js", [INFO] [stdout] "./bar#foo": "./ok.js", [INFO] [stdout] "./#zapp/": "./", [INFO] [stdout] "./#zipp*": "./zzz*" [INFO] [stdout] })), [INFO] [stdout] request: "./#zapp/ok.js?abc", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #14", [INFO] [stdout] expect: Some(vec!["./🎉.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./#foo": "./ok.js", [INFO] [stdout] "./module": "./ok.js", [INFO] [stdout] "./🎉": "./ok.js", [INFO] [stdout] "./%F0%9F%8E%89": "./other.js", [INFO] [stdout] "./bar#foo": "./ok.js", [INFO] [stdout] "./#zapp/": "./", [INFO] [stdout] "./#zipp*": "./zzz*" [INFO] [stdout] })), [INFO] [stdout] request: "./#zapp/🎉.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #15", [INFO] [stdout] expect: Some(vec!["./%F0%9F%8E%89.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./#foo": "./ok.js", [INFO] [stdout] "./module": "./ok.js", [INFO] [stdout] "./🎉": "./ok.js", [INFO] [stdout] "./%F0%9F%8E%89": "./other.js", [INFO] [stdout] "./bar#foo": "./ok.js", [INFO] [stdout] "./#zapp/": "./", [INFO] [stdout] "./#zipp*": "./zzz*" [INFO] [stdout] })), [INFO] [stdout] request: "./#zapp/%F0%9F%8E%89.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #16", [INFO] [stdout] expect: Some(vec!["./ok.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./#foo": "./ok.js", [INFO] [stdout] "./module": "./ok.js", [INFO] [stdout] "./🎉": "./ok.js", [INFO] [stdout] "./%F0%9F%8E%89": "./other.js", [INFO] [stdout] "./bar#foo": "./ok.js", [INFO] [stdout] "./#zapp/": "./", [INFO] [stdout] "./#zipp*": "./zzz*" [INFO] [stdout] })), [INFO] [stdout] request: "./🎉", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #17", [INFO] [stdout] expect: Some(vec!["./other.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./#foo": "./ok.js", [INFO] [stdout] "./module": "./ok.js", [INFO] [stdout] "./🎉": "./ok.js", [INFO] [stdout] "./%F0%9F%8E%89": "./other.js", [INFO] [stdout] "./bar#foo": "./ok.js", [INFO] [stdout] "./#zapp/": "./", [INFO] [stdout] "./#zipp*": "./zzz*" [INFO] [stdout] })), [INFO] [stdout] request: "./%F0%9F%8E%89", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #18", [INFO] [stdout] expect: Some(vec!["./ok.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./#foo": "./ok.js", [INFO] [stdout] "./module": "./ok.js", [INFO] [stdout] "./🎉": "./ok.js", [INFO] [stdout] "./%F0%9F%8E%89": "./other.js", [INFO] [stdout] "./bar#foo": "./ok.js", [INFO] [stdout] "./#zapp/": "./", [INFO] [stdout] "./#zipp*": "./zzz*" [INFO] [stdout] })), [INFO] [stdout] request: "./module", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #19", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./#foo": "./ok.js", [INFO] [stdout] "./module": "./ok.js", [INFO] [stdout] "./🎉": "./ok.js", [INFO] [stdout] "./%F0%9F%8E%89": "./other.js", [INFO] [stdout] "./bar#foo": "./ok.js", [INFO] [stdout] "./#zapp/": "./", [INFO] [stdout] "./#zipp*": "./zzz*" [INFO] [stdout] })), [INFO] [stdout] request: "./module#foo", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #20", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./#foo": "./ok.js", [INFO] [stdout] "./module": "./ok.js", [INFO] [stdout] "./🎉": "./ok.js", [INFO] [stdout] "./%F0%9F%8E%89": "./other.js", [INFO] [stdout] "./bar#foo": "./ok.js", [INFO] [stdout] "./#zapp/": "./", [INFO] [stdout] "./#zipp*": "./zzz*" [INFO] [stdout] })), [INFO] [stdout] request: "./module?foo", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #21", [INFO] [stdout] expect: Some(vec!["./zizizi"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./#foo": "./ok.js", [INFO] [stdout] "./module": "./ok.js", [INFO] [stdout] "./🎉": "./ok.js", [INFO] [stdout] "./%F0%9F%8E%89": "./other.js", [INFO] [stdout] "./bar#foo": "./ok.js", [INFO] [stdout] "./#zapp/": "./", [INFO] [stdout] "./#zipp*": "./z*z*z*" [INFO] [stdout] })), [INFO] [stdout] request: "./#zippi", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "sample #22", [INFO] [stdout] expect: Some(vec!["./d?e?f"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./a?b?c/": "./" [INFO] [stdout] })), [INFO] [stdout] request: "./a?b?c/d?e?f", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "Direct mapping #1", [INFO] [stdout] expect: Some(vec!["./dist/index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] ".": "./dist/index.js" [INFO] [stdout] })), [INFO] [stdout] request: ".", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "Direct mapping #2", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./": "./", [INFO] [stdout] "./*": "./*", [INFO] [stdout] "./dist/index.js": "./dist/index.js" [INFO] [stdout] })), [INFO] [stdout] request: ".", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "Direct mapping #3", [INFO] [stdout] expect: Some(vec!["./dist/a.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./dist/": "./dist/", [INFO] [stdout] "./dist/*": "./dist/*", [INFO] [stdout] "./dist*": "./dist*", [INFO] [stdout] "./dist/index.js": "./dist/a.js" [INFO] [stdout] })), [INFO] [stdout] request: "./dist/index.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "Direct mapping #4", [INFO] [stdout] expect: Some(vec!["./index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./": { [INFO] [stdout] "browser": [ [INFO] [stdout] "./browser/" [INFO] [stdout] ] [INFO] [stdout] }, [INFO] [stdout] "./*": { [INFO] [stdout] "browser": [ [INFO] [stdout] "./browser/*" [INFO] [stdout] ] [INFO] [stdout] }, [INFO] [stdout] "./dist/index.js": { [INFO] [stdout] "browser": "./index.js" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./dist/index.js", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "Direct mapping #5", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./": { [INFO] [stdout] "browser": [ [INFO] [stdout] "./browser/" [INFO] [stdout] ] [INFO] [stdout] }, [INFO] [stdout] "./*": { [INFO] [stdout] "browser": [ [INFO] [stdout] "./browser/*" [INFO] [stdout] ] [INFO] [stdout] }, [INFO] [stdout] "./dist/index.js": { [INFO] [stdout] "node": "./node.js" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./dist/index.js", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "Direct mapping #6", [INFO] [stdout] expect: Some(vec!["./index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] ".": { [INFO] [stdout] "browser": "./index.js", [INFO] [stdout] "node": "./src/node/index.js", [INFO] [stdout] "default": "./src/index.js" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: ".", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "Direct mapping #7", [INFO] [stdout] expect: Some(vec!["./src/index.js"]), // `enhanced_resolve` is `None` [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] ".": { [INFO] [stdout] "default": "./src/index.js", [INFO] [stdout] "browser": "./index.js", [INFO] [stdout] "node": "./src/node/index.js" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: ".", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "Direct mapping #8", [INFO] [stdout] expect: Some(vec!["./src/index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] ".": { [INFO] [stdout] "browser": "./index.js", [INFO] [stdout] "node": "./src/node/index.js", [INFO] [stdout] "default": "./src/index.js" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: ".", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "Direct mapping #9", [INFO] [stdout] expect: Some(vec!["./index"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] ".": "./index" [INFO] [stdout] })), [INFO] [stdout] request: ".", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "Direct mapping #10", [INFO] [stdout] expect: Some(vec!["./index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./index": "./index.js" [INFO] [stdout] })), [INFO] [stdout] request: "./index", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "Direct mapping #11", [INFO] [stdout] expect: Some(vec!["./foo.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./": "./", [INFO] [stdout] "./*": "./*", [INFO] [stdout] "./dist/index.js": "./dist/index.js" [INFO] [stdout] })), [INFO] [stdout] request: "./foo.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "Direct mapping #12", [INFO] [stdout] expect: Some(vec!["./foo/bar/baz.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./": "./", [INFO] [stdout] "./*": "./*", [INFO] [stdout] "./dist/index.js": "./dist/index.js" [INFO] [stdout] })), [INFO] [stdout] request: "./foo/bar/baz.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "Direct mapping #13", [INFO] [stdout] expect: Some(vec!["./foo/bar/baz.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./": "./", [INFO] [stdout] "./dist/index.js": "./dist/index.js" [INFO] [stdout] })), [INFO] [stdout] request: "./foo/bar/baz.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "Direct mapping #14", [INFO] [stdout] expect: Some(vec!["./foo/bar/baz.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./*": "./*", [INFO] [stdout] "./dist/index.js": "./dist/index.js" [INFO] [stdout] })), [INFO] [stdout] request: "./foo/bar/baz.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "Direct and conditional mapping #1", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] ".": [{ [INFO] [stdout] "browser": "./browser.js" [INFO] [stdout] }, { [INFO] [stdout] "require": "./require.js" [INFO] [stdout] }, { [INFO] [stdout] "import": "./import.mjs" [INFO] [stdout] }] [INFO] [stdout] })), [INFO] [stdout] request: ".", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "Direct and conditional mapping #2", [INFO] [stdout] expect: Some(vec!["./import.mjs"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] ".": [{ [INFO] [stdout] "browser": "./browser.js" [INFO] [stdout] }, { [INFO] [stdout] "require": "./require.js" [INFO] [stdout] }, { [INFO] [stdout] "import": "./import.mjs" [INFO] [stdout] }] [INFO] [stdout] })), [INFO] [stdout] request: ".", [INFO] [stdout] condition_names: vec!["import"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "Direct and conditional mapping #3", [INFO] [stdout] expect: Some(vec!["./require.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] ".": [ [INFO] [stdout] { [INFO] [stdout] "browser": "./browser.js" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "require": "./require.js" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "import": "./import.mjs" [INFO] [stdout] } [INFO] [stdout] ] [INFO] [stdout] })), [INFO] [stdout] request: ".", [INFO] [stdout] condition_names: vec!["import", "require"], [INFO] [stdout] }, [INFO] [stdout] // Duplicated due to not supporting returning an array [INFO] [stdout] TestCase { [INFO] [stdout] name: "Direct and conditional mapping #3", [INFO] [stdout] expect: Some(vec!["./import.mjs"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] ".": [{ [INFO] [stdout] "browser": "./browser.js" [INFO] [stdout] }, { [INFO] [stdout] "import": "./import.mjs" [INFO] [stdout] }] [INFO] [stdout] })), [INFO] [stdout] request: ".", [INFO] [stdout] condition_names: vec!["import", "require"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "Direct and conditional mapping #4", [INFO] [stdout] expect: Some(vec!["./require.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] ".": [{ [INFO] [stdout] "browser": "./browser.js" [INFO] [stdout] }, { [INFO] [stdout] "require": [ [INFO] [stdout] "./require.js" [INFO] [stdout] ] [INFO] [stdout] }, { [INFO] [stdout] "import": [ [INFO] [stdout] "./import.mjs", [INFO] [stdout] "./import.js" [INFO] [stdout] ] [INFO] [stdout] }] [INFO] [stdout] })), [INFO] [stdout] request: ".", [INFO] [stdout] condition_names: vec!["import", "require"], [INFO] [stdout] }, [INFO] [stdout] // Duplicated due to not supporting returning an array [INFO] [stdout] TestCase { [INFO] [stdout] name: "Direct and conditional mapping #4", [INFO] [stdout] expect: Some(vec!["./import.mjs"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] ".": [ [INFO] [stdout] { [INFO] [stdout] "browser": "./browser.js" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "import": [ [INFO] [stdout] "./import.mjs", [INFO] [stdout] "./import.js" [INFO] [stdout] ] [INFO] [stdout] } [INFO] [stdout] ] [INFO] [stdout] })), [INFO] [stdout] request: ".", [INFO] [stdout] condition_names: vec!["import", "require"], [INFO] [stdout] }, [INFO] [stdout] // Duplicated due to not supporting returning an array [INFO] [stdout] TestCase { [INFO] [stdout] name: "Direct and conditional mapping #4", [INFO] [stdout] expect: Some(vec!["./import.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] ".": [ [INFO] [stdout] { [INFO] [stdout] "browser": "./browser.js" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "import": [ [INFO] [stdout] "./import.js" [INFO] [stdout] ] [INFO] [stdout] } [INFO] [stdout] ] [INFO] [stdout] })), [INFO] [stdout] request: ".", [INFO] [stdout] condition_names: vec!["import", "require"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "mapping to a folder root #1", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./timezones": "./data/timezones/" [INFO] [stdout] })), [INFO] [stdout] request: "./timezones/pdt.mjs", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "mapping to a folder root #2", [INFO] [stdout] expect: None, [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./timezones/": "./data/timezones" [INFO] [stdout] })), [INFO] [stdout] request: "./timezones/pdt.mjs", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "mapping to a folder root #3", [INFO] [stdout] expect: Some(vec!["./data/timezones/pdt/index.mjs"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./timezones/pdt/": "./data/timezones/pdt/" [INFO] [stdout] })), [INFO] [stdout] request: "./timezones/pdt/index.mjs", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "mapping to a folder root #3 (wildcard)", [INFO] [stdout] expect: Some(vec!["./data/timezones/pdt/index.mjs"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./timezones/pdt/*": "./data/timezones/pdt/*" [INFO] [stdout] })), [INFO] [stdout] request: "./timezones/pdt/index.mjs", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "mapping to a folder root #4", [INFO] [stdout] expect: Some(vec!["./timezones/pdt.mjs"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./": "./timezones/" [INFO] [stdout] })), [INFO] [stdout] request: "./pdt.mjs", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "mapping to a folder root #4 (wildcard)", [INFO] [stdout] expect: Some(vec!["./timezones/pdt.mjs"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./*": "./timezones/*" [INFO] [stdout] })), [INFO] [stdout] request: "./pdt.mjs", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "mapping to a folder root #5", [INFO] [stdout] expect: Some(vec!["./timezones/pdt.mjs"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./": "./" [INFO] [stdout] })), [INFO] [stdout] request: "./timezones/pdt.mjs", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "mapping to a folder root #5 (wildcard)", [INFO] [stdout] expect: Some(vec!["./timezones/pdt.mjs"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./*": "./*" [INFO] [stdout] })), [INFO] [stdout] request: "./timezones/pdt.mjs", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "mapping to a folder root #6", [INFO] [stdout] expect: None, [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./": "." [INFO] [stdout] })), [INFO] [stdout] request: "./timezones/pdt.mjs", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "mapping to a folder root #6 (wildcard)", [INFO] [stdout] expect: None, [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./*": "." [INFO] [stdout] })), [INFO] [stdout] request: "./timezones/pdt.mjs", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "mapping to a folder root #7", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] ".": "./" [INFO] [stdout] })), [INFO] [stdout] request: "./timezones/pdt.mjs", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "mapping to a folder root #7 (wildcard)", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] ".": "./*" [INFO] [stdout] })), [INFO] [stdout] request: "./timezones/pdt.mjs", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "the longest matching path prefix is prioritized #1", [INFO] [stdout] expect: Some(vec!["./lib/index.mjs"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./": "./", [INFO] [stdout] "./dist/": "./lib/" [INFO] [stdout] })), [INFO] [stdout] request: "./dist/index.mjs", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "the longest matching path prefix is prioritized #1 (wildcard)", [INFO] [stdout] expect: Some(vec!["./lib/index.mjs"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./*": "./*", [INFO] [stdout] "./dist/*": "./lib/*" [INFO] [stdout] })), [INFO] [stdout] request: "./dist/index.mjs", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "the longest matching path prefix is prioritized #2", [INFO] [stdout] expect: Some(vec!["./dist/utils/index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./dist/utils/": "./dist/utils/", [INFO] [stdout] "./dist/": "./lib/" [INFO] [stdout] })), [INFO] [stdout] request: "./dist/utils/index.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "the longest matching path prefix is prioritized #2 (wildcard)", [INFO] [stdout] expect: Some(vec!["./dist/utils/index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./dist/utils/*": "./dist/utils/*", [INFO] [stdout] "./dist/*": "./lib/*" [INFO] [stdout] })), [INFO] [stdout] request: "./dist/utils/index.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "the longest matching path prefix is prioritized #3", [INFO] [stdout] expect: Some(vec!["./dist/utils/index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./dist/utils/index.js": "./dist/utils/index.js", [INFO] [stdout] "./dist/utils/": "./dist/utils/index.mjs", [INFO] [stdout] "./dist/": "./lib/" [INFO] [stdout] })), [INFO] [stdout] request: "./dist/utils/index.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "the longest matching path prefix is prioritized #3 (wildcard)", [INFO] [stdout] expect: Some(vec!["./dist/utils/index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./dist/utils/index.js": "./dist/utils/index.js", [INFO] [stdout] "./dist/utils/*": "./dist/utils/index.mjs", [INFO] [stdout] "./dist/*": "./lib/*" [INFO] [stdout] })), [INFO] [stdout] request: "./dist/utils/index.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "the longest matching path prefix is prioritized #4", [INFO] [stdout] expect: Some(vec!["./lib/index.mjs"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./": { [INFO] [stdout] "browser": "./browser/" [INFO] [stdout] }, [INFO] [stdout] "./dist/": "./lib/" [INFO] [stdout] })), [INFO] [stdout] request: "./dist/index.mjs", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "the longest matching path prefix is prioritized #4 (wildcard)", [INFO] [stdout] expect: Some(vec!["./lib/index.mjs"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./*": { [INFO] [stdout] "browser": "./browser/*" [INFO] [stdout] }, [INFO] [stdout] "./dist/*": "./lib/*" [INFO] [stdout] })), [INFO] [stdout] request: "./dist/index.mjs", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "conditional mapping folder #1", [INFO] [stdout] // `lodash/` does not start with './' so fallbacks to util [INFO] [stdout] expect: Some(vec!["./utils/index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/": { [INFO] [stdout] "browser": [ [INFO] [stdout] "lodash/", [INFO] [stdout] "./utils/" [INFO] [stdout] ], [INFO] [stdout] "node": [ [INFO] [stdout] "./utils-node/" [INFO] [stdout] ] [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.js", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] // Duplicated due to not supporting returning an array [INFO] [stdout] TestCase { [INFO] [stdout] name: "conditional mapping folder #1", [INFO] [stdout] expect: Some(vec!["./utils/index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/": { [INFO] [stdout] "browser": [ [INFO] [stdout] "./utils/" [INFO] [stdout] ], [INFO] [stdout] "node": [ [INFO] [stdout] "./utils-node/" [INFO] [stdout] ] [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.js", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "conditional mapping folder #1 (wildcard)", [INFO] [stdout] // `lodash/` does not start with './' so fallbacks to util [INFO] [stdout] expect: Some(vec!["./utils/index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/*": { [INFO] [stdout] "browser": [ [INFO] [stdout] "lodash/*", [INFO] [stdout] "./utils/*" [INFO] [stdout] ], [INFO] [stdout] "node": [ [INFO] [stdout] "./utils-node/*" [INFO] [stdout] ] [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.js", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] // Duplicated due to not supporting returning an array [INFO] [stdout] TestCase { [INFO] [stdout] name: "conditional mapping folder #1 (wildcard)", [INFO] [stdout] expect: Some(vec!["./utils/index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/*": { [INFO] [stdout] "browser": [ [INFO] [stdout] "./utils/*" [INFO] [stdout] ], [INFO] [stdout] "node": [ [INFO] [stdout] "./utils-node/*" [INFO] [stdout] ] [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.js", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "conditional mapping folder #2", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/": { [INFO] [stdout] "webpack": "./wpk/", [INFO] [stdout] "browser": [ [INFO] [stdout] "lodash/", [INFO] [stdout] "./utils/" [INFO] [stdout] ], [INFO] [stdout] "node": [ [INFO] [stdout] "./node/" [INFO] [stdout] ] [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.mjs", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "conditional mapping folder #2 (wildcard)", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/*": { [INFO] [stdout] "webpack": "./wpk/*", [INFO] [stdout] "browser": [ [INFO] [stdout] "lodash/*", [INFO] [stdout] "./utils/*" [INFO] [stdout] ], [INFO] [stdout] "node": [ [INFO] [stdout] "./node/*" [INFO] [stdout] ] [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.mjs", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "conditional mapping folder #3", [INFO] [stdout] expect: Some(vec!["./wpk/index.mjs"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/": { [INFO] [stdout] "webpack": "./wpk/", [INFO] [stdout] "browser": [ [INFO] [stdout] "lodash/", [INFO] [stdout] "./utils/" [INFO] [stdout] ], [INFO] [stdout] "node": [ [INFO] [stdout] "./utils/" [INFO] [stdout] ] [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.mjs", [INFO] [stdout] condition_names: vec!["browser", "webpack"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "conditional mapping folder #3 (wildcard)", [INFO] [stdout] expect: Some(vec!["./wpk/index.mjs"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/*": { [INFO] [stdout] "webpack": "./wpk/*", [INFO] [stdout] "browser": [ [INFO] [stdout] "lodash/*", [INFO] [stdout] "./utils/*" [INFO] [stdout] ], [INFO] [stdout] "node": [ [INFO] [stdout] "./utils/*" [INFO] [stdout] ] [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.mjs", [INFO] [stdout] condition_names: vec!["browser", "webpack"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "incorrect exports field #1", [INFO] [stdout] expect: None, [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "/utils/": "./a/" [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.mjs", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "incorrect exports field #2", [INFO] [stdout] expect: None, [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/": "/a/" [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.mjs", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "incorrect exports field #3", [INFO] [stdout] expect: None, [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "/utils/": { [INFO] [stdout] "browser": "./a/", [INFO] [stdout] "default": "./b/" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.mjs", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "incorrect exports field #4", [INFO] [stdout] expect: None, [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/": { [INFO] [stdout] "browser": "/a/", [INFO] [stdout] "default": "/b/" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.mjs", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "incorrect exports field #4 (wildcard)", [INFO] [stdout] expect: None, [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/*": { [INFO] [stdout] "browser": "/a/", [INFO] [stdout] "default": "/b/" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.mjs", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "incorrect exports field #5", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/index": "./a/index.js" [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.mjs", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "incorrect exports field #6", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/index.mjs": "./a/index.js" [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "incorrect exports field #7", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/index": { [INFO] [stdout] "browser": "./a/index.js", [INFO] [stdout] "default": "./b/index.js" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.mjs", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "incorrect exports field #8", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/index.mjs": { [INFO] [stdout] "browser": "./a/index.js", [INFO] [stdout] "default": "./b/index.js" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] // Requests that are not `./` does not apply to `package_exports_resolve` [INFO] [stdout] // TestCase { [INFO] [stdout] // name: "incorrect request #1", [INFO] [stdout] // expect: None, [INFO] [stdout] // exports_field: exports_field(json!({ [INFO] [stdout] // "./utils/": "./a/" [INFO] [stdout] // })), [INFO] [stdout] // request: "/utils/index.mjs", [INFO] [stdout] // condition_names: vec![], [INFO] [stdout] // }, [INFO] [stdout] // TestCase { [INFO] [stdout] // name: "incorrect request #2", [INFO] [stdout] // expect: None, [INFO] [stdout] // exports_field: exports_field(json!({ [INFO] [stdout] // "./utils/": { [INFO] [stdout] // "browser": "./a/", [INFO] [stdout] // "default": "./b/" [INFO] [stdout] // } [INFO] [stdout] // })), [INFO] [stdout] // request: "/utils/index.mjs", [INFO] [stdout] // condition_names: vec!["browser"], [INFO] [stdout] // }, [INFO] [stdout] // TestCase { [INFO] [stdout] // name: "incorrect request #3", [INFO] [stdout] // expect: None, [INFO] [stdout] // exports_field: exports_field(json!({ [INFO] [stdout] // "./utils/": { [INFO] [stdout] // "browser": "./a/", [INFO] [stdout] // "default": "./b/" [INFO] [stdout] // } [INFO] [stdout] // })), [INFO] [stdout] // request: "../utils/index.mjs", [INFO] [stdout] // condition_names: vec!["browser"], [INFO] [stdout] // }, [INFO] [stdout] // TestCase { [INFO] [stdout] // name: "incorrect request #4", [INFO] [stdout] // expect: None, [INFO] [stdout] // exports_field: exports_field(json!({ [INFO] [stdout] // "./utils/": { [INFO] [stdout] // "browser": "./a/", [INFO] [stdout] // "default": "./b/" [INFO] [stdout] // } [INFO] [stdout] // })), [INFO] [stdout] // request: "/utils/index.mjs/", [INFO] [stdout] // condition_names: vec!["browser"], [INFO] [stdout] // }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "backtracking package base #1", [INFO] [stdout] expect: Some(vec!["./dist/index"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./../../utils/": "./dist/" [INFO] [stdout] })), [INFO] [stdout] request: "./../../utils/index", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "backtracking package base #1 (wildcard)", [INFO] [stdout] expect: Some(vec!["./dist/index"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./../../utils/*": "./dist/*" [INFO] [stdout] })), [INFO] [stdout] request: "./../../utils/index", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "backtracking package base #2", [INFO] [stdout] expect: None, [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "../../utils/": "./dist/" [INFO] [stdout] })), [INFO] [stdout] request: "../../utils/index", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "backtracking package base #2 (wildcard)", [INFO] [stdout] expect: None, [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "../../utils/*": "./dist/*" [INFO] [stdout] })), [INFO] [stdout] request: "../../utils/index", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "backtracking package base #3", [INFO] [stdout] expect: None, [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/": "../src/" [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "backtracking package base #3 (wildcard)", [INFO] [stdout] expect: None, [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/*": "../src/*" [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] // enhanced-resolve does not handle backtracking here [INFO] [stdout] // TestCase { [INFO] [stdout] // name: "backtracking package base #4", [INFO] [stdout] // expect: Some(vec!["./../src/index"]), [INFO] [stdout] // exports_field: exports_field(json!({ [INFO] [stdout] // "./utils/": "./../src/" [INFO] [stdout] // })), [INFO] [stdout] // request: "./utils/index", [INFO] [stdout] // condition_names: vec![], [INFO] [stdout] // }, [INFO] [stdout] // TestCase { [INFO] [stdout] // name: "backtracking package base #4 (wildcard)", [INFO] [stdout] // expect: Some(vec!["./../src/index"]), [INFO] [stdout] // exports_field: exports_field(json!({ [INFO] [stdout] // "./utils/*": "./../src/*" [INFO] [stdout] // })), [INFO] [stdout] // request: "./utils/index", [INFO] [stdout] // condition_names: vec![], [INFO] [stdout] // }, [INFO] [stdout] // TestCase { [INFO] [stdout] // name: "backtracking package base #5", [INFO] [stdout] // expect: Some(vec!["./src/../index.js"]), [INFO] [stdout] // exports_field: exports_field(json!({ [INFO] [stdout] // "./utils/index": "./src/../index.js" [INFO] [stdout] // })), [INFO] [stdout] // request: "./utils/index", [INFO] [stdout] // condition_names: vec![], [INFO] [stdout] // }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "backtracking package base #6", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/../utils/index": "./src/../index.js" [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "backtracking package base #7", [INFO] [stdout] expect: None, [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/": { [INFO] [stdout] "browser": "../this/" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "backtracking package base #7", [INFO] [stdout] expect: None, [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/*": { [INFO] [stdout] "browser": "../this/*" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "backtracking package base #8", [INFO] [stdout] // We throw "InvalidPackageTarget" [INFO] [stdout] // expect: Some(vec!["./utils/../index"]), [INFO] [stdout] expect: None, [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/": { [INFO] [stdout] "browser": "./utils/../" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "backtracking package base #8 (wildcard)", [INFO] [stdout] // We throw "InvalidPackageTarget" [INFO] [stdout] // expect: Some(vec!["./utils/../index"]), [INFO] [stdout] expect: None, [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/*": { [INFO] [stdout] "browser": "./utils/../*" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "backtracking package base #9", [INFO] [stdout] expect: Some(vec!["./dist/index"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./": "./src/../../", [INFO] [stdout] "./dist/": "./dist/" [INFO] [stdout] })), [INFO] [stdout] request: "./dist/index", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "backtracking package base #9 (wildcard)", [INFO] [stdout] expect: Some(vec!["./dist/index"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./*": "./src/../../*", [INFO] [stdout] "./dist/*": "./dist/*" [INFO] [stdout] })), [INFO] [stdout] request: "./dist/index", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "backtracking target folder #1", [INFO] [stdout] // We return InvalidPackageTarget [INFO] [stdout] expect: None, [INFO] [stdout] // expect: Some(vec!["./dist/timezone/../../index"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/": "./dist/" [INFO] [stdout] })), [INFO] [stdout] request: "./utils/timezone/../../index", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "backtracking target folder #1 (wildcard)", [INFO] [stdout] // We return InvalidPackageTarget [INFO] [stdout] expect: None, [INFO] [stdout] // expect: Some(vec!["./dist/timezone/../../index"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/*": "./dist/*" [INFO] [stdout] })), [INFO] [stdout] request: "./utils/timezone/../../index", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "backtracking target folder #2", [INFO] [stdout] // We return InvalidPackageTarget [INFO] [stdout] expect: None, [INFO] [stdout] // expect: Some(vec!["./dist/timezone/../index"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/": "./dist/" [INFO] [stdout] })), [INFO] [stdout] request: "./utils/timezone/../index", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "backtracking target folder #2 (wildcard)", [INFO] [stdout] // We return InvalidPackageTarget [INFO] [stdout] expect: None, [INFO] [stdout] // expect: Some(vec!["./dist/timezone/../index"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/*": "./dist/*" [INFO] [stdout] })), [INFO] [stdout] request: "./utils/timezone/../index", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "backtracking target folder #3", [INFO] [stdout] // We return InvalidPackageTarget [INFO] [stdout] expect: None, [INFO] [stdout] // expect: Some(vec!["./dist/target/../../index"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/": "./dist/target/" [INFO] [stdout] })), [INFO] [stdout] request: "./utils/../../index", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "backtracking target folder #3 (wildcard)", [INFO] [stdout] // We return InvalidPackageTarget [INFO] [stdout] expect: None, [INFO] [stdout] // expect: Some(vec!["./dist/target/../../index"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/*": "./dist/target/*" [INFO] [stdout] })), [INFO] [stdout] request: "./utils/../../index", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] // enhanced-resolve does not handle `node_modules` in target [INFO] [stdout] TestCase { [INFO] [stdout] name: "nested node_modules path #1", [INFO] [stdout] // We return InvalidPackageTarget [INFO] [stdout] expect: None, [INFO] [stdout] // expect: Some(vec!["./node_modules/lodash/dist/index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/": { [INFO] [stdout] "browser": "./node_modules/" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/lodash/dist/index.js", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "nested node_modules path #1 (wildcard)", [INFO] [stdout] // We return InvalidPackageTarget [INFO] [stdout] expect: None, [INFO] [stdout] // expect: Some(vec!["./node_modules/lodash/dist/index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/*": { [INFO] [stdout] "browser": "./node_modules/*" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/lodash/dist/index.js", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "nested node_modules path #2", [INFO] [stdout] // We return InvalidPackageTarget [INFO] [stdout] expect: None, [INFO] [stdout] // expect: Some(vec!["./utils/../node_modules/lodash/dist/index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/": "./utils/../node_modules/" [INFO] [stdout] })), [INFO] [stdout] request: "./utils/lodash/dist/index.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "nested node_modules path #2 (wildcard)", [INFO] [stdout] // We return InvalidPackageTarget [INFO] [stdout] expect: None, [INFO] [stdout] // expect: Some(vec!["./utils/../node_modules/lodash/dist/index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/*": "./utils/../node_modules/*" [INFO] [stdout] })), [INFO] [stdout] request: "./utils/lodash/dist/index.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "nested mapping #1", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/": { [INFO] [stdout] "browser": { [INFO] [stdout] "webpack": "./", [INFO] [stdout] "default": { [INFO] [stdout] "node": "./node/" [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.js", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "nested mapping #1 (wildcard)", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/*": { [INFO] [stdout] "browser": { [INFO] [stdout] "webpack": "./*", [INFO] [stdout] "default": { [INFO] [stdout] "node": "./node/*" [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.js", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "nested mapping #2", [INFO] [stdout] expect: Some(vec!["./index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/": { [INFO] [stdout] "browser": { [INFO] [stdout] "webpack": [ [INFO] [stdout] "./", [INFO] [stdout] "./node/" [INFO] [stdout] ], [INFO] [stdout] "default": { [INFO] [stdout] "node": "./node/" [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.js", [INFO] [stdout] condition_names: vec!["browser", "webpack"], [INFO] [stdout] }, [INFO] [stdout] // Duplicated due to not supporting returning an array [INFO] [stdout] TestCase { [INFO] [stdout] name: "nested mapping #2", [INFO] [stdout] expect: Some(vec!["./node/index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/": { [INFO] [stdout] "browser": { [INFO] [stdout] "webpack": [ [INFO] [stdout] "./node/" [INFO] [stdout] ], [INFO] [stdout] "default": { [INFO] [stdout] "node": "./node/" [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.js", [INFO] [stdout] condition_names: vec!["browser", "webpack"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "nested mapping #2 (wildcard)", [INFO] [stdout] expect: Some(vec!["./index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/*": { [INFO] [stdout] "browser": { [INFO] [stdout] "webpack": [ [INFO] [stdout] "./*", [INFO] [stdout] "./node/*" [INFO] [stdout] ], [INFO] [stdout] "default": { [INFO] [stdout] "node": "./node/*" [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.js", [INFO] [stdout] condition_names: vec!["browser", "webpack"], [INFO] [stdout] }, [INFO] [stdout] // Duplicated due to not supporting returning an array [INFO] [stdout] TestCase { [INFO] [stdout] name: "nested mapping #2 (wildcard)", [INFO] [stdout] expect: Some(vec!["./node/index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/*": { [INFO] [stdout] "browser": { [INFO] [stdout] "webpack": [ [INFO] [stdout] "./node/*" [INFO] [stdout] ], [INFO] [stdout] "default": { [INFO] [stdout] "node": "./node/*" [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.js", [INFO] [stdout] condition_names: vec!["browser", "webpack"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "nested mapping #3", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/": { [INFO] [stdout] "browser": { [INFO] [stdout] "webpack": [ [INFO] [stdout] "./", [INFO] [stdout] "./node/" [INFO] [stdout] ], [INFO] [stdout] "default": { [INFO] [stdout] "node": "./node/" [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.js", [INFO] [stdout] condition_names: vec!["webpack"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "nested mapping #3 (wildcard)", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/*": { [INFO] [stdout] "browser": { [INFO] [stdout] "webpack": [ [INFO] [stdout] "./*", [INFO] [stdout] "./node/*" [INFO] [stdout] ], [INFO] [stdout] "default": { [INFO] [stdout] "node": "./node/*" [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.js", [INFO] [stdout] condition_names: vec!["webpack"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "nested mapping #4", [INFO] [stdout] expect: Some(vec!["./node/index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/": { [INFO] [stdout] "browser": { [INFO] [stdout] "webpack": [ [INFO] [stdout] "./", [INFO] [stdout] "./node/" [INFO] [stdout] ], [INFO] [stdout] "default": { [INFO] [stdout] "node": "./node/" [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.js", [INFO] [stdout] condition_names: vec!["node", "browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "nested mapping #4 (wildcard)", [INFO] [stdout] expect: Some(vec!["./node/index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/*": { [INFO] [stdout] "browser": { [INFO] [stdout] "webpack": [ [INFO] [stdout] "./*", [INFO] [stdout] "./node/*" [INFO] [stdout] ], [INFO] [stdout] "default": { [INFO] [stdout] "node": "./node/*" [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.js", [INFO] [stdout] condition_names: vec!["node", "browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "nested mapping #5", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/": { [INFO] [stdout] "browser": { [INFO] [stdout] "webpack": [ [INFO] [stdout] "./", [INFO] [stdout] "./node/" [INFO] [stdout] ], [INFO] [stdout] "default": { [INFO] [stdout] "node": { [INFO] [stdout] "webpack": [ [INFO] [stdout] "./wpck/" [INFO] [stdout] ] [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.js", [INFO] [stdout] condition_names: vec!["browser", "node"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "nested mapping #5 (wildcard)", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/*": { [INFO] [stdout] "browser": { [INFO] [stdout] "webpack": [ [INFO] [stdout] "./*", [INFO] [stdout] "./node/*" [INFO] [stdout] ], [INFO] [stdout] "default": { [INFO] [stdout] "node": { [INFO] [stdout] "webpack": [ [INFO] [stdout] "./wpck/*" [INFO] [stdout] ] [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.js", [INFO] [stdout] condition_names: vec!["browser", "node"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "nested mapping #6", [INFO] [stdout] expect: Some(vec!["./index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/": { [INFO] [stdout] "browser": { [INFO] [stdout] "webpack": [ [INFO] [stdout] "./", [INFO] [stdout] "./node/" [INFO] [stdout] ], [INFO] [stdout] "default": { [INFO] [stdout] "node": { [INFO] [stdout] "webpack": [ [INFO] [stdout] "./wpck/" [INFO] [stdout] ] [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.js", [INFO] [stdout] condition_names: vec!["browser", "node", "webpack"], [INFO] [stdout] }, [INFO] [stdout] // Duplicated due to not supporting returning an array [INFO] [stdout] TestCase { [INFO] [stdout] name: "nested mapping #6", [INFO] [stdout] expect: Some(vec!["./node/index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/": { [INFO] [stdout] "browser": { [INFO] [stdout] "webpack": [ [INFO] [stdout] "./node/" [INFO] [stdout] ], [INFO] [stdout] "default": { [INFO] [stdout] "node": { [INFO] [stdout] "webpack": [ [INFO] [stdout] "./wpck/" [INFO] [stdout] ] [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.js", [INFO] [stdout] condition_names: vec!["browser", "node", "webpack"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "nested mapping #6 (wildcard)", [INFO] [stdout] expect: Some(vec!["./index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/*": { [INFO] [stdout] "browser": { [INFO] [stdout] "webpack": [ [INFO] [stdout] "./*", [INFO] [stdout] "./node/*" [INFO] [stdout] ], [INFO] [stdout] "default": { [INFO] [stdout] "node": { [INFO] [stdout] "webpack": [ [INFO] [stdout] "./wpck/*" [INFO] [stdout] ] [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.js", [INFO] [stdout] condition_names: vec!["browser", "node", "webpack"], [INFO] [stdout] }, [INFO] [stdout] // Duplicated due to not supporting returning an array [INFO] [stdout] TestCase { [INFO] [stdout] name: "nested mapping #6 (wildcard)", [INFO] [stdout] expect: Some(vec!["./node/index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./utils/*": { [INFO] [stdout] "browser": { [INFO] [stdout] "webpack": [ [INFO] [stdout] "./node/*" [INFO] [stdout] ], [INFO] [stdout] "default": { [INFO] [stdout] "node": { [INFO] [stdout] "webpack": [ [INFO] [stdout] "./wpck/*" [INFO] [stdout] ] [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./utils/index.js", [INFO] [stdout] condition_names: vec!["browser", "node", "webpack"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "nested mapping #7", [INFO] [stdout] expect: Some(vec!["./y.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./a.js": { [INFO] [stdout] "abc": { [INFO] [stdout] "def": "./x.js" [INFO] [stdout] }, [INFO] [stdout] "ghi": "./y.js" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./a.js", [INFO] [stdout] condition_names: vec!["abc", "ghi"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "nested mapping #8", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./a.js": { [INFO] [stdout] "abc": { [INFO] [stdout] "def": "./x.js", [INFO] [stdout] "default": [] [INFO] [stdout] }, [INFO] [stdout] "ghi": "./y.js" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./a.js", [INFO] [stdout] condition_names: vec!["abc", "ghi"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "syntax sugar #1", [INFO] [stdout] expect: Some(vec!["./main.js"]), [INFO] [stdout] exports_field: exports_field(json!("./main.js")), [INFO] [stdout] request: ".", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "syntax sugar #2", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!("./main.js")), [INFO] [stdout] request: "./lib.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "syntax sugar #3", [INFO] [stdout] expect: Some(vec!["./a.js"]), [INFO] [stdout] exports_field: exports_field(json!(["./a.js", "./b.js"])), [INFO] [stdout] request: ".", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] // Duplicated due to not supporting returning an array [INFO] [stdout] TestCase { [INFO] [stdout] name: "syntax sugar #3", [INFO] [stdout] expect: Some(vec!["./b.js"]), [INFO] [stdout] exports_field: exports_field(json!(["./b.js"])), [INFO] [stdout] request: ".", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "syntax sugar #4", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!(["./a.js", "./b.js"])), [INFO] [stdout] request: "./lib.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "syntax sugar #5", [INFO] [stdout] expect: Some(vec!["./index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "browser": { [INFO] [stdout] "default": "./index.js" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: ".", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "syntax sugar #6", [INFO] [stdout] expect: Some(vec![]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "browser": { [INFO] [stdout] "default": "./index.js" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./lib.js", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "syntax sugar #7", [INFO] [stdout] expect: None, [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./node": "./node.js", [INFO] [stdout] "browser": { [INFO] [stdout] "default": "./index.js" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: ".", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "syntax sugar #8", [INFO] [stdout] expect: None, [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "browser": { [INFO] [stdout] "default": "./index.js" [INFO] [stdout] }, [INFO] [stdout] "./node": "./node.js" [INFO] [stdout] })), [INFO] [stdout] request: ".", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "wildcard longest #1", [INFO] [stdout] expect: Some(vec!["./abc/d"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./ab*": "./ab/*", [INFO] [stdout] "./abc*": "./abc/*", [INFO] [stdout] "./a*": "./a/*" [INFO] [stdout] })), [INFO] [stdout] request: "./abcd", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "wildcard longest #2", [INFO] [stdout] expect: Some(vec!["./abc/d/e"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./ab*": "./ab/*", [INFO] [stdout] "./abc*": "./abc/*", [INFO] [stdout] "./a*": "./a/*" [INFO] [stdout] })), [INFO] [stdout] request: "./abcd/e", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "wildcard longest #3", [INFO] [stdout] expect: Some(vec!["./abc/d"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./x/ab*": "./ab/*", [INFO] [stdout] "./x/abc*": "./abc/*", [INFO] [stdout] "./x/a*": "./a/*" [INFO] [stdout] })), [INFO] [stdout] request: "./x/abcd", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "wildcard longest #4", [INFO] [stdout] expect: Some(vec!["./abc/d/e"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./x/ab*": "./ab/*", [INFO] [stdout] "./x/abc*": "./abc/*", [INFO] [stdout] "./x/a*": "./a/*" [INFO] [stdout] })), [INFO] [stdout] request: "./x/abcd/e", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "path tree edge case #1", [INFO] [stdout] expect: Some(vec!["./A/b/d.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./a/": "./A/", [INFO] [stdout] "./a/b/c": "./c.js" [INFO] [stdout] })), [INFO] [stdout] request: "./a/b/d.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "path tree edge case #1 (wildcard)", [INFO] [stdout] expect: Some(vec!["./A/b/d.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./a/*": "./A/*", [INFO] [stdout] "./a/b/c": "./c.js" [INFO] [stdout] })), [INFO] [stdout] request: "./a/b/d.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "path tree edge case #2", [INFO] [stdout] expect: Some(vec!["./A/c.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./a/": "./A/", [INFO] [stdout] "./a/b": "./b.js" [INFO] [stdout] })), [INFO] [stdout] request: "./a/c.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "path tree edge case #2 (wildcard)", [INFO] [stdout] expect: Some(vec!["./A/c.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./a/*": "./A/*", [INFO] [stdout] "./a/b": "./b.js" [INFO] [stdout] })), [INFO] [stdout] request: "./a/c.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "path tree edge case #3", [INFO] [stdout] expect: Some(vec!["./A/b/d/c.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./a/": "./A/", [INFO] [stdout] "./a/b/c/d": "./c.js" [INFO] [stdout] })), [INFO] [stdout] request: "./a/b/d/c.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "path tree edge case #3 (wildcard)", [INFO] [stdout] expect: Some(vec!["./A/b/d/c.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./a/*": "./A/*", [INFO] [stdout] "./a/b/c/d": "./c.js" [INFO] [stdout] })), [INFO] [stdout] request: "./a/b/d/c.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "wildcard pattern #1", [INFO] [stdout] expect: Some(vec!["./A/b.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./a/*.js": "./A/*.js" [INFO] [stdout] })), [INFO] [stdout] request: "./a/b.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "wildcard pattern #2", [INFO] [stdout] expect: Some(vec!["./A/b/c.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./a/*.js": "./A/*.js" [INFO] [stdout] })), [INFO] [stdout] request: "./a/b/c.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "wildcard pattern #3", [INFO] [stdout] expect: Some(vec!["./A/b/c.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./a/*/c.js": "./A/*/c.js" [INFO] [stdout] })), [INFO] [stdout] request: "./a/b/c.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "wildcard pattern #4", [INFO] [stdout] expect: Some(vec!["./A/b/b.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./a/*/c.js": "./A/*/*.js" [INFO] [stdout] })), [INFO] [stdout] request: "./a/b/c.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "wildcard pattern #5", [INFO] [stdout] expect: Some(vec!["./browser/index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./lib/*": { [INFO] [stdout] "browser": [ [INFO] [stdout] "./browser/*" [INFO] [stdout] ] [INFO] [stdout] }, [INFO] [stdout] "./dist/*.js": { [INFO] [stdout] "node": "./*.js", [INFO] [stdout] "default": "./browser/*.js" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./dist/index.js", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "wildcard pattern #5", [INFO] [stdout] expect: Some(vec!["./browser/index.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./lib/*": { [INFO] [stdout] "browser": [ [INFO] [stdout] "./browser/*" [INFO] [stdout] ] [INFO] [stdout] }, [INFO] [stdout] "./dist/*.js": { [INFO] [stdout] "node": "./*.js", [INFO] [stdout] "default": "./browser/*.js" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./lib/index.js", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "wildcard pattern #6", [INFO] [stdout] expect: Some(vec!["./browser/foo/bar.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./lib/*/bar.js": { [INFO] [stdout] "browser": [ [INFO] [stdout] "./browser/*/bar.js" [INFO] [stdout] ] [INFO] [stdout] }, [INFO] [stdout] "./dist/*/bar.js": { [INFO] [stdout] "node": "./*.js", [INFO] [stdout] "default": "./browser/*.js" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./lib/foo/bar.js", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "wildcard pattern #6", [INFO] [stdout] expect: Some(vec!["./browser/foo.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./lib/*/bar.js": { [INFO] [stdout] "browser": [ [INFO] [stdout] "./browser/*/bar.js" [INFO] [stdout] ] [INFO] [stdout] }, [INFO] [stdout] "./dist/*/bar.js": { [INFO] [stdout] "node": "./*.js", [INFO] [stdout] "default": "./browser/*.js" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./dist/foo/bar.js", [INFO] [stdout] condition_names: vec!["browser"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "wildcard pattern #7", [INFO] [stdout] expect: Some(vec!["./browser/foo/default.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./lib/*/bar.js": { [INFO] [stdout] "browser": [ [INFO] [stdout] "./browser/*/bar.js" [INFO] [stdout] ] [INFO] [stdout] }, [INFO] [stdout] "./dist/*/bar.js": { [INFO] [stdout] "node": "./*.js", [INFO] [stdout] "default": "./browser/*/default.js" [INFO] [stdout] } [INFO] [stdout] })), [INFO] [stdout] request: "./dist/foo/bar.js", [INFO] [stdout] condition_names: vec!["default"], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "wildcard pattern #8", [INFO] [stdout] expect: Some(vec!["./A/b/b/b.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./a/*/c.js": "./A/*/*/*.js" [INFO] [stdout] })), [INFO] [stdout] request: "./a/b/c.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "wildcard pattern #9", [INFO] [stdout] expect: Some(vec!["./A/b/b/b.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./a/*/c.js": [ [INFO] [stdout] "./A/*/*/*.js", [INFO] [stdout] "./B/*/*/*.js" [INFO] [stdout] ] [INFO] [stdout] })), [INFO] [stdout] request: "./a/b/c.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] // Duplicated due to not supporting returning an array [INFO] [stdout] TestCase { [INFO] [stdout] name: "wildcard pattern #9", [INFO] [stdout] expect: Some(vec!["./B/b/b/b.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./a/*/c.js": [ [INFO] [stdout] "./B/*/*/*.js" [INFO] [stdout] ] [INFO] [stdout] })), [INFO] [stdout] request: "./a/b/c.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "wildcard pattern #10", [INFO] [stdout] expect: Some(vec!["./A/b/b/b.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./a/foo-*/c.js": "./A/*/*/*.js" [INFO] [stdout] })), [INFO] [stdout] request: "./a/foo-b/c.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "wildcard pattern #11", [INFO] [stdout] expect: Some(vec!["./A/b/b/b.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./a/*-foo/c.js": "./A/*/*/*.js" [INFO] [stdout] })), [INFO] [stdout] request: "./a/b-foo/c.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "wildcard pattern #12", [INFO] [stdout] expect: Some(vec!["./A/b/b/b.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./a/foo-*-foo/c.js": "./A/*/*/*.js" [INFO] [stdout] })), [INFO] [stdout] request: "./a/foo-b-foo/c.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "wildcard pattern #13", [INFO] [stdout] expect: Some(vec!["./A/b/c/d.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./a/foo-*-foo/c.js": "./A/b/c/d.js" [INFO] [stdout] })), [INFO] [stdout] request: "./a/foo-b-foo/c.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] TestCase { [INFO] [stdout] name: "wildcard pattern #14", [INFO] [stdout] expect: Some(vec!["./A/b/c/*.js"]), [INFO] [stdout] exports_field: exports_field(json!({ [INFO] [stdout] "./a/foo-foo/c.js": "./A/b/c/*.js" [INFO] [stdout] })), [INFO] [stdout] request: "./a/foo-foo/c.js", [INFO] [stdout] condition_names: vec![], [INFO] [stdout] }, [INFO] [stdout] ].into_boxed_slice()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_stack_arrays [INFO] [stdout] = note: `-W clippy::large-stack-arrays` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::large_stack_arrays)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty String is being created manually [INFO] [stdout] --> src/tests/incorrect_description_file.rs:39:23 [INFO] [stdout] | [INFO] [stdout] 39 | content: Some("".to_string()), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: consider using: `String::new()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_string_new [INFO] [stdout] = note: `-W clippy::manual-string-new` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::manual_string_new)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `map_or` [INFO] [stdout] --> src/tests/tsconfig_paths.rs:39:27 [INFO] [stdout] | [INFO] [stdout] 39 | let path = subdir.map_or(dir.clone(), |subdir| dir.join(subdir)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map_or_else(|| dir.clone(), |subdir| dir.join(subdir))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stdout] = note: `-W clippy::or-fun-call` implied by `-W clippy::nursery` [INFO] [stdout] = help: to override `-W clippy::nursery` add `#[allow(clippy::or_fun_call)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary semicolon [INFO] [stdout] --> src/lib.rs:235:10 [INFO] [stdout] | [INFO] [stdout] 235 | }; [INFO] [stdout] | ^ help: remove [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary semicolon [INFO] [stdout] --> src/lib.rs:882:14 [INFO] [stdout] | [INFO] [stdout] 882 | }; [INFO] [stdout] | ^ help: remove [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::is_some_and` [INFO] [stdout] --> src/lib.rs:989:16 [INFO] [stdout] | [INFO] [stdout] 989 | if new_specifier.strip_prefix("./").filter(|s| path.ends_with(Path::new(s))).is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `new_specifier.strip_prefix("./").as_ref().is_some_and(|s| path.ends_with(Path::new(s)))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_variant_and [INFO] [stdout] = note: `-W clippy::manual-is-variant-and` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::manual_is_variant_and)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implicitly cloning a `String` by calling `to_string` on its dereferenced type [INFO] [stdout] --> src/lib.rs:1657:29 [INFO] [stdout] | [INFO] [stdout] 1657 | ... target.to_string(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using: `target.clone()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_clone [INFO] [stdout] = note: `-W clippy::implicit-clone` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::implicit_clone)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `as_bytes` after slicing a string [INFO] [stdout] --> src/lib.rs:1772:35 [INFO] [stdout] | [INFO] [stdout] 1772 | separator_index = specifier[*index + 1..] [INFO] [stdout] | ___________________________________^ [INFO] [stdout] 1773 | | .as_bytes() [INFO] [stdout] | |_______________________________^ help: try: `&specifier.as_bytes()[*index + 1..]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#sliced_string_as_bytes [INFO] [stdout] = note: `-W clippy::sliced-string-as-bytes` implied by `-W clippy::all` [INFO] [stdout] = help: to override `-W clippy::all` add `#[allow(clippy::sliced_string_as_bytes)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/package_json.rs:129:42 [INFO] [stdout] | [INFO] [stdout] 127 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 128 | main_fields: &'a [String], [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 129 | ) -> impl Iterator + '_ { [INFO] [stdout] | -- ^^ the same lifetime is elided here [INFO] [stdout] | | [INFO] [stdout] | the same lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 129 - ) -> impl Iterator + '_ { [INFO] [stdout] 129 + ) -> impl Iterator + 'a { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/package_json.rs:142:48 [INFO] [stdout] | [INFO] [stdout] 140 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 141 | exports_fields: &'a [Vec], [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 142 | ) -> impl Iterator + '_ { [INFO] [stdout] | -- ^^ the same lifetime is elided here [INFO] [stdout] | | [INFO] [stdout] | the same lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 142 - ) -> impl Iterator + '_ { [INFO] [stdout] 142 + ) -> impl Iterator + 'a { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/package_json.rs:156:46 [INFO] [stdout] | [INFO] [stdout] 154 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 155 | imports_fields: &'a [Vec], [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 156 | ) -> impl Iterator + '_ { [INFO] [stdout] | -- ^^ the same lifetime is elided here [INFO] [stdout] | | [INFO] [stdout] | the same lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 156 - ) -> impl Iterator + '_ { [INFO] [stdout] 156 + ) -> impl Iterator + 'a { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/package_json.rs:172:46 [INFO] [stdout] | [INFO] [stdout] 170 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 171 | alias_fields: &'a [Vec], [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 172 | ) -> impl Iterator + '_ { [INFO] [stdout] | -- ^^ the same lifetime is elided here [INFO] [stdout] | | [INFO] [stdout] | the same lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 172 - ) -> impl Iterator + '_ { [INFO] [stdout] 172 + ) -> impl Iterator + 'a { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/package_json.rs:193:24 [INFO] [stdout] | [INFO] [stdout] 189 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] ... [INFO] [stdout] 192 | alias_fields: &'a [Vec], [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 193 | ) -> Result, ResolveError> { [INFO] [stdout] | ^^^^ the same lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 193 | ) -> Result, ResolveError> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/specifier.rs:34:32 [INFO] [stdout] | [INFO] [stdout] 32 | specifier: &'a str, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 33 | skip: usize, [INFO] [stdout] 34 | ) -> (Cow<'a, str>, Option<&str>, Option<&str>) { [INFO] [stdout] | -- ^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the same lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 34 | ) -> (Cow<'a, str>, Option<&'a str>, Option<&'a str>) { [INFO] [stdout] | ++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 26.60s [INFO] running `Command { std: "docker" "inspect" "b0cb2e50fb1ba63c092ce24d91d1cc3a1e256c909d62fc6d7817c8bfc9661f1b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b0cb2e50fb1ba63c092ce24d91d1cc3a1e256c909d62fc6d7817c8bfc9661f1b", kill_on_drop: false }` [INFO] [stdout] b0cb2e50fb1ba63c092ce24d91d1cc3a1e256c909d62fc6d7817c8bfc9661f1b