Improve parsing diagnostic for negative supertrait bounds

This commit is contained in:
Hoàng Đức Hiếu 2018-12-16 15:50:49 +07:00 committed by Hoàng Đức Hiếu
parent 082c86175f
commit 7cfddfb4e4
4 changed files with 130 additions and 20 deletions

View file

@ -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() {}

View file

@ -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() {}

View file

@ -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