-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Support generic methods in Fasta #30455
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
Did you also turn on strong mode when you disabled erasure? |
My understanding is that strong mode is enabled/disabled on a test-by-test basis -- it's given as a parameter to the vm_fasta target. Currently, were are only performing erasure in this target when strong mode is off, but it seems that most tests run in this way. |
@peter-ahe-google I recall you did a bunch of fixes for type-variables/generics in the last few weeks. Is this still an open issue? Just trying to figure out whether there are still issues to work on before we disable erasure. |
I think this is still an issue. @sjindel-google I'd like a bit more details about how to reproduce this problem. For example:
|
There are two problems:
The VM's default behavior for generic methods (in the absence of the "reify" flags) is to replace type-parameters with dynamic. So even if generic method type parameters are not erased, the VM will do it itself. Even so, fasta generates invalid kernel for some programs with generic methods, which the VM cannot read. To evidence this, disable erasure in
The support Regis has implemented in the VM for actual generic methods has not been fully ported to the kernel reader. When To evidence this, disable erasure in
|
@sjindel-google please add the following information to this bug:
|
Patch:
Repro:
The last command outputs "true" when it should output "false". |
Type erasure is dead. |
Fasta's support for generic methods is not yet complete, and has several bugs, which can evidenced by disabling type erasure and running Fasta's output through the verifier.
When these issues are resolved, we may continue implementing support for generic methods in the VM.
This issue number is used as a tag through the VM source to indicate where this support is incomplete due to the currently inability to test it.
The text was updated successfully, but these errors were encountered: