[INFO] fetching crate zng-ext-font 0.4.6... [INFO] checking zng-ext-font-0.4.6 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] extracting crate zng-ext-font 0.4.6 into /workspace/builds/worker-7-tc2/source [INFO] validating manifest of crates.io crate zng-ext-font 0.4.6 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 zng-ext-font 0.4.6 [INFO] finished tweaking crates.io crate zng-ext-font 0.4.6 [INFO] tweaked toml for crates.io crate zng-ext-font 0.4.6 written to /workspace/builds/worker-7-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 298 packages to latest compatible versions [INFO] [stderr] Adding android_log-sys v0.2.0 (available: v0.3.1) [INFO] [stderr] Adding bitflags v1.3.2 (available: v2.6.0) [INFO] [stderr] Adding core-foundation v0.9.4 (available: v0.10.0) [INFO] [stderr] Adding core-graphics v0.23.2 (available: v0.24.0) [INFO] [stderr] Adding core-graphics-types v0.1.3 (available: v0.2.0) [INFO] [stderr] Adding core-text v20.1.0 (available: v21.0.0) [INFO] [stderr] Adding fluent-langneg v0.13.0 (available: v0.14.1) [INFO] [stderr] Adding freetype-sys v0.20.1 (available: v0.22.1) [INFO] [stderr] Adding generic-array v0.14.7 (available: v1.1.0) [INFO] [stderr] Adding hermit-abi v0.3.9 (available: v0.4.0) [INFO] [stderr] Adding inotify v0.9.6 (available: v0.11.0) [INFO] [stderr] Adding linux-raw-sys v0.4.14 (available: v0.6.5) [INFO] [stderr] Adding mio v0.8.11 (available: v1.0.2) [INFO] [stderr] Adding nu-ansi-term v0.46.0 (available: v0.50.1) [INFO] [stderr] Adding rustc-hash v1.1.0 (available: v2.0.0) [INFO] [stderr] Adding self_cell v0.10.3 (available: v1.0.4) [INFO] [stderr] Adding unicode-bidi-mirroring v0.3.0 (available: v0.4.0) [INFO] [stderr] Adding unicode-ccc v0.3.0 (available: v0.4.0) [INFO] [stderr] Adding wasi v0.11.0+wasi-snapshot-preview1 (available: v0.13.2+wasi-0.2.1) [INFO] [stderr] Adding windows-strings v0.1.0 (available: v0.2.0) [INFO] [stderr] Adding windows-sys v0.48.0 (available: v0.59.0) [INFO] [stderr] Adding windows-sys v0.52.0 (available: v0.59.0) [INFO] [stderr] Adding windows-targets v0.48.5 (available: v0.52.6) [INFO] [stderr] Adding windows_aarch64_gnullvm v0.48.5 (available: v0.52.6) [INFO] [stderr] Adding windows_aarch64_msvc v0.48.5 (available: v0.52.6) [INFO] [stderr] Adding windows_i686_gnu v0.48.5 (available: v0.52.6) [INFO] [stderr] Adding windows_i686_msvc v0.48.5 (available: v0.52.6) [INFO] [stderr] Adding windows_x86_64_gnu v0.48.5 (available: v0.52.6) [INFO] [stderr] Adding windows_x86_64_gnullvm v0.48.5 (available: v0.52.6) [INFO] [stderr] Adding windows_x86_64_msvc v0.48.5 (available: v0.52.6) [INFO] [stderr] Adding zng-app v0.12.0 (available: v0.13.0) [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-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] c530bcbdf11cc55d6713407b4a04e1e45dbfec512736da05305d0651a704a2d4 [INFO] running `Command { std: "docker" "start" "-a" "c530bcbdf11cc55d6713407b4a04e1e45dbfec512736da05305d0651a704a2d4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c530bcbdf11cc55d6713407b4a04e1e45dbfec512736da05305d0651a704a2d4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c530bcbdf11cc55d6713407b4a04e1e45dbfec512736da05305d0651a704a2d4", kill_on_drop: false }` [INFO] [stdout] c530bcbdf11cc55d6713407b4a04e1e45dbfec512736da05305d0651a704a2d4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-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] 2473f413e3768e98c5b53257569f669c882bb9fca6b88c425bcf81f7911762bf [INFO] running `Command { std: "docker" "start" "-a" "2473f413e3768e98c5b53257569f669c882bb9fca6b88c425bcf81f7911762bf", 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] Compiling semver v1.0.23 [INFO] [stderr] Checking stable_deref_trait v1.2.0 [INFO] [stderr] Compiling typenum v1.17.0 [INFO] [stderr] Checking either v1.13.0 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Checking allocator-api2 v0.2.18 [INFO] [stderr] Compiling syn v2.0.77 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking dirs-sys v0.4.1 [INFO] [stderr] Checking winnow v0.6.20 [INFO] [stderr] Checking futures-core v0.3.30 [INFO] [stderr] Compiling zng-app-context v0.5.9 [INFO] [stderr] Checking parking v2.2.1 [INFO] [stderr] Checking concurrent-queue v2.5.0 [INFO] [stderr] Checking rustc-hash v2.0.0 [INFO] [stderr] Compiling zng-var v0.5.6 [INFO] [stderr] Checking pretty-type-name v1.0.1 [INFO] [stderr] Compiling utf8parse v0.2.2 [INFO] [stderr] Checking crossbeam-channel v0.5.13 [INFO] [stderr] Checking zng-handle v0.2.5 [INFO] [stderr] Checking directories v5.0.1 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.1 [INFO] [stderr] Compiling anstyle-parse v0.2.5 [INFO] [stderr] Compiling anstyle-query v1.1.1 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Compiling colorchoice v1.0.2 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling anstyle v1.0.8 [INFO] [stderr] Checking zng-clone-move v0.2.5 [INFO] [stderr] Checking event-listener v5.3.1 [INFO] [stderr] Checking futures-io v0.3.30 [INFO] [stderr] Checking nanorand v0.7.0 [INFO] [stderr] Checking uuid v1.10.0 [INFO] [stderr] Checking spin v0.9.8 [INFO] [stderr] Checking mio v1.0.2 [INFO] [stderr] Compiling fst v0.4.7 [INFO] [stderr] Checking futures-sink v0.3.30 [INFO] [stderr] Compiling clap_lex v0.7.2 [INFO] [stderr] Checking piper v0.2.4 [INFO] [stderr] Checking futures-lite v2.3.0 [INFO] [stderr] Compiling anstream v0.6.15 [INFO] [stderr] Compiling zng-view-api v0.10.1 [INFO] [stderr] Checking event-listener-strategy v0.5.2 [INFO] [stderr] Checking dunce v1.0.5 [INFO] [stderr] Checking flume v0.11.0 [INFO] [stderr] Checking async-task v4.7.1 [INFO] [stderr] Compiling zng-task v0.4.6 [INFO] [stderr] Checking os_pipe v1.2.1 [INFO] [stderr] Checking shared_child v1.0.1 [INFO] [stderr] Checking async-channel v2.3.1 [INFO] [stderr] Checking async-lock v3.4.0 [INFO] [stderr] Compiling unicase v2.7.0 [INFO] [stderr] Checking unicode-bidi v0.3.15 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Checking duct v0.13.7 [INFO] [stderr] Compiling clap_builder v4.5.18 [INFO] [stderr] Checking futures-timer v3.0.3 [INFO] [stderr] Checking same-file v1.0.6 [INFO] [stderr] Checking type-map v0.5.0 [INFO] [stderr] Compiling freetype-sys v0.20.1 [INFO] [stderr] Compiling yeslogic-fontconfig-sys v6.0.0 [INFO] [stderr] Checking walkdir v2.5.0 [INFO] [stderr] Checking inotify-sys v0.1.5 [INFO] [stderr] Checking writeable v0.5.5 [INFO] [stderr] Checking litemap v0.7.3 [INFO] [stderr] Compiling zng-app v0.13.0 [INFO] [stderr] Checking self_cell v1.0.4 [INFO] [stderr] Checking inotify v0.9.6 [INFO] [stderr] Checking mio v0.8.11 [INFO] [stderr] Checking self_cell v0.10.3 [INFO] [stderr] Checking filetime v0.2.25 [INFO] [stderr] Checking path-dedot v3.1.1 [INFO] [stderr] Checking core_maths v0.1.0 [INFO] [stderr] Compiling zng-app v0.12.0 [INFO] [stderr] Compiling font-kit v0.14.2 [INFO] [stderr] Checking path-absolutize v3.1.1 [INFO] [stderr] Checking icu_locid_transform_data v1.5.0 [INFO] [stderr] Checking blocking v1.6.1 [INFO] [stderr] Checking ttf-parser v0.24.1 [INFO] [stderr] Checking dirs v5.0.1 [INFO] [stderr] Checking notify v6.1.1 [INFO] [stderr] Checking float-ord v0.3.2 [INFO] [stderr] Checking unicode-bidi-mirroring v0.3.0 [INFO] [stderr] Checking unicode-script v0.5.7 [INFO] [stderr] Checking unicode-properties v0.1.2 [INFO] [stderr] Checking unicode-ccc v0.3.0 [INFO] [stderr] Checking icu_properties_data v1.5.0 [INFO] [stderr] Checking async-fs v2.1.2 [INFO] [stderr] Checking unicode-linebreak v0.1.5 [INFO] [stderr] Checking unicode-segmentation v1.12.0 [INFO] [stderr] Compiling crypto-common v0.1.6 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling sha2 v0.10.8 [INFO] [stderr] Compiling clap v4.5.18 [INFO] [stderr] Compiling minifier v0.3.1 [INFO] [stderr] Compiling synstructure v0.13.1 [INFO] [stderr] Compiling serde_derive v1.0.210 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling bytemuck_derive v1.7.1 [INFO] [stderr] Compiling zerofrom-derive v0.1.4 [INFO] [stderr] Compiling yoke-derive v0.7.4 [INFO] [stderr] Compiling zerovec-derive v0.10.3 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling linkme-impl v0.3.28 [INFO] [stderr] Compiling thiserror-impl v1.0.64 [INFO] [stderr] Compiling zng-var-proc-macros v0.2.8 [INFO] [stderr] Compiling zng-color-proc-macros v0.2.7 [INFO] [stderr] Compiling zng-task-proc-macros v0.2.6 [INFO] [stderr] Compiling icu_provider_macros v1.5.0 [INFO] [stderr] Compiling tinystr v0.7.6 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Compiling unic-langid-impl v0.9.5 [INFO] [stderr] Checking linkme v0.3.28 [INFO] [stderr] Compiling unic-langid v0.9.5 [INFO] [stderr] Checking zerofrom v0.1.4 [INFO] [stderr] Checking bytemuck v1.18.0 [INFO] [stderr] Checking yoke v0.7.4 [INFO] [stderr] Compiling thiserror v1.0.64 [INFO] [stderr] Checking fluent-syntax v0.11.1 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Checking zerovec v0.10.4 [INFO] [stderr] Checking atomic v0.6.0 [INFO] [stderr] Checking tracing-shared v0.1.5 [INFO] [stderr] Compiling zng-app-proc-macros v0.3.7 [INFO] [stderr] Compiling zng-ext-l10n-proc-macros v0.2.9 [INFO] [stderr] Checking ahash v0.8.11 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking icu_collections v1.5.0 [INFO] [stderr] Checking indexmap v2.5.0 [INFO] [stderr] Checking icu_locid v1.5.0 [INFO] [stderr] Checking serde v1.0.210 [INFO] [stderr] Checking icu_provider v1.5.0 [INFO] [stderr] Checking icu_locid_transform v1.5.0 [INFO] [stderr] Checking icu_properties v1.5.1 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Checking bitflags v2.6.0 [INFO] [stderr] Checking zng-txt v0.2.8 [INFO] [stderr] Checking toml_datetime v0.6.8 [INFO] [stderr] Checking serde_spanned v0.6.8 [INFO] [stderr] Checking euclid v0.22.11 [INFO] [stderr] Checking bincode v1.3.3 [INFO] [stderr] Checking serde_bytes v0.11.15 [INFO] [stderr] Checking serde_variant v0.1.3 [INFO] [stderr] Checking hyphenation_commons v0.8.4 [INFO] [stderr] Checking zng-tp-licenses v0.2.8 [INFO] [stderr] Checking rustix v0.38.37 [INFO] [stderr] Checking toml_edit v0.22.22 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking tracing-subscriber v0.3.18 [INFO] [stderr] Checking rustybuzz v0.18.0 [INFO] [stderr] Checking intl-memoizer v0.5.2 [INFO] [stderr] Checking intl_pluralrules v7.0.2 [INFO] [stderr] Checking fluent-langneg v0.13.0 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking zng-unique-id v0.4.6 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Checking fluent-bundle v0.15.3 [INFO] [stderr] Checking zng-state-map v0.3.5 [INFO] [stderr] Compiling pathfinder_simd v0.5.4 [INFO] [stderr] Checking fluent v0.16.1 [INFO] [stderr] Compiling hyphenation v0.8.4 [INFO] [stderr] Checking zng-unit v0.2.9 [INFO] [stderr] Checking pathfinder_geometry v0.5.1 [INFO] [stderr] Checking toml v0.8.19 [INFO] [stderr] Checking tempfile v3.12.0 [INFO] [stderr] Checking fs4 v0.9.1 [INFO] [stderr] Checking ipc-channel v0.18.3 [INFO] [stderr] Compiling proc-macro-crate v3.2.0 [INFO] [stderr] Compiling num_enum_derive v0.7.3 [INFO] [stderr] Compiling zng-env-proc-macros v0.2.2 [INFO] [stderr] Checking zng-env v0.3.5 [INFO] [stderr] Checking num_enum v0.7.3 [INFO] [stderr] Checking zng-time v0.2.21 [INFO] [stderr] Checking zng-layout v0.2.27 [INFO] [stderr] Checking zng-color v0.3.12 [INFO] [stderr] Checking zng-ext-fs-watcher v0.2.33 [INFO] [stderr] Checking zng-ext-l10n v0.5.13 [INFO] [stderr] Checking zng-ext-font v0.4.6 (/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 `zng_ext_font` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/font_features.rs [INFO] [stderr] * src/shaping.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/font_features.rs:1889:20 [INFO] [stderr] | [INFO] [stderr] 1889 | $name:tt : $value: 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/shaping.rs:1053:18 [INFO] [stderr] | [INFO] [stderr] 1053 | ($cond: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/shaping.rs:1060:18 [INFO] [stderr] | [INFO] [stderr] 1060 | ($cond:expr_2021, $($arg:tt)+) => { [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: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/font_features.rs:1889:28 [INFO] [stdout] | [INFO] [stdout] 1889 | $name:tt : $value: 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] 1889 | $name:tt : $value: 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/shaping.rs:1053:24 [INFO] [stdout] | [INFO] [stdout] 1053 | ($cond: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] 1053 | ($cond: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/shaping.rs:1060:24 [INFO] [stdout] | [INFO] [stdout] 1060 | ($cond:expr, $($arg:tt)+) => { [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] 1060 | ($cond:expr_2021, $($arg:tt)+) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/lib.rs:671:24 [INFO] [stdout] | [INFO] [stdout] 671 | let r = if let Some(removed) = fonts.loader.custom_fonts.remove(&request) { [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/lib.rs:682:13 [INFO] [stdout] | [INFO] [stdout] 682 | } else { [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] 671 ~ let r = match fonts.loader.custom_fonts.remove(&request) { Some(removed) => { [INFO] [stdout] 672 | // cut circular reference so that when the last font ref gets dropped [INFO] [stdout] ... [INFO] [stdout] 681 | true [INFO] [stdout] 682 ~ } _ => { [INFO] [stdout] 683 | false [INFO] [stdout] 684 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl zng_var::Var` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/lib.rs:829:37 [INFO] [stdout] | [INFO] [stdout] 829 | pub fn system_font_aa(&self) -> impl Var { [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/lib.rs:829:27 [INFO] [stdout] | [INFO] [stdout] 829 | pub fn system_font_aa(&self) -> impl Var { [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] 829 | pub fn system_font_aa(&self) -> impl Var + use<> { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/lib.rs:1561:12 [INFO] [stdout] | [INFO] [stdout] 1561 | if let Some(face) = self.fonts.get(face_index) { [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/lib.rs:1563:9 [INFO] [stdout] | [INFO] [stdout] 1563 | } 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] 1561 ~ match self.fonts.get(face_index) { Some(face) => { [INFO] [stdout] 1562 | face.synthesis_for(self.requested_style, self.requested_weight) [INFO] [stdout] 1563 ~ } _ => { [INFO] [stdout] 1564 | FontSynthesis::DISABLED [INFO] [stdout] 1565 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/lib.rs:1669:12 [INFO] [stdout] | [INFO] [stdout] 1669 | if let Some(font) = self.fonts.get(font_index) { [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/lib.rs:1671:9 [INFO] [stdout] | [INFO] [stdout] 1671 | } 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] 1669 ~ match self.fonts.get(font_index) { Some(font) => { [INFO] [stdout] 1670 | font.0.face.synthesis_for(self.requested_style, self.requested_weight) [INFO] [stdout] 1671 ~ } _ => { [INFO] [stdout] 1672 | FontSynthesis::DISABLED [INFO] [stdout] 1673 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/lib.rs:1892:24 [INFO] [stdout] | [INFO] [stdout] 1892 | if let Some(face) = face.into_rsp().unwrap() { [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/lib.rs:1894:21 [INFO] [stdout] | [INFO] [stdout] 1894 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1892 ~ match face.into_rsp().unwrap() { Some(face) => { [INFO] [stdout] 1893 | list.push(face); [INFO] [stdout] 1894 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/lib.rs:1915:24 [INFO] [stdout] | [INFO] [stdout] 1915 | if let Some(rsp) = pending.wait_into_rsp().await { [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/lib.rs:1917:21 [INFO] [stdout] | [INFO] [stdout] 1917 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1915 ~ match pending.wait_into_rsp().await { Some(rsp) => { [INFO] [stdout] 1916 | list.insert(i, rsp); [INFO] [stdout] 1917 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/query_util.rs:36:16 [INFO] [stdout] | [INFO] [stdout] 36 | if let Ok(Some(h)) = workaround_ubuntu(style, weight, stretch) { [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/query_util.rs:38:13 [INFO] [stdout] | [INFO] [stdout] 38 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 36 ~ match workaround_ubuntu(style, weight, stretch) { Ok(Some(h)) => { [INFO] [stdout] 37 | return Ok(Some(h)); [INFO] [stdout] 38 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl ExactSizeIterator + Iterator)> + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/emoji_util.rs:383:27 [INFO] [stdout] | [INFO] [stdout] 383 | pub fn iter(&self) -> impl ExactSizeIterator)> + '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/emoji_util.rs:383:17 [INFO] [stdout] | [INFO] [stdout] 383 | pub fn iter(&self) -> impl ExactSizeIterator)> + 'a { [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] 383 | pub fn iter(&self) -> impl ExactSizeIterator)> + 'a + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ligature_util.rs:230:16 [INFO] [stdout] | [INFO] [stdout] 230 | if let Some(&start) = self.lig_caret_start.get(p) { [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/ligature_util.rs:239:13 [INFO] [stdout] | [INFO] [stdout] 239 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 230 ~ match self.lig_caret_start.get(p) { Some(&start) => { [INFO] [stdout] 231 | let start = start as usize; [INFO] [stdout] ... [INFO] [stdout] 238 | }; [INFO] [stdout] 239 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shaping.rs:658:60 [INFO] [stdout] | [INFO] [stdout] 658 | let (first, mid, last, first_segs, last_segs) = if let Some(l) = &inline_constraints { [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/shaping.rs:660:9 [INFO] [stdout] | [INFO] [stdout] 660 | } 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] 658 ~ let (first, mid, last, first_segs, last_segs) = match &inline_constraints { Some(l) => { [INFO] [stdout] 659 | (l.first, l.mid_clear, l.last, &*l.first_segs, &*l.last_segs) [INFO] [stdout] 660 ~ } _ => { [INFO] [stdout] 661 | // calculate our own first & last [INFO] [stdout] ... [INFO] [stdout] 699 | (first, Px(0), last, &EMPTY, &EMPTY) [INFO] [stdout] 700 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shaping.rs:1393:24 [INFO] [stdout] | [INFO] [stdout] 1393 | if let Some(l) = included_glyphs.last_mut() { [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/shaping.rs:1401:21 [INFO] [stdout] | [INFO] [stdout] 1401 | } 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] 1393 ~ match included_glyphs.last_mut() { Some(l) => { [INFO] [stdout] 1394 | if l.end == glyphs_range.start { [INFO] [stdout] ... [INFO] [stdout] 1400 | } [INFO] [stdout] 1401 ~ } _ => { [INFO] [stdout] 1402 | included_glyphs.push(glyphs_range.clone()); [INFO] [stdout] 1403 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator> + '_` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/shaping.rs:1544:85 [INFO] [stdout] | [INFO] [stdout] 1544 | pub fn highlight_rects(&self, range: ops::Range, full_txt: &str) -> 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/shaping.rs:1544:76 [INFO] [stdout] | [INFO] [stdout] 1544 | pub fn highlight_rects(&self, range: ops::Range, full_txt: &str) -> 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] 1544 | pub fn highlight_rects(&self, range: ops::Range, full_txt: &str) -> impl Iterator + '_ + use<'_> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shaping.rs:1728:23 [INFO] [stdout] | [INFO] [stdout] 1728 | } else if let Some((font, glyphs)) = self.glyphs.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/shaping.rs:1739:13 [INFO] [stdout] | [INFO] [stdout] 1739 | } 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] 1728 ~ } else { match self.glyphs.next() { Some((font, glyphs)) => { [INFO] [stdout] 1729 | // normal iter [INFO] [stdout] ... [INFO] [stdout] 1738 | } [INFO] [stdout] 1739 ~ } _ => { [INFO] [stdout] 1740 | return None; [INFO] [stdout] 1741 ~ }}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shaping.rs:1806:16 [INFO] [stdout] | [INFO] [stdout] 1806 | if let Some(r) = r { [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/shaping.rs:1808:13 [INFO] [stdout] | [INFO] [stdout] 1808 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1806 ~ match r { Some(r) => { [INFO] [stdout] 1807 | return r; [INFO] [stdout] 1808 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shaping.rs:2464:24 [INFO] [stdout] | [INFO] [stdout] 2464 | let g_len = if let Some(l) = self.out.segments.0.last() { [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/shaping.rs:2466:9 [INFO] [stdout] | [INFO] [stdout] 2466 | } 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] 2464 ~ let g_len = match self.out.segments.0.last() { Some(l) => { [INFO] [stdout] 2465 | self.out.glyphs.len() - l.end [INFO] [stdout] 2466 ~ } _ => { [INFO] [stdout] 2467 | self.out.glyphs.len() [INFO] [stdout] 2468 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator, zng_layout::unit::Px)> + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/shaping.rs:2673:44 [INFO] [stdout] | [INFO] [stdout] 2673 | pub fn underline_skip_spaces(&self) -> impl Iterator + '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/shaping.rs:2673:34 [INFO] [stdout] | [INFO] [stdout] 2673 | pub fn underline_skip_spaces(&self) -> impl Iterator + 'a { [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] 2673 | pub fn underline_skip_spaces(&self) -> impl Iterator + 'a + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator, zng_layout::unit::Px)> + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/shaping.rs:2682:52 [INFO] [stdout] | [INFO] [stdout] 2682 | pub fn underline_descent_skip_spaces(&self) -> impl Iterator + '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/shaping.rs:2682:42 [INFO] [stdout] | [INFO] [stdout] 2682 | pub fn underline_descent_skip_spaces(&self) -> impl Iterator + 'a { [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] 2682 | pub fn underline_descent_skip_spaces(&self) -> impl Iterator + 'a + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator, zng_layout::unit::Px)> + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/shaping.rs:2691:59 [INFO] [stdout] | [INFO] [stdout] 2691 | pub fn underline_skip_glyphs(&self, thickness: Px) -> impl Iterator + '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/shaping.rs:2691:34 [INFO] [stdout] | [INFO] [stdout] 2691 | pub fn underline_skip_glyphs(&self, thickness: Px) -> impl Iterator + 'a { [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] 2691 | pub fn underline_skip_glyphs(&self, thickness: Px) -> impl Iterator + 'a + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator, zng_layout::unit::Px)> + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/shaping.rs:2700:70 [INFO] [stdout] | [INFO] [stdout] 2700 | pub fn underline_skip_glyphs_and_spaces(&self, thickness: Px) -> impl Iterator + '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/shaping.rs:2700:45 [INFO] [stdout] | [INFO] [stdout] 2700 | pub fn underline_skip_glyphs_and_spaces(&self, thickness: Px) -> impl Iterator + 'a { [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] 2700 | pub fn underline_skip_glyphs_and_spaces(&self, thickness: Px) -> impl Iterator + 'a + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/shaping.rs:2724:29 [INFO] [stdout] | [INFO] [stdout] 2724 | pub fn glyphs(&self) -> impl Iterator + '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/shaping.rs:2724:19 [INFO] [stdout] | [INFO] [stdout] 2724 | pub fn glyphs(&self) -> impl Iterator + 'a { [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] 2724 | pub fn glyphs(&self) -> impl Iterator + 'a + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator + 'a)> + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/shaping.rs:2730:44 [INFO] [stdout] | [INFO] [stdout] 2730 | pub fn glyphs_with_x_advance(&self) -> impl Iterator + 'a)> + '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/shaping.rs:2730:34 [INFO] [stdout] | [INFO] [stdout] 2730 | pub fn glyphs_with_x_advance(&self) -> impl Iterator + 'a)> + 'a { [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] 2730 | pub fn glyphs_with_x_advance(&self) -> impl Iterator + 'a)> + 'a + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/shaping.rs:2730:76 [INFO] [stdout] | [INFO] [stdout] 2730 | pub fn glyphs_with_x_advance(&self) -> impl Iterator + 'a)> + '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/shaping.rs:2730:34 [INFO] [stdout] | [INFO] [stdout] 2730 | pub fn glyphs_with_x_advance(&self) -> impl Iterator + 'a)> + 'a { [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] 2730 | pub fn glyphs_with_x_advance(&self) -> impl Iterator + 'a + use<'a>)> + 'a { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl DoubleEndedIterator + Iterator> + ExactSizeIterator` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/shaping.rs:2739:27 [INFO] [stdout] | [INFO] [stdout] 2739 | pub fn segs(&self) -> impl DoubleEndedIterator> + ExactSizeIterator { [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/shaping.rs:2739:17 [INFO] [stdout] | [INFO] [stdout] 2739 | pub fn segs(&self) -> impl DoubleEndedIterator> + ExactSizeIterator { [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] 2739 | pub fn segs(&self) -> impl DoubleEndedIterator> + ExactSizeIterator + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/shaping.rs:3058:29 [INFO] [stdout] | [INFO] [stdout] 3058 | pub fn glyphs(&self) -> 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/shaping.rs:3058:19 [INFO] [stdout] | [INFO] [stdout] 3058 | pub fn glyphs(&self) -> 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] 3058 | pub fn glyphs(&self) -> impl Iterator + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator + 'a)> + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/shaping.rs:3099:44 [INFO] [stdout] | [INFO] [stdout] 3099 | pub fn glyphs_with_x_advance(&self) -> impl Iterator + 'a)> + '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/shaping.rs:3099:34 [INFO] [stdout] | [INFO] [stdout] 3099 | pub fn glyphs_with_x_advance(&self) -> impl Iterator + 'a)> + 'a { [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] 3099 | pub fn glyphs_with_x_advance(&self) -> impl Iterator + 'a)> + 'a + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/shaping.rs:3099:76 [INFO] [stdout] | [INFO] [stdout] 3099 | pub fn glyphs_with_x_advance(&self) -> impl Iterator + 'a)> + '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/shaping.rs:3099:34 [INFO] [stdout] | [INFO] [stdout] 3099 | pub fn glyphs_with_x_advance(&self) -> impl Iterator + 'a)> + 'a { [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] 3099 | pub fn glyphs_with_x_advance(&self) -> impl Iterator + 'a + use<'a>)> + 'a { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator, zng_layout::unit::Px)> + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/shaping.rs:3238:59 [INFO] [stdout] | [INFO] [stdout] 3238 | pub fn underline_skip_glyphs(&self, thickness: Px) -> impl Iterator + '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/shaping.rs:3238:34 [INFO] [stdout] | [INFO] [stdout] 3238 | pub fn underline_skip_glyphs(&self, thickness: Px) -> impl Iterator + 'a { [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] 3238 | pub fn underline_skip_glyphs(&self, thickness: Px) -> impl Iterator + 'a + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shaping.rs:3283:24 [INFO] [stdout] | [INFO] [stdout] 3283 | if let Some((font, mut glyphs_with_adv)) = continuation { [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/shaping.rs:3300:21 [INFO] [stdout] | [INFO] [stdout] 3300 | } 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] 3283 ~ match continuation { Some((font, mut glyphs_with_adv)) => { [INFO] [stdout] 3284 | for (g, a) in &mut glyphs_with_adv { [INFO] [stdout] ... [INFO] [stdout] 3299 | } [INFO] [stdout] 3300 ~ } _ => { [INFO] [stdout] 3301 | let r = self.line(); [INFO] [stdout] 3302 | self.width = 0.0; [INFO] [stdout] 3303 | return r; [INFO] [stdout] 3304 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 31 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `zng_ext_font` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/font_features.rs [INFO] [stderr] * src/shaping.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/font_features.rs:1889:20 [INFO] [stderr] | [INFO] [stderr] 1889 | $name:tt : $value: 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/shaping.rs:1053:18 [INFO] [stderr] | [INFO] [stderr] 1053 | ($cond: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/shaping.rs:1060:18 [INFO] [stderr] | [INFO] [stderr] 1060 | ($cond:expr_2021, $($arg:tt)+) => { [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: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/font_features.rs:1889:28 [INFO] [stdout] | [INFO] [stdout] 1889 | $name:tt : $value: 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] 1889 | $name:tt : $value: 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/shaping.rs:1053:24 [INFO] [stdout] | [INFO] [stdout] 1053 | ($cond: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] 1053 | ($cond: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/shaping.rs:1060:24 [INFO] [stdout] | [INFO] [stdout] 1060 | ($cond:expr, $($arg:tt)+) => { [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] 1060 | ($cond:expr_2021, $($arg:tt)+) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/lib.rs:671:24 [INFO] [stdout] | [INFO] [stdout] 671 | let r = if let Some(removed) = fonts.loader.custom_fonts.remove(&request) { [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/lib.rs:682:13 [INFO] [stdout] | [INFO] [stdout] 682 | } else { [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] 671 ~ let r = match fonts.loader.custom_fonts.remove(&request) { Some(removed) => { [INFO] [stdout] 672 | // cut circular reference so that when the last font ref gets dropped [INFO] [stdout] ... [INFO] [stdout] 681 | true [INFO] [stdout] 682 ~ } _ => { [INFO] [stdout] 683 | false [INFO] [stdout] 684 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl zng_var::Var` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/lib.rs:829:37 [INFO] [stdout] | [INFO] [stdout] 829 | pub fn system_font_aa(&self) -> impl Var { [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/lib.rs:829:27 [INFO] [stdout] | [INFO] [stdout] 829 | pub fn system_font_aa(&self) -> impl Var { [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] 829 | pub fn system_font_aa(&self) -> impl Var + use<> { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/lib.rs:1561:12 [INFO] [stdout] | [INFO] [stdout] 1561 | if let Some(face) = self.fonts.get(face_index) { [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/lib.rs:1563:9 [INFO] [stdout] | [INFO] [stdout] 1563 | } 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] 1561 ~ match self.fonts.get(face_index) { Some(face) => { [INFO] [stdout] 1562 | face.synthesis_for(self.requested_style, self.requested_weight) [INFO] [stdout] 1563 ~ } _ => { [INFO] [stdout] 1564 | FontSynthesis::DISABLED [INFO] [stdout] 1565 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/lib.rs:1669:12 [INFO] [stdout] | [INFO] [stdout] 1669 | if let Some(font) = self.fonts.get(font_index) { [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/lib.rs:1671:9 [INFO] [stdout] | [INFO] [stdout] 1671 | } 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] 1669 ~ match self.fonts.get(font_index) { Some(font) => { [INFO] [stdout] 1670 | font.0.face.synthesis_for(self.requested_style, self.requested_weight) [INFO] [stdout] 1671 ~ } _ => { [INFO] [stdout] 1672 | FontSynthesis::DISABLED [INFO] [stdout] 1673 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/lib.rs:1892:24 [INFO] [stdout] | [INFO] [stdout] 1892 | if let Some(face) = face.into_rsp().unwrap() { [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/lib.rs:1894:21 [INFO] [stdout] | [INFO] [stdout] 1894 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1892 ~ match face.into_rsp().unwrap() { Some(face) => { [INFO] [stdout] 1893 | list.push(face); [INFO] [stdout] 1894 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/lib.rs:1915:24 [INFO] [stdout] | [INFO] [stdout] 1915 | if let Some(rsp) = pending.wait_into_rsp().await { [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/lib.rs:1917:21 [INFO] [stdout] | [INFO] [stdout] 1917 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1915 ~ match pending.wait_into_rsp().await { Some(rsp) => { [INFO] [stdout] 1916 | list.insert(i, rsp); [INFO] [stdout] 1917 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/query_util.rs:36:16 [INFO] [stdout] | [INFO] [stdout] 36 | if let Ok(Some(h)) = workaround_ubuntu(style, weight, stretch) { [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/query_util.rs:38:13 [INFO] [stdout] | [INFO] [stdout] 38 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 36 ~ match workaround_ubuntu(style, weight, stretch) { Ok(Some(h)) => { [INFO] [stdout] 37 | return Ok(Some(h)); [INFO] [stdout] 38 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl ExactSizeIterator + Iterator)> + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/emoji_util.rs:383:27 [INFO] [stdout] | [INFO] [stdout] 383 | pub fn iter(&self) -> impl ExactSizeIterator)> + '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/emoji_util.rs:383:17 [INFO] [stdout] | [INFO] [stdout] 383 | pub fn iter(&self) -> impl ExactSizeIterator)> + 'a { [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] 383 | pub fn iter(&self) -> impl ExactSizeIterator)> + 'a + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ligature_util.rs:230:16 [INFO] [stdout] | [INFO] [stdout] 230 | if let Some(&start) = self.lig_caret_start.get(p) { [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/ligature_util.rs:239:13 [INFO] [stdout] | [INFO] [stdout] 239 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 230 ~ match self.lig_caret_start.get(p) { Some(&start) => { [INFO] [stdout] 231 | let start = start as usize; [INFO] [stdout] ... [INFO] [stdout] 238 | }; [INFO] [stdout] 239 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shaping.rs:658:60 [INFO] [stdout] | [INFO] [stdout] 658 | let (first, mid, last, first_segs, last_segs) = if let Some(l) = &inline_constraints { [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/shaping.rs:660:9 [INFO] [stdout] | [INFO] [stdout] 660 | } 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] 658 ~ let (first, mid, last, first_segs, last_segs) = match &inline_constraints { Some(l) => { [INFO] [stdout] 659 | (l.first, l.mid_clear, l.last, &*l.first_segs, &*l.last_segs) [INFO] [stdout] 660 ~ } _ => { [INFO] [stdout] 661 | // calculate our own first & last [INFO] [stdout] ... [INFO] [stdout] 699 | (first, Px(0), last, &EMPTY, &EMPTY) [INFO] [stdout] 700 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shaping.rs:1393:24 [INFO] [stdout] | [INFO] [stdout] 1393 | if let Some(l) = included_glyphs.last_mut() { [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/shaping.rs:1401:21 [INFO] [stdout] | [INFO] [stdout] 1401 | } 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] 1393 ~ match included_glyphs.last_mut() { Some(l) => { [INFO] [stdout] 1394 | if l.end == glyphs_range.start { [INFO] [stdout] ... [INFO] [stdout] 1400 | } [INFO] [stdout] 1401 ~ } _ => { [INFO] [stdout] 1402 | included_glyphs.push(glyphs_range.clone()); [INFO] [stdout] 1403 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator> + '_` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/shaping.rs:1544:85 [INFO] [stdout] | [INFO] [stdout] 1544 | pub fn highlight_rects(&self, range: ops::Range, full_txt: &str) -> 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/shaping.rs:1544:76 [INFO] [stdout] | [INFO] [stdout] 1544 | pub fn highlight_rects(&self, range: ops::Range, full_txt: &str) -> 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] 1544 | pub fn highlight_rects(&self, range: ops::Range, full_txt: &str) -> impl Iterator + '_ + use<'_> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shaping.rs:1728:23 [INFO] [stdout] | [INFO] [stdout] 1728 | } else if let Some((font, glyphs)) = self.glyphs.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/shaping.rs:1739:13 [INFO] [stdout] | [INFO] [stdout] 1739 | } 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] 1728 ~ } else { match self.glyphs.next() { Some((font, glyphs)) => { [INFO] [stdout] 1729 | // normal iter [INFO] [stdout] ... [INFO] [stdout] 1738 | } [INFO] [stdout] 1739 ~ } _ => { [INFO] [stdout] 1740 | return None; [INFO] [stdout] 1741 ~ }}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shaping.rs:1806:16 [INFO] [stdout] | [INFO] [stdout] 1806 | if let Some(r) = r { [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/shaping.rs:1808:13 [INFO] [stdout] | [INFO] [stdout] 1808 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1806 ~ match r { Some(r) => { [INFO] [stdout] 1807 | return r; [INFO] [stdout] 1808 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shaping.rs:2464:24 [INFO] [stdout] | [INFO] [stdout] 2464 | let g_len = if let Some(l) = self.out.segments.0.last() { [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/shaping.rs:2466:9 [INFO] [stdout] | [INFO] [stdout] 2466 | } 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] 2464 ~ let g_len = match self.out.segments.0.last() { Some(l) => { [INFO] [stdout] 2465 | self.out.glyphs.len() - l.end [INFO] [stdout] 2466 ~ } _ => { [INFO] [stdout] 2467 | self.out.glyphs.len() [INFO] [stdout] 2468 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator, zng_layout::unit::Px)> + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/shaping.rs:2673:44 [INFO] [stdout] | [INFO] [stdout] 2673 | pub fn underline_skip_spaces(&self) -> impl Iterator + '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/shaping.rs:2673:34 [INFO] [stdout] | [INFO] [stdout] 2673 | pub fn underline_skip_spaces(&self) -> impl Iterator + 'a { [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] 2673 | pub fn underline_skip_spaces(&self) -> impl Iterator + 'a + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator, zng_layout::unit::Px)> + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/shaping.rs:2682:52 [INFO] [stdout] | [INFO] [stdout] 2682 | pub fn underline_descent_skip_spaces(&self) -> impl Iterator + '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/shaping.rs:2682:42 [INFO] [stdout] | [INFO] [stdout] 2682 | pub fn underline_descent_skip_spaces(&self) -> impl Iterator + 'a { [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] 2682 | pub fn underline_descent_skip_spaces(&self) -> impl Iterator + 'a + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator, zng_layout::unit::Px)> + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/shaping.rs:2691:59 [INFO] [stdout] | [INFO] [stdout] 2691 | pub fn underline_skip_glyphs(&self, thickness: Px) -> impl Iterator + '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/shaping.rs:2691:34 [INFO] [stdout] | [INFO] [stdout] 2691 | pub fn underline_skip_glyphs(&self, thickness: Px) -> impl Iterator + 'a { [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] 2691 | pub fn underline_skip_glyphs(&self, thickness: Px) -> impl Iterator + 'a + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator, zng_layout::unit::Px)> + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/shaping.rs:2700:70 [INFO] [stdout] | [INFO] [stdout] 2700 | pub fn underline_skip_glyphs_and_spaces(&self, thickness: Px) -> impl Iterator + '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/shaping.rs:2700:45 [INFO] [stdout] | [INFO] [stdout] 2700 | pub fn underline_skip_glyphs_and_spaces(&self, thickness: Px) -> impl Iterator + 'a { [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] 2700 | pub fn underline_skip_glyphs_and_spaces(&self, thickness: Px) -> impl Iterator + 'a + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/shaping.rs:2724:29 [INFO] [stdout] | [INFO] [stdout] 2724 | pub fn glyphs(&self) -> impl Iterator + '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/shaping.rs:2724:19 [INFO] [stdout] | [INFO] [stdout] 2724 | pub fn glyphs(&self) -> impl Iterator + 'a { [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] 2724 | pub fn glyphs(&self) -> impl Iterator + 'a + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator + 'a)> + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/shaping.rs:2730:44 [INFO] [stdout] | [INFO] [stdout] 2730 | pub fn glyphs_with_x_advance(&self) -> impl Iterator + 'a)> + '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/shaping.rs:2730:34 [INFO] [stdout] | [INFO] [stdout] 2730 | pub fn glyphs_with_x_advance(&self) -> impl Iterator + 'a)> + 'a { [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] 2730 | pub fn glyphs_with_x_advance(&self) -> impl Iterator + 'a)> + 'a + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/shaping.rs:2730:76 [INFO] [stdout] | [INFO] [stdout] 2730 | pub fn glyphs_with_x_advance(&self) -> impl Iterator + 'a)> + '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/shaping.rs:2730:34 [INFO] [stdout] | [INFO] [stdout] 2730 | pub fn glyphs_with_x_advance(&self) -> impl Iterator + 'a)> + 'a { [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] 2730 | pub fn glyphs_with_x_advance(&self) -> impl Iterator + 'a + use<'a>)> + 'a { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl DoubleEndedIterator + Iterator> + ExactSizeIterator` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/shaping.rs:2739:27 [INFO] [stdout] | [INFO] [stdout] 2739 | pub fn segs(&self) -> impl DoubleEndedIterator> + ExactSizeIterator { [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/shaping.rs:2739:17 [INFO] [stdout] | [INFO] [stdout] 2739 | pub fn segs(&self) -> impl DoubleEndedIterator> + ExactSizeIterator { [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] 2739 | pub fn segs(&self) -> impl DoubleEndedIterator> + ExactSizeIterator + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/shaping.rs:3058:29 [INFO] [stdout] | [INFO] [stdout] 3058 | pub fn glyphs(&self) -> 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/shaping.rs:3058:19 [INFO] [stdout] | [INFO] [stdout] 3058 | pub fn glyphs(&self) -> 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] 3058 | pub fn glyphs(&self) -> impl Iterator + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator + 'a)> + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/shaping.rs:3099:44 [INFO] [stdout] | [INFO] [stdout] 3099 | pub fn glyphs_with_x_advance(&self) -> impl Iterator + 'a)> + '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/shaping.rs:3099:34 [INFO] [stdout] | [INFO] [stdout] 3099 | pub fn glyphs_with_x_advance(&self) -> impl Iterator + 'a)> + 'a { [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] 3099 | pub fn glyphs_with_x_advance(&self) -> impl Iterator + 'a)> + 'a + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/shaping.rs:3099:76 [INFO] [stdout] | [INFO] [stdout] 3099 | pub fn glyphs_with_x_advance(&self) -> impl Iterator + 'a)> + '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/shaping.rs:3099:34 [INFO] [stdout] | [INFO] [stdout] 3099 | pub fn glyphs_with_x_advance(&self) -> impl Iterator + 'a)> + 'a { [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] 3099 | pub fn glyphs_with_x_advance(&self) -> impl Iterator + 'a + use<'a>)> + 'a { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 32.65s [INFO] [stdout] warning: `impl Iterator, zng_layout::unit::Px)> + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/shaping.rs:3238:59 [INFO] [stdout] | [INFO] [stdout] 3238 | pub fn underline_skip_glyphs(&self, thickness: Px) -> impl Iterator + '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/shaping.rs:3238:34 [INFO] [stdout] | [INFO] [stdout] 3238 | pub fn underline_skip_glyphs(&self, thickness: Px) -> impl Iterator + 'a { [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] 3238 | pub fn underline_skip_glyphs(&self, thickness: Px) -> impl Iterator + 'a + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shaping.rs:3283:24 [INFO] [stdout] | [INFO] [stdout] 3283 | if let Some((font, mut glyphs_with_adv)) = continuation { [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/shaping.rs:3300:21 [INFO] [stdout] | [INFO] [stdout] 3300 | } 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] 3283 ~ match continuation { Some((font, mut glyphs_with_adv)) => { [INFO] [stdout] 3284 | for (g, a) in &mut glyphs_with_adv { [INFO] [stdout] ... [INFO] [stdout] 3299 | } [INFO] [stdout] 3300 ~ } _ => { [INFO] [stdout] 3301 | let r = self.line(); [INFO] [stdout] 3302 | self.width = 0.0; [INFO] [stdout] 3303 | return r; [INFO] [stdout] 3304 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 31 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Checking zng-ext-font v0.4.6 (/tmp/fixit) [INFO] [stdout] error[E0515]: cannot return value referencing function parameter `l` [INFO] [stdout] --> src/shaping.rs:1552:31 [INFO] [stdout] | [INFO] [stdout] 1552 | .flat_map(|l| l.segs()) [INFO] [stdout] | -^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | returns a value referencing data owned by the current function [INFO] [stdout] | `l` is borrowed here [INFO] [stdout] | [INFO] [stdout] = help: use `.collect()` to allocate the iterator [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing function parameter `l` [INFO] [stdout] --> src/shaping.rs:1552:31 [INFO] [stdout] | [INFO] [stdout] 1552 | .flat_map(|l| l.segs()) [INFO] [stdout] | -^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | returns a value referencing data owned by the current function [INFO] [stdout] | `l` is borrowed here [INFO] [stdout] | [INFO] [stdout] = help: use `.collect()` to allocate the iterator [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: lifetime may not live long enough [INFO] [stdout] --> src/shaping.rs:2674:9 [INFO] [stdout] | [INFO] [stdout] 2595 | impl<'a> ShapedLine<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] ... [INFO] [stdout] 2673 | pub fn underline_skip_spaces(&self) -> impl Iterator + 'a { [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] 2674 | MergingLineIter::new(self.segs().filter(|s| s.kind().is_word()).map(|s| s.underline())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method was supposed to return data with lifetime `'a` but it is returning data with lifetime `'1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: lifetime may not live long enough [INFO] [stdout] --> src/shaping.rs:2674:9 [INFO] [stdout] | [INFO] [stdout] 2595 | impl<'a> ShapedLine<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] ... [INFO] [stdout] 2673 | pub fn underline_skip_spaces(&self) -> impl Iterator + 'a { [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] 2674 | MergingLineIter::new(self.segs().filter(|s| s.kind().is_word()).map(|s| s.underline())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method was supposed to return data with lifetime `'a` but it is returning data with lifetime `'1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: lifetime may not live long enough [INFO] [stdout] --> src/shaping.rs:2683:9 [INFO] [stdout] | [INFO] [stdout] 2595 | impl<'a> ShapedLine<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] ... [INFO] [stdout] 2682 | pub fn underline_descent_skip_spaces(&self) -> impl Iterator + 'a { [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] 2683 | MergingLineIter::new(self.segs().filter(|s| s.kind().is_word()).map(|s| s.underline_descent())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method was supposed to return data with lifetime `'a` but it is returning data with lifetime `'1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: lifetime may not live long enough [INFO] [stdout] --> src/shaping.rs:2683:9 [INFO] [stdout] | [INFO] [stdout] 2595 | impl<'a> ShapedLine<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] ... [INFO] [stdout] 2682 | pub fn underline_descent_skip_spaces(&self) -> impl Iterator + 'a { [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] 2683 | MergingLineIter::new(self.segs().filter(|s| s.kind().is_word()).map(|s| s.underline_descent())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method was supposed to return data with lifetime `'a` but it is returning data with lifetime `'1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing function parameter `s` [INFO] [stdout] --> src/shaping.rs:2692:60 [INFO] [stdout] | [INFO] [stdout] 2692 | MergingLineIter::new(self.segs().flat_map(move |s| s.underline_skip_glyphs(thickness))) [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | returns a value referencing data owned by the current function [INFO] [stdout] | `s` is borrowed here [INFO] [stdout] | [INFO] [stdout] = help: use `.collect()` to allocate the iterator [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: lifetime may not live long enough [INFO] [stdout] --> src/shaping.rs:2692:9 [INFO] [stdout] | [INFO] [stdout] 2595 | impl<'a> ShapedLine<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] ... [INFO] [stdout] 2691 | pub fn underline_skip_glyphs(&self, thickness: Px) -> impl Iterator + 'a { [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] 2692 | MergingLineIter::new(self.segs().flat_map(move |s| s.underline_skip_glyphs(thickness))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method was supposed to return data with lifetime `'a` but it is returning data with lifetime `'1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing function parameter `s` [INFO] [stdout] --> src/shaping.rs:2692:60 [INFO] [stdout] | [INFO] [stdout] 2692 | MergingLineIter::new(self.segs().flat_map(move |s| s.underline_skip_glyphs(thickness))) [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | returns a value referencing data owned by the current function [INFO] [stdout] | `s` is borrowed here [INFO] [stdout] | [INFO] [stdout] = help: use `.collect()` to allocate the iterator [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: lifetime may not live long enough [INFO] [stdout] --> src/shaping.rs:2692:9 [INFO] [stdout] | [INFO] [stdout] 2595 | impl<'a> ShapedLine<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] ... [INFO] [stdout] 2691 | pub fn underline_skip_glyphs(&self, thickness: Px) -> impl Iterator + 'a { [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] 2692 | MergingLineIter::new(self.segs().flat_map(move |s| s.underline_skip_glyphs(thickness))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method was supposed to return data with lifetime `'a` but it is returning data with lifetime `'1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing function parameter `s` [INFO] [stdout] --> src/shaping.rs:2704:36 [INFO] [stdout] | [INFO] [stdout] 2704 | .flat_map(move |s| s.underline_skip_glyphs(thickness)), [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | returns a value referencing data owned by the current function [INFO] [stdout] | `s` is borrowed here [INFO] [stdout] | [INFO] [stdout] = help: use `.collect()` to allocate the iterator [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: lifetime may not live long enough [INFO] [stdout] --> src/shaping.rs:2701:9 [INFO] [stdout] | [INFO] [stdout] 2595 | impl<'a> ShapedLine<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] ... [INFO] [stdout] 2700 | pub fn underline_skip_glyphs_and_spaces(&self, thickness: Px) -> impl Iterator + 'a { [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] 2701 | / MergingLineIter::new( [INFO] [stdout] 2702 | | self.segs() [INFO] [stdout] 2703 | | .filter(|s| s.kind().is_word()) [INFO] [stdout] 2704 | | .flat_map(move |s| s.underline_skip_glyphs(thickness)), [INFO] [stdout] 2705 | | ) [INFO] [stdout] | |_________^ method was supposed to return data with lifetime `'a` but it is returning data with lifetime `'1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing function parameter `s` [INFO] [stdout] --> src/shaping.rs:2704:36 [INFO] [stdout] | [INFO] [stdout] 2704 | .flat_map(move |s| s.underline_skip_glyphs(thickness)), [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | returns a value referencing data owned by the current function [INFO] [stdout] | `s` is borrowed here [INFO] [stdout] | [INFO] [stdout] = help: use `.collect()` to allocate the iterator [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing function parameter `s` [INFO] [stdout] --> src/shaping.rs:2731:34 [INFO] [stdout] | [INFO] [stdout] 2731 | self.segs().flat_map(|s| s.glyphs_with_x_advance()) [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | returns a value referencing data owned by the current function [INFO] [stdout] | `s` is borrowed here [INFO] [stdout] | [INFO] [stdout] = help: use `.collect()` to allocate the iterator [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: lifetime may not live long enough [INFO] [stdout] --> src/shaping.rs:2701:9 [INFO] [stdout] | [INFO] [stdout] 2595 | impl<'a> ShapedLine<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] ... [INFO] [stdout] 2700 | pub fn underline_skip_glyphs_and_spaces(&self, thickness: Px) -> impl Iterator + 'a { [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] 2701 | / MergingLineIter::new( [INFO] [stdout] 2702 | | self.segs() [INFO] [stdout] 2703 | | .filter(|s| s.kind().is_word()) [INFO] [stdout] 2704 | | .flat_map(move |s| s.underline_skip_glyphs(thickness)), [INFO] [stdout] 2705 | | ) [INFO] [stdout] | |_________^ method was supposed to return data with lifetime `'a` but it is returning data with lifetime `'1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: lifetime may not live long enough [INFO] [stdout] --> src/shaping.rs:2731:9 [INFO] [stdout] | [INFO] [stdout] 2595 | impl<'a> ShapedLine<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] ... [INFO] [stdout] 2730 | pub fn glyphs_with_x_advance(&self) -> impl Iterator + 'a)> + 'a { [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] 2731 | self.segs().flat_map(|s| s.glyphs_with_x_advance()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method was supposed to return data with lifetime `'a` but it is returning data with lifetime `'1` [INFO] [stdout] | [INFO] [stdout] help: consider adding 'move' keyword before the nested closure [INFO] [stdout] | [INFO] [stdout] 2731 | self.segs().flat_map(move |s| s.glyphs_with_x_advance()) [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing function parameter `s` [INFO] [stdout] --> src/shaping.rs:2731:34 [INFO] [stdout] | [INFO] [stdout] 2731 | self.segs().flat_map(|s| s.glyphs_with_x_advance()) [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | returns a value referencing data owned by the current function [INFO] [stdout] | `s` is borrowed here [INFO] [stdout] | [INFO] [stdout] = help: use `.collect()` to allocate the iterator [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: lifetime may not live long enough [INFO] [stdout] --> src/shaping.rs:2731:9 [INFO] [stdout] | [INFO] [stdout] 2595 | impl<'a> ShapedLine<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] ... [INFO] [stdout] 2730 | pub fn glyphs_with_x_advance(&self) -> impl Iterator + 'a)> + 'a { [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] 2731 | self.segs().flat_map(|s| s.glyphs_with_x_advance()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method was supposed to return data with lifetime `'a` but it is returning data with lifetime `'1` [INFO] [stdout] | [INFO] [stdout] help: consider adding 'move' keyword before the nested closure [INFO] [stdout] | [INFO] [stdout] 2731 | self.segs().flat_map(move |s| s.glyphs_with_x_advance()) [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 9 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0515`. [INFO] [stdout] [INFO] [stderr] error: could not compile `zng-ext-font` (lib) due to 10 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: aborting due to 9 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0515`. [INFO] [stdout] [INFO] [stderr] error: could not compile `zng-ext-font` (lib test) due to 10 previous errors [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" "2473f413e3768e98c5b53257569f669c882bb9fca6b88c425bcf81f7911762bf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2473f413e3768e98c5b53257569f669c882bb9fca6b88c425bcf81f7911762bf", kill_on_drop: false }` [INFO] [stdout] 2473f413e3768e98c5b53257569f669c882bb9fca6b88c425bcf81f7911762bf