Skip to content

Conversation

nnethercote
Copy link
Contributor

The totally random ordering of diagnostic methods in DiagCtxt has been low-key driving me crazy for a while now.

r? @compiler-errors

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Feb 8, 2024
@nnethercote
Copy link
Contributor Author

Here's the API summary table I've been using for a while now, which I used to guide this PR.

func args ret create/struct internals ---- ----------- --- ----------------------- {struct_,}bug msg DB<BA> / ! DB::new(BugAbort) {struct_,}span_bug sp, msg DB<BA> / ! struct_bug + with_span {create,emit}_bug err DB<BA> / ! .into_diagnostic {struct_,}fatal msg DB<FA> / ! DB::new(FatalAbort) {struct_,}span_fatal sp, msg DB<FA> / ! struct_fatal + with_span {create,emit}_fatal err DB<FA> / ! .into_diagnostic {create,emit}_almost_fatal err DB<FE> / FE .into_diagnostic {struct_,}err msg DB<> / EG DB::new(Error) {struct_,}span_err sp, msg DB<> / EG struct_err + with_span {create,emit}_err err DB<> / EG .into_diagnostic delayed_bug msg - / EG DB::new(DelayedBug)) [*] span_delayed_bug sp, msg - / EG DB::new(DelayedBug) + with_span [*] good_path_delayed_bug msg - / () DB::new(GoodPathDelayedBug) + emit [*] {struct_,}warn msg DB<()> / () DB::new(Warning) {struct_,}span_warn sp, msg DB<()> / () struct_warn + with_span {create,emit}_warn err DB<()> / () .into_diagnostic {struct_,}note msg DB<()> / () DB::new(Note) {struct_,}span_note sp, msg DB<()> / () struct_note + with_span {create,emit}_note err DB<()> / () .into_diagnostic struct_help msg DB<()> DB::new(Help) struct_allow msg DB<()> DB::new(Allow) struct_expect msg, id DB<()> DB::new(Expect(id)) 
@compiler-errors
Copy link
Member

@bors r+ rollup

@bors
Copy link
Collaborator

bors commented Feb 8, 2024

📌 Commit d1920a7 has been approved by compiler-errors

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Feb 8, 2024
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Feb 8, 2024
…mpiler-errors Reorder diagnostics API The totally random ordering of diagnostic methods in `DiagCtxt` has been low-key driving me crazy for a while now. r? `@compiler-errors`
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Feb 8, 2024
…mpiler-errors Reorder diagnostics API The totally random ordering of diagnostic methods in `DiagCtxt` has been low-key driving me crazy for a while now. r? ``@compiler-errors``
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Feb 8, 2024
…mpiler-errors Reorder diagnostics API The totally random ordering of diagnostic methods in `DiagCtxt` has been low-key driving me crazy for a while now. r? ```@compiler-errors```
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Feb 8, 2024
…mpiler-errors Reorder diagnostics API The totally random ordering of diagnostic methods in `DiagCtxt` has been low-key driving me crazy for a while now. r? ````@compiler-errors````
bors added a commit to rust-lang-ci/rust that referenced this pull request Feb 8, 2024
…iaskrgr Rollup of 10 pull requests Successful merges: - rust-lang#113026 (Introduce `run-make` V2 infrastructure, a `run_make_support` library and port over 2 tests as example) - rust-lang#120589 (std::thread::available_parallelism merging linux/android/freebsd version) - rust-lang#120590 (Remove unused args from functions) - rust-lang#120596 ([rustdoc] Correctly generate path for non-local items in source code pages) - rust-lang#120693 (Invert diagnostic lints.) - rust-lang#120704 (A drive-by rewrite of `give_region_a_name()`) - rust-lang#120750 (No need to take `ImplTraitContext` by ref) - rust-lang#120765 (Reorder diagnostics API) - rust-lang#120772 (Remove myself from review rotation.) - rust-lang#120783 (Add release note for new ambiguous_wide_pointer_comparisons lint) Failed merges: - rust-lang#120782 (Fix mir pass ICE in the presence of other errors) r? `@ghost` `@rustbot` modify labels: rollup
The current order is almost perfectly random. This commit puts them into a predictable order in their own impl block, going from the highest level (`Block`) to the lowest (`Expect`). Within each level this is the order: - struct_err, err - struct_span_err, span_err - create_err, emit_err The first one in each pair creates a diagnostic, the second one creates *and* emits a diagnostic. Not every method is present for every level. The diff is messy, but other than moving methods around, the only thing it does is create the new `impl DiagCtxt` block with its own comment.
- Remove low-value comments about functionality that is obvious. - Add missing `track_caller` attributes -- every method should have one. - Adjust `rustc_lint_diagnostic` attributes. Every method involving a `impl Into<DiagnosticMessage>` or `impl Into<SubdiangnosticMessage>` argument should have one, except for those producing bugs, which aren't user-facing.
@nnethercote
Copy link
Contributor Author

I fixed the conflicts.

@bors r=compiler-errors

@bors
Copy link
Collaborator

bors commented Feb 11, 2024

📌 Commit b7b6ebc has been approved by compiler-errors

It is now in the queue for this repository.

matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Feb 12, 2024
…mpiler-errors Reorder diagnostics API The totally random ordering of diagnostic methods in `DiagCtxt` has been low-key driving me crazy for a while now. r? `@compiler-errors`
bors added a commit to rust-lang-ci/rust that referenced this pull request Feb 12, 2024
…iaskrgr Rollup of 11 pull requests Successful merges: - rust-lang#120765 (Reorder diagnostics API) - rust-lang#120833 (More internal emit diagnostics cleanups) - rust-lang#120899 (Gracefully handle non-WF alias in `assemble_alias_bound_candidates_recur`) - rust-lang#120917 (Remove a bunch of dead parameters in functions) - rust-lang#120928 (Add test for recently fixed issue) - rust-lang#120933 (check_consts: fix duplicate errors, make importance consistent) - rust-lang#120936 (improve `btree_cursors` functions documentation) - rust-lang#120944 (Check that the ABI of the instance we are inlining is correct) - rust-lang#120956 (Clean inlined type alias with correct param-env) - rust-lang#120962 (Add myself to library/std review) - rust-lang#120972 (fix ICE for deref coercions with type errors) r? `@ghost` `@rustbot` modify labels: rollup
@bors bors merged commit 57a2e91 into rust-lang:master Feb 12, 2024
@rustbot rustbot added this to the 1.78.0 milestone Feb 12, 2024
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Feb 12, 2024
Rollup merge of rust-lang#120765 - nnethercote:reorder-diag-API, r=compiler-errors Reorder diagnostics API The totally random ordering of diagnostic methods in `DiagCtxt` has been low-key driving me crazy for a while now. r? ``@compiler-errors``
@nnethercote nnethercote deleted the reorder-diag-API branch February 12, 2024 20:23
flip1995 pushed a commit to flip1995/rust that referenced this pull request Feb 26, 2024
…iaskrgr Rollup of 11 pull requests Successful merges: - rust-lang#120765 (Reorder diagnostics API) - rust-lang#120833 (More internal emit diagnostics cleanups) - rust-lang#120899 (Gracefully handle non-WF alias in `assemble_alias_bound_candidates_recur`) - rust-lang#120917 (Remove a bunch of dead parameters in functions) - rust-lang#120928 (Add test for recently fixed issue) - rust-lang#120933 (check_consts: fix duplicate errors, make importance consistent) - rust-lang#120936 (improve `btree_cursors` functions documentation) - rust-lang#120944 (Check that the ABI of the instance we are inlining is correct) - rust-lang#120956 (Clean inlined type alias with correct param-env) - rust-lang#120962 (Add myself to library/std review) - rust-lang#120972 (fix ICE for deref coercions with type errors) r? `@ghost` `@rustbot` modify labels: rollup
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

4 participants