-
Notifications
You must be signed in to change notification settings - Fork 13.3k
ICE in stable 1.9 - ERROR:rbml::reader: failed to find block with tag 32 | [Avoided by removing type decl from closure scope?] #34027
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
Comments
|
After further testing, it appears the ICE occurs whenever the Still unsure of how to work around this atm, but will keep hunting. |
Interestingly, removing the body of the |
This might be related to #33364 as in both issues the ICE seems to have appeared in 1.9 and still remains in the current nightly. The example in #33364 also demonstrates that the ICE occurs when doing a blanket impl of some trait for a generic tuple whose elements' types are used as associated types. Conrod uses this same pattern for its Edit: The issue doesn't seem to be related to the blanket impl of |
OK, I've managed to work around the ICE in Conrod! It turns out it was being caused by declaring a struct within the scope of a closure. After removing the struct declaration and using local variables instead of fields, the ICE went away. This was within the body of a Note that the ICE wouldn't occur when compiling conrod itself, but would occur when using conrod as a dependency and attempting to use a part of conrod's API that used the code with the closure-scoped struct declaration internally. |
I've managed to hit this very same ICE again in totally unrelated code in a different crate. Will post again when I get some more details. |
This bug occurs also in synth in both 1.9 and beta for me, nightly works for this crate. Seems to have something to do with @mitchmindtree's authorship ;) |
As @filmor mentioned, the synth crate continues to ICE on both stable and beta, though nightly seems to be working. I'd request porting the fix to beta, though I'm unaware which commit to nightly has fixed the issue. Hopefully I'll get a chance to hunt it down before the end of this release cycle. |
@rust-lang/compiler Seems bad, but has a fix. @arielb1 will you go ahead and try to backport a patch? |
@arielb1 says he can backport to beta, and will also try to target stable as well |
correction: not fixed by that PR; we decided to not backport that PR to beta. (See discussion on that ticket.) |
I managed to avoid the Similarly to the conrod fix, all the PR does is move an item definition (this time a function rather than a struct) out of the body of a function and to the root of the module. Now however, I've managed to hit this same ICE again in a separate, personal, closed source project. Following the pattern in the @pnkfelix if this is not yet fixed by the PR you linked, would you mind re-opening this issue? |
Version:
rustc 1.9.0 (e4e8b6668 2016-05-18)
. Edit: According to travis this also occurs on the current nightly.Specifically, the ICE occurs while compiling this conrod example in this commit.
Curiously, the ICE goes away when I remove the call to
.set
on theTextBox
widget here. I've not yet been able to reduce this case, but will post again if I do.This same code compiles without issues on 1.8 - the ICE only appeared after updating to 1.9.
Here is the backtrace:
This could be related to #32696.
The text was updated successfully, but these errors were encountered: