diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Type.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Type.java index d397d71e4b5ef..fa0220b1e1fdd 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Type.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Type.java @@ -1155,11 +1155,7 @@ public void setEnclosingType(Type outer) { public List allparams() { if (allparams_field == null) { - Type enclosingType = getEnclosingType(); - while (enclosingType.hasTag(TYPEVAR)) { - enclosingType = enclosingType.getUpperBound(); - } - allparams_field = getTypeArguments().prependList(enclosingType.allparams()); + allparams_field = getTypeArguments().prependList(getEnclosingType().allparams()); } return allparams_field; } diff --git a/test/langtools/tools/javac/T8343580.java b/test/langtools/tools/javac/T8343580.java deleted file mode 100644 index 4a004bd86a654..0000000000000 --- a/test/langtools/tools/javac/T8343580.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 2025, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -/* - * @test - * @bug 8343580 - * @summary Type error with inner classes of generic classes in functions generic by outer - * @compile T8343580.java - */ - -class T8343580 { - static abstract class Getters { - abstract class Getter { - abstract T get(); - } - } - - static class Usage1> { - public T test(G.Getter getter) { - return getter.get(); - } - } - - static class Usage2, G extends U> { - public T test(G.Getter getter) { - return getter.get(); - } - } - - static class Usage3> { - public T test(G.Getter getter) { - return getter.get(); - } - } - - class G2 extends Getters {} - static class Usage4> { - M test(L.Getter getter) { - return getter.get(); - } - } -}