diff options
| author | Nicholas Nethercote <n.nethercote@gmail.com> | 2024-01-31 11:23:54 +1100 |
|---|---|---|
| committer | Nicholas Nethercote <n.nethercote@gmail.com> | 2024-02-05 10:03:01 +1100 |
| commit | 59e0bc2de7134a2d88e9c14db32884e631e90373 (patch) | |
| tree | 6ca15c61a76a4a21dea7b41143e2173640dee3f8 /compiler/rustc_errors/src/emitter.rs | |
| parent | c3673868325f95203d5291f2fa3a399425c14876 (diff) | |
| download | rust-59e0bc2de7134a2d88e9c14db32884e631e90373.tar.gz rust-59e0bc2de7134a2d88e9c14db32884e631e90373.zip | |
Split `Level::DelayedBug` in two.
The two kinds of delayed bug have quite different semantics so a stronger conceptual separation is nice. (`is_error` is a good example, because the two kinds have different behaviour.) The commit also moves the `DelayedBug` variant after `Error` in `Level`, to reflect the fact that it's weaker than `Error` -- it might trigger an error but also might not. (The pre-existing `downgrade_to_delayed_bug` function also reflects the notion that delayed bugs are lower/after normal errors.) Plus it condenses some of the comments on `Level` into a table, for easier reading, and introduces `can_be_top_or_sub` to indicate which levels can be used in top-level diagnostics vs. subdiagnostics. Finally, it renames `DiagCtxtInner::span_delayed_bugs` as `DiagCtxtInner::delayed_bugs`. The `span_` prefix is unnecessary because some delayed bugs don't have a span.
Diffstat (limited to 'compiler/rustc_errors/src/emitter.rs')
| -rw-r--r-- | compiler/rustc_errors/src/emitter.rs | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/compiler/rustc_errors/src/emitter.rs b/compiler/rustc_errors/src/emitter.rs index 4be5ed923e5..6370e1d387c 100644 --- a/compiler/rustc_errors/src/emitter.rs +++ b/compiler/rustc_errors/src/emitter.rs @@ -2116,6 +2116,7 @@ impl HumanEmitter { } if !self.short_message { for child in children { + assert!(child.level.can_be_top_or_sub().1); let span = &child.span; if let Err(err) = self.emit_messages_default_inner( span, |
