Bug 174434 - [1.5][compiler] Parameterized constructor leads to Internal Errror
Summary: [1.5][compiler] Parameterized constructor leads to Internal Errror
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.2   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.3 M6   Edit
Assignee: Olivier Thomann CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-02-16 08:49 EST by Rémi Forax CLA
Modified: 2007-03-20 13:49 EDT (History)
0 users

See Also:


Attachments
Proposed fix (3.83 KB, patch)
2007-02-16 09:40 EST, Olivier Thomann CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Rémi Forax CLA 2007-02-16 08:49:11 EST
Build ID: I20070209-1006

Steps To Reproduce:
1. compile the following program
2. or comment the first line of the main and uncomment
   the second line

public class EclipseBug3 {
    <T> EclipseBug3(T t) { }
    
    class A {
      <T> A(T t) { }
    }
    
    public static void main(String[] args) {
      new <?> EclipseBug3(null);
      //new EclipseBug3(null).new <?> A(null);
    }
}

More information:
Using a wildcard as type argument is rejected by the JLS
but eclipse compiler doesn't handle this case.

A call to a parametrized constructor with a wildcard
raises the following exception :

Internal compiler error
java.lang.NullPointerException
	at org.eclipse.jdt.internal.compiler.ast.AllocationExpression.analyseCode(AllocationExpression.java:33)
	at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.analyseCode(MethodDeclaration.java:90)
	at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.internalAnalyseCode(TypeDeclaration.java:668)
	at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.analyseCode(TypeDeclaration.java:253)
	at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.analyseCode(CompilationUnitDeclaration.java:107)
	at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:621)
	at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:391)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:355)
	at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilder.java:173)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:292)
	at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:59)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:245)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:175)
	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:621)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:163)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:194)
	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:243)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:246)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:299)
	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:331)
	at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:158)
	at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:224)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)

and a call to a parametrized constructor of an inner-class
with a wildcard raises this one :
Internal compiler error
java.lang.NullPointerException
	at org.eclipse.jdt.internal.compiler.ast.QualifiedAllocationExpression.analyseCode(QualifiedAllocationExpression.java:53)
	at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.analyseCode(MethodDeclaration.java:90)
	at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.internalAnalyseCode(TypeDeclaration.java:668)
	at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.analyseCode(TypeDeclaration.java:253)
	at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.analyseCode(CompilationUnitDeclaration.java:107)
	at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:621)
	at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:391)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:355)
	at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilder.java:173)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:292)
	at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:59)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:245)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:175)
	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:621)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:163)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:194)
	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:243)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:246)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:299)
	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:331)
	at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:158)
	at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:224)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)
	
Rémi
Comment 1 Olivier Thomann CLA 2007-02-16 09:12:26 EST
This is another occurence of a similar problem to bug 172189.
I'll fix it the same way.
Comment 2 Olivier Thomann CLA 2007-02-16 09:40:20 EST
Created attachment 59141 [details]
Proposed fix
Comment 3 Olivier Thomann CLA 2007-02-16 09:40:37 EST
Released for 3.3M6.
Regression tests added in org.eclipse.jdt.core.tests.compiler.regression.GenericTypeTest#test1102/test1103/test1104
Comment 4 David Audel CLA 2007-03-20 13:49:28 EDT
Verified for 3.3 M6 using build I20070320-0010