ff65bffe2b
Fixes #66667 Previously, we called `tcx.typeck_tables_of` when determining whether or not to emit a suggestion for a type error. However, we might already be type-checking the `DefId` we pass to `typeck_tables_of` (it could be anywhere in the query stack). Fortunately, we only need the function signature, not the entire `TypeckTables`. By using `tcx.fn_sig`, we avoid the possibility of cycle errors while retaining the ability to emit a suggestion.
56 lines
1.5 KiB
Plaintext
56 lines
1.5 KiB
Plaintext
error[E0369]: binary operation `==` cannot be applied to type `fn() {second}`
|
|
--> $DIR/issue-66667-function-cmp-cycle.rs:2:12
|
|
|
|
|
LL | second == 1
|
|
| ------ ^^ - {integer}
|
|
| |
|
|
| fn() {second}
|
|
|
|
error[E0308]: mismatched types
|
|
--> $DIR/issue-66667-function-cmp-cycle.rs:2:15
|
|
|
|
|
LL | second == 1
|
|
| ^ expected fn item, found integer
|
|
|
|
|
= note: expected fn item `fn() {second}`
|
|
found type `{integer}`
|
|
|
|
error[E0369]: binary operation `==` cannot be applied to type `fn() {first}`
|
|
--> $DIR/issue-66667-function-cmp-cycle.rs:7:11
|
|
|
|
|
LL | first == 1
|
|
| ----- ^^ - {integer}
|
|
| |
|
|
| fn() {first}
|
|
|
|
error[E0308]: mismatched types
|
|
--> $DIR/issue-66667-function-cmp-cycle.rs:7:14
|
|
|
|
|
LL | first == 1
|
|
| ^ expected fn item, found integer
|
|
|
|
|
= note: expected fn item `fn() {first}`
|
|
found type `{integer}`
|
|
|
|
error[E0369]: binary operation `==` cannot be applied to type `fn() {bar}`
|
|
--> $DIR/issue-66667-function-cmp-cycle.rs:12:9
|
|
|
|
|
LL | bar == 1
|
|
| --- ^^ - {integer}
|
|
| |
|
|
| fn() {bar}
|
|
|
|
error[E0308]: mismatched types
|
|
--> $DIR/issue-66667-function-cmp-cycle.rs:12:12
|
|
|
|
|
LL | bar == 1
|
|
| ^ expected fn item, found integer
|
|
|
|
|
= note: expected fn item `fn() {bar}`
|
|
found type `{integer}`
|
|
|
|
error: aborting due to 6 previous errors
|
|
|
|
Some errors have detailed explanations: E0308, E0369.
|
|
For more information about an error, try `rustc --explain E0308`.
|