rust icon indicating copy to clipboard operation
rust copied to clipboard

Split elided_lifetime_in_paths into tied and untied

Open shepmaster opened this issue 1 year ago • 8 comments

Before merging

  • [ ] Discuss "tied" / "untied" terminology
  • [ ] Discuss "deprecated" terminology
  • [ ] Discuss the async fn hard error case.

Types that contain a reference can be confusing when lifetime elision occurs:

// Confusing
fn foo(_: &u8) -> Bar { todo!() }

// Less confusing
fn foo(_: &u8) -> Bar<'_> { todo!() }

However, the previous lint did not distinguish when these types were not "tying" lifetimes across the function inputs / outputs:

// Maybe a little confusing
fn foo(_: Bar) {}

// More explicit but noisier with less obvious value
fn foo(_: Bar<'_>) {}

We now report different lints for each case, hopefully paving the way to marking the first case (when lifetimes are tied together) as warn-by-default (#91639).

shepmaster avatar Feb 08 '24 19:02 shepmaster

r? @pnkfelix

rustbot has assigned @pnkfelix. They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

rustbot avatar Feb 08 '24 19:02 rustbot

The job mingw-check failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
    Checking rustc_query_impl v0.0.0 (/checkout/compiler/rustc_query_impl)
error: unused variable: `e`
    --> compiler/rustc_resolve/src/late.rs:2055:24
     |
2055 |             (true, Err(e)) => None,
     |                        ^ help: if this is intentional, prefix it with an underscore: `_e`
     = note: `-D unused-variables` implied by `-D warnings`
     = help: to override `-D warnings` add `#[allow(unused_variables)]`

error: could not compile `rustc_resolve` (lib) due to 1 previous error

rust-log-analyzer avatar Feb 08 '24 19:02 rust-log-analyzer

As I've now tried to add this test twice and to help prevent trying to add it again... this fails because elision can't take place:

fn top_level_nested_to_top_level_nested(v: &ContainsLifetime) -> &ContainsLifetime { v }
error[E0106]: missing lifetime specifiers
 --> src/lib.rs:3:66
  |
3 | fn top_level_nested_to_top_level_nested(v: &ContainsLifetime) -> &ContainsLifetime {
  |                                            -----------------     ^^^^^^^^^^^^^^^^^ expected named lifetime parameter
  |                                                                  |
  |                                                                  expected named lifetime parameter
  |

shepmaster avatar Feb 09 '24 19:02 shepmaster

The job x86_64-gnu-llvm-16 failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
#12 writing image sha256:ef78e4052554b2d6afacb68ea408d156c006d73d757b419076c87e814dc738bb done
#12 naming to docker.io/library/rust-ci done
#12 DONE 10.0s
##[endgroup]
Setting extra environment values for docker:  --env ENABLE_GCC_CODEGEN=1 --env GCC_EXEC_PREFIX=/usr/lib/gcc/
[CI_JOB_NAME=x86_64-gnu-llvm-16]
##[group]Clock drift check
  local time: Fri Feb  9 19:42:04 UTC 2024
  network time: Fri, 09 Feb 2024 19:42:04 GMT
  network time: Fri, 09 Feb 2024 19:42:04 GMT
##[endgroup]
sccache: Starting the server...
##[group]Configure the build
configure: processing command line
configure: 
configure: build.configure-args := ['--build=x86_64-unknown-linux-gnu', '--llvm-root=/usr/lib/llvm-16', '--enable-llvm-link-shared', '--set', 'rust.thin-lto-import-instr-limit=10', '--set', 'change-id=99999999', '--enable-verbose-configure', '--enable-sccache', '--disable-manage-submodules', '--enable-locked-deps', '--enable-cargo-native-static', '--set', 'rust.codegen-units-std=1', '--set', 'dist.compression-profile=balanced', '--dist-compression-formats=xz', '--set', 'build.optimized-compiler-builtins', '--disable-dist-src', '--release-channel=nightly', '--enable-debug-assertions', '--enable-overflow-checks', '--enable-llvm-assertions', '--set', 'rust.verify-llvm-ir', '--set', 'rust.codegen-backends=llvm,cranelift,gcc', '--set', 'llvm.static-libstdcpp', '--enable-new-symbol-mangling']
configure: target.x86_64-unknown-linux-gnu.llvm-config := /usr/lib/llvm-16/bin/llvm-config
configure: llvm.link-shared     := True
configure: rust.thin-lto-import-instr-limit := 10
configure: change-id            := 99999999
---
##[endgroup]
Testing GCC stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
   Compiling y v0.1.0 (/checkout/compiler/rustc_codegen_gcc/build_system)
    Finished release [optimized] target(s) in 1.44s
     Running `/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-codegen/x86_64-unknown-linux-gnu/release/y test --use-system-gcc --use-backend gcc --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/cg_gcc --release --no-default-features --mini-tests --std-tests`
Using system GCC
Using system GCC
[BUILD] example
[AOT] mini_core_hello_world
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/cg_gcc/mini_core_hello_world
abc
---
   Compiling lint-docs v0.1.0 (/checkout/src/tools/lint-docs)
    Finished release [optimized] target(s) in 3.55s
##[endgroup]
##[group]Running stage2 lint-docs (x86_64-unknown-linux-gnu)
warning: the code example in lint `elided_lifetimes_in_paths_tied` in /checkout/compiler/rustc_lint_defs/src/builtin.rs failed to generate the expected output: did not find lint `elided_lifetimes_in_paths_tied` in output of example, got:
error[E0106]: missing lifetime specifier
##[error] --> lint_example.rs:8:20
  |
  |
8 | fn foo(x: &Foo) -> &u32 {
  |           ----     ^ expected named lifetime parameter
  |
  = help: this function's return type contains a borrowed value, but the signature does not say which one of `x`'s 2 lifetimes it is borrowed from
help: consider introducing a named lifetime parameter
  |
8 | fn foo<'a>(x: &'a Foo<'a>) -> &'a u32 {
  |       ++++     ++    ++++      ++

error: hidden lifetime parameters in types are deprecated
##[error] --> lint_example.rs:8:12
  |
  |
8 | fn foo(x: &Foo) -> &u32 {
  |            ^^^ expected lifetime parameter
note: the lint level is defined here
 --> lint_example.rs:1:9
  |
  |
1 | #![deny(elided_lifetimes_in_paths)]
  |         ^^^^^^^^^^^^^^^^^^^^^^^^^
  = note: `#[deny(elided_lifetimes_in_paths_untied)]` implied by `#[deny(elided_lifetimes_in_paths)]`
help: indicate the anonymous lifetime
  |
8 | fn foo(x: &Foo<'_>) -> &u32 {



error[E0609]: no field `0` on type `&Foo<'_>`
##[error] --> lint_example.rs:9:8
9 |     &x.0
  |        ^ unknown field
  |
help: a field with a similar name exists
---
Some errors have detailed explanations: E0106, E0609.

For more information about an error, try `rustc --explain E0106`.

warning: lint group `elided-lifetimes-in-paths` is missing from the GROUP_DESCRIPTIONS list
If this is a new lint group, please update the GROUP_DESCRIPTIONS in src/tools/lint-docs/src/groups.rs
Rustbook (x86_64-unknown-linux-gnu) - rustc
Rustbook (x86_64-unknown-linux-gnu) - cargo
Rustbook (x86_64-unknown-linux-gnu) - clippy
Rustbook (x86_64-unknown-linux-gnu) - embedded-book
---
 finished in 1.547 seconds
##[endgroup]
Generating lint docs (x86_64-unknown-linux-gnu)
##[group]Running stage2 lint-docs (x86_64-unknown-linux-gnu)
error: failed to test example in lint docs for `elided_lifetimes_in_paths_tied` in /checkout/compiler/rustc_lint_defs/src/builtin.rs:1704: did not find lint `elided_lifetimes_in_paths_tied` in output of example, got:
error[E0106]: missing lifetime specifier
##[error] --> lint_example.rs:8:20
  |
  |
8 | fn foo(x: &Foo) -> &u32 {
  |           ----     ^ expected named lifetime parameter
  |
  = help: this function's return type contains a borrowed value, but the signature does not say which one of `x`'s 2 lifetimes it is borrowed from
help: consider introducing a named lifetime parameter
  |
8 | fn foo<'a>(x: &'a Foo<'a>) -> &'a u32 {
  |       ++++     ++    ++++      ++

error: hidden lifetime parameters in types are deprecated
##[error] --> lint_example.rs:8:12
  |
  |
8 | fn foo(x: &Foo) -> &u32 {
  |            ^^^ expected lifetime parameter
note: the lint level is defined here
 --> lint_example.rs:1:9
  |
  |
1 | #![deny(elided_lifetimes_in_paths)]
  |         ^^^^^^^^^^^^^^^^^^^^^^^^^
  = note: `#[deny(elided_lifetimes_in_paths_untied)]` implied by `#[deny(elided_lifetimes_in_paths)]`
help: indicate the anonymous lifetime
  |
8 | fn foo(x: &Foo<'_>) -> &u32 {



error[E0609]: no field `0` on type `&Foo<'_>`
##[error] --> lint_example.rs:9:8
9 |     &x.0
  |        ^ unknown field
  |
help: a field with a similar name exists
---
For more information about an error, try `rustc --explain E0106`.


This error was generated by the lint-docs tool.
This tool extracts documentation for lints from the source code and places
them in the rustc book. See the declare_lint! documentation
https://doc.rust-lang.org/nightly/nightly-rustc/rustc_lint_defs/macro.declare_lint.html


To re-run these tests, run: ./x.py test --keep-stage=0 src/tools/lint-docs
The --keep-stage flag should be used if you have already built the compiler

Build completed unsuccessfully in 0:36:14
  local time: Fri Feb  9 20:18:53 UTC 2024
  network time: Fri, 09 Feb 2024 20:18:53 GMT

rust-log-analyzer avatar Feb 09 '24 20:02 rust-log-analyzer

This generally looks fine. I had a few questions about what we expect to happen in a corner case.

~~r=me once those questions are addressed in some way~~ (update: well, maybe the r=me is premature given the list of questions that @shepmaster included in the PR description. But I don't think the PR is waiting on review at this point.)

@rustbot label: +S-waiting-on-author -S-waiting-on-review

pnkfelix avatar Feb 12 '24 20:02 pnkfelix

Oh, I suppose there is still an open question about the use of the "tied"/"untied" terminology, which I admit threw me for a loop at first. I'm not sure which group is the best to handle resolving that question, though. And I'm also not entirely sure that resolving that question should block landing this work.

Is resolving a question like that a matter for WG-diagnostics, or for T-lang?

pnkfelix avatar Feb 12 '24 20:02 pnkfelix

Is resolving a question like that a matter for WG-diagnostics, or for T-lang?

That's a great question that I don't have an answer for. I posed it in the Zulip thread hoping there was some existing terminology. Unfortunately, no one seemed aware of one. "Tied" made some intuitive sense for the small handful of people I asked one-on-one.

It feels like this is something that we must have talked about before and potentially even documented somewhere, but 🤷

shepmaster avatar Feb 12 '24 20:02 shepmaster

:umbrella: The latest upstream changes (presumably #121780) made this pull request unmergeable. Please resolve the merge conflicts.

bors avatar Mar 05 '24 05:03 bors

:umbrella: The latest upstream changes (presumably #124417) made this pull request unmergeable. Please resolve the merge conflicts.

bors avatar May 22 '24 00:05 bors

@pnkfelix I'd like to request your assistance in figuring out what next steps I need to make to get this merged.

shepmaster avatar Aug 06 '24 18:08 shepmaster

The job x86_64-gnu-llvm-17 failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
------
 > importing cache manifest from ghcr.io/rust-lang/rust-ci-cache:3aacb9c90579defe09351ac5e8ee504359f8054da6326ff19038f1b7c90e3cb2aafe33685c6d9b76ee8d2ccbd187ca80c46ab5380485abdd8c0ce7d69cd8d8fd:
------
##[endgroup]
Setting extra environment values for docker:  --env ENABLE_GCC_CODEGEN=1 --env GCC_EXEC_PREFIX=/usr/lib/gcc/
[CI_JOB_NAME=x86_64-gnu-llvm-17]
---
sccache: Starting the server...
##[group]Configure the build
configure: processing command line
configure: 
configure: build.configure-args := ['--build=x86_64-unknown-linux-gnu', '--llvm-root=/usr/lib/llvm-17', '--enable-llvm-link-shared', '--set', 'rust.thin-lto-import-instr-limit=10', '--set', 'change-id=99999999', '--enable-verbose-configure', '--enable-sccache', '--disable-manage-submodules', '--enable-locked-deps', '--enable-cargo-native-static', '--set', 'rust.codegen-units-std=1', '--set', 'dist.compression-profile=balanced', '--dist-compression-formats=xz', '--set', 'rust.lld=false', '--disable-dist-src', '--release-channel=nightly', '--enable-debug-assertions', '--enable-overflow-checks', '--enable-llvm-assertions', '--set', 'rust.verify-llvm-ir', '--set', 'rust.codegen-backends=llvm,cranelift,gcc', '--set', 'llvm.static-libstdcpp', '--enable-new-symbol-mangling']
configure: target.x86_64-unknown-linux-gnu.llvm-config := /usr/lib/llvm-17/bin/llvm-config
configure: llvm.link-shared     := True
configure: rust.thin-lto-import-instr-limit := 10
configure: change-id            := 99999999
---

11    |
12 LL | #[deny(elided_lifetimes_in_paths)]
13    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
+    = note: `#[deny(elided_lifetimes_in_paths_untied)]` implied by `#[deny(elided_lifetimes_in_paths)]`
15    |
15    |
16 LL |     fn test2(_: super::Foo<'_>) {}

The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/lifetimes/elided-lint-in-mod/elided-lint-in-mod.stderr
To update references, rerun the tests and pass the `--bless` flag
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args lifetimes/elided-lint-in-mod.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/lifetimes/elided-lint-in-mod.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2" "--target=x86_64-unknown-linux-gnu" "--check-cfg" "cfg(FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/lifetimes/elided-lint-in-mod" "-A" "unused" "-A" "internal_features" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/lifetimes/elided-lint-in-mod/auxiliary"
--- stderr -------------------------------
error: hidden lifetime parameters in types are deprecated
##[error]  --> /checkout/tests/ui/lifetimes/elided-lint-in-mod.rs:7:24
   |
   |
LL |     fn test2(_: super::Foo) {}
   |                 |
   |                 expected lifetime parameter
   |
note: the lint level is defined here
note: the lint level is defined here
  --> /checkout/tests/ui/lifetimes/elided-lint-in-mod.rs:5:8
   |
LL | #[deny(elided_lifetimes_in_paths)]
   |        ^^^^^^^^^^^^^^^^^^^^^^^^^
   = note: `#[deny(elided_lifetimes_in_paths_untied)]` implied by `#[deny(elided_lifetimes_in_paths)]`
   |
   |
LL |     fn test2(_: super::Foo<'_>) {}

error: aborting due to 1 previous error
------------------------------------------

rust-log-analyzer avatar Aug 06 '24 19:08 rust-log-analyzer

Addressed @estebank's concerns in this force push.

shepmaster avatar Aug 07 '24 18:08 shepmaster

The job x86_64-gnu-llvm-17 failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
------
 > importing cache manifest from ghcr.io/rust-lang/rust-ci-cache:3aacb9c90579defe09351ac5e8ee504359f8054da6326ff19038f1b7c90e3cb2aafe33685c6d9b76ee8d2ccbd187ca80c46ab5380485abdd8c0ce7d69cd8d8fd:
------
##[endgroup]
Setting extra environment values for docker:  --env ENABLE_GCC_CODEGEN=1 --env GCC_EXEC_PREFIX=/usr/lib/gcc/
[CI_JOB_NAME=x86_64-gnu-llvm-17]
---
sccache: Starting the server...
##[group]Configure the build
configure: processing command line
configure: 
configure: build.configure-args := ['--build=x86_64-unknown-linux-gnu', '--llvm-root=/usr/lib/llvm-17', '--enable-llvm-link-shared', '--set', 'rust.thin-lto-import-instr-limit=10', '--set', 'change-id=99999999', '--enable-verbose-configure', '--enable-sccache', '--disable-manage-submodules', '--enable-locked-deps', '--enable-cargo-native-static', '--set', 'rust.codegen-units-std=1', '--set', 'dist.compression-profile=balanced', '--dist-compression-formats=xz', '--set', 'rust.lld=false', '--disable-dist-src', '--release-channel=nightly', '--enable-debug-assertions', '--enable-overflow-checks', '--enable-llvm-assertions', '--set', 'rust.verify-llvm-ir', '--set', 'rust.codegen-backends=llvm,cranelift,gcc', '--set', 'llvm.static-libstdcpp', '--enable-new-symbol-mangling']
configure: target.x86_64-unknown-linux-gnu.llvm-config := /usr/lib/llvm-17/bin/llvm-config
configure: llvm.link-shared     := True
configure: rust.thin-lto-import-instr-limit := 10
configure: change-id            := 99999999
---
  Downloaded boml v0.3.1
   Compiling boml v0.3.1
   Compiling y v0.1.0 (/checkout/compiler/rustc_codegen_gcc/build_system)
    Finished `release` profile [optimized] target(s) in 3.97s
     Running `/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-codegen/x86_64-unknown-linux-gnu/release/y test --use-system-gcc --use-backend gcc --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/cg_gcc --release --mini-tests --std-tests`
Using system GCC
[BUILD] example
[AOT] mini_core_hello_world
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/cg_gcc/mini_core_hello_world
abc
---
##[group]Building stage0 tool linkchecker (x86_64-unknown-linux-gnu)
    Finished `release` profile [optimized] target(s) in 0.13s
##[endgroup]
##[group]Testing stage0 Linkcheck (x86_64-unknown-linux-gnu)
rustc/print.html:1854: broken link fragment `#elided-lifetimes-in-paths` pointing to `rustc/lints/listing/allowed-by-default.html`
rustc/lints/listing/allowed-by-default.html:481: broken link fragment `#elided-lifetimes-in-paths` pointing to `rustc/lints/listing/allowed-by-default.html`
number of HTML files scanned: 43515
number of HTML redirects found: 13712
number of links checked: 3140759
number of links ignored due to external: 157018

rust-log-analyzer avatar Aug 07 '24 18:08 rust-log-analyzer

:umbrella: The latest upstream changes (presumably #126158) made this pull request unmergeable. Please resolve the merge conflicts.

bors avatar Aug 07 '24 20:08 bors

Force pushed to try and fix the build and then another force push to address the conflict.

shepmaster avatar Aug 09 '24 00:08 shepmaster

The job x86_64-gnu-llvm-17 failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
------
 > importing cache manifest from ghcr.io/rust-lang/rust-ci-cache:3aacb9c90579defe09351ac5e8ee504359f8054da6326ff19038f1b7c90e3cb2aafe33685c6d9b76ee8d2ccbd187ca80c46ab5380485abdd8c0ce7d69cd8d8fd:
------
##[endgroup]
Setting extra environment values for docker:  --env ENABLE_GCC_CODEGEN=1 --env GCC_EXEC_PREFIX=/usr/lib/gcc/
[CI_JOB_NAME=x86_64-gnu-llvm-17]
---
sccache: Starting the server...
##[group]Configure the build
configure: processing command line
configure: 
configure: build.configure-args := ['--build=x86_64-unknown-linux-gnu', '--llvm-root=/usr/lib/llvm-17', '--enable-llvm-link-shared', '--set', 'rust.thin-lto-import-instr-limit=10', '--set', 'change-id=99999999', '--enable-verbose-configure', '--enable-sccache', '--disable-manage-submodules', '--enable-locked-deps', '--enable-cargo-native-static', '--set', 'rust.codegen-units-std=1', '--set', 'dist.compression-profile=balanced', '--dist-compression-formats=xz', '--set', 'rust.lld=false', '--disable-dist-src', '--release-channel=nightly', '--enable-debug-assertions', '--enable-overflow-checks', '--enable-llvm-assertions', '--set', 'rust.verify-llvm-ir', '--set', 'rust.codegen-backends=llvm,cranelift,gcc', '--set', 'llvm.static-libstdcpp', '--enable-new-symbol-mangling']
configure: target.x86_64-unknown-linux-gnu.llvm-config := /usr/lib/llvm-17/bin/llvm-config
configure: llvm.link-shared     := True
configure: rust.thin-lto-import-instr-limit := 10
configure: change-id            := 99999999
---
diff of stderr:

5    |            ^^^ expected lifetime parameter
6    |
7    = note: `--force-warn elided-lifetimes-in-paths-untied` implied by `--force-warn elided-lifetimes-in-paths`
-    = help: to override `--force-warn elided-lifetimes-in-paths` add `#[allow(elided_lifetimes_in_paths_untied)]`
10    |
10    |
11 LL | fn foo(x: &Foo<'_>) {}

The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/lint/force-warn/allowed-by-default-lint/allowed-by-default-lint.stderr
To update references, rerun the tests and pass the `--bless` flag
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args lint/force-warn/allowed-by-default-lint.rs`

error: 1 errors occurred comparing output.
status: exit status: 0
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/lint/force-warn/allowed-by-default-lint.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2" "--target=x86_64-unknown-linux-gnu" "--check-cfg" "cfg(FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/lint/force-warn/allowed-by-default-lint" "-A" "unused" "-A" "internal_features" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/lint/force-warn/allowed-by-default-lint/auxiliary" "--force-warn" "elided_lifetimes_in_paths"
--- stderr -------------------------------
warning: hidden lifetime parameters in types are deprecated
##[warning]  --> /checkout/tests/ui/lint/force-warn/allowed-by-default-lint.rs:9:12
   |
   |
LL | fn foo(x: &Foo) {}
   |
   |
   = note: `--force-warn elided-lifetimes-in-paths-untied` implied by `--force-warn elided-lifetimes-in-paths`
   |
   |
LL | fn foo(x: &Foo<'_>) {}

warning: 1 warning emitted
------------------------------------------

rust-log-analyzer avatar Aug 09 '24 01:08 rust-log-analyzer

Another force push to address test failures.

shepmaster avatar Aug 09 '24 16:08 shepmaster