-
Notifications
You must be signed in to change notification settings - Fork 13.3k
ICE with cross-crate resources and channels #2444
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
@eholk and I tracked this down. The problem is how we handle shape tables for generic enums. We still generate one table for the 'Generic enum' and then encode the values of the type parameters. This is pre-monomorphization thinking. We need to rewrite that code. |
Here's a simpler test case:
|
Here's an even simpler test. It's not a cross-crate issue at all.
|
…n tasks. Also added some asserts and logging to trans. Modified graph500 to use the shared_arc, but this unfortunately doesn't work due to #2444.
this is hacky, but shape code is going away anyway and I didn't want to invest too much effort into it
I believe this to be fixed now. |
I just verified that this fixes the program that originally caused this problem. |
Sadly, this exposes another ICE when trying to use the new version with Graph500
…lfJung Add default impls for `FileDescriptor` methods I felt like it was just noisy to have to write the "can't do this here" defaults
Here's a test program:
This gives an internal compiler error. The problem is that type variable leaks into trans. If I define a resource like
arc::arc
in the same file and use that instead, the program compiles successfully. Here is some of the log from compiling this:The uninstantiated type variable is the data field in the arc.
The text was updated successfully, but these errors were encountered: