RFC 1859 laid out specific error messages for the ?
operator, but currently they are not implemented (and instead the compiler's internal desugaring is revealed).
UPDATE: Many parts of this are done, but not all. Here is a post with examples that are not yet great.
UPDATE 2: to close this ticket we need to improve the output of a single case left to point at the return type to explain where usize
is coming from.
Original text:
try!
in main has long been an issue, to the point of trying to adjust the language to support it: rust-lang/rfcs#1176
I was trying out ?
today, and hit this error:
error[E0308]: mismatched types --> src/main.rs:5:13 | 5 | let f = File::open("hello.txt")?; | ^^^^^^^^^^^^^^^^^^^^^^^^ expected (), found enum `std::result::Result` | = note: expected type `()` = note: found type `std::result::Result<_, _>`
That's the only line, inside of a main()
function. Even though I know about this pitfall, and have been using Rust for a long time, I asked a question about it on IRC.
Can we print a better diagnostic here that points out it's the return type of the function that's looking for ()
?
durka, hanna-kruppe, malbarbo, joshtriplett, carols10cents and 19 more
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4