Updated diagnostics.

This commit is contained in:
Alexander Regueiro 2018-08-14 18:29:53 +01:00
parent 856e84f9a3
commit 79009ed728
2 changed files with 5 additions and 5 deletions

View File

@ -770,17 +770,17 @@ match x {
"##, "##,
E0411: r##" E0411: r##"
The `Self` keyword was used outside an impl or a trait. The `Self` keyword was used outside an impl, trait, or type definition.
Erroneous code example: Erroneous code example:
```compile_fail,E0411 ```compile_fail,E0411
<Self>::foo; // error: use of `Self` outside of an impl or trait <Self>::foo; // error: use of `Self` outside of an impl, trait, or type definition
``` ```
The `Self` keyword represents the current type, which explains why it can only The `Self` keyword represents the current type, which explains why it can only
be used inside an impl or a trait. It gives access to the associated items of a be used inside an impl, trait, or type definition. It gives access to the
type: associated items of a type:
``` ```
trait Foo { trait Foo {

View File

@ -2977,7 +2977,7 @@ impl<'a, 'crateloader: 'a> Resolver<'a, 'crateloader> {
if is_self_type(path, ns) { if is_self_type(path, ns) {
__diagnostic_used!(E0411); __diagnostic_used!(E0411);
err.code(DiagnosticId::Error("E0411".into())); err.code(DiagnosticId::Error("E0411".into()));
err.span_label(span, "`Self` is only available in traits and impls"); err.span_label(span, "`Self` is only available in traits, impls, and type definitions");
return (err, Vec::new()); return (err, Vec::new());
} }
if is_self_value(path, ns) { if is_self_value(path, ns) {