Community
Participate
Working Groups
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.
Works for me in latest. Still an extra unchecked warning, but this is a separate issue we are aware of already.