about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorHoàng Đức Hiếu <hdhoang@hdhoang.space>2018-12-16 15:50:49 +0700
committerHoàng Đức Hiếu <code@hdhoang.space>2019-02-23 07:58:16 +0700
commit7cfddfb4e40584dc206cedef7c70b5fecb03d6a1 (patch)
tree0d00c94a1b9b80b6b24ad3380b07e42227623df5 /src/test
parent082c86175fcf72c355e6a889956fbea59e65bcdb (diff)
downloadrust-7cfddfb4e40584dc206cedef7c70b5fecb03d6a1.tar.gz
rust-7cfddfb4e40584dc206cedef7c70b5fecb03d6a1.zip
Improve parsing diagnostic for negative supertrait bounds
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/parser/issue-33418.fixed14
-rw-r--r--src/test/ui/parser/issue-33418.rs16
-rw-r--r--src/test/ui/parser/issue-33418.stderr42
3 files changed, 72 insertions, 0 deletions
diff --git a/src/test/ui/parser/issue-33418.fixed b/src/test/ui/parser/issue-33418.fixed
new file mode 100644
index 00000000000..df11f2d855c
--- /dev/null
+++ b/src/test/ui/parser/issue-33418.fixed
@@ -0,0 +1,14 @@
+// run-rustfix
+
+trait Tr {} //~ ERROR negative trait bounds are not supported
+trait Tr2: SuperA {} //~ ERROR negative trait bounds are not supported
+trait Tr3: SuperB {} //~ ERROR negative trait bounds are not supported
+trait Tr4: SuperB + SuperD {}
+trait Tr5 {}
+
+trait SuperA {}
+trait SuperB {}
+trait SuperC {}
+trait SuperD {}
+
+fn main() {}
diff --git a/src/test/ui/parser/issue-33418.rs b/src/test/ui/parser/issue-33418.rs
new file mode 100644
index 00000000000..5bb5f2afca3
--- /dev/null
+++ b/src/test/ui/parser/issue-33418.rs
@@ -0,0 +1,16 @@
+// run-rustfix
+
+trait Tr: !SuperA {} //~ ERROR negative trait bounds are not supported
+trait Tr2: SuperA + !SuperB {} //~ ERROR negative trait bounds are not supported
+trait Tr3: !SuperA + SuperB {} //~ ERROR negative trait bounds are not supported
+trait Tr4: !SuperA + SuperB //~ ERROR negative trait bounds are not supported
+    + !SuperC + SuperD {}
+trait Tr5: !SuperA //~ ERROR negative trait bounds are not supported
+    + !SuperB {}
+
+trait SuperA {}
+trait SuperB {}
+trait SuperC {}
+trait SuperD {}
+
+fn main() {}
diff --git a/src/test/ui/parser/issue-33418.stderr b/src/test/ui/parser/issue-33418.stderr
new file mode 100644
index 00000000000..bfe44588a5b
--- /dev/null
+++ b/src/test/ui/parser/issue-33418.stderr
@@ -0,0 +1,42 @@
+error: negative trait bounds are not supported
+  --> $DIR/issue-33418.rs:3:9
+   |
+LL | trait Tr: !SuperA {} //~ ERROR negative trait bounds are not supported
+   |         ^^^^^^^^^ help: remove the trait bound
+
+error: negative trait bounds are not supported
+  --> $DIR/issue-33418.rs:4:19
+   |
+LL | trait Tr2: SuperA + !SuperB {} //~ ERROR negative trait bounds are not supported
+   |          ---------^^^^^^^^^
+   |          |
+   |          help: remove the trait bound
+
+error: negative trait bounds are not supported
+  --> $DIR/issue-33418.rs:5:10
+   |
+LL | trait Tr3: !SuperA + SuperB {} //~ ERROR negative trait bounds are not supported
+   |          ^^^^^^^^^---------
+   |          |
+   |          help: remove the trait bound
+
+error: negative trait bounds are not supported
+  --> $DIR/issue-33418.rs:6:10
+   |
+LL |   trait Tr4: !SuperA + SuperB //~ ERROR negative trait bounds are not supported
+   |  __________-^^^^^^^^
+LL | |     + !SuperC + SuperD {}
+   | |_____^^^^^^^^^________- help: remove the trait bounds
+
+error: negative trait bounds are not supported
+  --> $DIR/issue-33418.rs:8:10
+   |
+LL |   trait Tr5: !SuperA //~ ERROR negative trait bounds are not supported
+   |  __________-^^^^^^^^
+LL | |     + !SuperB {}
+   | |     ^^^^^^^^-
+   | |_____________|
+   |               help: remove the trait bounds
+
+error: aborting due to 5 previous errors
+