Skip to content

Add bullet points for error messages and use them in query cycle errors#154528

Draft
Zoxc wants to merge 1 commit intorust-lang:mainfrom
Zoxc:cycle-list-diag
Draft

Add bullet points for error messages and use them in query cycle errors#154528
Zoxc wants to merge 1 commit intorust-lang:mainfrom
Zoxc:cycle-list-diag

Conversation

@Zoxc
Copy link
Copy Markdown
Contributor

@Zoxc Zoxc commented Mar 29, 2026

This adds bullet points to diagnostics which always prints with even indentation.

Query cycle errors are changed to make use of them. The ... prefix on the query cycle errors is also removed.

@rustbot rustbot added A-compiletest Area: The compiletest test runner A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) A-testsuite Area: The testsuite used to check the correctness of rustc A-translation Area: Translation infrastructure, and migrating existing diagnostics to SessionDiagnostic S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Mar 29, 2026
@Zoxc
Copy link
Copy Markdown
Contributor Author

Zoxc commented Mar 29, 2026

Before:

error[E0391]: cycle detected when computing type of `Foo::T`
  --> $DIR/issue-34373.rs:7:34
   |
LL | pub struct Foo<T = Box<dyn Trait<DefaultFoo>>>;
   |                                  ^^^^^^^^^^
   |
note: ...which requires expanding type alias `DefaultFoo`...
  --> $DIR/issue-34373.rs:9:19
   |
LL | type DefaultFoo = Foo;
   |                   ^^^
   = note: ...which again requires computing type of `Foo::T`, completing the cycle
note: cycle used when checking that `Foo` is well-formed
  --> $DIR/issue-34373.rs:7:1
   |
LL | pub struct Foo<T = Box<dyn Trait<DefaultFoo>>>;
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   = note: see https://rustc-dev-guide.rust-lang.org/overview.html#queries and https://rustc-dev-guide.rust-lang.org/query.html for more information

After:

error[E0391]: cycle detected when computing type of `Foo::T`
  --> $DIR/issue-34373.rs:7:34
   |
LL | pub struct Foo<T = Box<dyn Trait<DefaultFoo>>>;
   |                                  ^^^^^^^^^^
   |
   - which requires expanding type alias `DefaultFoo`...
  --> $DIR/issue-34373.rs:9:19
   |
LL | type DefaultFoo = Foo;
   |                   ^^^
   - which again requires computing type of `Foo::T`, completing the cycle
note: cycle used when checking that `Foo` is well-formed
  --> $DIR/issue-34373.rs:7:1
   |
LL | pub struct Foo<T = Box<dyn Trait<DefaultFoo>>>;
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   = note: see https://rustc-dev-guide.rust-lang.org/overview.html#queries and https://rustc-dev-guide.rust-lang.org/query.html for more information

@Zoxc Zoxc force-pushed the cycle-list-diag branch from 57600b8 to 763ffff Compare March 29, 2026 01:30
@Zoxc
Copy link
Copy Markdown
Contributor Author

Zoxc commented Mar 29, 2026

cc @rust-lang/wg-diagnostics

The implementation is LLM written, so it probably needs some cleanup if this is deemed a positive change.

@rust-log-analyzer

This comment has been minimized.

@Zoxc Zoxc force-pushed the cycle-list-diag branch from 763ffff to af7b6b5 Compare March 29, 2026 03:50
@rust-log-analyzer
Copy link
Copy Markdown
Collaborator

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

Click to see the possible cause of the failure (guessed by this bot)
tests/fail/extern_static_wrong_size.rs ... ok
tests/fail/intrinsic_fallback_is_spec.rs ... ok
tests/fail/issue-miri-3288-ice-symbolic-alignment-extern-static.rs ... ok
tests/fail/issue-miri-1112.rs ... ok
The application panicked (crashed).
Message:  called `Result::unwrap()` on an `Err` value: Error("unknown variant `bullet-point`, expected one of `error: internal compiler error`, `error`, `warning`, `failure-note`, `note`, `help`", line: 1, column: 1005)
Location: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ui_test-0.30.3/src/diagnostics/rustc.rs:108

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   1: <color_eyre[3dc683e5b2161ef2]::config::PanicHook>::panic_report<unknown>
      at <unknown source file>:<unknown line>
   2: <color_eyre[3dc683e5b2161ef2]::config::PanicHook>::into_panic_hook::{closure#0}<unknown>
      at <unknown source file>:<unknown line>
   3: std[3bb93eaf6ef8d56]::panicking::panic_with_hook<unknown>
      at <unknown source file>:<unknown line>
   4: std[3bb93eaf6ef8d56]::panicking::panic_handler::{closure#0}<unknown>
      at <unknown source file>:<unknown line>
   5: std[3bb93eaf6ef8d56]::sys::backtrace::__rust_end_short_backtrace::<std[3bb93eaf6ef8d56]::panicking::panic_handler::{closure#0}, !><unknown>
      at <unknown source file>:<unknown line>
   6: __rustc[ea31c9f21f2f47f7]::rust_begin_unwind<unknown>
      at <unknown source file>:<unknown line>
   7: core[23a11bf7b5675794]::panicking::panic_fmt<unknown>
      at <unknown source file>:<unknown line>
   8: core[23a11bf7b5675794]::result::unwrap_failed<unknown>
      at <unknown source file>:<unknown line>
   9: ui_test[addb022970de6683]::diagnostics::rustc::rustc_diagnostics_extractor<unknown>
      at <unknown source file>:<unknown line>
  10: <ui_test[addb022970de6683]::per_test_config::TestConfig>::run_test<unknown>
      at <unknown source file>:<unknown line>
  11: ui_test[addb022970de6683]::test_file<unknown>
      at <unknown source file>:<unknown line>
  12: ui_test[addb022970de6683]::parse_and_test_file<unknown>
      at <unknown source file>:<unknown line>
  13: <ui_test[addb022970de6683]::run_tests_generic<ui_test[addb022970de6683]::default_file_filter, ui[582947632693b884]::run_tests::{closure#1}, alloc[a3d5a65fbec1d19e]::boxed::Box<dyn ui_test[addb022970de6683]::status_emitter::StatusEmitter>>::{closure#2}::{closure#3} as core[23a11bf7b5675794]::ops::function::FnOnce<(&crossbeam_channel[892a2794ecfe645]::channel::Sender<ui_test[addb022970de6683]::test_result::TestRun>,)>>::call_once::{shim:vtable#0}<unknown>
      at <unknown source file>:<unknown line>
  14: std[3bb93eaf6ef8d56]::sys::backtrace::__rust_begin_short_backtrace::<ui_test[addb022970de6683]::core::run_and_collect<2usize, alloc[a3d5a65fbec1d19e]::boxed::Box<dyn for<'a> core[23a11bf7b5675794]::ops::function::FnOnce<(&'a crossbeam_channel[892a2794ecfe645]::channel::Sender<ui_test[addb022970de6683]::test_result::TestRun>,), Output = core[23a11bf7b5675794]::result::Result<(), eyre[d99dc62a23f9738b]::Report>> + core[23a11bf7b5675794]::marker::Send>, ui_test[addb022970de6683]::test_result::TestRun, ui_test[addb022970de6683]::run_tests_generic<ui_test[addb022970de6683]::default_file_filter, ui[582947632693b884]::run_tests::{closure#1}, alloc[a3d5a65fbec1d19e]::boxed::Box<dyn ui_test[addb022970de6683]::status_emitter::StatusEmitter>>::{closure#2}, ui_test[addb022970de6683]::run_tests_generic<ui_test[addb022970de6683]::default_file_filter, ui[582947632693b884]::run_tests::{closure#1}, alloc[a3d5a65fbec1d19e]::boxed::Box<dyn ui_test[addb022970de6683]::status_emitter::StatusEmitter>>::{closure#3}, ui_test[addb022970de6683]::run_tests_generic<ui_test[addb022970de6683]::default_file_filter, ui[582947632693b884]::run_tests::{closure#1}, alloc[a3d5a65fbec1d19e]::boxed::Box<dyn ui_test[addb022970de6683]::status_emitter::StatusEmitter>>::{closure#4}>::{closure#1}::{closure#2}, core[23a11bf7b5675794]::result::Result<(), eyre[d99dc62a23f9738b]::Report>><unknown>
      at <unknown source file>:<unknown line>
  15: <std[3bb93eaf6ef8d56]::thread::lifecycle::spawn_unchecked<ui_test[addb022970de6683]::core::run_and_collect<2usize, alloc[a3d5a65fbec1d19e]::boxed::Box<dyn for<'a> core[23a11bf7b5675794]::ops::function::FnOnce<(&'a crossbeam_channel[892a2794ecfe645]::channel::Sender<ui_test[addb022970de6683]::test_result::TestRun>,), Output = core[23a11bf7b5675794]::result::Result<(), eyre[d99dc62a23f9738b]::Report>> + core[23a11bf7b5675794]::marker::Send>, ui_test[addb022970de6683]::test_result::TestRun, ui_test[addb022970de6683]::run_tests_generic<ui_test[addb022970de6683]::default_file_filter, ui[582947632693b884]::run_tests::{closure#1}, alloc[a3d5a65fbec1d19e]::boxed::Box<dyn ui_test[addb022970de6683]::status_emitter::StatusEmitter>>::{closure#2}, ui_test[addb022970de6683]::run_tests_generic<ui_test[addb022970de6683]::default_file_filter, ui[582947632693b884]::run_tests::{closure#1}, alloc[a3d5a65fbec1d19e]::boxed::Box<dyn ui_test[addb022970de6683]::status_emitter::StatusEmitter>>::{closure#3}, ui_test[addb022970de6683]::run_tests_generic<ui_test[addb022970de6683]::default_file_filter, ui[582947632693b884]::run_tests::{closure#1}, alloc[a3d5a65fbec1d19e]::boxed::Box<dyn ui_test[addb022970de6683]::status_emitter::StatusEmitter>>::{closure#4}>::{closure#1}::{closure#2}, core[23a11bf7b5675794]::result::Result<(), eyre[d99dc62a23f9738b]::Report>>::{closure#1} as core[23a11bf7b5675794]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}<unknown>
      at <unknown source file>:<unknown line>
  16: <std[3bb93eaf6ef8d56]::sys::thread::unix::Thread>::new::thread_start<unknown>
      at <unknown source file>:<unknown line>

Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering.
Run with RUST_BACKTRACE=full to include source snippets.
tests/fail/memleak.rs ... ok
tests/fail/miri_start_wrong_sig.rs ... ok
tests/fail/memleak_no_backtrace.rs ... ok
tests/fail/memleak_rc.rs ... ok
tests/fail/never_say_never.rs ... ok
---
tests/fail/tree_borrows/wildcard/single_exposed_only_ro.rs ... ok
tests/fail/tree_borrows/wildcard/strongly_protected_wildcard.rs ... ok
tests/fail/tree_borrows/wildcard/subtree_internal_relatedness.rs ... ok
tests/fail/tree_borrows/wildcard/subtree_internal_relatedness_wildcard.rs ... ok
The application panicked (crashed).
Message:  26 (tests/fail/layout_cycle.rs: ) not finished
Location: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ui_test-0.30.3/src/status_emitter/text.rs:257

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   1: <color_eyre[3dc683e5b2161ef2]::config::PanicHook>::panic_report<unknown>
      at <unknown source file>:<unknown line>
   2: <color_eyre[3dc683e5b2161ef2]::config::PanicHook>::into_panic_hook::{closure#0}<unknown>
      at <unknown source file>:<unknown line>
   3: std[3bb93eaf6ef8d56]::panicking::panic_with_hook<unknown>
      at <unknown source file>:<unknown line>
   4: std[3bb93eaf6ef8d56]::panicking::panic_handler::{closure#0}<unknown>
      at <unknown source file>:<unknown line>
   5: std[3bb93eaf6ef8d56]::sys::backtrace::__rust_end_short_backtrace::<std[3bb93eaf6ef8d56]::panicking::panic_handler::{closure#0}, !><unknown>
      at <unknown source file>:<unknown line>
   6: __rustc[ea31c9f21f2f47f7]::rust_begin_unwind<unknown>
      at <unknown source file>:<unknown line>
   7: core[23a11bf7b5675794]::panicking::panic_fmt<unknown>
      at <unknown source file>:<unknown line>
   8: <<ui_test[addb022970de6683]::status_emitter::text::Text>::start_thread::{closure#0}::ProgressHandler as core[23a11bf7b5675794]::ops::drop::Drop>::drop<unknown>
      at <unknown source file>:<unknown line>
   9: core[23a11bf7b5675794]::ptr::drop_in_place::<<ui_test[addb022970de6683]::status_emitter::text::Text>::start_thread::{closure#0}::ProgressHandler><unknown>
      at <unknown source file>:<unknown line>
  10: std[3bb93eaf6ef8d56]::sys::backtrace::__rust_begin_short_backtrace::<<ui_test[addb022970de6683]::status_emitter::text::Text>::start_thread::{closure#0}, ()><unknown>
      at <unknown source file>:<unknown line>
  11: <std[3bb93eaf6ef8d56]::thread::lifecycle::spawn_unchecked<<ui_test[addb022970de6683]::status_emitter::text::Text>::start_thread::{closure#0}, ()>::{closure#1} as core[23a11bf7b5675794]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}<unknown>
      at <unknown source file>:<unknown line>
  12: <std[3bb93eaf6ef8d56]::sys::thread::unix::Thread>::new::thread_start<unknown>
      at <unknown source file>:<unknown line>

Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering.
Run with RUST_BACKTRACE=full to include source snippets.
error: a bug in `ui_test` occurred
called `Result::unwrap()` on an `Err` value: Error("unknown variant `bullet-point`, expected one of `error: internal compiler error`, `error`, `warning`, `failure-note`, `note`, `help`", line: 1, column: 1005)

FAILURES:
    tests/fail/layout_cycle.rs

test result: FAIL. 1 failed; 558 passed; 3 ignored
---
Location:
   /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ui_test-0.30.3/src/lib.rs:365

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   1: <color_eyre[3dc683e5b2161ef2]::config::EyreHook>::into_eyre_hook::{closure#0}<unknown>
      at <unknown source file>:<unknown line>
   2: <eyre[d99dc62a23f9738b]::Report>::from_adhoc::<&str><unknown>
      at <unknown source file>:<unknown line>
   3: ui_test[addb022970de6683]::run_tests_generic::<ui_test[addb022970de6683]::default_file_filter, ui[582947632693b884]::run_tests::{closure#1}, alloc[a3d5a65fbec1d19e]::boxed::Box<dyn ui_test[addb022970de6683]::status_emitter::StatusEmitter>><unknown>
      at <unknown source file>:<unknown line>
   4: ui[582947632693b884]::ui<unknown>
      at <unknown source file>:<unknown line>
   5: ui[582947632693b884]::main<unknown>
      at <unknown source file>:<unknown line>
   6: std[3bb93eaf6ef8d56]::sys::backtrace::__rust_begin_short_backtrace::<fn() -> core[23a11bf7b5675794]::result::Result<(), eyre[d99dc62a23f9738b]::Report>, core[23a11bf7b5675794]::result::Result<(), eyre[d99dc62a23f9738b]::Report>><unknown>
      at <unknown source file>:<unknown line>
   7: std[3bb93eaf6ef8d56]::rt::lang_start::<core[23a11bf7b5675794]::result::Result<(), eyre[d99dc62a23f9738b]::Report>>::{closure#0}<unknown>
      at <unknown source file>:<unknown line>
   8: std[3bb93eaf6ef8d56]::rt::lang_start_internal<unknown>
      at <unknown source file>:<unknown line>
   9: main<unknown>
      at <unknown source file>:<unknown line>
  10: __libc_start_main<unknown>
      at <unknown source file>:<unknown line>
  11: _start<unknown>
      at <unknown source file>:<unknown line>

Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering.
Run with RUST_BACKTRACE=full to include source snippets.
error: test failed, to rerun pass `--test ui`

Caused by:
  process didn't exit successfully: `/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/release/deps/ui-626f07652299b838` (exit status: 1)
Command `/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo test -Zwarnings --target x86_64-unknown-linux-gnu -Zbinary-dep-depinfo -j 4 -Zroot-dir=/checkout --locked --color=always --profile=release --manifest-path /checkout/src/tools/miri/Cargo.toml -- [workdir=/checkout]` failed with exit code 1
Created at: src/bootstrap/src/core/build_steps/tool.rs:191:21
Executed at: src/bootstrap/src/core/build_steps/test.rs:739:19

--- BACKTRACE vvv
   0: <bootstrap::utils::exec::DeferredCommand>::finish_process
             at /checkout/src/bootstrap/src/utils/exec.rs:939:17
   1: <bootstrap::utils::exec::DeferredCommand>::wait_for_output::<&bootstrap::utils::exec::ExecutionContext>
             at /checkout/src/bootstrap/src/utils/exec.rs:831:21
   2: <bootstrap::utils::exec::ExecutionContext>::run
             at /checkout/src/bootstrap/src/utils/exec.rs:741:45
   3: <bootstrap::utils::exec::BootstrapCommand>::run::<&bootstrap::core::builder::Builder>
             at /checkout/src/bootstrap/src/utils/exec.rs:339:27
   4: <bootstrap::core::build_steps::test::Miri as bootstrap::core::builder::Step>::run
             at /checkout/src/bootstrap/src/core/build_steps/test.rs:739:19
   5: <bootstrap::core::builder::Builder>::ensure::<bootstrap::core::build_steps::test::Miri>
             at /checkout/src/bootstrap/src/core/builder/mod.rs:1579:36
   6: <bootstrap::core::build_steps::test::Miri as bootstrap::core::builder::Step>::make_run
             at /checkout/src/bootstrap/src/core/build_steps/test.rs:665:21
   7: <bootstrap::core::builder::StepDescription>::maybe_run
             at /checkout/src/bootstrap/src/core/builder/mod.rs:476:13
   8: bootstrap::core::builder::cli_paths::match_paths_to_steps_and_run
             at /checkout/src/bootstrap/src/core/builder/cli_paths.rs:232:18
   9: <bootstrap::core::builder::Builder>::run_step_descriptions
             at /checkout/src/bootstrap/src/core/builder/mod.rs:1122:9
  10: <bootstrap::core::builder::Builder>::execute_cli
             at /checkout/src/bootstrap/src/core/builder/mod.rs:1101:14
  11: <bootstrap::Build>::build
             at /checkout/src/bootstrap/src/lib.rs:799:25
  12: bootstrap::main
             at /checkout/src/bootstrap/src/bin/main.rs:130:11
  13: <fn() as core::ops::function::FnOnce<()>>::call_once
             at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
  14: std::sys::backtrace::__rust_begin_short_backtrace::<fn(), ()>
             at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:166:18
  15: std::rt::lang_start::<()>::{closure#0}
             at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/rt.rs:206:18
  16: <&dyn core::ops::function::Fn<(), Output = i32> + core::panic::unwind_safe::RefUnwindSafe + core::marker::Sync as core::ops::function::FnOnce<()>>::call_once
             at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:287:21
  17: std::panicking::catch_unwind::do_call::<&dyn core::ops::function::Fn<(), Output = i32> + core::panic::unwind_safe::RefUnwindSafe + core::marker::Sync, i32>
             at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
  18: std::panicking::catch_unwind::<i32, &dyn core::ops::function::Fn<(), Output = i32> + core::panic::unwind_safe::RefUnwindSafe + core::marker::Sync>
             at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
  19: std::panic::catch_unwind::<&dyn core::ops::function::Fn<(), Output = i32> + core::panic::unwind_safe::RefUnwindSafe + core::marker::Sync, i32>
             at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
  20: std::rt::lang_start_internal::{closure#0}
             at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/rt.rs:175:24
  21: std::panicking::catch_unwind::do_call::<std::rt::lang_start_internal::{closure#0}, isize>
             at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
---
  28: __libc_start_main
  29: _start


Command has failed. Rerun with -v to see more details.
Bootstrap failed while executing `test --stage 2 src/tools/miri src/tools/miri/cargo-miri`
Build completed unsuccessfully in 0:50:50
  local time: Sun Mar 29 04:45:27 UTC 2026
  network time: Sun, 29 Mar 2026 04:45:27 GMT
##[error]Process completed with exit code 1.


fn format_message_for_level(level: Level, msg: Cow<'static, str>) -> Cow<'static, str> {
match level {
Level::BulletPoint => Cow::Owned(format!(" - {msg}")),
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will this work correctly to align the "bullet point" regardless of gutter width? In the test suite we normalize the output to LL |, but can you manually test a case where LL is single or triple digit? I highly suspect this is not correct.

Comment on lines -603 to +604
ForceWarning | Warning | Note | OnceNote | Help | OnceHelp | FailureNote | Allow
| Expect => None,
ForceWarning | Warning | Note | BulletPoint | OnceNote | Help | OnceHelp
| FailureNote | Allow | Expect => None,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would have been nice to add BulletPoint to the end of the or-pattern to make the diff faster to skim :)

| ^^^^^^^^^^^
|
note: ...which requires const-evaluating + checking `Tr::A`...
- which requires const-evaluating + checking `Tr::A`...
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm intrigued how this will render under human-unicode or annotate-snippets equivalent. (Need to do a proper review of the main logic still.)

@estebank
Copy link
Copy Markdown
Contributor

I am trying to think of alternative ways of rendering this. I see where you're going with it, and it might be worth it. CC @Muscraft for thoughts, as annotate-snippets sees wider range of use-cases than rustc and might have clearer thoughts on this.

@oli-obk
Copy link
Copy Markdown
Contributor

oli-obk commented Apr 2, 2026

What's the motivation for this? It doesn't seem to substantially changed readability to me personally , and without information about non-expert users encountering cycle errors it seems like just a stylistic choice without the status quo or your change being better

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Apr 3, 2026

☔ The latest upstream changes (presumably #154727) made this pull request unmergeable. Please resolve the merge conflicts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-compiletest Area: The compiletest test runner A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) A-testsuite Area: The testsuite used to check the correctness of rustc A-translation Area: Translation infrastructure, and migrating existing diagnostics to SessionDiagnostic S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants