diff --git a/compiler/src/dotty/tools/dotc/core/classfile/ClassfileParser.scala b/compiler/src/dotty/tools/dotc/core/classfile/ClassfileParser.scala index bc64f34d8d7a..410bc6e591d4 100644 --- a/compiler/src/dotty/tools/dotc/core/classfile/ClassfileParser.scala +++ b/compiler/src/dotty/tools/dotc/core/classfile/ClassfileParser.scala @@ -1061,6 +1061,8 @@ class ClassfileParser( } else if (sym == classRoot.symbol) instanceScope.lookup(name) + else if (sym == classRoot.symbol.owner && name == classRoot.name) + classRoot.symbol else sym.info.member(name).symbol diff --git a/tests/pos-java-interop-separate/inner-fbounds/Configurer_1.java b/tests/pos-java-interop-separate/inner-fbounds/Configurer_1.java new file mode 100644 index 000000000000..f75aaf1743ed --- /dev/null +++ b/tests/pos-java-interop-separate/inner-fbounds/Configurer_1.java @@ -0,0 +1,8 @@ +abstract class AbstractConfigurer { + abstract class AbstractRegistry> {} +} + +public final class Configurer_1 extends AbstractConfigurer { + public final class Registry extends AbstractRegistry {} + public Registry registry() { return null; } +} diff --git a/tests/pos-java-interop-separate/inner-fbounds/Test_2.scala b/tests/pos-java-interop-separate/inner-fbounds/Test_2.scala new file mode 100644 index 000000000000..85455c91762d --- /dev/null +++ b/tests/pos-java-interop-separate/inner-fbounds/Test_2.scala @@ -0,0 +1,2 @@ +object Test: + def registry(cfg: Configurer_1) = cfg.registry