about summary refs log tree commit diff
path: root/compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp
diff options
context:
space:
mode:
authorYuki Okushi <jtitor@2k36.org>2021-09-17 14:09:49 +0900
committerGitHub <noreply@github.com>2021-09-17 14:09:49 +0900
commitc97ff098f192901b81dc2ad7142195757853964d (patch)
tree16d5e079a59f18ddfe1bce4a0611c0e1c3d8832d /compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp
parent5d14396ed0b8efc06e3446bd3a6ed2c3e8eccd80 (diff)
parentcbd79836a5b7ef07e33213cb979294ad1b9faccc (diff)
downloadrust-c97ff098f192901b81dc2ad7142195757853964d.tar.gz
rust-c97ff098f192901b81dc2ad7142195757853964d.zip
Rollup merge of #88911 - FabianWolff:issue-88653, r=petrochenkov
Improve error message for type mismatch in generator arguments

Fixes #88653. The code example given there is invalid because the `Generator` trait (unlike the `Fn` traits) does not take the generator arguments in tupled-up form (because there can only be one argument, from my understanding). Hence, the type error in the example in #88653 is correct, because the given generator takes a `bool` argument, whereas the function's return type talks about a generator with a `(bool,)` argument.

The error message is both confusing and wrong, though: It is wrong because it displays the wrong "expected signature", and it is confusing because both the "expected" and "found" notes point at the same span. With my changes, I get the following, more helpful output:
```
error[E0631]: type mismatch in generator arguments
 --> test.rs:5:22
  |
5 | fn foo(bar: bool) -> impl Generator<(bool,)> {
  |                      ^^^^^^^^^^^^^^^^^^^^^^^ expected signature of `fn((bool,)) -> _`
6 |     |bar| {
  |     ----- found signature of `fn(bool) -> _`
```
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp')
0 files changed, 0 insertions, 0 deletions