summaryrefslogtreecommitdiffstats
path: root/src/test/ui/type-alias
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/type-alias')
-rw-r--r--src/test/ui/type-alias/issue-14933.rs6
-rw-r--r--src/test/ui/type-alias/issue-62263-self-in-atb.rs8
-rw-r--r--src/test/ui/type-alias/issue-62263-self-in-atb.stderr9
-rw-r--r--src/test/ui/type-alias/issue-62305-self-assoc-ty.rs4
-rw-r--r--src/test/ui/type-alias/issue-62305-self-assoc-ty.stderr9
-rw-r--r--src/test/ui/type-alias/issue-62364-self-ty-arg.rs8
-rw-r--r--src/test/ui/type-alias/issue-62364-self-ty-arg.stderr11
7 files changed, 55 insertions, 0 deletions
diff --git a/src/test/ui/type-alias/issue-14933.rs b/src/test/ui/type-alias/issue-14933.rs
new file mode 100644
index 000000000..bd95332ca
--- /dev/null
+++ b/src/test/ui/type-alias/issue-14933.rs
@@ -0,0 +1,6 @@
+// check-pass
+// pretty-expanded FIXME #23616
+
+pub type BigRat<T = isize> = T;
+
+fn main() {}
diff --git a/src/test/ui/type-alias/issue-62263-self-in-atb.rs b/src/test/ui/type-alias/issue-62263-self-in-atb.rs
new file mode 100644
index 000000000..91522d891
--- /dev/null
+++ b/src/test/ui/type-alias/issue-62263-self-in-atb.rs
@@ -0,0 +1,8 @@
+pub trait Trait {
+ type A;
+}
+
+pub type Alias = dyn Trait<A = Self::A>;
+//~^ ERROR failed to resolve: `Self`
+
+fn main() {}
diff --git a/src/test/ui/type-alias/issue-62263-self-in-atb.stderr b/src/test/ui/type-alias/issue-62263-self-in-atb.stderr
new file mode 100644
index 000000000..c20074dc2
--- /dev/null
+++ b/src/test/ui/type-alias/issue-62263-self-in-atb.stderr
@@ -0,0 +1,9 @@
+error[E0433]: failed to resolve: `Self` is only available in impls, traits, and type definitions
+ --> $DIR/issue-62263-self-in-atb.rs:5:32
+ |
+LL | pub type Alias = dyn Trait<A = Self::A>;
+ | ^^^^ `Self` is only available in impls, traits, and type definitions
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0433`.
diff --git a/src/test/ui/type-alias/issue-62305-self-assoc-ty.rs b/src/test/ui/type-alias/issue-62305-self-assoc-ty.rs
new file mode 100644
index 000000000..a4d9a2854
--- /dev/null
+++ b/src/test/ui/type-alias/issue-62305-self-assoc-ty.rs
@@ -0,0 +1,4 @@
+type Alias = Self::Target;
+//~^ ERROR failed to resolve: `Self`
+
+fn main() {}
diff --git a/src/test/ui/type-alias/issue-62305-self-assoc-ty.stderr b/src/test/ui/type-alias/issue-62305-self-assoc-ty.stderr
new file mode 100644
index 000000000..f3da50df9
--- /dev/null
+++ b/src/test/ui/type-alias/issue-62305-self-assoc-ty.stderr
@@ -0,0 +1,9 @@
+error[E0433]: failed to resolve: `Self` is only available in impls, traits, and type definitions
+ --> $DIR/issue-62305-self-assoc-ty.rs:1:14
+ |
+LL | type Alias = Self::Target;
+ | ^^^^ `Self` is only available in impls, traits, and type definitions
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0433`.
diff --git a/src/test/ui/type-alias/issue-62364-self-ty-arg.rs b/src/test/ui/type-alias/issue-62364-self-ty-arg.rs
new file mode 100644
index 000000000..bebb4a902
--- /dev/null
+++ b/src/test/ui/type-alias/issue-62364-self-ty-arg.rs
@@ -0,0 +1,8 @@
+struct Struct<P1> {
+ field: P1,
+}
+
+type Alias<'a> = Struct<&'a Self>;
+//~^ ERROR cannot find type `Self` in this scope [E0411]
+
+fn main() {}
diff --git a/src/test/ui/type-alias/issue-62364-self-ty-arg.stderr b/src/test/ui/type-alias/issue-62364-self-ty-arg.stderr
new file mode 100644
index 000000000..7e15e42e3
--- /dev/null
+++ b/src/test/ui/type-alias/issue-62364-self-ty-arg.stderr
@@ -0,0 +1,11 @@
+error[E0411]: cannot find type `Self` in this scope
+ --> $DIR/issue-62364-self-ty-arg.rs:5:29
+ |
+LL | type Alias<'a> = Struct<&'a Self>;
+ | ----- ^^^^ `Self` is only available in impls, traits, and type definitions
+ | |
+ | `Self` not allowed in a type alias
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0411`.