diff options
| author | bors <bors@rust-lang.org> | 2019-04-14 05:58:13 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2019-04-14 05:58:13 +0000 |
| commit | 464473ab3b4bedb89fa6841ab2ceea83cb8d75fe (patch) | |
| tree | fcfa85db3a93064bb08d1a0690c2a26cbd7e1f2d /src/test | |
| parent | ee621f42329069c296b4c2066b3743cc4ff0f369 (diff) | |
| parent | d01ac0d61e31ffdff0a85a76de6f4449935b5a6b (diff) | |
| download | rust-464473ab3b4bedb89fa6841ab2ceea83cb8d75fe.tar.gz rust-464473ab3b4bedb89fa6841ab2ceea83cb8d75fe.zip | |
Auto merge of #59798 - rchaser53:issue-59488, r=estebank
Improvement for comparision against fn I try to add error message. related: https://github.com/rust-lang/rust/issues/59488
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/ui/fn/fn-compare-mismatch.stderr | 8 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-59488.rs | 26 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-59488.stderr | 81 |
3 files changed, 115 insertions, 0 deletions
diff --git a/src/test/ui/fn/fn-compare-mismatch.stderr b/src/test/ui/fn/fn-compare-mismatch.stderr index 07b93d9aae7..74fb00f8ac3 100644 --- a/src/test/ui/fn/fn-compare-mismatch.stderr +++ b/src/test/ui/fn/fn-compare-mismatch.stderr @@ -7,6 +7,14 @@ LL | let x = f == g; | fn() {main::f} | = note: an implementation of `std::cmp::PartialEq` might be missing for `fn() {main::f}` +help: you might have forgotten to call this function + | +LL | let x = f() == g; + | ^^^ +help: you might have forgotten to call this function + | +LL | let x = f == g(); + | ^^^ error[E0308]: mismatched types --> $DIR/fn-compare-mismatch.rs:4:18 diff --git a/src/test/ui/issues/issue-59488.rs b/src/test/ui/issues/issue-59488.rs new file mode 100644 index 00000000000..27cf16a821f --- /dev/null +++ b/src/test/ui/issues/issue-59488.rs @@ -0,0 +1,26 @@ +// ignore-tidy-linelength + +fn foo() -> i32 { + 42 +} + +fn bar(a: i64) -> i64 { + 43 +} + +fn main() { + foo > 12; + //~^ ERROR 12:9: 12:10: binary operation `>` cannot be applied to type `fn() -> i32 {foo}` [E0369] + //~| ERROR 12:11: 12:13: mismatched types [E0308] + + bar > 13; + //~^ ERROR 16:9: 16:10: binary operation `>` cannot be applied to type `fn(i64) -> i64 {bar}` [E0369] + //~| ERROR 16:11: 16:13: mismatched types [E0308] + + foo > foo; + //~^ ERROR 20:9: 20:10: binary operation `>` cannot be applied to type `fn() -> i32 {foo}` [E0369] + + foo > bar; + //~^ ERROR 23:9: 23:10: binary operation `>` cannot be applied to type `fn() -> i32 {foo}` [E0369] + //~| ERROR 23:11: 23:14: mismatched types [E0308] +} diff --git a/src/test/ui/issues/issue-59488.stderr b/src/test/ui/issues/issue-59488.stderr new file mode 100644 index 00000000000..b49f5e35f42 --- /dev/null +++ b/src/test/ui/issues/issue-59488.stderr @@ -0,0 +1,81 @@ +error[E0369]: binary operation `>` cannot be applied to type `fn() -> i32 {foo}` + --> $DIR/issue-59488.rs:12:9 + | +LL | foo > 12; + | --- ^ -- {integer} + | | + | fn() -> i32 {foo} + | help: you might have forgotten to call this function: `foo()` + | + = note: an implementation of `std::cmp::PartialOrd` might be missing for `fn() -> i32 {foo}` + +error[E0308]: mismatched types + --> $DIR/issue-59488.rs:12:11 + | +LL | foo > 12; + | ^^ expected fn item, found integer + | + = note: expected type `fn() -> i32 {foo}` + found type `i32` + +error[E0369]: binary operation `>` cannot be applied to type `fn(i64) -> i64 {bar}` + --> $DIR/issue-59488.rs:16:9 + | +LL | bar > 13; + | --- ^ -- {integer} + | | + | fn(i64) -> i64 {bar} + | help: you might have forgotten to call this function: `bar( /* arguments */ )` + | + = note: an implementation of `std::cmp::PartialOrd` might be missing for `fn(i64) -> i64 {bar}` + +error[E0308]: mismatched types + --> $DIR/issue-59488.rs:16:11 + | +LL | bar > 13; + | ^^ expected fn item, found integer + | + = note: expected type `fn(i64) -> i64 {bar}` + found type `i64` + +error[E0369]: binary operation `>` cannot be applied to type `fn() -> i32 {foo}` + --> $DIR/issue-59488.rs:20:9 + | +LL | foo > foo; + | --- ^ --- fn() -> i32 {foo} + | | + | fn() -> i32 {foo} + | + = note: an implementation of `std::cmp::PartialOrd` might be missing for `fn() -> i32 {foo}` +help: you might have forgotten to call this function + | +LL | foo() > foo; + | ^^^^^ +help: you might have forgotten to call this function + | +LL | foo > foo(); + | ^^^^^ + +error[E0369]: binary operation `>` cannot be applied to type `fn() -> i32 {foo}` + --> $DIR/issue-59488.rs:23:9 + | +LL | foo > bar; + | --- ^ --- fn(i64) -> i64 {bar} + | | + | fn() -> i32 {foo} + | + = note: an implementation of `std::cmp::PartialOrd` might be missing for `fn() -> i32 {foo}` + +error[E0308]: mismatched types + --> $DIR/issue-59488.rs:23:11 + | +LL | foo > bar; + | ^^^ expected fn item, found a different fn item + | + = note: expected type `fn() -> i32 {foo}` + found type `fn(i64) -> i64 {bar}` + +error: aborting due to 7 previous errors + +Some errors occurred: E0308, E0369. +For more information about an error, try `rustc --explain E0308`. |
