Bug 82844 - [1.5] Array type as type variable bound gives internal compiler error
Summary: [1.5] Array type as type variable bound gives internal compiler error
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.1   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: 3.1 M5   Edit
Assignee: Philipe Mulet CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-01-14 10:09 EST by Ingo Maier CLA
Modified: 2005-02-15 05:57 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 Ingo Maier CLA 2005-01-14 10:09:14 EST
This code is illegal because an array type cannot be a bound:

class Foo<T extends int[]> {
}

However, this crashes the compiler:

java.lang.ClassCastException: org.eclipse.jdt.internal.compiler.lookup.ArrayBinding
at
org.eclipse.jdt.internal.compiler.lookup.Scope.connectTypeVariables(Scope.java:274)
at
org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectTypeHierarchy(ClassScope.java:861)
at
org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.connectTypeHierarchy(CompilationUnitScope.java:243)
at
org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings(LookupEnvironment.java:195)
at org.eclipse.jdt.internal.compiler.Compiler.beginToCompile(Compiler.java:307)
at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:546)
at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:610)
at
org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:165)
at
org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:213)
at
org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:78)
at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:700)
at
org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:739)
at
org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1105)
at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:91)
at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:133)
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 Ingo Maier CLA 2005-01-14 10:20:31 EST
Doesn't matter if the arrays component type is primitive or a reference type
(including type variables).
Comment 2 Philipe Mulet CLA 2005-01-14 16:34:01 EST
Added missing check for type parameter bounds.
Added GenericTypeTest#test461.
Fixed
Comment 3 Jerome Lanneluc CLA 2005-02-15 05:57:55 EST
Verified in I20050214