### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core.tests.compiler Index: src/org/eclipse/jdt/core/tests/compiler/regression/GenericTypeTest.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/GenericTypeTest.java,v retrieving revision 1.633 diff -u -r1.633 GenericTypeTest.java --- src/org/eclipse/jdt/core/tests/compiler/regression/GenericTypeTest.java 5 Jul 2007 15:09:31 -0000 1.633 +++ src/org/eclipse/jdt/core/tests/compiler/regression/GenericTypeTest.java 14 Aug 2007 18:52:35 -0000 @@ -38260,4 +38260,37 @@ "The method compound(Iterable>) in the type X is not applicable for the arguments (List>)\n" + "----------\n"); } +public void test1149() { + this.runConformTest( + new String[] { + "A.java", + "public class A {\n" + + " A() throws T {}\n" + + " void a() throws ClassNotFoundException {\n" + + " new A();\n" + + " }\n" + + "}\n", + "B.java", + "public class B {\n" + + " void b() throws ClassNotFoundException {\n" + + " new A();\n" + + " }\n" + + "}\n" + }, + "" + ); + this.runConformTest( + new String[] { + "B.java", + "public class B {\n" + + " void b() throws ClassNotFoundException {\n" + + " new A();\n" + + " }\n" + + "}\n" + }, + "", + null, + false, // do not flush output + null); +} } #P org.eclipse.jdt.core Index: compiler/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java,v retrieving revision 1.105 diff -u -r1.105 BinaryTypeBinding.java --- compiler/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java 10 May 2007 00:16:04 -0000 1.105 +++ compiler/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java 14 Aug 2007 18:52:36 -0000 @@ -471,11 +471,11 @@ } } - if (!method.isConstructor()) - returnType = environment.getTypeFromTypeSignature(wrapper, typeVars, this); + // always retrieve return type (for constructors, its V for void - will be ignored) + returnType = environment.getTypeFromTypeSignature(wrapper, typeVars, this); if (!wrapper.atEnd() && wrapper.signature[wrapper.start] == '^') { - // attempt to find each superinterface if it exists in the cache (otherwise - resolve it when requested) + // attempt to find each exception if it exists in the cache (otherwise - resolve it when requested) java.util.ArrayList types = new java.util.ArrayList(2); do { wrapper.start++; // skip '^'