[INFO] fetching crate kobold_macros 0.9.0... [INFO] checking kobold_macros-0.9.0 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] extracting crate kobold_macros 0.9.0 into /workspace/builds/worker-1-tc2/source [INFO] validating manifest of crates.io crate kobold_macros 0.9.0 on toolchain ccf408f4326a858c00dd845a64a86b16f360a801 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate kobold_macros 0.9.0 [INFO] finished tweaking crates.io crate kobold_macros 0.9.0 [INFO] tweaked toml for crates.io crate kobold_macros 0.9.0 written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 6 packages to latest compatible versions [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d1186293c0e2679c46d29435a9ea19123dd841eed6faa94d8c5a2b63b1d18e86 [INFO] running `Command { std: "docker" "start" "-a" "d1186293c0e2679c46d29435a9ea19123dd841eed6faa94d8c5a2b63b1d18e86", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d1186293c0e2679c46d29435a9ea19123dd841eed6faa94d8c5a2b63b1d18e86", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d1186293c0e2679c46d29435a9ea19123dd841eed6faa94d8c5a2b63b1d18e86", kill_on_drop: false }` [INFO] [stdout] d1186293c0e2679c46d29435a9ea19123dd841eed6faa94d8c5a2b63b1d18e86 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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" "-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:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 1cf4ebbae60c6125f99e7ccd8e9cfd2a1cc8810aa951c5dd27e2196441ae2756 [INFO] running `Command { std: "docker" "start" "-a" "1cf4ebbae60c6125f99e7ccd8e9cfd2a1cc8810aa951c5dd27e2196441ae2756", kill_on_drop: false }` [INFO] [stderr] Copying to /tmp/fixit [INFO] [stderr] Running `cargo fix --edition` [INFO] [stderr] Migrating Cargo.toml from 2021 edition to 2024 [INFO] [stderr] Checking fnv v1.0.7 [INFO] [stderr] Checking beef v0.5.2 [INFO] [stderr] Checking arrayvec v0.7.6 [INFO] [stderr] Checking once_cell v1.19.0 [INFO] [stderr] Checking unicode-ident v1.0.13 [INFO] [stderr] Checking proc-macro2 v1.0.86 [INFO] [stderr] Checking kobold_macros v0.9.0 (/tmp/fixit) [INFO] [stderr] Migrating src/lib.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `kobold_macros` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/dom/els.rs [INFO] [stderr] * src/lib.rs [INFO] [stderr] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stderr] https://github.com/rust-lang/rust/issues [INFO] [stderr] quoting the full output of this command we'd be very appreciative! [INFO] [stderr] Note that you may be able to make some more progress in the near-term [INFO] [stderr] fixing code with the `--broken-code` flag [INFO] [stderr] [INFO] [stderr] The following errors were reported: [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/dom/els.rs:9:39 [INFO] [stderr] | [INFO] [stderr] 9 | $($variant:ident $tag:literal $closing:expr_2021;)* [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/dom/els.rs:43:6 [INFO] [stderr] | [INFO] [stderr] 43 | ($e:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/lib.rs:28:6 [INFO] [stderr] | [INFO] [stderr] 28 | ($expr:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/lib.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | mod gen; [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] = note: `--force-warn keyword-idents-2024` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/lib.rs:55:21 [INFO] [stdout] | [INFO] [stdout] 55 | let transient = gen::generate(nodes); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/fn_component/generic_finder.rs:60:17 [INFO] [stdout] | [INFO] [stdout] 60 | let gen = stream.parse()?; [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/fn_component/generic_finder.rs:62:30 [INFO] [stdout] | [INFO] [stdout] 62 | out.push((false, gen)); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/fn_component/generic_finder.rs:77:50 [INFO] [stdout] | [INFO] [stdout] 77 | self.generics.iter_mut().filter_map(|(m, gen)| { [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/fn_component/generic_finder.rs:81:24 [INFO] [stdout] | [INFO] [stdout] 81 | Some(&*gen) [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/fn_component/generic_finder.rs:101:33 [INFO] [stdout] | [INFO] [stdout] 101 | for (m, gen) in self.generics.iter_mut() { [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/fn_component/generic_finder.rs:102:52 [INFO] [stdout] | [INFO] [stdout] 102 | ... *m |= match (lifetime, gen) { [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | let mut gen = Generator::default(); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen.rs:39:39 [INFO] [stdout] | [INFO] [stdout] 39 | nodes.remove(0).into_gen(&mut gen) [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen.rs:41:29 [INFO] [stdout] | [INFO] [stdout] 41 | nodes.into_gen(&mut gen) [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | gen.hoist(dom_node); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | gen.out [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen.rs:142:23 [INFO] [stdout] | [INFO] [stdout] 142 | fn into_gen(self, gen: &mut Generator) -> DomNode; [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen.rs:146:23 [INFO] [stdout] | [INFO] [stdout] 146 | fn into_gen(self, gen: &mut Generator) -> DomNode { [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen.rs:147:21 [INFO] [stdout] | [INFO] [stdout] 147 | let field = gen.add_field(self.stream); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen.rs:158:23 [INFO] [stdout] | [INFO] [stdout] 158 | fn into_gen(self, gen: &mut Generator) -> DomNode { [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen.rs:160:62 [INFO] [stdout] | [INFO] [stdout] 160 | Node::Component(component) => component.into_gen(gen), [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen.rs:161:60 [INFO] [stdout] | [INFO] [stdout] 161 | Node::HtmlElement(element) => element.into_gen(gen), [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen.rs:162:53 [INFO] [stdout] | [INFO] [stdout] 162 | Node::Expression(expr) => expr.into_gen(gen), [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/component.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::gen::{DomNode, Field, Generator, IntoGenerator, TokenStreamExt}; [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/component.rs:34:35 [INFO] [stdout] | [INFO] [stdout] 34 | let children = crate::gen::generate(children); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/component.rs:44:23 [INFO] [stdout] | [INFO] [stdout] 44 | fn into_gen(self, gen: &mut Generator) -> DomNode { [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/component.rs:45:20 [INFO] [stdout] | [INFO] [stdout] 45 | let name = gen.names.next(); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/component.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | gen.out.fields.push(Field::new(name, value)); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/element.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::gen::{append, DomNode, Generator, IntoGenerator, JsArgument, Short}; [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/element.rs:42:27 [INFO] [stdout] | [INFO] [stdout] 42 | fn into_gen(mut self, gen: &mut Generator) -> DomNode { [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/element.rs:43:19 [INFO] [stdout] | [INFO] [stdout] 43 | let var = gen.names.next_el(); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/element.rs:66:33 [INFO] [stdout] | [INFO] [stdout] 66 | let class = gen [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/element.rs:97:37 [INFO] [stdout] | [INFO] [stdout] 97 | let class = gen [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/element.rs:140:37 [INFO] [stdout] | [INFO] [stdout] 140 | let value = gen.add_field(coerce).event(event, el.typ).name; [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/element.rs:153:37 [INFO] [stdout] | [INFO] [stdout] 153 | let value = gen [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/element.rs:169:25 [INFO] [stdout] | [INFO] [stdout] 169 | gen.add_field(expr.stream).attr(var, attr, prop); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/element.rs:178:21 [INFO] [stdout] | [INFO] [stdout] 178 | gen.add_hint( [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/element.rs:190:21 [INFO] [stdout] | [INFO] [stdout] 190 | gen.add_attr_hint(name.ident, "", attr.name); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/element.rs:193:21 [INFO] [stdout] | [INFO] [stdout] 193 | gen.add_attr_hint(name.ident, "&'static", "AttributeName"); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/element.rs:199:33 [INFO] [stdout] | [INFO] [stdout] 199 | let append = append(gen, &mut el.code, &mut el.args, children); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/fragment.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::gen::{DomNode, Generator, IntoGenerator, JsArgument, Short}; [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/fragment.rs:22:23 [INFO] [stdout] | [INFO] [stdout] 22 | fn into_gen(self, gen: &mut Generator) -> DomNode { [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/fragment.rs:25:19 [INFO] [stdout] | [INFO] [stdout] 25 | let var = gen.names.next_el(); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/fragment.rs:30:29 [INFO] [stdout] | [INFO] [stdout] 30 | let append = append(gen, &mut code, &mut args, self); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/fragment.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | gen: &mut Generator, [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/fragment.rs:47:39 [INFO] [stdout] | [INFO] [stdout] 47 | let dom_node = child.into_gen(gen); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/fragment.rs:63:21 [INFO] [stdout] | [INFO] [stdout] 63 | gen.hoist(DomNode::Element(el)); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/transient.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::gen::element::{Attr, InlineAbi}; [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/transient.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::gen::Short; [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/dom/els.rs:9:48 [INFO] [stdout] | [INFO] [stdout] 9 | $($variant:ident $tag:literal $closing:expr;)* [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 9 | $($variant:ident $tag:literal $closing:expr_2021;)* [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/dom/els.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | ($e:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 43 | ($e:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `JsModule` [INFO] [stdout] --> src/gen.rs:23:55 [INFO] [stdout] | [INFO] [stdout] 23 | pub use transient::{JsArgument, JsFnName, JsFunction, JsModule, JsString}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/lib.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 28 | ($expr:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 28 | ($expr:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `ret` is never read [INFO] [stdout] --> src/branching/ast.rs:108:9 [INFO] [stdout] | [INFO] [stdout] 107 | pub struct Return { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 108 | pub ret: TokenTree, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Branch` is never constructed [INFO] [stdout] --> src/branching/ast.rs:119:12 [INFO] [stdout] | [INFO] [stdout] 119 | pub struct Branch { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Branch` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `span` are never read [INFO] [stdout] --> src/dom.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 44 | pub struct Component { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 45 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 46 | pub span: Span, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Component` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `span` is never read [INFO] [stdout] --> src/dom.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 54 | pub struct HtmlElement { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 55 | pub name: ElementTag, [INFO] [stdout] 56 | pub span: Span, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `HtmlElement` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `span` is never read [INFO] [stdout] --> src/dom/expression.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct Expression { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 14 | pub stream: TokenStream, [INFO] [stdout] 15 | pub span: Span, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `map_ident` is never used [INFO] [stdout] --> src/parse.rs:266:8 [INFO] [stdout] | [INFO] [stdout] 263 | pub trait TokenTreeExt { [INFO] [stdout] | ------------ method in this trait [INFO] [stdout] ... [INFO] [stdout] 266 | fn map_ident(&self, f: F) -> Option [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `write_fmt` is never used [INFO] [stdout] --> src/tokenize.rs:260:8 [INFO] [stdout] | [INFO] [stdout] 255 | pub trait TokenStreamExt { [INFO] [stdout] | -------------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 260 | fn write_fmt(&mut self, args: Arguments); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/branching/parse.rs:48:12 [INFO] [stdout] | [INFO] [stdout] 48 | if let Some(segment) = self.segment.take() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/branching/parse.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | } [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 48 ~ match self.segment.take() { Some(segment) => { [INFO] [stdout] 49 | self.code.push(Code::Segment(segment)) [INFO] [stdout] 50 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/branching/parse.rs:114:11 [INFO] [stdout] | [INFO] [stdout] 114 | while let Some(tt) = stream.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/branching/parse.rs:206:5 [INFO] [stdout] | [INFO] [stdout] 206 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/branching/parse.rs:154:24 [INFO] [stdout] | [INFO] [stdout] 154 | if let Some(tt) = stream.next_if(|tt| matches!(tt, TokenTree::Group(_))) { [INFO] [stdout] | ^^^^^^^^^^^^^^^------------------------------------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/branching/parse.rs:156:21 [INFO] [stdout] | [INFO] [stdout] 156 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 154 ~ match stream.next_if(|tt| matches!(tt, TokenTree::Group(_))) { Some(tt) => { [INFO] [stdout] 155 | maybe_html.push(tt); [INFO] [stdout] 156 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/dom.rs:24:11 [INFO] [stdout] | [INFO] [stdout] 24 | while let Some(node) = Node::parse(&mut stream)? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/dom.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/dom.rs:151:31 [INFO] [stdout] | [INFO] [stdout] 151 | } else if let Some(hash) = content.allow_consume('#') { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^-------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/dom.rs:162:21 [INFO] [stdout] | [INFO] [stdout] 162 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 151 ~ } else { match content.allow_consume('#') { Some(hash) => { [INFO] [stdout] 152 | let name = CssLabel { [INFO] [stdout] ... [INFO] [stdout] 161 | }) [INFO] [stdout] 162 ~ } _ => { [INFO] [stdout] 163 | break; [INFO] [stdout] 164 ~ }}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/dom/shallow.rs:137:15 [INFO] [stdout] | [INFO] [stdout] 137 | while let Some(colon) = stream.allow_consume((':', Spacing::Joint)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/dom/shallow.rs:146:9 [INFO] [stdout] | [INFO] [stdout] 146 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/dom/shallow.rs:233:15 [INFO] [stdout] | [INFO] [stdout] 233 | while let Some(tt) = stream.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/dom/shallow.rs:263:9 [INFO] [stdout] | [INFO] [stdout] 263 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/fn_component.rs:91:27 [INFO] [stdout] | [INFO] [stdout] 91 | while let Some(tt) = stream.peek() { [INFO] [stdout] | ^^^^^^^^^^^^^^^------^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/fn_component.rs:97:21 [INFO] [stdout] | [INFO] [stdout] 97 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl tokenize::Tokenize + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/fn_component.rs:397:10 [INFO] [stdout] | [INFO] [stdout] 397 | ) -> impl Tokenize + 'a { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/fn_component.rs:394:24 [INFO] [stdout] | [INFO] [stdout] 394 | finder: Option<&mut GenericFinder>, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 397 | ) -> impl Tokenize + 'a + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/fn_component.rs:451:16 [INFO] [stdout] | [INFO] [stdout] 451 | if let Some(value) = &self.default { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/fn_component.rs:458:13 [INFO] [stdout] | [INFO] [stdout] 458 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 451 ~ match &self.default { Some(value) => { [INFO] [stdout] 452 | stream.write(("let", &self.name, "=", &self.name)); [INFO] [stdout] ... [INFO] [stdout] 457 | } [INFO] [stdout] 458 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/fn_component/generic_finder.rs:74:52 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn in_type(&mut self, ty: &TokenStream) -> impl Iterator { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/fn_component/generic_finder.rs:74:35 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn in_type(&mut self, ty: &TokenStream) -> impl Iterator { [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 74 | pub fn in_type(&mut self, ty: &TokenStream) -> impl Iterator + use<'_> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/gen/element.rs:95:24 [INFO] [stdout] | [INFO] [stdout] 95 | if let CssValue::Expression(expr) = class { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/gen/element.rs:105:21 [INFO] [stdout] | [INFO] [stdout] 105 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 95 ~ match class { CssValue::Expression(expr) => { [INFO] [stdout] 96 | el.hoisted = true; [INFO] [stdout] ... [INFO] [stdout] 104 | writeln!(el, "{class} && {var}.classList.add({class});"); [INFO] [stdout] 105 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl tokenize::Tokenize` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/gen/transient.rs:530:25 [INFO] [stdout] | [INFO] [stdout] 530 | fn invoke(&self) -> impl Tokenize { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/gen/transient.rs:530:15 [INFO] [stdout] | [INFO] [stdout] 530 | fn invoke(&self) -> impl Tokenize { [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 530 | fn invoke(&self) -> impl Tokenize + use<> { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/tokenize.rs:82:12 [INFO] [stdout] | [INFO] [stdout] 82 | if let Some(item) = self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^---- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/tokenize.rs:84:9 [INFO] [stdout] | [INFO] [stdout] 84 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 82 ~ match self { Some(item) => { [INFO] [stdout] 83 | item.tokenize_in(stream) [INFO] [stdout] 84 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 71 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `kobold_macros` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/dom/els.rs [INFO] [stderr] * src/lib.rs [INFO] [stderr] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stderr] https://github.com/rust-lang/rust/issues [INFO] [stderr] quoting the full output of this command we'd be very appreciative! [INFO] [stderr] Note that you may be able to make some more progress in the near-term [INFO] [stderr] fixing code with the `--broken-code` flag [INFO] [stderr] [INFO] [stderr] The following errors were reported: [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/dom/els.rs:9:39 [INFO] [stderr] | [INFO] [stderr] 9 | $($variant:ident $tag:literal $closing:expr_2021;)* [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/dom/els.rs:43:6 [INFO] [stderr] | [INFO] [stderr] 43 | ($e:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/lib.rs:28:6 [INFO] [stderr] | [INFO] [stderr] 28 | ($expr:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/lib.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | mod gen; [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] = note: `--force-warn keyword-idents-2024` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/lib.rs:55:21 [INFO] [stdout] | [INFO] [stdout] 55 | let transient = gen::generate(nodes); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/fn_component/generic_finder.rs:60:17 [INFO] [stdout] | [INFO] [stdout] 60 | let gen = stream.parse()?; [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/fn_component/generic_finder.rs:62:30 [INFO] [stdout] | [INFO] [stdout] 62 | out.push((false, gen)); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/fn_component/generic_finder.rs:77:50 [INFO] [stdout] | [INFO] [stdout] 77 | self.generics.iter_mut().filter_map(|(m, gen)| { [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/fn_component/generic_finder.rs:81:24 [INFO] [stdout] | [INFO] [stdout] 81 | Some(&*gen) [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/fn_component/generic_finder.rs:101:33 [INFO] [stdout] | [INFO] [stdout] 101 | for (m, gen) in self.generics.iter_mut() { [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/fn_component/generic_finder.rs:102:52 [INFO] [stdout] | [INFO] [stdout] 102 | ... *m |= match (lifetime, gen) { [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | let mut gen = Generator::default(); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen.rs:39:39 [INFO] [stdout] | [INFO] [stdout] 39 | nodes.remove(0).into_gen(&mut gen) [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen.rs:41:29 [INFO] [stdout] | [INFO] [stdout] 41 | nodes.into_gen(&mut gen) [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | gen.hoist(dom_node); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | gen.out [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen.rs:142:23 [INFO] [stdout] | [INFO] [stdout] 142 | fn into_gen(self, gen: &mut Generator) -> DomNode; [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen.rs:146:23 [INFO] [stdout] | [INFO] [stdout] 146 | fn into_gen(self, gen: &mut Generator) -> DomNode { [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen.rs:147:21 [INFO] [stdout] | [INFO] [stdout] 147 | let field = gen.add_field(self.stream); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen.rs:158:23 [INFO] [stdout] | [INFO] [stdout] 158 | fn into_gen(self, gen: &mut Generator) -> DomNode { [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen.rs:160:62 [INFO] [stdout] | [INFO] [stdout] 160 | Node::Component(component) => component.into_gen(gen), [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen.rs:161:60 [INFO] [stdout] | [INFO] [stdout] 161 | Node::HtmlElement(element) => element.into_gen(gen), [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen.rs:162:53 [INFO] [stdout] | [INFO] [stdout] 162 | Node::Expression(expr) => expr.into_gen(gen), [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/component.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::gen::{DomNode, Field, Generator, IntoGenerator, TokenStreamExt}; [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/component.rs:34:35 [INFO] [stdout] | [INFO] [stdout] 34 | let children = crate::gen::generate(children); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/component.rs:44:23 [INFO] [stdout] | [INFO] [stdout] 44 | fn into_gen(self, gen: &mut Generator) -> DomNode { [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/component.rs:45:20 [INFO] [stdout] | [INFO] [stdout] 45 | let name = gen.names.next(); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/component.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | gen.out.fields.push(Field::new(name, value)); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/element.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::gen::{append, DomNode, Generator, IntoGenerator, JsArgument, Short}; [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/element.rs:42:27 [INFO] [stdout] | [INFO] [stdout] 42 | fn into_gen(mut self, gen: &mut Generator) -> DomNode { [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/element.rs:43:19 [INFO] [stdout] | [INFO] [stdout] 43 | let var = gen.names.next_el(); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/element.rs:66:33 [INFO] [stdout] | [INFO] [stdout] 66 | let class = gen [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/element.rs:97:37 [INFO] [stdout] | [INFO] [stdout] 97 | let class = gen [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/element.rs:140:37 [INFO] [stdout] | [INFO] [stdout] 140 | let value = gen.add_field(coerce).event(event, el.typ).name; [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/element.rs:153:37 [INFO] [stdout] | [INFO] [stdout] 153 | let value = gen [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/element.rs:169:25 [INFO] [stdout] | [INFO] [stdout] 169 | gen.add_field(expr.stream).attr(var, attr, prop); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/element.rs:178:21 [INFO] [stdout] | [INFO] [stdout] 178 | gen.add_hint( [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/element.rs:190:21 [INFO] [stdout] | [INFO] [stdout] 190 | gen.add_attr_hint(name.ident, "", attr.name); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/element.rs:193:21 [INFO] [stdout] | [INFO] [stdout] 193 | gen.add_attr_hint(name.ident, "&'static", "AttributeName"); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/element.rs:199:33 [INFO] [stdout] | [INFO] [stdout] 199 | let append = append(gen, &mut el.code, &mut el.args, children); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/fragment.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::gen::{DomNode, Generator, IntoGenerator, JsArgument, Short}; [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/fragment.rs:22:23 [INFO] [stdout] | [INFO] [stdout] 22 | fn into_gen(self, gen: &mut Generator) -> DomNode { [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/fragment.rs:25:19 [INFO] [stdout] | [INFO] [stdout] 25 | let var = gen.names.next_el(); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/fragment.rs:30:29 [INFO] [stdout] | [INFO] [stdout] 30 | let append = append(gen, &mut code, &mut args, self); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/fragment.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | gen: &mut Generator, [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/fragment.rs:47:39 [INFO] [stdout] | [INFO] [stdout] 47 | let dom_node = child.into_gen(gen); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/fragment.rs:63:21 [INFO] [stdout] | [INFO] [stdout] 63 | gen.hoist(DomNode::Element(el)); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/transient.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::gen::element::{Attr, InlineAbi}; [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/gen/transient.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::gen::Short; [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/dom/els.rs:9:48 [INFO] [stdout] | [INFO] [stdout] 9 | $($variant:ident $tag:literal $closing:expr;)* [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 9 | $($variant:ident $tag:literal $closing:expr_2021;)* [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/dom/els.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | ($e:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 43 | ($e:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `JsModule` [INFO] [stdout] --> src/gen.rs:23:55 [INFO] [stdout] | [INFO] [stdout] 23 | pub use transient::{JsArgument, JsFnName, JsFunction, JsModule, JsString}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/lib.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 28 | ($expr:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 28 | ($expr:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `ret` is never read [INFO] [stdout] --> src/branching/ast.rs:108:9 [INFO] [stdout] | [INFO] [stdout] 107 | pub struct Return { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 108 | pub ret: TokenTree, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Branch` is never constructed [INFO] [stdout] --> src/branching/ast.rs:119:12 [INFO] [stdout] | [INFO] [stdout] 119 | pub struct Branch { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Branch` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `span` are never read [INFO] [stdout] --> src/dom.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 44 | pub struct Component { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 45 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 46 | pub span: Span, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Component` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `span` is never read [INFO] [stdout] --> src/dom.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 54 | pub struct HtmlElement { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 55 | pub name: ElementTag, [INFO] [stdout] 56 | pub span: Span, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `HtmlElement` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `span` is never read [INFO] [stdout] --> src/dom/expression.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct Expression { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 14 | pub stream: TokenStream, [INFO] [stdout] 15 | pub span: Span, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `map_ident` is never used [INFO] [stdout] --> src/parse.rs:266:8 [INFO] [stdout] | [INFO] [stdout] 263 | pub trait TokenTreeExt { [INFO] [stdout] | ------------ method in this trait [INFO] [stdout] ... [INFO] [stdout] 266 | fn map_ident(&self, f: F) -> Option [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `write_fmt` is never used [INFO] [stdout] --> src/tokenize.rs:260:8 [INFO] [stdout] | [INFO] [stdout] 255 | pub trait TokenStreamExt { [INFO] [stdout] | -------------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 260 | fn write_fmt(&mut self, args: Arguments); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/branching/parse.rs:48:12 [INFO] [stdout] | [INFO] [stdout] 48 | if let Some(segment) = self.segment.take() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/branching/parse.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | } [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 48 ~ match self.segment.take() { Some(segment) => { [INFO] [stdout] 49 | self.code.push(Code::Segment(segment)) [INFO] [stdout] 50 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/branching/parse.rs:114:11 [INFO] [stdout] | [INFO] [stdout] 114 | while let Some(tt) = stream.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/branching/parse.rs:206:5 [INFO] [stdout] | [INFO] [stdout] 206 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/branching/parse.rs:154:24 [INFO] [stdout] | [INFO] [stdout] 154 | if let Some(tt) = stream.next_if(|tt| matches!(tt, TokenTree::Group(_))) { [INFO] [stdout] | ^^^^^^^^^^^^^^^------------------------------------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/branching/parse.rs:156:21 [INFO] [stdout] | [INFO] [stdout] 156 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 154 ~ match stream.next_if(|tt| matches!(tt, TokenTree::Group(_))) { Some(tt) => { [INFO] [stdout] 155 | maybe_html.push(tt); [INFO] [stdout] 156 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/dom.rs:24:11 [INFO] [stdout] | [INFO] [stdout] 24 | while let Some(node) = Node::parse(&mut stream)? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/dom.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/dom.rs:151:31 [INFO] [stdout] | [INFO] [stdout] 151 | } else if let Some(hash) = content.allow_consume('#') { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^-------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/dom.rs:162:21 [INFO] [stdout] | [INFO] [stdout] 162 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 151 ~ } else { match content.allow_consume('#') { Some(hash) => { [INFO] [stdout] 152 | let name = CssLabel { [INFO] [stdout] ... [INFO] [stdout] 161 | }) [INFO] [stdout] 162 ~ } _ => { [INFO] [stdout] 163 | break; [INFO] [stdout] 164 ~ }}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/dom/expression.rs:72:16 [INFO] [stdout] | [INFO] [stdout] 72 | if let Some(keyword) = keyword { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/dom/expression.rs:83:13 [INFO] [stdout] | [INFO] [stdout] 83 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 72 ~ match keyword { Some(keyword) => { [INFO] [stdout] 73 | stream.next(); [INFO] [stdout] ... [INFO] [stdout] 82 | }; [INFO] [stdout] 83 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/dom/shallow.rs:128:16 [INFO] [stdout] | [INFO] [stdout] 128 | if let Some(name) = ident.with_str(ElementTag::from_str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^-----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/dom/shallow.rs:130:13 [INFO] [stdout] | [INFO] [stdout] 130 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 128 ~ match ident.with_str(ElementTag::from_str) { Some(name) => { [INFO] [stdout] 129 | return Ok(TagName::HtmlElement { name, span }); [INFO] [stdout] 130 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/dom/shallow.rs:137:15 [INFO] [stdout] | [INFO] [stdout] 137 | while let Some(colon) = stream.allow_consume((':', Spacing::Joint)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/dom/shallow.rs:146:9 [INFO] [stdout] | [INFO] [stdout] 146 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/dom/shallow.rs:233:15 [INFO] [stdout] | [INFO] [stdout] 233 | while let Some(tt) = stream.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/dom/shallow.rs:263:9 [INFO] [stdout] | [INFO] [stdout] 263 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/fn_component.rs:91:27 [INFO] [stdout] | [INFO] [stdout] 91 | while let Some(tt) = stream.peek() { [INFO] [stdout] | ^^^^^^^^^^^^^^^------^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/fn_component.rs:97:21 [INFO] [stdout] | [INFO] [stdout] 97 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl tokenize::Tokenize + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/fn_component.rs:397:10 [INFO] [stdout] | [INFO] [stdout] 397 | ) -> impl Tokenize + 'a { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/fn_component.rs:394:24 [INFO] [stdout] | [INFO] [stdout] 394 | finder: Option<&mut GenericFinder>, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 397 | ) -> impl Tokenize + 'a + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/fn_component.rs:451:16 [INFO] [stdout] | [INFO] [stdout] 451 | if let Some(value) = &self.default { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/fn_component.rs:458:13 [INFO] [stdout] | [INFO] [stdout] 458 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 451 ~ match &self.default { Some(value) => { [INFO] [stdout] 452 | stream.write(("let", &self.name, "=", &self.name)); [INFO] [stdout] ... [INFO] [stdout] 457 | } [INFO] [stdout] 458 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/fn_component/generic_finder.rs:74:52 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn in_type(&mut self, ty: &TokenStream) -> impl Iterator { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/fn_component/generic_finder.rs:74:35 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn in_type(&mut self, ty: &TokenStream) -> impl Iterator { [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 74 | pub fn in_type(&mut self, ty: &TokenStream) -> impl Iterator + use<'_> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/gen/element.rs:95:24 [INFO] [stdout] | [INFO] [stdout] 95 | if let CssValue::Expression(expr) = class { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/gen/element.rs:105:21 [INFO] [stdout] | [INFO] [stdout] 105 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 95 ~ match class { CssValue::Expression(expr) => { [INFO] [stdout] 96 | el.hoisted = true; [INFO] [stdout] ... [INFO] [stdout] 104 | writeln!(el, "{class} && {var}.classList.add({class});"); [INFO] [stdout] 105 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl tokenize::Tokenize` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/gen/transient.rs:530:25 [INFO] [stdout] | [INFO] [stdout] 530 | fn invoke(&self) -> impl Tokenize { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/gen/transient.rs:530:15 [INFO] [stdout] | [INFO] [stdout] 530 | fn invoke(&self) -> impl Tokenize { [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 530 | fn invoke(&self) -> impl Tokenize + use<> { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/tokenize.rs:82:12 [INFO] [stdout] | [INFO] [stdout] 82 | if let Some(item) = self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^---- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/tokenize.rs:84:9 [INFO] [stdout] | [INFO] [stdout] 84 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 82 ~ match self { Some(item) => { [INFO] [stdout] 83 | item.tokenize_in(stream) [INFO] [stdout] 84 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 73 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.25s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Checking kobold_macros v0.9.0 (/tmp/fixit) [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/lib.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | mod gen; [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 19 | mod r#gen; [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/lib.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | mod gen; [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 19 | mod r#gen; [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/lib.rs:55:21 [INFO] [stdout] | [INFO] [stdout] 55 | let transient = gen::generate(nodes); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/lib.rs:55:21 [INFO] [stdout] | [INFO] [stdout] 55 | let transient = gen::generate(nodes); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/fn_component/generic_finder.rs:60:17 [INFO] [stdout] | [INFO] [stdout] 60 | let gen = stream.parse()?; [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 60 | let r#gen = stream.parse()?; [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/fn_component/generic_finder.rs:60:17 [INFO] [stdout] | [INFO] [stdout] 60 | let gen = stream.parse()?; [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 60 | let r#gen = stream.parse()?; [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/fn_component/generic_finder.rs:62:30 [INFO] [stdout] | [INFO] [stdout] 62 | out.push((false, gen)); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/fn_component/generic_finder.rs:62:30 [INFO] [stdout] | [INFO] [stdout] 62 | out.push((false, gen)); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/fn_component/generic_finder.rs:77:50 [INFO] [stdout] | [INFO] [stdout] 77 | self.generics.iter_mut().filter_map(|(m, gen)| { [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 77 | self.generics.iter_mut().filter_map(|(m, r#gen)| { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/fn_component/generic_finder.rs:77:50 [INFO] [stdout] | [INFO] [stdout] 77 | self.generics.iter_mut().filter_map(|(m, gen)| { [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 77 | self.generics.iter_mut().filter_map(|(m, r#gen)| { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/fn_component/generic_finder.rs:81:24 [INFO] [stdout] | [INFO] [stdout] 81 | Some(&*gen) [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/fn_component/generic_finder.rs:81:24 [INFO] [stdout] | [INFO] [stdout] 81 | Some(&*gen) [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/fn_component/generic_finder.rs:101:33 [INFO] [stdout] | [INFO] [stdout] 101 | for (m, gen) in self.generics.iter_mut() { [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 101 | for (m, r#gen) in self.generics.iter_mut() { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/fn_component/generic_finder.rs:101:33 [INFO] [stdout] | [INFO] [stdout] 101 | for (m, gen) in self.generics.iter_mut() { [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 101 | for (m, r#gen) in self.generics.iter_mut() { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/fn_component/generic_finder.rs:102:52 [INFO] [stdout] | [INFO] [stdout] 102 | ... *m |= match (lifetime, gen) { [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/fn_component/generic_finder.rs:102:52 [INFO] [stdout] | [INFO] [stdout] 102 | ... *m |= match (lifetime, gen) { [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | let mut gen = Generator::default(); [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 36 | let mut r#gen = Generator::default(); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/gen.rs:39:39 [INFO] [stdout] | [INFO] [stdout] 39 | nodes.remove(0).into_gen(&mut gen) [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/gen.rs:41:29 [INFO] [stdout] | [INFO] [stdout] 41 | nodes.into_gen(&mut gen) [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | let mut gen = Generator::default(); [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 36 | let mut r#gen = Generator::default(); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/gen.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | gen.hoist(dom_node); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/gen.rs:39:39 [INFO] [stdout] | [INFO] [stdout] 39 | nodes.remove(0).into_gen(&mut gen) [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/gen.rs:41:29 [INFO] [stdout] | [INFO] [stdout] 41 | nodes.into_gen(&mut gen) [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen.rs:142:23 [INFO] [stdout] | [INFO] [stdout] 142 | fn into_gen(self, gen: &mut Generator) -> DomNode; [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 142 | fn into_gen(self, r#gen: &mut Generator) -> DomNode; [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/gen.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | gen.hoist(dom_node); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen.rs:146:23 [INFO] [stdout] | [INFO] [stdout] 146 | fn into_gen(self, gen: &mut Generator) -> DomNode { [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 146 | fn into_gen(self, r#gen: &mut Generator) -> DomNode { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen.rs:142:23 [INFO] [stdout] | [INFO] [stdout] 142 | fn into_gen(self, gen: &mut Generator) -> DomNode; [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 142 | fn into_gen(self, r#gen: &mut Generator) -> DomNode; [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/gen.rs:147:21 [INFO] [stdout] | [INFO] [stdout] 147 | let field = gen.add_field(self.stream); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen.rs:146:23 [INFO] [stdout] | [INFO] [stdout] 146 | fn into_gen(self, gen: &mut Generator) -> DomNode { [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 146 | fn into_gen(self, r#gen: &mut Generator) -> DomNode { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/gen.rs:147:21 [INFO] [stdout] | [INFO] [stdout] 147 | let field = gen.add_field(self.stream); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen.rs:158:23 [INFO] [stdout] | [INFO] [stdout] 158 | fn into_gen(self, gen: &mut Generator) -> DomNode { [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 158 | fn into_gen(self, r#gen: &mut Generator) -> DomNode { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen.rs:158:23 [INFO] [stdout] | [INFO] [stdout] 158 | fn into_gen(self, gen: &mut Generator) -> DomNode { [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 158 | fn into_gen(self, r#gen: &mut Generator) -> DomNode { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/gen.rs:160:62 [INFO] [stdout] | [INFO] [stdout] 160 | Node::Component(component) => component.into_gen(gen), [INFO] [stdout] | -- ^^^ expected expression [INFO] [stdout] | | [INFO] [stdout] | while parsing the `match` arm starting here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/gen.rs:160:62 [INFO] [stdout] | [INFO] [stdout] 160 | Node::Component(component) => component.into_gen(gen), [INFO] [stdout] | -- ^^^ expected expression [INFO] [stdout] | | [INFO] [stdout] | while parsing the `match` arm starting here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen/component.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::gen::{DomNode, Field, Generator, IntoGenerator, TokenStreamExt}; [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 8 | use crate::r#gen::{DomNode, Field, Generator, IntoGenerator, TokenStreamExt}; [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen/component.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::gen::{DomNode, Field, Generator, IntoGenerator, TokenStreamExt}; [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 8 | use crate::r#gen::{DomNode, Field, Generator, IntoGenerator, TokenStreamExt}; [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen/component.rs:34:35 [INFO] [stdout] | [INFO] [stdout] 34 | let children = crate::gen::generate(children); [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 34 | let children = crate::r#gen::generate(children); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen/component.rs:34:35 [INFO] [stdout] | [INFO] [stdout] 34 | let children = crate::gen::generate(children); [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 34 | let children = crate::r#gen::generate(children); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen/component.rs:44:23 [INFO] [stdout] | [INFO] [stdout] 44 | fn into_gen(self, gen: &mut Generator) -> DomNode { [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 44 | fn into_gen(self, r#gen: &mut Generator) -> DomNode { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/gen/component.rs:45:20 [INFO] [stdout] | [INFO] [stdout] 45 | let name = gen.names.next(); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen/component.rs:44:23 [INFO] [stdout] | [INFO] [stdout] 44 | fn into_gen(self, gen: &mut Generator) -> DomNode { [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 44 | fn into_gen(self, r#gen: &mut Generator) -> DomNode { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/gen/component.rs:45:20 [INFO] [stdout] | [INFO] [stdout] 45 | let name = gen.names.next(); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen/element.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::gen::{append, DomNode, Generator, IntoGenerator, JsArgument, Short}; [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 10 | use crate::r#gen::{append, DomNode, Generator, IntoGenerator, JsArgument, Short}; [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen/element.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::gen::{append, DomNode, Generator, IntoGenerator, JsArgument, Short}; [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 10 | use crate::r#gen::{append, DomNode, Generator, IntoGenerator, JsArgument, Short}; [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen/element.rs:42:27 [INFO] [stdout] | [INFO] [stdout] 42 | fn into_gen(mut self, gen: &mut Generator) -> DomNode { [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 42 | fn into_gen(mut self, r#gen: &mut Generator) -> DomNode { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/gen/element.rs:43:19 [INFO] [stdout] | [INFO] [stdout] 43 | let var = gen.names.next_el(); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen/element.rs:42:27 [INFO] [stdout] | [INFO] [stdout] 42 | fn into_gen(mut self, gen: &mut Generator) -> DomNode { [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 42 | fn into_gen(mut self, r#gen: &mut Generator) -> DomNode { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/gen/element.rs:43:19 [INFO] [stdout] | [INFO] [stdout] 43 | let var = gen.names.next_el(); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen/fragment.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::gen::{DomNode, Generator, IntoGenerator, JsArgument, Short}; [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 8 | use crate::r#gen::{DomNode, Generator, IntoGenerator, JsArgument, Short}; [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen/fragment.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::gen::{DomNode, Generator, IntoGenerator, JsArgument, Short}; [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 8 | use crate::r#gen::{DomNode, Generator, IntoGenerator, JsArgument, Short}; [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen/fragment.rs:22:23 [INFO] [stdout] | [INFO] [stdout] 22 | fn into_gen(self, gen: &mut Generator) -> DomNode { [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 22 | fn into_gen(self, r#gen: &mut Generator) -> DomNode { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/gen/fragment.rs:25:19 [INFO] [stdout] | [INFO] [stdout] 25 | let var = gen.names.next_el(); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen/fragment.rs:22:23 [INFO] [stdout] | [INFO] [stdout] 22 | fn into_gen(self, gen: &mut Generator) -> DomNode { [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 22 | fn into_gen(self, r#gen: &mut Generator) -> DomNode { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/gen/fragment.rs:25:19 [INFO] [stdout] | [INFO] [stdout] 25 | let var = gen.names.next_el(); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen/fragment.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | gen: &mut Generator, [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 39 | r#gen: &mut Generator, [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/gen/fragment.rs:47:39 [INFO] [stdout] | [INFO] [stdout] 47 | let dom_node = child.into_gen(gen); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen/fragment.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | gen: &mut Generator, [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 39 | r#gen: &mut Generator, [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/gen/fragment.rs:47:39 [INFO] [stdout] | [INFO] [stdout] 47 | let dom_node = child.into_gen(gen); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen/transient.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::gen::element::{Attr, InlineAbi}; [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 10 | use crate::r#gen::element::{Attr, InlineAbi}; [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen/transient.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::gen::Short; [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 11 | use crate::r#gen::Short; [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen/transient.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::gen::element::{Attr, InlineAbi}; [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 10 | use crate::r#gen::element::{Attr, InlineAbi}; [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/gen/transient.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::gen::Short; [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 11 | use crate::r#gen::Short; [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Field` [INFO] [stdout] --> src/gen/component.rs:8:27 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::gen::{DomNode, Field, Generator, IntoGenerator, TokenStreamExt}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Literal` [INFO] [stdout] --> src/gen/element.rs:7:14 [INFO] [stdout] | [INFO] [stdout] 7 | use tokens::{Literal, TokenStream}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AttributeValue`, `Attribute`, and `CssValue` [INFO] [stdout] --> src/gen/element.rs:9:18 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::dom::{Attribute, AttributeValue, CssValue, ElementTag, HtmlElement}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `append` [INFO] [stdout] --> src/gen/element.rs:10:18 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::gen::{append, DomNode, Generator, IntoGenerator, JsArgument, Short}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::itertools::IteratorExt as _` [INFO] [stdout] --> src/gen/element.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::itertools::IteratorExt as _; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Write` [INFO] [stdout] --> src/gen/fragment.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::fmt::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `FieldKind` [INFO] [stdout] --> src/gen.rs:22:36 [INFO] [stdout] | [INFO] [stdout] 22 | pub use transient::{Anchor, Field, FieldKind, Hint, Transient}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `JsModule` [INFO] [stdout] --> src/gen.rs:23:55 [INFO] [stdout] | [INFO] [stdout] 23 | pub use transient::{JsArgument, JsFnName, JsFunction, JsModule, JsString}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Field` [INFO] [stdout] --> src/gen/component.rs:8:27 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::gen::{DomNode, Field, Generator, IntoGenerator, TokenStreamExt}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Literal` [INFO] [stdout] --> src/gen/element.rs:7:14 [INFO] [stdout] | [INFO] [stdout] 7 | use tokens::{Literal, TokenStream}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AttributeValue`, `Attribute`, and `CssValue` [INFO] [stdout] --> src/gen/element.rs:9:18 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::dom::{Attribute, AttributeValue, CssValue, ElementTag, HtmlElement}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `append` [INFO] [stdout] --> src/gen/element.rs:10:18 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::gen::{append, DomNode, Generator, IntoGenerator, JsArgument, Short}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::itertools::IteratorExt as _` [INFO] [stdout] --> src/gen/element.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::itertools::IteratorExt as _; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Write` [INFO] [stdout] --> src/gen/fragment.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::fmt::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `FieldKind` [INFO] [stdout] --> src/gen.rs:22:36 [INFO] [stdout] | [INFO] [stdout] 22 | pub use transient::{Anchor, Field, FieldKind, Hint, Transient}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `JsModule` [INFO] [stdout] --> src/gen.rs:23:55 [INFO] [stdout] | [INFO] [stdout] 23 | pub use transient::{JsArgument, JsFnName, JsFunction, JsModule, JsString}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0614]: type `str` cannot be dereferenced [INFO] [stdout] --> src/fn_component/generic_finder.rs:103:67 [INFO] [stdout] | [INFO] [stdout] 103 | ... (true, Generic::Lifetime(lt)) => &**lt == ident, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0614]: type `str` cannot be dereferenced [INFO] [stdout] --> src/fn_component/generic_finder.rs:104:64 [INFO] [stdout] | [INFO] [stdout] 104 | ... (false, Generic::Type(ty)) => &**ty == ident, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0614]: type `str` cannot be dereferenced [INFO] [stdout] --> src/fn_component/generic_finder.rs:103:67 [INFO] [stdout] | [INFO] [stdout] 103 | ... (true, Generic::Lifetime(lt)) => &**lt == ident, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0614]: type `str` cannot be dereferenced [INFO] [stdout] --> src/fn_component/generic_finder.rs:104:64 [INFO] [stdout] | [INFO] [stdout] 104 | ... (false, Generic::Type(ty)) => &**ty == ident, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: captured variable cannot escape `FnMut` closure body [INFO] [stdout] --> src/fn_component.rs:362:17 [INFO] [stdout] | [INFO] [stdout] 288 | let mut finder: Option = match &self.generics { [INFO] [stdout] | ---------- variable defined here [INFO] [stdout] ... [INFO] [stdout] 361 | block(each(self.arguments.iter().enumerate().map(|(i, a)| { [INFO] [stdout] | - inferred to be a `FnMut` closure [INFO] [stdout] 362 | a.setter(name, finder.as_mut(), i, &self.arguments) [INFO] [stdout] | ^^^^^^^^^^^^^^^------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | variable captured here [INFO] [stdout] | returns a closure that contains a reference to a captured variable, which then escapes the closure body [INFO] [stdout] | [INFO] [stdout] = note: `FnMut` closures only have access to their captured variables while they are executing... [INFO] [stdout] = note: ...therefore, they cannot allow references to captured variables to escape [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: captured variable cannot escape `FnMut` closure body [INFO] [stdout] --> src/fn_component.rs:362:17 [INFO] [stdout] | [INFO] [stdout] 288 | let mut finder: Option = match &self.generics { [INFO] [stdout] | ---------- variable defined here [INFO] [stdout] ... [INFO] [stdout] 361 | block(each(self.arguments.iter().enumerate().map(|(i, a)| { [INFO] [stdout] | - inferred to be a `FnMut` closure [INFO] [stdout] 362 | a.setter(name, finder.as_mut(), i, &self.arguments) [INFO] [stdout] | ^^^^^^^^^^^^^^^------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | variable captured here [INFO] [stdout] | returns a closure that contains a reference to a captured variable, which then escapes the closure body [INFO] [stdout] | [INFO] [stdout] = note: `FnMut` closures only have access to their captured variables while they are executing... [INFO] [stdout] = note: ...therefore, they cannot allow references to captured variables to escape [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 34 previous errors; 8 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0614`. [INFO] [stdout] [INFO] [stdout] error: aborting due to 34 previous errors; 8 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0614`. [INFO] [stdout] [INFO] [stderr] error: could not compile `kobold_macros` (lib test) due to 35 previous errors; 8 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: could not compile `kobold_macros` (lib) due to 35 previous errors; 8 warnings emitted [INFO] [stderr] error: failed to check after updating to 2024 [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `cargo check --frozen --all --all-targets --message-format=json` (exit status: 101) [INFO] running `Command { std: "docker" "inspect" "1cf4ebbae60c6125f99e7ccd8e9cfd2a1cc8810aa951c5dd27e2196441ae2756", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1cf4ebbae60c6125f99e7ccd8e9cfd2a1cc8810aa951c5dd27e2196441ae2756", kill_on_drop: false }` [INFO] [stdout] 1cf4ebbae60c6125f99e7ccd8e9cfd2a1cc8810aa951c5dd27e2196441ae2756