diff options
| author | bors <bors@rust-lang.org> | 2024-01-08 16:06:28 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2024-01-08 16:06:28 +0000 |
| commit | ca663b06c5492ac2dde5e53cd11579fa8e4d68bd (patch) | |
| tree | dbc8c5a057699093a6c544c6df2d65accc0fffb5 /compiler/rustc_mir_transform/src | |
| parent | 0ee9cfd54db7b5f4be35f026588904500c866196 (diff) | |
| parent | db09eb2d3accf8909ea2813ebb00c58c7f2fad64 (diff) | |
| download | rust-ca663b06c5492ac2dde5e53cd11579fa8e4d68bd.tar.gz rust-ca663b06c5492ac2dde5e53cd11579fa8e4d68bd.zip | |
Auto merge of #119606 - nnethercote:consuming-emit, r=oli-obk
Consuming `emit` This PR makes `DiagnosticBuilder::emit` consuming, i.e. take `self` instead of `&mut self`. This is good because it doesn't make sense to emit a diagnostic twice. This requires some changes to `DiagnosticBuilder` method changing -- every existing non-consuming chaining method gets a new consuming partner with a `_mv` suffix -- but permits a host of beneficial follow-up changes: more concise code through more chaining, removal of redundant diagnostic construction API methods, and removal of machinery to track the possibility of a diagnostic being emitted multiple times. r? `@compiler-errors`
Diffstat (limited to 'compiler/rustc_mir_transform/src')
| -rw-r--r-- | compiler/rustc_mir_transform/src/errors.rs | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/compiler/rustc_mir_transform/src/errors.rs b/compiler/rustc_mir_transform/src/errors.rs index bde442049b1..446f13feff0 100644 --- a/compiler/rustc_mir_transform/src/errors.rs +++ b/compiler/rustc_mir_transform/src/errors.rs @@ -181,8 +181,7 @@ pub(crate) struct UnsafeOpInUnsafeFn { impl<'a> DecorateLint<'a, ()> for UnsafeOpInUnsafeFn { #[track_caller] fn decorate_lint<'b>(self, diag: &'b mut DiagnosticBuilder<'a, ()>) { - let dcx = diag.dcx().expect("lint should not yet be emitted"); - let desc = dcx.eagerly_translate_to_string(self.details.label(), [].into_iter()); + let desc = diag.dcx.eagerly_translate_to_string(self.details.label(), [].into_iter()); diag.arg("details", desc); diag.span_label(self.details.span, self.details.label()); self.details.add_subdiagnostics(diag); |
