Skip to content

No line number in error message with try! macro #33704

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
eminence opened this issue May 18, 2016 · 5 comments
Closed

No line number in error message with try! macro #33704

eminence opened this issue May 18, 2016 · 5 comments
Labels
A-macros Area: All kinds of macros (custom derive, macro_rules!, proc macros, ..)

Comments

@eminence
Copy link
Contributor

eminence commented May 18, 2016

Playpen link: https://is.gd/eYoVIw

Using Stable or Beta, the error message looks like this:

<std macros>:5:8: 6:42 error: mismatched types:
[.. eliding text ..]
<anon>:6:17: 6:24 note: in this expansion of try! (defined in <std macros>)

The key part is that it tells me that line 6 is where the try expansion happens.

But when running with Nightly, this is the error message (in full):

error: mismatched types [--explain E0308]
 --> <std macros>:5:8
5 |> return $ crate :: result :: Result :: Err (
  |>        ^ expected struct `Foo`, found enum `std::result::Result`
<std macros>:5:8: 6:45: note: in this expansion of try! (defined in <std macros>)
note: expected type `Foo`
note:    found type `std::result::Result<_, _>`

error: aborting due to previous error
playpen: application terminated with error code 101

The expansion site (line 6) is missing from the error diagnostics. While the playpen uses the new-style diagnostics, this problem (the missing line number) applies to the old-style diagnostics too.

I'm not sure if this is only for try!, or if it is for all macros (I didn't test that)
I'm not sure exactly what version of rustc the playpen is at, but this issue is reproduced with rustc 1.10.0-nightly (cd6a40017 2016-05-16)

@Manishearth
Copy link
Member

cc @nrc

@Manishearth Manishearth added I-papercut A-macros Area: All kinds of macros (custom derive, macro_rules!, proc macros, ..) labels May 18, 2016
@nrc
Copy link
Member

nrc commented May 18, 2016

cc @jonathandturner @nikomatsakis

@nikomatsakis
Copy link
Contributor

ah I think I saw this bug when @jonathandturner and I were considering how best to render those stack traces... I feel like there was a simple logic bug in the "expand-macro-backtrace" code that led to it... @jonathandturner do you remember?

@eminence
Copy link
Contributor Author

I tried to track this regression via bisection and I arrived at 01d2b4a as the culprit

@nikomatsakis
Copy link
Contributor

note that #33730 has a fix

Manishearth added a commit to Manishearth/rust that referenced this issue May 19, 2016
…ostics, r=nikomatsakis

Fix macro expansion backtrace diagnostics

Fixes rust-lang#33704.
r? @nikomatsakis
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-macros Area: All kinds of macros (custom derive, macro_rules!, proc macros, ..)
Projects
None yet
Development

No branches or pull requests

4 participants