[INFO] cloning repository https://github.com/CozmicL/shift-reduce-json [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/CozmicL/shift-reduce-json" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCozmicL%2Fshift-reduce-json", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCozmicL%2Fshift-reduce-json'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 63a8e82ac422c9c76410938b74ebdd38973c3b02 [INFO] building CozmicL/shift-reduce-json against try#9b5e8b16bd1c4acf4cf8e6880368314cf021a987+rustflags=-Dtail-expr-drop-order for pr-134523 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCozmicL%2Fshift-reduce-json" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/CozmicL/shift-reduce-json on toolchain 9b5e8b16bd1c4acf4cf8e6880368314cf021a987 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9b5e8b16bd1c4acf4cf8e6880368314cf021a987" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/CozmicL/shift-reduce-json [INFO] finished tweaking git repo https://github.com/CozmicL/shift-reduce-json [INFO] tweaked toml for git repo https://github.com/CozmicL/shift-reduce-json written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/CozmicL/shift-reduce-json 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" "+9b5e8b16bd1c4acf4cf8e6880368314cf021a987" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+9b5e8b16bd1c4acf4cf8e6880368314cf021a987" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 9709a78a5603124bf9d3f4f2a0e874c239fc832808b8fe5ae758876d348c0fea [INFO] running `Command { std: "docker" "start" "-a" "9709a78a5603124bf9d3f4f2a0e874c239fc832808b8fe5ae758876d348c0fea", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "9709a78a5603124bf9d3f4f2a0e874c239fc832808b8fe5ae758876d348c0fea", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9709a78a5603124bf9d3f4f2a0e874c239fc832808b8fe5ae758876d348c0fea", kill_on_drop: false }` [INFO] [stdout] 9709a78a5603124bf9d3f4f2a0e874c239fc832808b8fe5ae758876d348c0fea [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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 -Dtail-expr-drop-order" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+9b5e8b16bd1c4acf4cf8e6880368314cf021a987" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 457f6b4f832af9f33fd9aa6d87d6933ca9c82b50c7df49af15db5739450179c9 [INFO] running `Command { std: "docker" "start" "-a" "457f6b4f832af9f33fd9aa6d87d6933ca9c82b50c7df49af15db5739450179c9", kill_on_drop: false }` [INFO] [stderr] Compiling shift-reduce-json v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `JsonValueType` [INFO] [stdout] --> src/grammar.rs:2:50 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::{lexer::Token, unmarshal::{JsonValue, JsonValueType}}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/grammar.rs:68:47 [INFO] [stdout] | [INFO] [stdout] 68 | fn value_rule<'a>(values: &[StackElement]) -> JsonValue<'a> { [INFO] [stdout] | ---------- ^^^^^^^^^^^^^ expected `JsonValue<'_>`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/grammar.rs:72:49 [INFO] [stdout] | [INFO] [stdout] 72 | fn boolean_rule<'a>(values: &[StackElement]) -> JsonValue<'a> { [INFO] [stdout] | ------------ ^^^^^^^^^^^^^ expected `JsonValue<'_>`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/grammar.rs:76:48 [INFO] [stdout] | [INFO] [stdout] 76 | fn object_rule<'a>(values: &[StackElement]) -> JsonValue<'a> { [INFO] [stdout] | ----------- ^^^^^^^^^^^^^ expected `JsonValue<'_>`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/grammar.rs:81:49 [INFO] [stdout] | [INFO] [stdout] 81 | fn members_rule<'a>(values: &[StackElement]) -> JsonValue<'a> { [INFO] [stdout] | ------------ ^^^^^^^^^^^^^ expected `JsonValue<'_>`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/grammar.rs:85:48 [INFO] [stdout] | [INFO] [stdout] 85 | fn member_rule<'a>(values: &[StackElement]) -> JsonValue<'a> { [INFO] [stdout] | ----------- ^^^^^^^^^^^^^ expected `JsonValue<'_>`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/grammar.rs:89:47 [INFO] [stdout] | [INFO] [stdout] 89 | fn array_rule<'a>(values: &[StackElement]) -> JsonValue<'a> { [INFO] [stdout] | ---------- ^^^^^^^^^^^^^ expected `JsonValue<'_>`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/grammar.rs:92:50 [INFO] [stdout] | [INFO] [stdout] 92 | fn elements_rule<'a>(values: &[StackElement]) -> JsonValue<'a> { [INFO] [stdout] | ------------- ^^^^^^^^^^^^^ expected `JsonValue<'_>`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/grammar.rs:96:49 [INFO] [stdout] | [INFO] [stdout] 96 | fn element_rule<'a>(values: &[StackElement]) -> JsonValue<'a> { [INFO] [stdout] | ------------ ^^^^^^^^^^^^^ expected `JsonValue<'_>`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/grammar.rs:100:48 [INFO] [stdout] | [INFO] [stdout] 100 | fn number_rule<'a>(values: &[StackElement]) -> JsonValue<'a> { [INFO] [stdout] | ----------- ^^^^^^^^^^^^^ expected `JsonValue<'_>`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/grammar.rs:104:49 [INFO] [stdout] | [INFO] [stdout] 104 | fn integer_rule<'a>(values: &[StackElement]) -> JsonValue<'a> { [INFO] [stdout] | ------------ ^^^^^^^^^^^^^ expected `JsonValue<'_>`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/grammar.rs:108:50 [INFO] [stdout] | [INFO] [stdout] 108 | fn fraction_rule<'a>(values: &[StackElement]) -> JsonValue<'a> { [INFO] [stdout] | ------------- ^^^^^^^^^^^^^ expected `JsonValue<'_>`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/grammar.rs:112:50 [INFO] [stdout] | [INFO] [stdout] 112 | fn exponent_rule<'a>(values: &[StackElement]) -> JsonValue<'a> { [INFO] [stdout] | ------------- ^^^^^^^^^^^^^ expected `JsonValue<'_>`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: lifetime may not live long enough [INFO] [stdout] --> src/grammar.rs:54:9 [INFO] [stdout] | [INFO] [stdout] 52 | impl<'a> JsonElement<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] 53 | pub fn as_any(&self) -> &dyn Any { [INFO] [stdout] 54 | self [INFO] [stdout] | ^^^^ coercion requires that `'a` must outlive `'static` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] thread 'rustc' panicked at compiler/rustc_mir_build/src/builder/scope.rs:1724:17: [INFO] [stdout] error: internal compiler error: compiler/rustc_mir_build/src/builder/scope.rs:1724:17: cannot unwind from goto -> bb92 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Box [INFO] [stderr] stack backtrace: [INFO] [stderr] 0: 0x7b6af4381caa - ::fmt::h636462e57d5ef1e1 [INFO] [stderr] 1: 0x7b6af4a13cbc - core::fmt::write::h067060808ac50eb9 [INFO] [stderr] 2: 0x7b6af5928e11 - std::io::Write::write_fmt::h4674fa2ed7c0dfdd [INFO] [stderr] 3: 0x7b6af4381b02 - std::sys::backtrace::BacktraceLock::print::h0c77148acfb0b5e9 [INFO] [stderr] 4: 0x7b6af4383ffa - std::panicking::default_hook::{{closure}}::h30daa8e7c6ccb09d [INFO] [stderr] 5: 0x7b6af4383e43 - std::panicking::default_hook::h25f21dc0f2064615 [INFO] [stderr] 6: 0x7b6af34eff28 - std[b36e883d67eb0403]::panicking::update_hook::>::{closure#0} [INFO] [stderr] 7: 0x7b6af43847b8 - std::panicking::rust_panic_with_hook::hc98438687e833605 [INFO] [stderr] 8: 0x7b6af352a341 - std[b36e883d67eb0403]::panicking::begin_panic::::{closure#0} [INFO] [stderr] 9: 0x7b6af351f526 - std[b36e883d67eb0403]::sys::backtrace::__rust_end_short_backtrace::::{closure#0}, !> [INFO] [stderr] 10: 0x7b6af351f50d - std[b36e883d67eb0403]::panicking::begin_panic:: [INFO] [stderr] 11: 0x7b6af35342a1 - ::emit_producing_guarantee [INFO] [stderr] 12: 0x7b6af3a84fdc - ::span_bug:: [INFO] [stderr] 13: 0x7b6af3b0a897 - rustc_middle[8ad6e8ce52578819]::util::bug::opt_span_bug_fmt::::{closure#0} [INFO] [stderr] 14: 0x7b6af3af006a - rustc_middle[8ad6e8ce52578819]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} [INFO] [stderr] 15: 0x7b6af3aefefb - rustc_middle[8ad6e8ce52578819]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> [INFO] [stderr] 16: 0x7b6af1f34437 - rustc_middle[8ad6e8ce52578819]::util::bug::span_bug_fmt:: [INFO] [stderr] 17: 0x7b6af53d541b - ::build_unwind_tree [INFO] [stderr] 18: 0x7b6af53cd7cd - rustc_mir_build[73684a27b88b946a]::builder::mir_build [INFO] [stderr] 19: 0x7b6af4a07714 - rustc_mir_transform[857cd804783fef4d]::mir_built [INFO] [stderr] 20: 0x7b6af4a076d7 - rustc_query_impl[1e55094a59e290f4]::plumbing::__rust_begin_short_backtrace::> [INFO] [stderr] 21: 0x7b6af4c953d1 - rustc_query_system[67781f9dc633c543]::query::plumbing::try_execute_query::, rustc_query_system[67781f9dc633c543]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[1e55094a59e290f4]::plumbing::QueryCtxt, false> [INFO] [stderr] 22: 0x7b6af4c94f8d - rustc_query_impl[1e55094a59e290f4]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace [INFO] [stderr] 23: 0x7b6af1a67185 - rustc_mir_build[73684a27b88b946a]::check_unsafety::check_unsafety [INFO] [stderr] 24: 0x7b6af52e98a7 - rustc_query_impl[1e55094a59e290f4]::plumbing::__rust_begin_short_backtrace::> [INFO] [stderr] 25: 0x7b6af52e9b69 - rustc_query_system[67781f9dc633c543]::query::plumbing::try_execute_query::, rustc_query_system[67781f9dc633c543]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[1e55094a59e290f4]::plumbing::QueryCtxt, false> [INFO] [stderr] 26: 0x7b6af52e97d1 - rustc_query_impl[1e55094a59e290f4]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace [INFO] [stderr] 27: 0x7b6af4e9bd32 - rustc_interface[b59e7ee7606ca029]::passes::run_required_analyses [INFO] [stderr] 28: 0x7b6af592cc9e - rustc_interface[b59e7ee7606ca029]::passes::analysis [INFO] [stderr] 29: 0x7b6af592cc6f - rustc_query_impl[1e55094a59e290f4]::plumbing::__rust_begin_short_backtrace::> [INFO] [stderr] 30: 0x7b6af597b355 - rustc_query_system[67781f9dc633c543]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[1e55094a59e290f4]::plumbing::QueryCtxt, false> [INFO] [stderr] 31: 0x7b6af597b08e - rustc_query_impl[1e55094a59e290f4]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace [INFO] [stderr] 32: 0x7b6af59701de - rustc_interface[b59e7ee7606ca029]::passes::create_and_enter_global_ctxt::, rustc_driver_impl[be5855d19ccc8b6c]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} [INFO] [stderr] 33: 0x7b6af59dff51 - rustc_interface[b59e7ee7606ca029]::interface::run_compiler::<(), rustc_driver_impl[be5855d19ccc8b6c]::run_compiler::{closure#0}>::{closure#1} [INFO] [stderr] 34: 0x7b6af58f5087 - std[b36e883d67eb0403]::sys::backtrace::__rust_begin_short_backtrace::::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()> [INFO] [stderr] 35: 0x7b6af58f551c - <::spawn_unchecked_::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[303105738bd0c2ae]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stderr] 36: 0x7b6af58f6aef - std::sys::pal::unix::thread::Thread::new::thread_start::ha554cc4ba6335b05 [INFO] [stderr] 37: 0x7b6af6fd0ac3 - [INFO] [stderr] 38: 0x7b6af7061a04 - clone [INFO] [stderr] 39: 0x0 - [INFO] [stderr] [INFO] [stderr] note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md [INFO] [stderr] [INFO] [stderr] note: please make sure that you have updated to the latest nightly [INFO] [stderr] [INFO] [stderr] warning: the ICE couldn't be written to `/opt/rustwide/workdir/rustc-ice-2024-12-31T20_10_19-9.txt`: Read-only file system (os error 30) [INFO] [stderr] [INFO] [stderr] note: rustc 1.85.0-nightly (9b5e8b16b 2024-12-19) running on x86_64-unknown-linux-gnu [INFO] [stderr] [INFO] [stderr] note: compiler flags: --crate-type bin -C embed-bitcode=no -C debuginfo=2 [INFO] [stderr] [INFO] [stderr] note: some of the compiler flags provided by cargo are hidden [INFO] [stderr] [INFO] [stderr] query stack during panic: [INFO] [stderr] #0 [mir_built] building MIR for `lexer::lex_string` [INFO] [stderr] #1 [check_unsafety] unsafety-checking `lexer::lex_string` [INFO] [stderr] #2 [analysis] running analysis passes on this crate [INFO] [stderr] end of query stack [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/parse.rs:35:17 [INFO] [stdout] | [INFO] [stdout] 35 | i = next_index; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0521]: borrowed data escapes outside of function [INFO] [stdout] --> src/parse.rs:16:24 [INFO] [stdout] | [INFO] [stdout] 15 | fn parse(input: &str) -> Result { [INFO] [stdout] | ----- - let's call the lifetime of this reference `'1` [INFO] [stdout] | | [INFO] [stdout] | `input` is a reference that is only valid in the function body [INFO] [stdout] 16 | let tokens = match lex(input) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `input` escapes the function body here [INFO] [stdout] | argument requires that `'1` must outlive `'static` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `tokens` does not live long enough [INFO] [stdout] --> src/parse.rs:25:26 [INFO] [stdout] | [INFO] [stdout] 16 | let tokens = match lex(input) { [INFO] [stdout] | ------ binding `tokens` declared here [INFO] [stdout] ... [INFO] [stdout] 25 | let lookahead = &tokens[i]; [INFO] [stdout] | ^^^^^^ borrowed value does not live long enough [INFO] [stdout] ... [INFO] [stdout] 30 | / stack.push(StackElement{ [INFO] [stdout] 31 | | value: Some(lookahead), [INFO] [stdout] 32 | | rule: None [INFO] [stdout] 33 | | }); [INFO] [stdout] | |______________- argument requires that `tokens` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 77 | } [INFO] [stdout] | - `tokens` dropped here while still borrowed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: use of moved value: `stack` [INFO] [stdout] --> src/parse.rs:26:46 [INFO] [stdout] | [INFO] [stdout] 21 | let mut stack: Vec = Vec::new(); [INFO] [stdout] | --------- move occurs because `stack` has type `Vec>`, which does not implement the `Copy` trait [INFO] [stdout] ... [INFO] [stdout] 24 | for mut i in 0..tokens.len() { [INFO] [stdout] | ---------------------------- [INFO] [stdout] | | [INFO] [stdout] | inside of this loop [INFO] [stdout] | inside of this loop [INFO] [stdout] 25 | let lookahead = &tokens[i]; [INFO] [stdout] 26 | let match_type = check_prefix_exists(stack, *lookahead); [INFO] [stdout] | ^^^^^ value moved here, in previous iteration of loop [INFO] [stdout] ... [INFO] [stdout] 42 | let (json_element, offset) = action(stack); [INFO] [stdout] | ----- value moved here, in previous iteration of loop [INFO] [stdout] | [INFO] [stdout] note: consider changing this parameter type in function `action` to borrow instead if owning the value isn't necessary [INFO] [stdout] --> src/action.rs:3:22 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn action(stack: Vec) -> (JsonElement, i32) { [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^ this parameter takes ownership of the value [INFO] [stdout] | | [INFO] [stdout] | in this function [INFO] [stdout] note: consider changing this parameter type in function `check_prefix_exists` to borrow instead if owning the value isn't necessary [INFO] [stdout] --> src/util.rs:66:39 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn check_prefix_exists<'a>(stack: Vec>,lookahead:Token) -> PrefixMatch{ [INFO] [stdout] | ------------------- ^^^^^^^^^^^^^^^^^^^^^ this parameter takes ownership of the value [INFO] [stdout] | | [INFO] [stdout] | in this function [INFO] [stdout] help: consider moving the expression out of the loop so it is only moved once [INFO] [stdout] | [INFO] [stdout] 24 ~ let mut value = action(stack); [INFO] [stdout] 25 ~ for mut i in 0..tokens.len() { [INFO] [stdout] 26 | let lookahead = &tokens[i]; [INFO] [stdout] ... [INFO] [stdout] 42 | [INFO] [stdout] 43 ~ let (json_element, offset) = value; [INFO] [stdout] | [INFO] [stdout] help: consider moving the expression out of the loop so it is only moved once [INFO] [stdout] | [INFO] [stdout] 24 ~ let mut value = check_prefix_exists(stack, *lookahead); [INFO] [stdout] 25 ~ for mut i in 0..tokens.len() { [INFO] [stdout] 26 | let lookahead = &tokens[i]; [INFO] [stdout] 27 ~ let match_type = value; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `*lookahead` which is behind a shared reference [INFO] [stdout] --> src/parse.rs:26:53 [INFO] [stdout] | [INFO] [stdout] 26 | let match_type = check_prefix_exists(stack, *lookahead); [INFO] [stdout] | ^^^^^^^^^^ move occurs because `*lookahead` has type `Token<'_>`, which does not implement the `Copy` trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: borrow of moved value: `stack` [INFO] [stdout] --> src/parse.rs:30:13 [INFO] [stdout] | [INFO] [stdout] 21 | let mut stack: Vec = Vec::new(); [INFO] [stdout] | --------- move occurs because `stack` has type `Vec>`, which does not implement the `Copy` trait [INFO] [stdout] ... [INFO] [stdout] 24 | for mut i in 0..tokens.len() { [INFO] [stdout] | ---------------------------- inside of this loop [INFO] [stdout] 25 | let lookahead = &tokens[i]; [INFO] [stdout] 26 | let match_type = check_prefix_exists(stack, *lookahead); [INFO] [stdout] | ----- value moved here [INFO] [stdout] ... [INFO] [stdout] 30 | stack.push(StackElement{ [INFO] [stdout] | ^^^^^ value borrowed here after move [INFO] [stdout] | [INFO] [stdout] note: consider changing this parameter type in function `check_prefix_exists` to borrow instead if owning the value isn't necessary [INFO] [stdout] --> src/util.rs:66:39 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn check_prefix_exists<'a>(stack: Vec>,lookahead:Token) -> PrefixMatch{ [INFO] [stdout] | ------------------- ^^^^^^^^^^^^^^^^^^^^^ this parameter takes ownership of the value [INFO] [stdout] | | [INFO] [stdout] | in this function [INFO] [stdout] help: consider moving the expression out of the loop so it is only moved once [INFO] [stdout] | [INFO] [stdout] 24 ~ let mut value = check_prefix_exists(stack, *lookahead); [INFO] [stdout] 25 ~ for mut i in 0..tokens.len() { [INFO] [stdout] 26 | let lookahead = &tokens[i]; [INFO] [stdout] 27 ~ let match_type = value; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: borrow of moved value: `stack` [INFO] [stdout] --> src/parse.rs:45:13 [INFO] [stdout] | [INFO] [stdout] 21 | let mut stack: Vec = Vec::new(); [INFO] [stdout] | --------- move occurs because `stack` has type `Vec>`, which does not implement the `Copy` trait [INFO] [stdout] ... [INFO] [stdout] 24 | for mut i in 0..tokens.len() { [INFO] [stdout] | ---------------------------- inside of this loop [INFO] [stdout] ... [INFO] [stdout] 42 | let (json_element, offset) = action(stack); [INFO] [stdout] | ----- value moved here [INFO] [stdout] ... [INFO] [stdout] 45 | stack.truncate(stack.len() - offset as usize); [INFO] [stdout] | ^^^^^ value borrowed here after move [INFO] [stdout] | [INFO] [stdout] note: consider changing this parameter type in function `action` to borrow instead if owning the value isn't necessary [INFO] [stdout] --> src/action.rs:3:22 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn action(stack: Vec) -> (JsonElement, i32) { [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^ this parameter takes ownership of the value [INFO] [stdout] | | [INFO] [stdout] | in this function [INFO] [stdout] help: consider moving the expression out of the loop so it is only moved once [INFO] [stdout] | [INFO] [stdout] 24 ~ let mut value = action(stack); [INFO] [stdout] 25 ~ for mut i in 0..tokens.len() { [INFO] [stdout] 26 | let lookahead = &tokens[i]; [INFO] [stdout] ... [INFO] [stdout] 42 | [INFO] [stdout] 43 ~ let (json_element, offset) = value; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] thread 'rustc' panicked at compiler/rustc_mir_build/src/builder/scope.rs:1724:17: [INFO] [stdout] error[E0382]: use of moved value: `stack` [INFO] [stdout] --> src/parse.rs:57:45 [INFO] [stdout] | [INFO] [stdout] 21 | let mut stack: Vec = Vec::new(); [INFO] [stdout] | --------- move occurs because `stack` has type `Vec>`, which does not implement the `Copy` trait [INFO] [stdout] ... [INFO] [stdout] 24 | for mut i in 0..tokens.len() { [INFO] [stdout] | ---------------------------- [INFO] [stdout] | | [INFO] [stdout] | inside of this loop [INFO] [stdout] | inside of this loop [INFO] [stdout] 25 | let lookahead = &tokens[i]; [INFO] [stdout] 26 | let match_type = check_prefix_exists(stack, *lookahead); [INFO] [stdout] | ----- value moved here, in previous iteration of loop [INFO] [stdout] ... [INFO] [stdout] 42 | let (json_element, offset) = action(stack); [INFO] [stdout] | ----- value moved here, in previous iteration of loop [INFO] [stdout] ... [INFO] [stdout] 56 | loop { [INFO] [stdout] | ---- inside of this loop [INFO] [stdout] 57 | let (json_element, offset) = action(stack); [INFO] [stdout] | ^^^^^ value moved here, in previous iteration of loop [INFO] [stdout] | [INFO] [stdout] note: consider changing this parameter type in function `action` to borrow instead if owning the value isn't necessary [INFO] [stdout] --> src/action.rs:3:22 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn action(stack: Vec) -> (JsonElement, i32) { [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^ this parameter takes ownership of the value [INFO] [stdout] | | [INFO] [stdout] | in this function [INFO] [stdout] note: consider changing this parameter type in function `check_prefix_exists` to borrow instead if owning the value isn't necessary [INFO] [stdout] --> src/util.rs:66:39 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn check_prefix_exists<'a>(stack: Vec>,lookahead:Token) -> PrefixMatch{ [INFO] [stdout] | ------------------- ^^^^^^^^^^^^^^^^^^^^^ this parameter takes ownership of the value [INFO] [stdout] | | [INFO] [stdout] | in this function [INFO] [stdout] note: consider changing this parameter type in function `action` to borrow instead if owning the value isn't necessary [INFO] [stdout] --> src/action.rs:3:22 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn action(stack: Vec) -> (JsonElement, i32) { [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^ this parameter takes ownership of the value [INFO] [stdout] | | [INFO] [stdout] | in this function [INFO] [stdout] help: consider moving the expression out of the loop so it is only moved once [INFO] [stdout] | [INFO] [stdout] 24 ~ let mut value = action(stack); [INFO] [stdout] 25 ~ for mut i in 0..tokens.len() { [INFO] [stdout] 26 | let lookahead = &tokens[i]; [INFO] [stdout] ... [INFO] [stdout] 42 | [INFO] [stdout] 43 ~ let (json_element, offset) = value; [INFO] [stdout] | [INFO] [stdout] help: consider moving the expression out of the loop so it is only moved once [INFO] [stdout] | [INFO] [stdout] 24 ~ let mut value = check_prefix_exists(stack, *lookahead); [INFO] [stdout] 25 ~ for mut i in 0..tokens.len() { [INFO] [stdout] 26 | let lookahead = &tokens[i]; [INFO] [stdout] 27 ~ let match_type = value; [INFO] [stdout] | [INFO] [stdout] help: consider moving the expression out of the loop so it is only moved once [INFO] [stdout] | [INFO] [stdout] 56 ~ let mut value = action(stack); [INFO] [stdout] 57 ~ loop { [INFO] [stdout] 58 ~ let (json_element, offset) = value; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Box [INFO] [stdout] error[E0382]: borrow of moved value: `stack` [INFO] [stdout] --> src/parse.rs:70:8 [INFO] [stdout] | [INFO] [stdout] 21 | let mut stack: Vec = Vec::new(); [INFO] [stdout] | --------- move occurs because `stack` has type `Vec>`, which does not implement the `Copy` trait [INFO] [stdout] ... [INFO] [stdout] 56 | loop { [INFO] [stdout] | ---- inside of this loop [INFO] [stdout] 57 | let (json_element, offset) = action(stack); [INFO] [stdout] | ----- value moved here [INFO] [stdout] ... [INFO] [stdout] 70 | if stack.len() != 1 { [INFO] [stdout] | ^^^^^ value borrowed here after move [INFO] [stdout] | [INFO] [stdout] note: consider changing this parameter type in function `action` to borrow instead if owning the value isn't necessary [INFO] [stdout] --> src/action.rs:3:22 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn action(stack: Vec) -> (JsonElement, i32) { [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^ this parameter takes ownership of the value [INFO] [stdout] | | [INFO] [stdout] | in this function [INFO] [stdout] help: consider moving the expression out of the loop so it is only moved once [INFO] [stdout] | [INFO] [stdout] 56 ~ let mut value = action(stack); [INFO] [stdout] 57 ~ loop { [INFO] [stdout] 58 ~ let (json_element, offset) = value; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] stack backtrace: [INFO] [stdout] error: internal compiler error: compiler/rustc_mir_build/src/builder/scope.rs:1724:17: cannot unwind from goto -> bb43 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 0: 0x7b6af4381caa - ::fmt::h636462e57d5ef1e1 [INFO] [stderr] 1: 0x7b6af4a13cbc - core::fmt::write::h067060808ac50eb9 [INFO] [stderr] 2: 0x7b6af5928e11 - std::io::Write::write_fmt::h4674fa2ed7c0dfdd [INFO] [stderr] 3: 0x7b6af4381b02 - std::sys::backtrace::BacktraceLock::print::h0c77148acfb0b5e9 [INFO] [stderr] 4: 0x7b6af4383ffa - std::panicking::default_hook::{{closure}}::h30daa8e7c6ccb09d [INFO] [stderr] 5: 0x7b6af4383e43 - std::panicking::default_hook::h25f21dc0f2064615 [INFO] [stderr] 6: 0x7b6af34eff28 - std[b36e883d67eb0403]::panicking::update_hook::>::{closure#0} [INFO] [stderr] 7: 0x7b6af43847b8 - std::panicking::rust_panic_with_hook::hc98438687e833605 [INFO] [stderr] 8: 0x7b6af352a341 - std[b36e883d67eb0403]::panicking::begin_panic::::{closure#0} [INFO] [stderr] 9: 0x7b6af351f526 - std[b36e883d67eb0403]::sys::backtrace::__rust_end_short_backtrace::::{closure#0}, !> [INFO] [stderr] 10: 0x7b6af351f50d - std[b36e883d67eb0403]::panicking::begin_panic:: [INFO] [stderr] 11: 0x7b6af35342a1 - ::emit_producing_guarantee [INFO] [stderr] 12: 0x7b6af3a84fdc - ::span_bug:: [INFO] [stderr] 13: 0x7b6af3b0a897 - rustc_middle[8ad6e8ce52578819]::util::bug::opt_span_bug_fmt::::{closure#0} [INFO] [stderr] 14: 0x7b6af3af006a - rustc_middle[8ad6e8ce52578819]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} [INFO] [stderr] 15: 0x7b6af3aefefb - rustc_middle[8ad6e8ce52578819]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> [INFO] [stderr] 16: 0x7b6af1f34437 - rustc_middle[8ad6e8ce52578819]::util::bug::span_bug_fmt:: [INFO] [stderr] 17: 0x7b6af53d541b - ::build_unwind_tree [INFO] [stderr] 18: 0x7b6af53cd7cd - rustc_mir_build[73684a27b88b946a]::builder::mir_build [INFO] [stderr] 19: 0x7b6af4a07714 - rustc_mir_transform[857cd804783fef4d]::mir_built [INFO] [stderr] 20: 0x7b6af4a076d7 - rustc_query_impl[1e55094a59e290f4]::plumbing::__rust_begin_short_backtrace::> [INFO] [stderr] 21: 0x7b6af4c953d1 - rustc_query_system[67781f9dc633c543]::query::plumbing::try_execute_query::, rustc_query_system[67781f9dc633c543]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[1e55094a59e290f4]::plumbing::QueryCtxt, false> [INFO] [stderr] 22: 0x7b6af4c94f8d - rustc_query_impl[1e55094a59e290f4]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace [INFO] [stderr] 23: 0x7b6af1a67185 - rustc_mir_build[73684a27b88b946a]::check_unsafety::check_unsafety [INFO] [stderr] 24: 0x7b6af52e98a7 - rustc_query_impl[1e55094a59e290f4]::plumbing::__rust_begin_short_backtrace::> [INFO] [stderr] 25: 0x7b6af52e9b69 - rustc_query_system[67781f9dc633c543]::query::plumbing::try_execute_query::, rustc_query_system[67781f9dc633c543]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[1e55094a59e290f4]::plumbing::QueryCtxt, false> [INFO] [stderr] 26: 0x7b6af52e97d1 - rustc_query_impl[1e55094a59e290f4]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace [INFO] [stderr] 27: 0x7b6af4e9bd32 - rustc_interface[b59e7ee7606ca029]::passes::run_required_analyses [INFO] [stderr] 28: 0x7b6af592cc9e - rustc_interface[b59e7ee7606ca029]::passes::analysis [INFO] [stderr] 29: 0x7b6af592cc6f - rustc_query_impl[1e55094a59e290f4]::plumbing::__rust_begin_short_backtrace::> [INFO] [stderr] 30: 0x7b6af597b355 - rustc_query_system[67781f9dc633c543]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[1e55094a59e290f4]::plumbing::QueryCtxt, false> [INFO] [stderr] 31: 0x7b6af597b08e - rustc_query_impl[1e55094a59e290f4]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace [INFO] [stderr] 32: 0x7b6af59701de - rustc_interface[b59e7ee7606ca029]::passes::create_and_enter_global_ctxt::, rustc_driver_impl[be5855d19ccc8b6c]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} [INFO] [stderr] 33: 0x7b6af59dff51 - rustc_interface[b59e7ee7606ca029]::interface::run_compiler::<(), rustc_driver_impl[be5855d19ccc8b6c]::run_compiler::{closure#0}>::{closure#1} [INFO] [stderr] 34: 0x7b6af58f5087 - std[b36e883d67eb0403]::sys::backtrace::__rust_begin_short_backtrace::::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()> [INFO] [stderr] 35: 0x7b6af58f551c - <::spawn_unchecked_::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[303105738bd0c2ae]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stderr] 36: 0x7b6af58f6aef - std::sys::pal::unix::thread::Thread::new::thread_start::ha554cc4ba6335b05 [INFO] [stderr] 37: 0x7b6af6fd0ac3 - [INFO] [stderr] 38: 0x7b6af7061a04 - clone [INFO] [stderr] 39: 0x0 - [INFO] [stderr] [INFO] [stderr] note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md [INFO] [stderr] [INFO] [stderr] note: please make sure that you have updated to the latest nightly [INFO] [stderr] [INFO] [stderr] warning: the ICE couldn't be written to `/opt/rustwide/workdir/rustc-ice-2024-12-31T20_10_19-9.txt`: Read-only file system (os error 30) [INFO] [stderr] [INFO] [stderr] note: rustc 1.85.0-nightly (9b5e8b16b 2024-12-19) running on x86_64-unknown-linux-gnu [INFO] [stderr] [INFO] [stderr] note: compiler flags: --crate-type bin -C embed-bitcode=no -C debuginfo=2 [INFO] [stderr] [INFO] [stderr] note: some of the compiler flags provided by cargo are hidden [INFO] [stderr] [INFO] [stderr] query stack during panic: [INFO] [stderr] #0 [mir_built] building MIR for `util::get_values` [INFO] [stderr] #1 [check_unsafety] unsafety-checking `util::get_values` [INFO] [stderr] #2 [analysis] running analysis passes on this crate [INFO] [stderr] end of query stack [INFO] [stdout] error[E0507]: cannot move out of a shared reference [INFO] [stdout] --> src/util.rs:44:33 [INFO] [stdout] | [INFO] [stdout] 44 | Some(first_value) => Ok(*first_value.clone()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ move occurs because value has type `JsonElement<'_>`, which does not implement the `Copy` trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0381]: used binding `elems` isn't initialized [INFO] [stdout] --> src/util.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 67 | let mut elems: Vec; [INFO] [stdout] | --------- binding declared here but left uninitialized [INFO] [stdout] ... [INFO] [stdout] 76 | elems.extend_from_slice(&stack_to_token(slice)); [INFO] [stdout] | ^^^^^ `elems` used here but it isn't initialized [INFO] [stdout] | [INFO] [stdout] help: consider assigning a value [INFO] [stdout] | [INFO] [stdout] 67 | let mut elems: Vec = vec![]; [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: lifetime may not live long enough [INFO] [stdout] --> src/action.rs:20:28 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn action(stack: Vec) -> (JsonElement, i32) { [INFO] [stdout] | ----- has type `Vec>` [INFO] [stdout] ... [INFO] [stdout] 20 | value: Box::new((rule.to_json)(&stack[stack.len() - size..])), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ coercion requires that `'1` must outlive `'static` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `el.rule` as enum variant `Some` which is behind a shared reference [INFO] [stdout] --> src/action.rs:39:36 [INFO] [stdout] | [INFO] [stdout] 39 | } else if let Some(rule) = el.rule { [INFO] [stdout] | ---- ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | data moved here [INFO] [stdout] | move occurs because `rule` has type `JsonElement<'_>`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider borrowing here [INFO] [stdout] | [INFO] [stdout] 39 | } else if let Some(rule) = &el.rule { [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0381]: used binding `elements` isn't initialized [INFO] [stdout] --> src/action.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 34 | let mut elements: Vec>; [INFO] [stdout] | ------------ binding declared here but left uninitialized [INFO] [stdout] ... [INFO] [stdout] 44 | elements [INFO] [stdout] | ^^^^^^^^ `elements` used here but it isn't initialized [INFO] [stdout] | [INFO] [stdout] help: consider assigning a value [INFO] [stdout] | [INFO] [stdout] 34 | let mut elements: Vec> = vec![]; [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0308, E0381, E0382, E0507, E0521, E0597. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0308`. [INFO] [stdout] [INFO] [stderr] error: could not compile `shift-reduce-json` (bin "shift-reduce-json") due to 26 previous errors; 2 warnings emitted [INFO] running `Command { std: "docker" "inspect" "457f6b4f832af9f33fd9aa6d87d6933ca9c82b50c7df49af15db5739450179c9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "457f6b4f832af9f33fd9aa6d87d6933ca9c82b50c7df49af15db5739450179c9", kill_on_drop: false }` [INFO] [stdout] 457f6b4f832af9f33fd9aa6d87d6933ca9c82b50c7df49af15db5739450179c9