Community
Participate
Working Groups
The following code gives an "Internal compiler error": public class Test { static interface Factory<T> { public <U extends T> U create(Class<U> cl); } static class BytesFactory implements Factory<byte[]> { public byte[] create(Class<byte[]> cl) { return null; } } }
java.lang.ClassCastException: org.eclipse.jdt.internal.compiler.lookup.ArrayBinding at org.eclipse.jdt.internal.compiler.lookup.ParameterizedMethodBinding.<init>(ParameterizedMethodBinding.java:78) at org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.createParameterizedMethod(ParameterizedTypeBinding.java:229) at org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.methods(ParameterizedTypeBinding.java:725) at org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.unResolvedMethods(ReferenceBinding.java:982) at org.eclipse.jdt.internal.compiler.lookup.MethodVerifier.computeInheritedMethods(MethodVerifier.java:465) at org.eclipse.jdt.internal.compiler.lookup.MethodVerifier.computeInheritedMethods(MethodVerifier.java:352) at org.eclipse.jdt.internal.compiler.lookup.MethodVerifier.verify(MethodVerifier.java:586) at org.eclipse.jdt.internal.compiler.lookup.MethodVerifier15.verify(MethodVerifier15.java:397) at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.verifyMethods(SourceTypeBinding.java:1493) at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.verifyMethods(SourceTypeBinding.java:1496) at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.verifyMethods(CompilationUnitScope.java:718) at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:501) at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:329) at org.eclipse.jdt.internal.compiler.batch.Main.performCompilation(Main.java:2691) at org.eclipse.jdt.internal.compiler.batch.Main.compile(Main.java:1151) at org.eclipse.jdt.internal.compiler.batch.Main.compile(Main.java:1048) at org.eclipse.jdt.internal.compiler.batch.Main.compile(Main.java:1040) at org.eclipse.jdt.core.tools.compiler.Compile.main(Compile.java:19)
Added GenericTypeTest#test748. When creating generic method for parameterized type (Factory<byte[]>) we did not properly handle arrays when recreating type variable formal bounds. Fix is similar to what we do already have in other places. +1 for RC3 Dani - pls cast your vote.
+1 for 3.1 RC3
Fixed
Verified using N20050616-0010 + JDT/Core HEAD