diff options
| author | Michael Goulet <michael@errs.io> | 2022-11-19 02:32:55 +0000 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2022-11-19 02:34:37 +0000 |
| commit | 9a9d0f40b8f01c56407e1077231edf61ffcf14fa (patch) | |
| tree | 81edc66d3399d04d9d1d6cd0e35fb8dd5e782409 /compiler/rustc_middle | |
| parent | c4165f3a965e258531928180195637455299c6f3 (diff) | |
| download | rust-9a9d0f40b8f01c56407e1077231edf61ffcf14fa.tar.gz rust-9a9d0f40b8f01c56407e1077231edf61ffcf14fa.zip | |
Improve spans for RPITIT object-safety errors
Diffstat (limited to 'compiler/rustc_middle')
| -rw-r--r-- | compiler/rustc_middle/src/traits/mod.rs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/compiler/rustc_middle/src/traits/mod.rs b/compiler/rustc_middle/src/traits/mod.rs index 05382bd887c..1890c0e24bb 100644 --- a/compiler/rustc_middle/src/traits/mod.rs +++ b/compiler/rustc_middle/src/traits/mod.rs @@ -924,10 +924,13 @@ impl ObjectSafetyViolation { } ObjectSafetyViolation::Method( name, - MethodViolationCode::ReferencesImplTraitInTrait, + MethodViolationCode::ReferencesImplTraitInTrait(_), _, ) => format!("method `{}` references an `impl Trait` type in its return type", name) .into(), + ObjectSafetyViolation::Method(name, MethodViolationCode::AsyncFn, _) => { + format!("method `{}` is `async`", name).into() + } ObjectSafetyViolation::Method( name, MethodViolationCode::WhereClauseReferencesSelf, @@ -1035,7 +1038,10 @@ pub enum MethodViolationCode { ReferencesSelfOutput, /// e.g., `fn foo(&self) -> impl Sized` - ReferencesImplTraitInTrait, + ReferencesImplTraitInTrait(Span), + + /// e.g., `async fn foo(&self)` + AsyncFn, /// e.g., `fn foo(&self) where Self: Clone` WhereClauseReferencesSelf, |
