summaryrefslogtreecommitdiffstats
path: root/src/test/ui/keyword/keyword-self-as-type-param.stderr
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/keyword/keyword-self-as-type-param.stderr')
-rw-r--r--src/test/ui/keyword/keyword-self-as-type-param.stderr32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/test/ui/keyword/keyword-self-as-type-param.stderr b/src/test/ui/keyword/keyword-self-as-type-param.stderr
new file mode 100644
index 000000000..419652e13
--- /dev/null
+++ b/src/test/ui/keyword/keyword-self-as-type-param.stderr
@@ -0,0 +1,32 @@
+error: unexpected keyword `Self` in generic parameters
+ --> $DIR/keyword-self-as-type-param.rs:3:12
+ |
+LL | struct Foo<Self>(Self);
+ | ^^^^
+ |
+ = note: you cannot use `Self` as a generic parameter because it is reserved for associated items
+
+error: unexpected keyword `Self` in generic parameters
+ --> $DIR/keyword-self-as-type-param.rs:7:11
+ |
+LL | trait Bar<Self> {}
+ | ^^^^
+ |
+ = note: you cannot use `Self` as a generic parameter because it is reserved for associated items
+
+error[E0072]: recursive type `Foo` has infinite size
+ --> $DIR/keyword-self-as-type-param.rs:3:1
+ |
+LL | struct Foo<Self>(Self);
+ | ^^^^^^^^^^^^^^^^ ---- recursive without indirection
+ | |
+ | recursive type has infinite size
+ |
+help: insert some indirection (e.g., a `Box`, `Rc`, or `&`) to make `Foo` representable
+ |
+LL | struct Foo<Self>(Box<Self>);
+ | ++++ +
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0072`.