Bug 98500 - [1.5] Internal compiler error
Summary: [1.5] Internal compiler error
Status: CLOSED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.1   Edit
Hardware: PC Windows 2000
: P3 major (vote)
Target Milestone: 3.1 RC2   Edit
Assignee: Philipe Mulet CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-06-06 09:24 EDT by Igor Fedorenko CLA
Modified: 2005-06-10 11:28 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Igor Fedorenko CLA 2005-06-06 09:24:38 EDT
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)
Comment 1 Philipe Mulet CLA 2005-06-07 09:44:28 EDT
Reproduced in latest.
Comment 2 Philipe Mulet CLA 2005-06-07 09:53:37 EDT
+1 for RC2
Comment 3 Philipe Mulet CLA 2005-06-07 12:50:57 EDT
Added GenericTypeTest#test725.

Problem comes from mishandling of array type in mec algorithm.
Comment 4 Philipe Mulet CLA 2005-06-07 12:51:13 EDT
Fixed
Comment 5 Olivier Thomann CLA 2005-06-07 15:57:44 EDT
Verified in N20050606-0010 + JDT/Core HEAD
Comment 6 David Audel CLA 2005-06-10 11:28:24 EDT
Verified for 3.1 RC2 using build I20050610-0010