Summary: | [1.5][compiler] Binary compat problem with enum/switch codegen | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Eclipse Project] JDT | Reporter: | Tim Hanson <thanson> | ||||||||||||
Component: | Core | Assignee: | Olivier Thomann <Olivier_Thomann> | ||||||||||||
Status: | VERIFIED FIXED | QA Contact: | |||||||||||||
Severity: | normal | ||||||||||||||
Priority: | P3 | CC: | mlists | ||||||||||||
Version: | 3.1 | ||||||||||||||
Target Milestone: | 3.1 RC1 | ||||||||||||||
Hardware: | PC | ||||||||||||||
OS: | Windows XP | ||||||||||||||
Whiteboard: | |||||||||||||||
Attachments: |
|
Description
Tim Hanson
2005-03-17 17:30:58 EST
Created attachment 21522 [details]
Apply on HEAD
Created attachment 21523 [details]
Apply on HEAD of org.eclipse.jdt.core.tests.compiler
Corresponding regression tests. I will add more.
I just found a bug in my patch when I have two switchs for the same enum type. I create the synthetic field twice. I am investigating. Created attachment 21527 [details]
Apply on HEAD
Created attachment 21528 [details]
Apply on HEAD
Remove HashMap from SwitchStatement to replace it with a SyntheticMethodBinding
field. A switch statement can only have one synthetic method. So there is no
need for a hash map.
Created attachment 21529 [details]
Apply on HEAD of org.eclipse.jdt.core.tests.compiler
More tests.
Fixed and released in HEAD. Regression tests in org.eclipse.jdt.core.tests.compiler.regression.EnumTest.test105-111. Changes in: org.eclipse.jdt.internal.compiler.ClassFile org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.codegen.CodeStream org.eclipse.jdt.internal.compiler.codegen.ConstantPool org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding org.eclipse.jdt.internal.compiler.lookup.SyntheticMethodBinding org.eclipse.jdt.internal.compiler.lookup.TypeConstants Verified for 3.1 RC1 with build I20050527-0010. |