JDK-6325201 : make erasure non-destructive
  • Type: Bug
  • Component: tools
  • Sub-Component: javac
  • Affected Version: 6
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2005-09-16
  • Updated: 2010-04-03
  • Resolved: 2006-03-04
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6
6 b75Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Relates :  
Description
From 6199662


>         A more correct solution would be to make erasure
>         "non-destructive".
> 
>         ###@###.### 2005-05-18 02:16:13 GMT

Comments
EVALUATION This fix enables us to change back to the tiger compile policy which reduces memory consumption (bug 6382700).
27-02-2006

SUGGESTED FIX Webrev of changes: http://sa.sfbay/projects/langtools/bugid_summary.pl?bugid=6325201
24-02-2006

EVALUATION Not that tricky after all. Simply scan the class to discover potential problems.
23-02-2006

EVALUATION The suggested fix doesn't handle the situation reported in the original report (if the subclass isn't a top level class). Getting around this is tricky and will have to be deferred to later in Mustang.
23-02-2006

EVALUATION The problem turns out to be that TransType will translate superclasses before subclasses regardless if the superclass has been completely processed.
08-02-2006

SUGGESTED FIX -02-07 22:06:46.762865256 -0800 +++ JavaCompiler.java 2006-02-07 22:04:33.360145552 -0800 @@ -983,6 +983,11 @@ if (errorCount() > 0) return; + if (enter.getEnv(types.supertype(env.enclClass.sym.type).tsym) != null) { + todo.append(env); + return; + } + if (verboseCompilePolicy) log.printLines(log.noticeWriter, "[desugar " + env.enclClass.sym + "]");
08-02-2006