Skip to content
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

ICE when invoking attribute macro on crate root #41211

Closed
abonander opened this issue Apr 11, 2017 · 2 comments
Closed

ICE when invoking attribute macro on crate root #41211

abonander opened this issue Apr 11, 2017 · 2 comments
Assignees
Labels
A-macros Area: All kinds of macros (custom derive, macro_rules!, proc macros, ..) I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️

Comments

@abonander
Copy link
Contributor

An ICE occurs when invoking a procedural macro attribute on the root of a crate with #![my_proc_macro].

Relevant backtrace frames:

thread 'rustc' panicked at 'called `Option::unwrap()` on a `None` value', src\libcore\option.rs:329
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
stack backtrace:
   0: syntax::ext::expand::MacroExpander::expand_crate
             at C:\Users\cyber\Rust\rust\src\libsyntax\ext\expand.rs:225
   1: rustc_driver::driver::phase_2_configure_and_expand::{{closure}}<closure>
             at C:\Users\cyber\Rust\rust\src\librustc_driver\driver.rs:699

This happens on the latest nightly [rustc 1.18.0-nightly (ad36c2f55 2017-04-09)], however because I'm lazy I got this backtrace from the last debug build from my last PR so the lines have moved. I suspect it's one of the two unwraps() at line 217.

cc @jseyfried

@TimNN TimNN added I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ A-macros Area: All kinds of macros (custom derive, macro_rules!, proc macros, ..) labels Apr 11, 2017
@jseyfried jseyfried self-assigned this Apr 13, 2017
@abonander
Copy link
Contributor Author

@jseyfried If you haven't started on this one I'll go ahead and take a crack at it since people are stumbling on it.

@abonander
Copy link
Contributor Author

That second unwrap is syntax::ptr::P::unwrap() which is infallible. That's kind of misleading, but okay.

abonander added a commit to abonander/rust that referenced this issue Apr 20, 2017
Adds temporary regression test; this ideally should work as-is (rust-lang#41430)

Closes rust-lang#41211
frewsxcv added a commit to frewsxcv/rust that referenced this issue Apr 22, 2017
Don't panic if an attribute macro fails to resolve at crate root

Adds temporary regression test; this ideally should work as-is (rust-lang#41430)

Closes rust-lang#41211

r? @jseyfried
frewsxcv added a commit to frewsxcv/rust that referenced this issue Apr 22, 2017
Don't panic if an attribute macro fails to resolve at crate root

Adds temporary regression test; this ideally should work as-is (rust-lang#41430)

Closes rust-lang#41211

r? @jseyfried
frewsxcv added a commit to frewsxcv/rust that referenced this issue Apr 22, 2017
Don't panic if an attribute macro fails to resolve at crate root

Adds temporary regression test; this ideally should work as-is (rust-lang#41430)

Closes rust-lang#41211

r? @jseyfried
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, ..) I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️
Projects
None yet
Development

No branches or pull requests

3 participants