FutureResult inner type mismatch error points to wrong line #46639
Labels
A-diagnostics
Area: Messages for errors, warnings, and lints
C-enhancement
Category: An issue proposing an enhancement or a PR with one.
E-needs-mcve
Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
Quite apart from #46606 but involving the same test code, an inner type mismatch in
FutureResult
chaining generates an error for one of mismatched types (perf #46606, which type is a matter of some contention), but aside from which type triggers the error, the error ultimately points to the wrong location.For example, in the code below:
The error
points to the combinator resolving to a
String
, which:String
was the right result and the&'static str
result was the wrong one, so if anything, the error should be on themap_err
ormap
lines and not theand_then
line, however,&'str
the compiler is complaining about, and not the function accepting the closure returning the wrong type.(I imagine what is happening here is that
and_then
is an impl function being passed aFutureMap
structure, and the compiler is finding a mismatch between the expected type passed to the theand_then
function vs the actual inner type ofFutureMap
, and complaining at that juncture. Additionally, I no longer have any clue whether I should be posting criticism of compiler errors/hints while compiling against futures-rs here or in the rust-lang repo. Forgive me.)The text was updated successfully, but these errors were encountered: