[INFO] cloning repository https://github.com/maxdexh/alejandra
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/maxdexh/alejandra" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmaxdexh%2Falejandra", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmaxdexh%2Falejandra'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] dcdc1e10450694d76fc83cb00ca4c9ba9cd0ba5d
[INFO] testing maxdexh/alejandra against master#0d162b25edd5bf0dba9a22e83b614f1113e90474 for pr-150681
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmaxdexh%2Falejandra" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/maxdexh/alejandra
[INFO] finished tweaking git repo https://github.com/maxdexh/alejandra
[INFO] tweaked toml for git repo https://github.com/maxdexh/alejandra written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/maxdexh/alejandra on toolchain 0d162b25edd5bf0dba9a22e83b614f1113e90474
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/maxdexh/alejandra 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" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded clap_derive v3.2.25
[INFO] [stderr]   Downloaded countme v3.0.1
[INFO] [stderr]   Downloaded os_str_bytes v6.6.1
[INFO] [stderr]   Downloaded textwrap v0.16.2
[INFO] [stderr]   Downloaded text-size v1.1.1
[INFO] [stderr]   Downloaded mimalloc v0.1.46
[INFO] [stderr]   Downloaded rowan v0.15.16
[INFO] [stderr]   Downloaded winnow v0.7.6
[INFO] [stderr]   Downloaded cc v1.2.18
[INFO] [stderr]   Downloaded rnix v0.12.0
[INFO] [stderr]   Downloaded clap v3.2.25
[INFO] [stderr]   Downloaded libmimalloc-sys v0.1.42
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0a6a56da77ff128e63ad344001e771fa2ae2a27977f91745fe4c161dc568e34f
[INFO] running `Command { std: "docker" "start" "-a" "0a6a56da77ff128e63ad344001e771fa2ae2a27977f91745fe4c161dc568e34f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0a6a56da77ff128e63ad344001e771fa2ae2a27977f91745fe4c161dc568e34f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0a6a56da77ff128e63ad344001e771fa2ae2a27977f91745fe4c161dc568e34f", kill_on_drop: false }`
[INFO] [stdout] 0a6a56da77ff128e63ad344001e771fa2ae2a27977f91745fe4c161dc568e34f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6f85f15f7001c9a57d93fff02945b45de8078755f5e2c518bba2482b46bddd6b
[INFO] running `Command { std: "docker" "start" "-a" "6f85f15f7001c9a57d93fff02945b45de8078755f5e2c518bba2482b46bddd6b", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.94
[INFO] [stderr]    Compiling libc v0.2.171
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling cc v1.2.18
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling countme v3.0.1
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling futures-task v0.3.31
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling hashbrown v0.15.2
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]    Compiling text-size v1.1.1
[INFO] [stderr]    Compiling rustc-hash v1.1.0
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling syn v2.0.100
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling pin-project-lite v0.2.16
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling indexmap v2.9.0
[INFO] [stderr]    Compiling num_cpus v1.16.0
[INFO] [stderr]    Compiling libmimalloc-sys v0.1.42
[INFO] [stderr]    Compiling rowan v0.15.16
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]    Compiling os_str_bytes v6.6.1
[INFO] [stderr]    Compiling winnow v0.7.6
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling rnix v0.12.0
[INFO] [stderr]    Compiling clap_lex v0.2.4
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling clap_derive v3.2.25
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling textwrap v0.16.2
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]    Compiling mimalloc v0.1.46
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling termcolor v1.4.1
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling clap v3.2.25
[INFO] [stderr]    Compiling toml_datetime v0.6.8
[INFO] [stderr]    Compiling serde_spanned v0.6.8
[INFO] [stderr]    Compiling alejandra v4.0.0 (/opt/rustwide/workdir/src/alejandra)
[INFO] [stderr]    Compiling toml_edit v0.22.24
[INFO] [stderr]    Compiling toml v0.8.20
[INFO] [stderr]    Compiling alejandra_cli v4.0.0 (/opt/rustwide/workdir/src/alejandra_cli)
[INFO] [stderr]     Finished `dev` profile [optimized + debuginfo] target(s) in 2m 11s
[INFO] running `Command { std: "docker" "inspect" "6f85f15f7001c9a57d93fff02945b45de8078755f5e2c518bba2482b46bddd6b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6f85f15f7001c9a57d93fff02945b45de8078755f5e2c518bba2482b46bddd6b", kill_on_drop: false }`
[INFO] [stdout] 6f85f15f7001c9a57d93fff02945b45de8078755f5e2c518bba2482b46bddd6b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 78ca2328bbe137a1d4c2210d4dfd0fadaa545e8dd64d2232912639a626bd6efd
[INFO] running `Command { std: "docker" "start" "-a" "78ca2328bbe137a1d4c2210d4dfd0fadaa545e8dd64d2232912639a626bd6efd", kill_on_drop: false }`
[INFO] [stderr]    Compiling diff v0.1.13
[INFO] [stderr]    Compiling yansi v1.0.1
[INFO] [stderr]    Compiling pretty_assertions v1.4.1
[INFO] [stderr]    Compiling alejandra_cli v4.0.0 (/opt/rustwide/workdir/src/alejandra_cli)
[INFO] [stderr]    Compiling alejandra v4.0.0 (/opt/rustwide/workdir/src/alejandra)
[INFO] [stderr]     Finished `test` profile [optimized + debuginfo] target(s) in 6.54s
[INFO] running `Command { std: "docker" "inspect" "78ca2328bbe137a1d4c2210d4dfd0fadaa545e8dd64d2232912639a626bd6efd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "78ca2328bbe137a1d4c2210d4dfd0fadaa545e8dd64d2232912639a626bd6efd", kill_on_drop: false }`
[INFO] [stdout] 78ca2328bbe137a1d4c2210d4dfd0fadaa545e8dd64d2232912639a626bd6efd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 9a3485badb1a134d8d94d5c50a65cdec283de5429a4bf8ae94c77cc948258590
[INFO] running `Command { std: "docker" "start" "-a" "9a3485badb1a134d8d94d5c50a65cdec283de5429a4bf8ae94c77cc948258590", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [optimized + debuginfo] target(s) in 0.13s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/alejandra-fbd3de3cf580c725)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/fmt.rs (/opt/rustwide/target/debug/deps/fmt-0c60ce2a848c3a84)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test cases ... FAILED
[INFO] [stderr] error: test failed, to rerun pass `-p alejandra --test fmt`
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- cases stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'cases' (18) panicked at src/alejandra/tests/fmt.rs:56:13:
[INFO] [stdout] assertion failed: `(left == right)`: Test case `"tests/cases/default/idioms_lib_2"` failed
[INFO] [stdout] 
[INFO] [stdout] [1mDiff[0m [31m< left[0m / [32mright >[0m :
[INFO] [stdout]  {lib}: rec {
[INFO] [stdout]    ## Simple (higher order) functions
[INFO] [stdout]  
[INFO] [stdout]    /*
[INFO] [stdout]    The identity function
[INFO] [stdout]    For when you need a function that does “nothing”.
[INFO] [stdout]  
[INFO] [stdout]    Type: id :: a -> a
[INFO] [stdout]    */
[INFO] [stdout]    id =
[INFO] [stdout]      # The value to return
[INFO] [stdout]      x: x;
[INFO] [stdout]  
[INFO] [stdout]    /*
[INFO] [stdout]    The constant function
[INFO] [stdout]  
[INFO] [stdout]    Ignores the second argument. If called with only one argument,
[INFO] [stdout]    constructs a function that always returns a static value.
[INFO] [stdout]  
[INFO] [stdout]    Type: const :: a -> b -> a
[INFO] [stdout]    Example:
[INFO] [stdout]      let f = const 5; in f 10
[INFO] [stdout]      => 5
[INFO] [stdout]    */
[INFO] [stdout]    const =
[INFO] [stdout]      # Value to return
[INFO] [stdout]      x:
[INFO] [stdout]      # Value to ignore
[INFO] [stdout]      y: x;
[INFO] [stdout]  
[INFO] [stdout]    /*
[INFO] [stdout]    Pipes a value through a list of functions, left to right.
[INFO] [stdout]  
[INFO] [stdout]    Type: pipe :: a -> [<functions>] -> <return type of last function>
[INFO] [stdout]    Example:
[INFO] [stdout]      pipe 2 [
[INFO] [stdout]        (x: x + 2)  # 2 + 2 = 4
[INFO] [stdout]        (x: x * 2)  # 4 * 2 = 8
[INFO] [stdout]      ]
[INFO] [stdout]      => 8
[INFO] [stdout]  
[INFO] [stdout]      # ideal to do text transformations
[INFO] [stdout]      pipe [ "a/b" "a/c" ] [
[INFO] [stdout]  
[INFO] [stdout]        # create the cp command
[INFO] [stdout]        (map (file: ''cp "${src}/${file}" $out\n''))
[INFO] [stdout]  
[INFO] [stdout]        # concatenate all commands into one string
[INFO] [stdout]        lib.concatStrings
[INFO] [stdout]  
[INFO] [stdout]        # make that string into a nix derivation
[INFO] [stdout]        (pkgs.runCommand "copy-to-out" {})
[INFO] [stdout]  
[INFO] [stdout]      ]
[INFO] [stdout]      => <drv which copies all files to $out>
[INFO] [stdout]  
[INFO] [stdout]    The output type of each function has to be the input type
[INFO] [stdout]    of the next function, and the last function returns the
[INFO] [stdout]    final value.
[INFO] [stdout]    */
[INFO] [stdout]    pipe = val: functions: let
[INFO] [stdout]      reverseApply = x: f: f x;
[INFO] [stdout] [31m<  in[0m
[INFO] [stdout] [31m<    builtins.foldl' reverseApply val functions;[0m
[INFO] [stdout] [32m>  in builtins.foldl' reverseApply val functions;[0m
[INFO] [stdout]  
[INFO] [stdout]    # note please don’t add a function like `compose = flip pipe`.
[INFO] [stdout]    # This would confuse users, because the order of the functions
[INFO] [stdout]    # in the list is not clear. With pipe, it’s obvious that it
[INFO] [stdout]    # goes first-to-last. With `compose`, not so much.
[INFO] [stdout]  
[INFO] [stdout]    ## Named versions corresponding to some builtin operators.
[INFO] [stdout]  
[INFO] [stdout]    /*
[INFO] [stdout]    Concatenate two lists
[INFO] [stdout]  
[INFO] [stdout]    Type: concat :: [a] -> [a] -> [a]
[INFO] [stdout]  
[INFO] [stdout]    Example:
[INFO] [stdout]      concat [ 1 2 ] [ 3 4 ]
[INFO] [stdout]      => [ 1 2 3 4 ]
[INFO] [stdout]    */
[INFO] [stdout]    concat = x: y: x ++ y;
[INFO] [stdout]  
[INFO] [stdout]    /* boolean “or” */
[INFO] [stdout]    or = x: y: x || y;
[INFO] [stdout]  
[INFO] [stdout]    /* boolean “and” */
[INFO] [stdout]    and = x: y: x && y;
[INFO] [stdout]  
[INFO] [stdout]    /* bitwise “and” */
[INFO] [stdout]    bitAnd =
[INFO] [stdout]      builtins.bitAnd
[INFO] [stdout]      or (import ./zip-int-bits.nix
[INFO] [stdout]        (a: b: if a == 1 && b == 1
[INFO] [stdout]          then 1
[INFO] [stdout]          else 0));
[INFO] [stdout]  
[INFO] [stdout]    /* bitwise “or” */
[INFO] [stdout]    bitOr =
[INFO] [stdout]      builtins.bitOr
[INFO] [stdout]      or (import ./zip-int-bits.nix
[INFO] [stdout]        (a: b: if a == 1 || b == 1
[INFO] [stdout]          then 1
[INFO] [stdout]          else 0));
[INFO] [stdout]  
[INFO] [stdout]    /* bitwise “xor” */
[INFO] [stdout]    bitXor =
[INFO] [stdout]      builtins.bitXor
[INFO] [stdout]      or (import ./zip-int-bits.nix
[INFO] [stdout]        (a: b: if a != b
[INFO] [stdout]          then 1
[INFO] [stdout]          else 0));
[INFO] [stdout]  
[INFO] [stdout]    /* bitwise “not” */
[INFO] [stdout]    bitNot = builtins.sub (-1);
[INFO] [stdout]  
[INFO] [stdout]    /*
[INFO] [stdout]    Convert a boolean to a string.
[INFO] [stdout]  
[INFO] [stdout]    This function uses the strings "true" and "false" to represent
[INFO] [stdout]    boolean values. Calling `toString` on a bool instead returns "1"
[INFO] [stdout]    and "" (sic!).
[INFO] [stdout]  
[INFO] [stdout]    Type: boolToString :: bool -> string
[INFO] [stdout]    */
[INFO] [stdout]    boolToString = b: if b
[INFO] [stdout]    then "true"
[INFO] [stdout]    else "false";
[INFO] [stdout]  
[INFO] [stdout]    /*
[INFO] [stdout]    Merge two attribute sets shallowly, right side trumps left
[INFO] [stdout]  
[INFO] [stdout]    mergeAttrs :: attrs -> attrs -> attrs
[INFO] [stdout]  
[INFO] [stdout]    Example:
[INFO] [stdout]      mergeAttrs { a = 1; b = 2; } { b = 3; c = 4; }
[INFO] [stdout]      => { a = 1; b = 3; c = 4; }
[INFO] [stdout]    */
[INFO] [stdout]    mergeAttrs =
[INFO] [stdout]      # Left attribute set
[INFO] [stdout]      x:
[INFO] [stdout]      # Right attribute set (higher precedence for equal keys)
[INFO] [stdout]      y: x // y;
[INFO] [stdout]  
[INFO] [stdout]    /*
[INFO] [stdout]    Flip the order of the arguments of a binary function.
[INFO] [stdout]  
[INFO] [stdout]    Type: flip :: (a -> b -> c) -> (b -> a -> c)
[INFO] [stdout]  
[INFO] [stdout]    Example:
[INFO] [stdout]      flip concat [1] [2]
[INFO] [stdout]      => [ 2 1 ]
[INFO] [stdout]    */
[INFO] [stdout]    flip = f: a: b: f b a;
[INFO] [stdout]  
[INFO] [stdout]    /*
[INFO] [stdout]    Apply function if the supplied argument is non-null.
[INFO] [stdout]  
[INFO] [stdout]    Example:
[INFO] [stdout]      mapNullable (x: x+1) null
[INFO] [stdout]      => null
[INFO] [stdout]      mapNullable (x: x+1) 22
[INFO] [stdout]      => 23
[INFO] [stdout]    */
[INFO] [stdout]    mapNullable =
[INFO] [stdout]      # Function to call
[INFO] [stdout]      f:
[INFO] [stdout]      # Argument to check for null before passing it to `f`
[INFO] [stdout]      a: if a == null
[INFO] [stdout]      then a
[INFO] [stdout]      else f a;
[INFO] [stdout]  
[INFO] [stdout]    # Pull in some builtins not included elsewhere.
[INFO] [stdout]    inherit
[INFO] [stdout]      (builtins)
[INFO] [stdout]      pathExists
[INFO] [stdout]      readFile
[INFO] [stdout]      isBool
[INFO] [stdout]      isInt
[INFO] [stdout]      isFloat
[INFO] [stdout]      add
[INFO] [stdout]      sub
[INFO] [stdout]      lessThan
[INFO] [stdout]      seq
[INFO] [stdout]      deepSeq
[INFO] [stdout]      genericClosure
[INFO] [stdout]      ;
[INFO] [stdout]  
[INFO] [stdout]    ## nixpkgs version strings
[INFO] [stdout]  
[INFO] [stdout]    /* Returns the current full nixpkgs version number. */
[INFO] [stdout]    version = release + versionSuffix;
[INFO] [stdout]  
[INFO] [stdout]    /* Returns the current nixpkgs release number as string. */
[INFO] [stdout]    release = lib.strings.fileContents ../.version;
[INFO] [stdout]  
[INFO] [stdout]    /*
[INFO] [stdout]    Returns the current nixpkgs release code name.
[INFO] [stdout]  
[INFO] [stdout]    On each release the first letter is bumped and a new animal is chosen
[INFO] [stdout]    starting with that new letter.
[INFO] [stdout]    */
[INFO] [stdout]    codeName = "Quokka";
[INFO] [stdout]  
[INFO] [stdout]    /* Returns the current nixpkgs version suffix as string. */
[INFO] [stdout]    versionSuffix = let
[INFO] [stdout]      suffixFile = ../.version-suffix;
[INFO] [stdout] [31m<  in[0m
[INFO] [stdout] [31m<    if pathExists suffixFile[0m
[INFO] [stdout] [31m<    then lib.strings.fileContents suffixFile[0m
[INFO] [stdout] [31m<    else "pre-git";[0m
[INFO] [stdout] [32m>  in if pathExists suffixFile[0m
[INFO] [stdout] [32m>  then lib.strings.fileContents suffixFile[0m
[INFO] [stdout] [32m>  else "pre-git";[0m
[INFO] [stdout]  
[INFO] [stdout]    /*
[INFO] [stdout]    Attempts to return the the current revision of nixpkgs and
[INFO] [stdout]    returns the supplied default value otherwise.
[INFO] [stdout]  
[INFO] [stdout]    Type: revisionWithDefault :: string -> string
[INFO] [stdout]    */
[INFO] [stdout]    revisionWithDefault =
[INFO] [stdout]      # Default value to return if revision can not be determined
[INFO] [stdout]      default: let
[INFO] [stdout]        revisionFile = "${toString ./..}/.git-revision";
[INFO] [stdout]        gitRepo = "${toString ./..}/.git";
[INFO] [stdout] [31m<    in[0m
[INFO] [stdout] [31m<      if lib.pathIsGitRepo gitRepo[0m
[INFO] [stdout] [31m<      then lib.commitIdFromGitRepo gitRepo[0m
[INFO] [stdout] [31m<      else if lib.pathExists revisionFile[0m
[INFO] [stdout] [31m<      then lib.fileContents revisionFile[0m
[INFO] [stdout] [31m<      else default;[0m
[INFO] [stdout] [32m>    in if lib.pathIsGitRepo gitRepo[0m
[INFO] [stdout] [32m>    then lib.commitIdFromGitRepo gitRepo[0m
[INFO] [stdout] [32m>    else if lib.pathExists revisionFile[0m
[INFO] [stdout] [32m>    then lib.fileContents revisionFile[0m
[INFO] [stdout] [32m>    else default;[0m
[INFO] [stdout]  
[INFO] [stdout]    nixpkgsVersion = builtins.trace "`lib.nixpkgsVersion` is deprecated, use `lib.version` instead!" version;
[INFO] [stdout]  
[INFO] [stdout]    /*
[INFO] [stdout]    Determine whether the function is being called from inside a Nix
[INFO] [stdout]    shell.
[INFO] [stdout]  
[INFO] [stdout]    Type: inNixShell :: bool
[INFO] [stdout]    */
[INFO] [stdout]    inNixShell = builtins.getEnv "IN_NIX_SHELL" != "";
[INFO] [stdout]  
[INFO] [stdout]    ## Integer operations
[INFO] [stdout]  
[INFO] [stdout]    /* Return minimum of two numbers. */
[INFO] [stdout]    min = x: y: if x < y
[INFO] [stdout]    then x
[INFO] [stdout]    else y;
[INFO] [stdout]  
[INFO] [stdout]    /* Return maximum of two numbers. */
[INFO] [stdout]    max = x: y: if x > y
[INFO] [stdout]    then x
[INFO] [stdout]    else y;
[INFO] [stdout]  
[INFO] [stdout]    /*
[INFO] [stdout]    Integer modulus
[INFO] [stdout]  
[INFO] [stdout]    Example:
[INFO] [stdout]      mod 11 10
[INFO] [stdout]      => 1
[INFO] [stdout]      mod 1 10
[INFO] [stdout]      => 1
[INFO] [stdout]    */
[INFO] [stdout]    mod = base: int: base - (int * (builtins.div base int));
[INFO] [stdout]  
[INFO] [stdout]    ## Comparisons
[INFO] [stdout]  
[INFO] [stdout]    /*
[INFO] [stdout]    C-style comparisons
[INFO] [stdout]  
[INFO] [stdout]    a < b,  compare a b => -1
[INFO] [stdout]    a == b, compare a b => 0
[INFO] [stdout]    a > b,  compare a b => 1
[INFO] [stdout]    */
[INFO] [stdout]    compare = a: b:
[INFO] [stdout]      if a < b
[INFO] [stdout]      then -1
[INFO] [stdout]      else if a > b
[INFO] [stdout]      then 1
[INFO] [stdout]      else 0;
[INFO] [stdout]  
[INFO] [stdout]    /*
[INFO] [stdout]    Split type into two subtypes by predicate `p`, take all elements
[INFO] [stdout]    of the first subtype to be less than all the elements of the
[INFO] [stdout]    second subtype, compare elements of a single subtype with `yes`
[INFO] [stdout]    and `no` respectively.
[INFO] [stdout]  
[INFO] [stdout]    Type: (a -> bool) -> (a -> a -> int) -> (a -> a -> int) -> (a -> a -> int)
[INFO] [stdout]  
[INFO] [stdout]    Example:
[INFO] [stdout]      let cmp = splitByAndCompare (hasPrefix "foo") compare compare; in
[INFO] [stdout]  
[INFO] [stdout]      cmp "a" "z" => -1
[INFO] [stdout]      cmp "fooa" "fooz" => -1
[INFO] [stdout]  
[INFO] [stdout]      cmp "f" "a" => 1
[INFO] [stdout]      cmp "fooa" "a" => -1
[INFO] [stdout]      # while
[INFO] [stdout]      compare "fooa" "a" => 1
[INFO] [stdout]    */
[INFO] [stdout]    splitByAndCompare =
[INFO] [stdout]      # Predicate
[INFO] [stdout]      p:
[INFO] [stdout]      # Comparison function if predicate holds for both values
[INFO] [stdout]      yes:
[INFO] [stdout]      # Comparison function if predicate holds for neither value
[INFO] [stdout]      no:
[INFO] [stdout]      # First value to compare
[INFO] [stdout]      a:
[INFO] [stdout]      # Second value to compare
[INFO] [stdout]      b:
[INFO] [stdout]        if p a
[INFO] [stdout]        then
[INFO] [stdout]          if p b
[INFO] [stdout]          then yes a b
[INFO] [stdout]          else -1
[INFO] [stdout]        else if p b
[INFO] [stdout]        then 1
[INFO] [stdout]        else no a b;
[INFO] [stdout]  
[INFO] [stdout]    /*
[INFO] [stdout]    Reads a JSON file.
[INFO] [stdout]  
[INFO] [stdout]    Type :: path -> any
[INFO] [stdout]    */
[INFO] [stdout]    importJSON = path:
[INFO] [stdout]      builtins.fromJSON (builtins.readFile path);
[INFO] [stdout]  
[INFO] [stdout]    /*
[INFO] [stdout]    Reads a TOML file.
[INFO] [stdout]  
[INFO] [stdout]    Type :: path -> any
[INFO] [stdout]    */
[INFO] [stdout]    importTOML = path:
[INFO] [stdout]      builtins.fromTOML (builtins.readFile path);
[INFO] [stdout]  
[INFO] [stdout]    ## Warnings
[INFO] [stdout]  
[INFO] [stdout]    # See https://github.com/NixOS/nix/issues/749. Eventually we'd like these
[INFO] [stdout]    # to expand to Nix builtins that carry metadata so that Nix can filter out
[INFO] [stdout]    # the INFO messages without parsing the message string.
[INFO] [stdout]    #
[INFO] [stdout]    # Usage:
[INFO] [stdout]    # {
[INFO] [stdout]    #   foo = lib.warn "foo is deprecated" oldFoo;
[INFO] [stdout]    #   bar = lib.warnIf (bar == "") "Empty bar is deprecated" bar;
[INFO] [stdout]    # }
[INFO] [stdout]    #
[INFO] [stdout]    # TODO: figure out a clever way to integrate location information from
[INFO] [stdout]    # something like __unsafeGetAttrPos.
[INFO] [stdout]  
[INFO] [stdout]    /*
[INFO] [stdout]    Print a warning before returning the second argument. This function behaves
[INFO] [stdout]    like `builtins.trace`, but requires a string message and formats it as a
[INFO] [stdout]    warning, including the `warning: ` prefix.
[INFO] [stdout]  
[INFO] [stdout]    To get a call stack trace and abort evaluation, set the environment variable
[INFO] [stdout]    `NIX_ABORT_ON_WARN=true` and set the Nix options `--option pure-eval false --show-trace`
[INFO] [stdout]  
[INFO] [stdout]    Type: string -> a -> a
[INFO] [stdout]    */
[INFO] [stdout]    warn =
[INFO] [stdout]      if lib.elem (builtins.getEnv "NIX_ABORT_ON_WARN") ["1" "true" "yes"]
[INFO] [stdout]      then msg: builtins.trace "[1;31mwarning: ${msg}[0m" (abort "NIX_ABORT_ON_WARN=true; warnings are treated as unrecoverable errors.")
[INFO] [stdout]      else msg: builtins.trace "[1;31mwarning: ${msg}[0m";
[INFO] [stdout]  
[INFO] [stdout]    /*
[INFO] [stdout]    Like warn, but only warn when the first argument is `true`.
[INFO] [stdout]  
[INFO] [stdout]    Type: bool -> string -> a -> a
[INFO] [stdout]    */
[INFO] [stdout]    warnIf = cond: msg: if cond
[INFO] [stdout]    then warn msg
[INFO] [stdout]    else id;
[INFO] [stdout]  
[INFO] [stdout]    /*
[INFO] [stdout]    Like the `assert b; e` expression, but with a custom error message and
[INFO] [stdout]    without the semicolon.
[INFO] [stdout]  
[INFO] [stdout]    If true, return the identity function, `r: r`.
[INFO] [stdout]  
[INFO] [stdout]    If false, throw the error message.
[INFO] [stdout]  
[INFO] [stdout]    Calls can be juxtaposed using function application, as `(r: r) a = a`, so
[INFO] [stdout]    `(r: r) (r: r) a = a`, and so forth.
[INFO] [stdout]  
[INFO] [stdout]    Type: bool -> string -> a -> a
[INFO] [stdout]  
[INFO] [stdout]    Example:
[INFO] [stdout]  
[INFO] [stdout]        throwIfNot (lib.isList overlays) "The overlays argument to nixpkgs must be a list."
[INFO] [stdout]        lib.foldr (x: throwIfNot (lib.isFunction x) "All overlays passed to nixpkgs must be functions.") (r: r) overlays
[INFO] [stdout]        pkgs
[INFO] [stdout]  
[INFO] [stdout]    */
[INFO] [stdout]    throwIfNot = cond: msg: if cond
[INFO] [stdout]    then x: x
[INFO] [stdout]    else throw msg;
[INFO] [stdout]  
[INFO] [stdout]    /*
[INFO] [stdout]    Check if the elements in a list are valid values from a enum, returning the identity function, or throwing an error message otherwise.
[INFO] [stdout]  
[INFO] [stdout]    Example:
[INFO] [stdout]      let colorVariants = ["bright" "dark" "black"]
[INFO] [stdout]      in checkListOfEnum "color variants" [ "standard" "light" "dark" ] colorVariants;
[INFO] [stdout]      =>
[INFO] [stdout]      error: color variants: bright, black unexpected; valid ones: standard, light, dark
[INFO] [stdout]  
[INFO] [stdout]    Type: String -> List ComparableVal -> List ComparableVal -> a -> a
[INFO] [stdout]    */
[INFO] [stdout]    checkListOfEnum = msg: valid: given: let
[INFO] [stdout]      unexpected = lib.subtractLists valid given;
[INFO] [stdout]    in
[INFO] [stdout]      lib.throwIfNot (unexpected == [])
[INFO] [stdout]      "${msg}: ${builtins.concatStringsSep ", " (builtins.map builtins.toString unexpected)} unexpected; valid ones: ${builtins.concatStringsSep ", " (builtins.map builtins.toString valid)}";
[INFO] [stdout]  
[INFO] [stdout]    info = msg: builtins.trace "INFO: ${msg}";
[INFO] [stdout]  
[INFO] [stdout]    showWarnings = warnings: res: lib.foldr (w: x: warn w x) res warnings;
[INFO] [stdout]  
[INFO] [stdout]    ## Function annotations
[INFO] [stdout]  
[INFO] [stdout]    /*
[INFO] [stdout]    Add metadata about expected function arguments to a function.
[INFO] [stdout]    The metadata should match the format given by
[INFO] [stdout]    builtins.functionArgs, i.e. a set from expected argument to a bool
[INFO] [stdout]    representing whether that argument has a default or not.
[INFO] [stdout]    setFunctionArgs : (a → b) → Map String Bool → (a → b)
[INFO] [stdout]  
[INFO] [stdout]    This function is necessary because you can't dynamically create a
[INFO] [stdout]    function of the { a, b ? foo, ... }: format, but some facilities
[INFO] [stdout]    like callPackage expect to be able to query expected arguments.
[INFO] [stdout]    */
[INFO] [stdout]    setFunctionArgs = f: args: {
[INFO] [stdout]      # TODO: Should we add call-time "type" checking like built in?
[INFO] [stdout]      __functor = self: f;
[INFO] [stdout]      __functionArgs = args;
[INFO] [stdout]    };
[INFO] [stdout]  
[INFO] [stdout]    /*
[INFO] [stdout]    Extract the expected function arguments from a function.
[INFO] [stdout]    This works both with nix-native { a, b ? foo, ... }: style
[INFO] [stdout]    functions and functions with args set with 'setFunctionArgs'. It
[INFO] [stdout]    has the same return type and semantics as builtins.functionArgs.
[INFO] [stdout]    setFunctionArgs : (a → b) → Map String Bool.
[INFO] [stdout]    */
[INFO] [stdout]    functionArgs = f:
[INFO] [stdout]      if f ? __functor
[INFO] [stdout]      then f.__functionArgs or (lib.functionArgs (f.__functor f))
[INFO] [stdout]      else builtins.functionArgs f;
[INFO] [stdout]  
[INFO] [stdout]    /*
[INFO] [stdout]    Check whether something is a function or something
[INFO] [stdout]    annotated with function args.
[INFO] [stdout]    */
[INFO] [stdout]    isFunction = f: builtins.isFunction f
[INFO] [stdout]    || (f ? __functor && isFunction (f.__functor f));
[INFO] [stdout]  
[INFO] [stdout]    /*
[INFO] [stdout]    Convert the given positive integer to a string of its hexadecimal
[INFO] [stdout]    representation. For example:
[INFO] [stdout]  
[INFO] [stdout]    toHexString 0 => "0"
[INFO] [stdout]  
[INFO] [stdout]    toHexString 16 => "10"
[INFO] [stdout]  
[INFO] [stdout]    toHexString 250 => "FA"
[INFO] [stdout]    */
[INFO] [stdout]    toHexString = i: let
[INFO] [stdout]      toHexDigit = d:
[INFO] [stdout]        if d < 10
[INFO] [stdout]        then toString d
[INFO] [stdout]        else
[INFO] [stdout]          {
[INFO] [stdout]            "10" = "A";
[INFO] [stdout]            "11" = "B";
[INFO] [stdout]            "12" = "C";
[INFO] [stdout]            "13" = "D";
[INFO] [stdout]            "14" = "E";
[INFO] [stdout]            "15" = "F";
[INFO] [stdout]          }.${
[INFO] [stdout]            toString d
[INFO] [stdout]          };
[INFO] [stdout]    in
[INFO] [stdout]      lib.concatMapStrings toHexDigit (toBaseDigits 16 i);
[INFO] [stdout]  
[INFO] [stdout]    /*
[INFO] [stdout]    `toBaseDigits base i` converts the positive integer i to a list of its
[INFO] [stdout]    digits in the given base. For example:
[INFO] [stdout]  
[INFO] [stdout]    toBaseDigits 10 123 => [ 1 2 3 ]
[INFO] [stdout]  
[INFO] [stdout]    toBaseDigits 2 6 => [ 1 1 0 ]
[INFO] [stdout]  
[INFO] [stdout]    toBaseDigits 16 250 => [ 15 10 ]
[INFO] [stdout]    */
[INFO] [stdout]    toBaseDigits = base: i: let
[INFO] [stdout]      go = i:
[INFO] [stdout]        if i < base
[INFO] [stdout]        then [i]
[INFO] [stdout]        else let
[INFO] [stdout]          r = i - ((i / base) * base);
[INFO] [stdout]          q = (i - r) / base;
[INFO] [stdout]        in
[INFO] [stdout]          [r] ++ go q;
[INFO] [stdout]    in
[INFO] [stdout]      assert (base >= 2);
[INFO] [stdout]      assert (i >= 0);
[INFO] [stdout]        lib.reverseList (go i);
[INFO] [stdout]  }
[INFO] [stdout]  
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x56d1e20fe042 - std[3b51380354919863]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x56d1e20fe042 - std[3b51380354919863]::backtrace_rs::backtrace::trace_unsynchronized::<std[3b51380354919863]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x56d1e20fe042 - std[3b51380354919863]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x56d1e20fe042 - <<std[3b51380354919863]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[27de1724e4349be2]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x56d1e2112b4a - <core[27de1724e4349be2]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x56d1e2112b4a - core[27de1724e4349be2]::fmt::write
[INFO] [stdout]    6:     0x56d1e2103096 - std[3b51380354919863]::io::default_write_fmt::<alloc[a57f19327c0ad893]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x56d1e2103096 - <alloc[a57f19327c0ad893]::vec::Vec<u8> as std[3b51380354919863]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x56d1e20dbc4f - <std[3b51380354919863]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x56d1e20dbc4f - std[3b51380354919863]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x56d1e20f5db9 - std[3b51380354919863]::panicking::default_hook
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x56d1e203d26e - <alloc[a57f19327c0ad893]::boxed::Box<dyn for<'a, 'b> core[27de1724e4349be2]::ops::function::Fn<(&'a std[3b51380354919863]::panic::PanicHookInfo<'b>,), Output = ()> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::Fn<(&std[3b51380354919863]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x56d1e203d26e - test[182b2e79ecd7bbd9]::test_main_with_exit_callback::<test[182b2e79ecd7bbd9]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x56d1e20f5f72 - <alloc[a57f19327c0ad893]::boxed::Box<dyn for<'a, 'b> core[27de1724e4349be2]::ops::function::Fn<(&'a std[3b51380354919863]::panic::PanicHookInfo<'b>,), Output = ()> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::Fn<(&std[3b51380354919863]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x56d1e20f5f72 - std[3b51380354919863]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x56d1e20dbd08 - std[3b51380354919863]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x56d1e20d0d19 - std[3b51380354919863]::sys::backtrace::__rust_end_short_backtrace::<std[3b51380354919863]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x56d1e20dca3d - __rustc[d79c0ace40940972]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x56d1e211321c - core[27de1724e4349be2]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x56d1e2030fc8 - fmt[4b8ba8c4fdc533c5]::cases
[INFO] [stdout]                                at /opt/rustwide/workdir/src/alejandra/tests/fmt.rs:56:13
[INFO] [stdout]   20:     0x56d1e2030fc8 - fmt[4b8ba8c4fdc533c5]::cases::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/alejandra/tests/fmt.rs:10:11
[INFO] [stdout]   21:     0x56d1e2030fc8 - <fmt[4b8ba8c4fdc533c5]::cases::{closure#0} as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x56d1e203161b - <fn() -> core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x56d1e203161b - test[182b2e79ecd7bbd9]::__rust_begin_short_backtrace::<core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>, fn() -> core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:663:18
[INFO] [stdout]   24:     0x56d1e203de7a - test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:686:74
[INFO] [stdout]   25:     0x56d1e203de7a - <core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   26:     0x56d1e203de7a - std[3b51380354919863]::panicking::catch_unwind::do_call::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>, core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x56d1e203de7a - std[3b51380354919863]::panicking::catch_unwind::<core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>, core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x56d1e203de7a - std[3b51380354919863]::panic::catch_unwind::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>, core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x56d1e203de7a - test[182b2e79ecd7bbd9]::run_test_in_process
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:686:27
[INFO] [stdout]   30:     0x56d1e203de7a - test[182b2e79ecd7bbd9]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:607:43
[INFO] [stdout]   31:     0x56d1e2039424 - test[182b2e79ecd7bbd9]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:637:41
[INFO] [stdout]   32:     0x56d1e2039424 - std[3b51380354919863]::sys::backtrace::__rust_begin_short_backtrace::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x56d1e2040972 - std[3b51380354919863]::thread::lifecycle::spawn_unchecked::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   34:     0x56d1e2040972 - <core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   35:     0x56d1e2040972 - std[3b51380354919863]::panicking::catch_unwind::do_call::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x56d1e2040972 - std[3b51380354919863]::panicking::catch_unwind::<(), core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x56d1e2040972 - std[3b51380354919863]::panic::catch_unwind::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x56d1e2040972 - std[3b51380354919863]::thread::lifecycle::spawn_unchecked::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   39:     0x56d1e2040972 - <std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1} as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x56d1e20fd54f - <alloc[a57f19327c0ad893]::boxed::Box<dyn core[27de1724e4349be2]::ops::function::FnOnce<(), Output = ()> + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   41:     0x56d1e20fd54f - <std[3b51380354919863]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/thread/unix.rs:119:17
[INFO] [stdout]   42:     0x79e19506eaa4 - <unknown>
[INFO] [stdout]   43:     0x79e1950fba64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     cases
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "9a3485badb1a134d8d94d5c50a65cdec283de5429a4bf8ae94c77cc948258590", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9a3485badb1a134d8d94d5c50a65cdec283de5429a4bf8ae94c77cc948258590", kill_on_drop: false }`
[INFO] [stdout] 9a3485badb1a134d8d94d5c50a65cdec283de5429a4bf8ae94c77cc948258590
