]> git.lizzy.rs Git - rust.git/blobdiff - src/librustc/diagnostics.rs
Auto merge of #44060 - taleks:issue-43205, r=arielb1
[rust.git] / src / librustc / diagnostics.rs
index 3ce39b23b0f6753324958fec47140551016cf493..412759e11423e94ed22176988b06ba484b1833e7 100644 (file)
@@ -362,6 +362,10 @@ enum Enum {
 struct Foo { x: &bool }        // error
 struct Foo<'a> { x: &'a bool } // correct
 
+struct Bar { x: Foo }
+               ^^^ expected lifetime parameter
+struct Bar<'a> { x: Foo<'a> } // correct
+
 enum Bar { A(u8), B(&bool), }        // error
 enum Bar<'a> { A(u8), B(&'a bool), } // correct
 
@@ -683,6 +687,21 @@ fn foo<T: MyTransmutableType>(x: Vec<T>) {
 See also https://doc.rust-lang.org/book/first-edition/no-stdlib.html
 "##,
 
+E0214: r##"
+A generic type was described using parentheses rather than angle brackets. For
+example:
+
+```compile_fail,E0214
+fn main() {
+    let v: Vec(&str) = vec!["foo"];
+}
+```
+
+This is not currently supported: `v` should be defined as `Vec<&str>`.
+Parentheses are currently only used with generic types when defining parameters
+for `Fn`-family traits.
+"##,
+
 E0261: r##"
 When using a lifetime like `'a` in a type, it must be declared before being
 used.
@@ -2025,4 +2044,5 @@ fn foo<'a>(x: &'a i32, y: &i32) -> &'a i32 {
     E0490, // a value of type `..` is borrowed for too long
     E0495, // cannot infer an appropriate lifetime due to conflicting requirements
     E0566, // conflicting representation hints
+    E0623, // lifetime mismatch where both parameters are anonymous regions
 }