Bug 79224 - [1.5][compiler] Internal compiler error on Unchecked Conversion
Summary: [1.5][compiler] Internal compiler error on Unchecked Conversion
Status: RESOLVED WORKSFORME
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.1   Edit
Hardware: PC Windows XP
: P3 major (vote)
Target Milestone: 3.1 M4   Edit
Assignee: Philipe Mulet CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-11-22 14:17 EST by Ed Willink CLA
Modified: 2004-12-17 09:15 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ed Willink CLA 2004-11-22 14:17:36 EST
On 3.1M3, the following code

import java.util.Iterator;

public abstract class UncheckedConversionCrash {
	public abstract class MyIterator<T> implements Iterator<T> {}
	
	public abstract class Base<T extends Iterator<?>> {		
		protected abstract T start();
		public abstract Iterable getIterable();
	}
	
	public abstract class Derived extends Base<MyIterator<Object>> {	
	
		public MyIterator<Object> start() {
			return getIterable().iterator();
		}
	}
}

terminates with

an internal compiler error
java.lang.NullPointerException
at 
org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.needsUncheckedConversi
on(ReferenceBinding.java:660)
at org.eclipse.jdt.internal.compiler.ast.ReturnStatement.resolve
(ReturnStatement.java:222)
at 
org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatement
s(AbstractMethodDeclaration.java:400)
at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements
(MethodDeclaration.java:147)
at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve
(AbstractMethodDeclaration.java:378)
at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve
(TypeDeclaration.java:985)
at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve
(TypeDeclaration.java:1027)
at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve
(TypeDeclaration.java:974)
at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve
(TypeDeclaration.java:1034)
at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve
(CompilationUnitDeclaration.java:280)
at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:510)
at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:335)
at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile
(AbstractImageBuilder.java:209)
at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile
(AbstractImageBuilder.java:159)
at org.eclipse.jdt.internal.core.builder.IncrementalImageBuilder.build
(IncrementalImageBuilder.java:113)
at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildDeltas
(JavaBuilder.java:223)
at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:151)
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:574)
at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:616)
at org.eclipse.core.runtime.Platform.run(Platform.java:747)
at org.eclipse.core.internal.events.BuildManager.basicBuild
(BuildManager.java:158)
at org.eclipse.core.internal.events.BuildManager.basicBuild
(BuildManager.java:192)
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:221)
at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:616)
at org.eclipse.core.runtime.Platform.run(Platform.java:747)
at org.eclipse.core.internal.events.BuildManager.basicBuild
(BuildManager.java:224)
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop
(BuildManager.java:243)
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:272)
at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:142)
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:203)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:66)

It is far from clear that this is a diagnosis of at least a missing <T>
on the return from Base.getIterable() and even less clear when occurring
in a deeper inheritance hierarchy.
Comment 1 Philipe Mulet CLA 2004-12-17 09:15:10 EST
Works for me in latest. Still an extra unchecked warning, but this is a separate
issue we are aware of already.