Community
Participate
Working Groups
Eclipse I20050527-1300, SUN 1.5.0_3, Win2k Sp4. Internal compiler error Compiling the following two classes ============================== package bugs; public class AbsC { public <T> T[] resize(T[] src, T[] dest) { return dest; } } ============================== package bugs; public class ConrC<T> extends AbsC { T[][] data; protected void allocateChunkSlots(int maxChunkNo) { data = resize(data, new Object[maxChunkNo][]); } } =============================== Relevant content of .log (looks like compiler swallows nested exceptions too) !ENTRY org.eclipse.core.resources 2 75 2005-06-06 09:16:19.375 !MESSAGE Errors during build. !SUBENTRY 1 org.eclipse.jdt.core 2 75 2005-06-06 09:16:19.375 !MESSAGE Errors running builder "Java Builder" on project eclipse-bugs. !SUBENTRY 1 org.eclipse.jdt.core 2 75 2005-06-06 09:16:19.390 !MESSAGE org.eclipse.jdt.internal.compiler.lookup.ArrayBinding !STACK 0 java.lang.ClassCastException: org.eclipse.jdt.internal.compiler.lookup.ArrayBinding at org.eclipse.jdt.internal.compiler.lookup.Scope.minimalErasedCandidates(Scope.java:3177) at org.eclipse.jdt.internal.compiler.lookup.Scope.lowerUpperBound(Scope.java:2987) at org.eclipse.jdt.internal.compiler.lookup.Scope.lowerUpperBound(Scope.java:2957) at org.eclipse.jdt.internal.compiler.lookup.ParameterizedGenericMethodBinding.resolveSubstituteConstraints(ParameterizedGenericMethodBinding.java:246) at org.eclipse.jdt.internal.compiler.lookup.ParameterizedGenericMethodBinding.inferFromArgumentTypes(ParameterizedGenericMethodBinding.java:169) at org.eclipse.jdt.internal.compiler.lookup.ParameterizedGenericMethodBinding.computeCompatibleMethod(ParameterizedGenericMethodBinding.java:63) at org.eclipse.jdt.internal.compiler.lookup.Scope.computeCompatibleMethod(Scope.java:361) at org.eclipse.jdt.internal.compiler.lookup.Scope.findMethod(Scope.java:1190) at org.eclipse.jdt.internal.compiler.lookup.Scope.getImplicitMethod(Scope.java:1839) at org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:313) at org.eclipse.jdt.internal.compiler.ast.Assignment.resolveType(Assignment.java:181) at org.eclipse.jdt.internal.compiler.ast.Expression.resolve(Expression.java:808) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatements(AbstractMethodDeclaration.java:415) at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements(MethodDeclaration.java:169) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:393) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1063) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1112) at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:305) at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:504) at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:329) at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:240) at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:190) at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:50) at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:216) at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:139) at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:593) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1038) at org.eclipse.core.runtime.Platform.run(Platform.java:775) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:168) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:202) at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:231) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1038) at org.eclipse.core.runtime.Platform.run(Platform.java:775) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:234) at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:253) at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:282) at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:139) at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:200) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:67) !ENTRY org.eclipse.jdt.ui 4 0 2005-06-06 09:16:20.390 !MESSAGE Error in JDT Core during reconcile !STACK 1 org.eclipse.jdt.core.JavaModelException[1005]: java.lang.ClassCastException: org.eclipse.jdt.internal.compiler.lookup.ArrayBinding at org.eclipse.jdt.internal.compiler.lookup.Scope.minimalErasedCandidates(Scope.java:3177) at org.eclipse.jdt.internal.compiler.lookup.Scope.lowerUpperBound(Scope.java:2987) at org.eclipse.jdt.internal.compiler.lookup.Scope.lowerUpperBound(Scope.java:2957) at org.eclipse.jdt.internal.compiler.lookup.ParameterizedGenericMethodBinding.resolveSubstituteConstraints(ParameterizedGenericMethodBinding.java:246) at org.eclipse.jdt.internal.compiler.lookup.ParameterizedGenericMethodBinding.inferFromArgumentTypes(ParameterizedGenericMethodBinding.java:169) at org.eclipse.jdt.internal.compiler.lookup.ParameterizedGenericMethodBinding.computeCompatibleMethod(ParameterizedGenericMethodBinding.java:63) at org.eclipse.jdt.internal.compiler.lookup.Scope.computeCompatibleMethod(Scope.java:361) at org.eclipse.jdt.internal.compiler.lookup.Scope.findMethod(Scope.java:1190) at org.eclipse.jdt.internal.compiler.lookup.Scope.getImplicitMethod(Scope.java:1839) at org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:313) at org.eclipse.jdt.internal.compiler.ast.Assignment.resolveType(Assignment.java:181) at org.eclipse.jdt.internal.compiler.ast.Expression.resolve(Expression.java:808) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatements(AbstractMethodDeclaration.java:415) at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements(MethodDeclaration.java:169) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:393) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1063) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1112) at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:305) at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:560) at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:599) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:165) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:214) at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:79) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:718) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:777) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1081) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:98) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1038) at org.eclipse.core.runtime.Platform.run(Platform.java:775) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:82) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:147) at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:86) at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.reconcile(JavaCompositeReconcilingStrategy.java:94) at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:75) at org.eclipse.jdt.internal.ui.text.JavaReconciler.process(JavaReconciler.java:318) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:204) Caused by: java.lang.ClassCastException: org.eclipse.jdt.internal.compiler.lookup.ArrayBinding at org.eclipse.jdt.internal.compiler.lookup.Scope.minimalErasedCandidates(Scope.java:3177) at org.eclipse.jdt.internal.compiler.lookup.Scope.lowerUpperBound(Scope.java:2987) at org.eclipse.jdt.internal.compiler.lookup.Scope.lowerUpperBound(Scope.java:2957) at org.eclipse.jdt.internal.compiler.lookup.ParameterizedGenericMethodBinding.resolveSubstituteConstraints(ParameterizedGenericMethodBinding.java:246) at org.eclipse.jdt.internal.compiler.lookup.ParameterizedGenericMethodBinding.inferFromArgumentTypes(ParameterizedGenericMethodBinding.java:169) at org.eclipse.jdt.internal.compiler.lookup.ParameterizedGenericMethodBinding.computeCompatibleMethod(ParameterizedGenericMethodBinding.java:63) at org.eclipse.jdt.internal.compiler.lookup.Scope.computeCompatibleMethod(Scope.java:361) at org.eclipse.jdt.internal.compiler.lookup.Scope.findMethod(Scope.java:1190) at org.eclipse.jdt.internal.compiler.lookup.Scope.getImplicitMethod(Scope.java:1839) at org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:313) at org.eclipse.jdt.internal.compiler.ast.Assignment.resolveType(Assignment.java:181) at org.eclipse.jdt.internal.compiler.ast.Expression.resolve(Expression.java:808) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatements(AbstractMethodDeclaration.java:415) at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements(MethodDeclaration.java:169) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:393) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1063) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1112) at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:305) at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:560) at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:599) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:165) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:214) at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:79) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:718) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:777) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1081) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:98) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1038) at org.eclipse.core.runtime.Platform.run(Platform.java:775) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:82) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:147) at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:86) at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.reconcile(JavaCompositeReconcilingStrategy.java:94) at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:75) at org.eclipse.jdt.internal.ui.text.JavaReconciler.process(JavaReconciler.java:318) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:204)
Reproduced in latest.
+1 for RC2
Added GenericTypeTest#test725. Problem comes from mishandling of array type in mec algorithm.
Fixed
Verified in N20050606-0010 + JDT/Core HEAD
Verified for 3.1 RC2 using build I20050610-0010