Add a range pattern inference failing test
This commit is contained in:
parent
ca1616c75b
commit
52a0403790
2 changed files with 49 additions and 0 deletions
|
@ -0,0 +1,28 @@
|
|||
trait Zero {
|
||||
const ZERO: Self;
|
||||
}
|
||||
|
||||
impl Zero for String {
|
||||
const ZERO: Self = String::new();
|
||||
}
|
||||
|
||||
fn foo() {
|
||||
match String::new() {
|
||||
Zero::ZERO ..= Zero::ZERO => {},
|
||||
//~^ ERROR only `char` and numeric types are allowed in range patterns
|
||||
_ => {},
|
||||
}
|
||||
}
|
||||
|
||||
fn bar() {
|
||||
match Zero::ZERO {
|
||||
Zero::ZERO ..= Zero::ZERO => {},
|
||||
//~^ ERROR type annotations needed [E0282]
|
||||
_ => {},
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
foo();
|
||||
bar();
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
error[E0029]: only `char` and numeric types are allowed in range patterns
|
||||
--> $DIR/issue-88074-pat-range-type-inference-err.rs:11:9
|
||||
|
|
||||
LL | Zero::ZERO ..= Zero::ZERO => {},
|
||||
| ----------^^^^^----------
|
||||
| | |
|
||||
| | this is of type `String` but it should be `char` or numeric
|
||||
| this is of type `String` but it should be `char` or numeric
|
||||
|
||||
error[E0282]: type annotations needed
|
||||
--> $DIR/issue-88074-pat-range-type-inference-err.rs:19:9
|
||||
|
|
||||
LL | Zero::ZERO ..= Zero::ZERO => {},
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
|
||||
|
|
||||
= note: type must be known at this point
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
Some errors have detailed explanations: E0029, E0282.
|
||||
For more information about an error, try `rustc --explain E0029`.
|
Loading…
Add table
Reference in a new issue