rust/tests/ui/lifetimes
bors 71b68da1bd Auto merge of #139578 - ferrocene:pa-compiletest-edition, r=jieyouxu
Fix breakage when running compiletest with `--test-args=--edition=2015`

Compiletest has an `--edition` flag to change the default edition tests are run with. Unfortunately no test suite successfully executes when that flag is passed. If the edition is set to something greater than 2015 the breakage is expected, since the test suite currently supports only edition 2015 (Ferrous Systems will open an MCP about fixing that soonish). Surprisingly, the test suite is also broken if `--edition=2015` is passed to compiletest. This PR focuses on fixing the latter.

This PR fixes the two categories of failures happening when `--edition=2015` is passed:

* Some edition-specific tests set their edition through `//@ compile-flags` instead of `//@ edition`. Compiletest doesn't parse the compile flags, so it would see no `//@ edition` and add another `--edition` flag, leading to a rustc error.
* Compiletest would add the edition after `//@ compile-flags`, while some tests depend on flags passed to `//@ compile-flags` being the last flags in the rustc invocation.

Note that for the first category, I opted to manually go and replace all `//@ compile-flags` setting an edition with an explicit `//@ edition`. We could've changed compiletest to instead check whether an edition was set in `//@ compile-flags`, but I thought it was better to enforce a consistent way to set the edition in tests.

I also added the edition to the stamp, so that changing `--edition` results in tests being re-executed.

r? `@jieyouxu`
2025-04-11 10:53:45 +00:00
..
auxiliary Update tests to use new proc-macro header 2024-11-27 07:18:25 -08:00
lifetime-errors Remove special-casing for argument patterns in MIR typeck 2025-01-08 17:59:27 -08:00
raw Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
anonymize-unnamed-bound-vars-in-binders.rs [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
bare-trait-object-borrowck.rs [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
bare-trait-object.rs [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
borrowck-let-suggestion.rs
borrowck-let-suggestion.stderr More sophisticated span trimming 2025-02-21 00:41:17 +00:00
conflicting-bounds.rs UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
conflicting-bounds.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
copy_modulo_regions.rs
copy_modulo_regions.stderr point out unblamed constraints from `Copy`/`Sized` bounds in region errors 2025-01-06 16:12:11 -08:00
could-not-resolve-issue-121503.rs make `type_flags(ReError) & HAS_ERROR` 2024-03-20 17:29:58 +00:00
could-not-resolve-issue-121503.stderr Arbitrary self types v2: use Receiver trait 2024-12-11 11:59:12 +00:00
elided-lifetime-in-anon-const.rs [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
elided-lifetime-in-param-pat.rs [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
elided-lifetime-in-path-in-impl-Fn.rs [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
elided-lifetime-in-path-in-pat.rs [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
elided-lifetime-in-path-in-type-relative-expression.rs [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
elided-lint-in-mod.rs Remove crate_level_only from ELIDED_LIFETIMES_IN_PATHS 2024-07-30 16:42:53 -04:00
elided-lint-in-mod.stderr Remove crate_level_only from ELIDED_LIFETIMES_IN_PATHS 2024-07-30 16:42:53 -04:00
fullwidth-ampersand.rs
fullwidth-ampersand.stderr Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
issue-17728.rs Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
issue-17728.stderr Tweak suggested lifetimes to modify return type instead of `&self` receiver 2024-05-17 20:31:13 +00:00
issue-19707.rs Move tests 2024-02-13 18:08:25 -03:00
issue-19707.stderr Move tests 2024-02-13 18:08:25 -03:00
issue-26638.rs Do not recover missing lifetime with random in-scope lifetime 2025-03-03 05:57:55 +00:00
issue-26638.stderr Do not recover missing lifetime with random in-scope lifetime 2025-03-03 05:57:55 +00:00
issue-34979.rs
issue-34979.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
issue-36744-without-calls.rs [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
issue-54378.rs [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
issue-55796.rs
issue-55796.stderr
issue-64173-unused-lifetimes.rs improve diagnostics and bless tests 2023-05-05 21:42:54 +01:00
issue-64173-unused-lifetimes.stderr Improve the diagnostics for unused generic parameters 2024-02-01 16:18:03 +01:00
issue-67498.rs [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
issue-69314.fixed Stop proving outlives constraints on regions we already reported errors on 2024-05-29 09:27:07 +00:00
issue-69314.rs Stop proving outlives constraints on regions we already reported errors on 2024-05-29 09:27:07 +00:00
issue-69314.stderr Stop proving outlives constraints on regions we already reported errors on 2024-05-29 09:27:07 +00:00
issue-70917-lifetimes-in-fn-def.rs [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
issue-76168-hr-outlives-2.rs [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
issue-76168-hr-outlives-3.rs Consolidate WF for aliases 2024-03-14 12:17:00 -04:00
issue-76168-hr-outlives-3.stderr Tweak multispan rendering 2024-12-12 23:36:27 +00:00
issue-76168-hr-outlives.rs [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
issue-77175.rs [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
issue-79187-2.rs eagerly instantiate binders to avoid relying on `sub` 2024-03-14 17:19:40 +01:00
issue-79187-2.stderr eagerly instantiate binders to avoid relying on `sub` 2024-03-14 17:19:40 +01:00
issue-79187.rs eagerly instantiate binders to avoid relying on `sub` 2024-03-14 17:19:40 +01:00
issue-79187.stderr eagerly instantiate binders to avoid relying on `sub` 2024-03-14 17:19:40 +01:00
issue-83737-binders-across-types.rs replace `//@ compile-flags: --edition` with `//@ edition` 2025-04-10 09:56:37 +02:00
issue-83737-erasing-bound-vars.rs replace `//@ compile-flags: --edition` with `//@ edition` 2025-04-10 09:56:37 +02:00
issue-83753-invalid-associated-type-supertrait-hrtb.rs UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
issue-83753-invalid-associated-type-supertrait-hrtb.stderr Fix associated item removal suggestion 2024-07-17 21:30:40 +00:00
issue-83907-invalid-fn-like-path.rs UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
issue-83907-invalid-fn-like-path.stderr
issue-84398.rs [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
issue-84604.rs [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
issue-90170-elision-mismatch.fixed [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
issue-90170-elision-mismatch.rs [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
issue-90170-elision-mismatch.stderr Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
issue-90600-expected-return-static-indirect.rs `best_blame_constraint`: don't filter constraints by sup SCC 2025-01-06 16:08:29 -08:00
issue-90600-expected-return-static-indirect.stderr `best_blame_constraint`: don't filter constraints by sup SCC 2025-01-06 16:08:29 -08:00
issue-91763.rs Update tests to use new proc-macro header 2024-11-27 07:18:25 -08:00
issue-91763.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
issue-93911.rs [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
issue-95023.rs Re-enable `ConstArgKind::Path` lowering by default 2024-09-12 13:56:01 -04:00
issue-95023.stderr Re-enable `ConstArgKind::Path` lowering by default 2024-09-12 13:56:01 -04:00
issue-97193.rs
issue-97193.stderr
issue-97194.rs
issue-97194.stderr Tweak multispan rendering 2024-12-12 23:36:27 +00:00
issue-103582-hint-for-missing-lifetime-bound-on-trait-object-using-type-alias.fixed [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
issue-103582-hint-for-missing-lifetime-bound-on-trait-object-using-type-alias.rs [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
issue-103582-hint-for-missing-lifetime-bound-on-trait-object-using-type-alias.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
issue-104432-unused-lifetimes-in-expansion.rs [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
issue-105227.rs Bless test fallout 2024-08-17 12:43:25 -04:00
issue-105227.stderr Bless test fallout 2024-08-17 12:43:25 -04:00
issue-105507.fixed [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
issue-105507.rs [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
issue-105507.stderr Add 'static lifetime suggestion when GAT implied 'static requirement from HRTB 2023-01-17 11:52:45 -08:00
issue-105675.rs Fix obligation param and bless tests 2024-04-01 22:48:23 -04:00
issue-105675.stderr eagerly instantiate binders to avoid relying on `sub` 2024-03-14 17:19:40 +01:00
issue-107492-default-value-for-lifetime.rs Recover from default value for a lifetime in generic parameters. 2023-02-04 17:04:09 -06:00
issue-107492-default-value-for-lifetime.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
issue-107988.rs Don't trigger ICE for ReError when the other region is empty. 2023-02-26 20:47:18 -06:00
issue-107988.stderr Don't trigger ICE for ReError when the other region is empty. 2023-02-26 20:47:18 -06:00
lifetime-bound-will-change-warning.rs [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
lifetime-bound-will-change-warning.stderr
lifetime-doesnt-live-long-enough.rs
lifetime-doesnt-live-long-enough.stderr remove trailing dots 2023-10-08 10:06:17 +00:00
lifetime-elision-return-type-requires-explicit-lifetime.rs elided_named_lifetimes: bless & add tests 2024-08-31 15:35:42 +03:00
lifetime-elision-return-type-requires-explicit-lifetime.stderr elided_named_lifetimes: bless & add tests 2024-08-31 15:35:42 +03:00
lifetime-elision-return-type-trait.rs
lifetime-elision-return-type-trait.stderr Point at tail expression on rpit E0277 2024-11-02 03:08:04 +00:00
lifetime-mismatch-between-trait-and-impl.rs
lifetime-mismatch-between-trait-and-impl.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
lifetime-no-keyword.rs
lifetime-no-keyword.stderr
missing-lifetime-in-alias.rs Avoid silencing relevant follow-up errors 2024-01-09 21:08:16 +00:00
missing-lifetime-in-alias.stderr Merge collect_mod_item_types query into check_well_formed 2024-03-07 14:26:31 +00:00
nested-binder-print.rs
nested-binder-print.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
nested.rs [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
no_lending_iterators.rs Improve `AssocItem::descr`. 2025-04-11 11:03:08 +10:00
no_lending_iterators.stderr Improve `AssocItem::descr`. 2025-04-11 11:03:08 +10:00
noisy-follow-up-erro.rs Add regression test 2024-06-03 13:03:52 +00:00
noisy-follow-up-erro.stderr Revert suggestion verbosity change 2024-07-22 22:51:53 +00:00
re-empty-in-error.rs
re-empty-in-error.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
refcell-in-tail-expr.edition2021.stderr Update more 2024 tests to remove -Zunstable-options 2024-11-28 14:32:45 -08:00
refcell-in-tail-expr.rs Update more 2024 tests to remove -Zunstable-options 2024-11-28 14:32:45 -08:00
shadow.rs
shadow.stderr
shorter-tail-expr-lifetime.edition2021.stderr Update more 2024 tests to remove -Zunstable-options 2024-11-28 14:32:45 -08:00
shorter-tail-expr-lifetime.rs Update more 2024 tests to remove -Zunstable-options 2024-11-28 14:32:45 -08:00
static-typos.rs Suggest typo fix for static lifetime 2025-03-06 18:18:32 +00:00
static-typos.stderr Suggest typo fix for static lifetime 2025-03-06 18:18:32 +00:00
suggest-introducing-and-adding-missing-lifetime.fixed [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
suggest-introducing-and-adding-missing-lifetime.rs [AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
suggest-introducing-and-adding-missing-lifetime.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
tail-expr-in-nested-expr.rs Stabilize the 2024 edition 2024-11-22 11:12:15 -08:00
tail-expr-in-nested-expr.stderr Improve span when temporary receiver is dropped in edition 2024 2025-01-06 03:14:04 +00:00
tail-expr-lock-poisoning.rs tests: remove redundant `//@ ignore-{wasm,wasm32,emscripten}` 2025-02-03 22:27:17 +08:00
temporary-lifetime-extension.edition2021.run.stdout ensure that tail expr receive lifetime extension 2024-11-11 20:34:36 +08:00
temporary-lifetime-extension.edition2024.run.stdout ensure that tail expr receive lifetime extension 2024-11-11 20:34:36 +08:00
temporary-lifetime-extension.rs Update more 2024 tests to remove -Zunstable-options 2024-11-28 14:32:45 -08:00
undeclared-lifetime-used-in-debug-macro-issue-70152.rs
undeclared-lifetime-used-in-debug-macro-issue-70152.stderr
unnamed-closure-doesnt-life-long-enough-issue-67634.rs
unnamed-closure-doesnt-life-long-enough-issue-67634.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
unusual-rib-combinations.rs fix(hir_analysis/wfcheck): don't leak {type error} 2024-09-29 23:40:43 -05:00
unusual-rib-combinations.stderr Introduce `feature(generic_const_parameter_types)` 2025-02-28 20:43:15 +00:00