@@ -998,32 +998,36 @@ impl DiagCtxt {
998998// Functions beginning with `struct_`/`create_` create a diagnostic. Other
999999// functions create and emit a diagnostic all in one go.
10001000impl DiagCtxt {
1001- // No `#[rustc_lint_diagnostics]` because bug messages aren't user-facing.
1001+ // No `#[rustc_lint_diagnostics]` and no `impl Into<DiagnosticMessage>` because bug messages
1002+ // aren't user-facing.
10021003 #[ track_caller]
1003- pub fn struct_bug ( & self , msg : impl Into < DiagnosticMessage > ) -> DiagnosticBuilder < ' _ , BugAbort > {
1004- DiagnosticBuilder :: new ( self , Bug , msg)
1004+ pub fn struct_bug ( & self , msg : impl Into < Cow < ' static , str > > ) -> DiagnosticBuilder < ' _ , BugAbort > {
1005+ DiagnosticBuilder :: new ( self , Bug , msg. into ( ) )
10051006 }
10061007
1007- // No `#[rustc_lint_diagnostics]` because bug messages aren't user-facing.
1008+ // No `#[rustc_lint_diagnostics]` and no `impl Into<DiagnosticMessage>` because bug messages
1009+ // aren't user-facing.
10081010 #[ track_caller]
1009- pub fn bug ( & self , msg : impl Into < DiagnosticMessage > ) -> ! {
1011+ pub fn bug ( & self , msg : impl Into < Cow < ' static , str > > ) -> ! {
10101012 self . struct_bug ( msg) . emit ( )
10111013 }
10121014
1013- // No `#[rustc_lint_diagnostics]` because bug messages aren't user-facing.
1015+ // No `#[rustc_lint_diagnostics]` and no `impl Into<DiagnosticMessage>` because bug messages
1016+ // aren't user-facing.
10141017 #[ track_caller]
10151018 pub fn struct_span_bug (
10161019 & self ,
10171020 span : impl Into < MultiSpan > ,
1018- msg : impl Into < DiagnosticMessage > ,
1021+ msg : impl Into < Cow < ' static , str > > ,
10191022 ) -> DiagnosticBuilder < ' _ , BugAbort > {
10201023 self . struct_bug ( msg) . with_span ( span)
10211024 }
10221025
1023- // No `#[rustc_lint_diagnostics]` because bug messages aren't user-facing.
1026+ // No `#[rustc_lint_diagnostics]` and no `impl Into<DiagnosticMessage>` because bug messages
1027+ // aren't user-facing.
10241028 #[ track_caller]
1025- pub fn span_bug ( & self , span : impl Into < MultiSpan > , msg : impl Into < DiagnosticMessage > ) -> ! {
1026- self . struct_span_bug ( span, msg) . emit ( )
1029+ pub fn span_bug ( & self , span : impl Into < MultiSpan > , msg : impl Into < Cow < ' static , str > > ) -> ! {
1030+ self . struct_span_bug ( span, msg. into ( ) ) . emit ( )
10271031 }
10281032
10291033 #[ track_caller]
@@ -1143,24 +1147,28 @@ impl DiagCtxt {
11431147 }
11441148
11451149 /// Ensures that an error is printed. See `Level::DelayedBug`.
1146- // No `#[rustc_lint_diagnostics]` because bug messages aren't user-facing.
1150+ //
1151+ // No `#[rustc_lint_diagnostics]` and no `impl Into<DiagnosticMessage>` because bug messages
1152+ // aren't user-facing.
11471153 #[ track_caller]
1148- pub fn delayed_bug ( & self , msg : impl Into < DiagnosticMessage > ) -> ErrorGuaranteed {
1149- DiagnosticBuilder :: < ErrorGuaranteed > :: new ( self , DelayedBug , msg) . emit ( )
1154+ pub fn delayed_bug ( & self , msg : impl Into < Cow < ' static , str > > ) -> ErrorGuaranteed {
1155+ DiagnosticBuilder :: < ErrorGuaranteed > :: new ( self , DelayedBug , msg. into ( ) ) . emit ( )
11501156 }
11511157
11521158 /// Ensures that an error is printed. See `Level::DelayedBug`.
11531159 ///
11541160 /// Note: this function used to be called `delay_span_bug`. It was renamed
11551161 /// to match similar functions like `span_err`, `span_warn`, etc.
1156- // No `#[rustc_lint_diagnostics]` because bug messages aren't user-facing.
1162+ //
1163+ // No `#[rustc_lint_diagnostics]` and no `impl Into<DiagnosticMessage>` because bug messages
1164+ // aren't user-facing.
11571165 #[ track_caller]
11581166 pub fn span_delayed_bug (
11591167 & self ,
11601168 sp : impl Into < MultiSpan > ,
1161- msg : impl Into < DiagnosticMessage > ,
1169+ msg : impl Into < Cow < ' static , str > > ,
11621170 ) -> ErrorGuaranteed {
1163- DiagnosticBuilder :: < ErrorGuaranteed > :: new ( self , DelayedBug , msg) . with_span ( sp) . emit ( )
1171+ DiagnosticBuilder :: < ErrorGuaranteed > :: new ( self , DelayedBug , msg. into ( ) ) . with_span ( sp) . emit ( )
11641172 }
11651173
11661174 #[ rustc_lint_diagnostics]
0 commit comments