2023-05-03 18:22:57 -05:00
|
|
|
error[E0277]: the trait bound `NotIntoDiagnosticArg: IntoDiagnosticArg` is not satisfied
|
2023-05-03 18:53:44 -05:00
|
|
|
--> $DIR/diagnostic-derive-doc-comment-field.rs:37:10
|
2023-05-03 18:22:57 -05:00
|
|
|
|
|
|
|
|
LL | #[derive(Diagnostic)]
|
2023-05-03 18:53:44 -05:00
|
|
|
| ---------- required by a bound introduced by this call
|
|
|
|
...
|
|
|
|
LL | arg: NotIntoDiagnosticArg,
|
|
|
|
| ^^^^^^^^^^^^^^^^^^^^ the trait `IntoDiagnosticArg` is not implemented for `NotIntoDiagnosticArg`
|
2023-05-03 18:22:57 -05:00
|
|
|
|
|
2023-05-03 18:53:44 -05:00
|
|
|
= help: normalized in stderr
|
2023-05-03 18:22:57 -05:00
|
|
|
note: required by a bound in `DiagnosticBuilder::<'a, G>::set_arg`
|
2023-05-03 18:53:44 -05:00
|
|
|
--> $COMPILER_DIR/rustc_errors/src/diagnostic_builder.rs:LL:CC
|
|
|
|
= note: this error originates in the macro `forward` (in Nightly builds, run with -Z macro-backtrace for more info)
|
2023-05-03 18:22:57 -05:00
|
|
|
|
|
|
|
error[E0277]: the trait bound `NotIntoDiagnosticArg: IntoDiagnosticArg` is not satisfied
|
2023-05-03 18:53:44 -05:00
|
|
|
--> $DIR/diagnostic-derive-doc-comment-field.rs:47:10
|
2023-05-03 18:22:57 -05:00
|
|
|
|
|
|
|
|
LL | #[derive(Subdiagnostic)]
|
2023-05-03 18:53:44 -05:00
|
|
|
| ------------- required by a bound introduced by this call
|
|
|
|
...
|
|
|
|
LL | arg: NotIntoDiagnosticArg,
|
|
|
|
| ^^^^^^^^^^^^^^^^^^^^ the trait `IntoDiagnosticArg` is not implemented for `NotIntoDiagnosticArg`
|
2023-05-03 18:22:57 -05:00
|
|
|
|
|
2023-05-03 18:53:44 -05:00
|
|
|
= help: normalized in stderr
|
2023-05-03 18:22:57 -05:00
|
|
|
note: required by a bound in `Diagnostic::set_arg`
|
Use `Cow` in `{D,Subd}iagnosticMessage`.
Each of `{D,Subd}iagnosticMessage::{Str,Eager}` has a comment:
```
// FIXME(davidtwco): can a `Cow<'static, str>` be used here?
```
This commit answers that question in the affirmative. It's not the most
compelling change ever, but it might be worth merging.
This requires changing the `impl<'a> From<&'a str>` impls to `impl
From<&'static str>`, which involves a bunch of knock-on changes that
require/result in call sites being a little more precise about exactly
what kind of string they use to create errors, and not just `&str`. This
will result in fewer unnecessary allocations, though this will not have
any notable perf effects given that these are error paths.
Note that I was lazy within Clippy, using `to_string` in a few places to
preserve the existing string imprecision. I could have used `impl
Into<{D,Subd}iagnosticMessage>` in various places as is done in the
compiler, but that would have required changes to *many* call sites
(mostly changing `&format("...")` to `format!("...")`) which didn't seem
worthwhile.
2023-05-03 19:55:21 -05:00
|
|
|
--> $COMPILER_DIR/rustc_errors/src/diagnostic.rs:960:5
|
2023-05-03 18:22:57 -05:00
|
|
|
|
|
|
|
error: aborting due to 2 previous errors
|
|
|
|
|
|
|
|
For more information about this error, try `rustc --explain E0277`.
|