From a2e2a3d35a3fad614f62a2dfe906b503b85513a8 Mon Sep 17 00:00:00 2001 From: Andrzej Ratajczak Date: Thu, 15 Apr 2021 11:01:04 +0200 Subject: [PATCH] Fix Java lookups --- .../src/tests/lookupInheritedMembers.scala | 9 +++++++++ .../tools/scaladoc/tasty/comments/MemberLookup.scala | 8 +++++--- .../scaladoc/tasty/comments/MemberLookupTests.scala | 3 +++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/scaladoc-testcases/src/tests/lookupInheritedMembers.scala b/scaladoc-testcases/src/tests/lookupInheritedMembers.scala index d39bd0fe4422..70bffa0c9109 100644 --- a/scaladoc-testcases/src/tests/lookupInheritedMembers.scala +++ b/scaladoc-testcases/src/tests/lookupInheritedMembers.scala @@ -15,6 +15,15 @@ package lookupInheritedMembers { * [[tests.lookupInheritedMembers.pack2.B.x]] * [[tests.lookupInheritedMembers.pack2.B.y]] * [[tests.lookupInheritedMembers.pack2.B.MyType]] + * */ class LookupInheritedMembers + + /** + * This look up is problematic, because is lazyloaded by dotty. + * + * [[java.util.Formatter]] + */ + class JavaInheritedMembers } + diff --git a/scaladoc/src/dotty/tools/scaladoc/tasty/comments/MemberLookup.scala b/scaladoc/src/dotty/tools/scaladoc/tasty/comments/MemberLookup.scala index 93aafa7cb80a..da88f58eb9e8 100644 --- a/scaladoc/src/dotty/tools/scaladoc/tasty/comments/MemberLookup.scala +++ b/scaladoc/src/dotty/tools/scaladoc/tasty/comments/MemberLookup.scala @@ -103,13 +103,15 @@ trait MemberLookup { members.asInstanceOf[Iterator[Symbol]] } - private def hackIsNotAbsent(using Quotes)(rsym: quotes.reflect.Symbol) = { + private def hackIsNotAbsent(using Quotes)(rsym: quotes.reflect.Symbol) = import dotty.tools.dotc given dotc.core.Contexts.Context = quotes.asInstanceOf[scala.quoted.runtime.impl.QuotesImpl].ctx val sym = rsym.asInstanceOf[dotc.core.Symbols.Symbol] // note: Predef has .info = NoType for some reason - sym.isCompleted && sym.info.exists - } + val iorc = sym.infoOrCompleter + iorc match + case _: dotc.core.SymDenotations.ModuleCompleter | dotc.core.SymDenotations.NoCompleter | dotc.core.Types.NoType | _: dotc.core.NoLoader => false + case _ => true private def localLookup(using Quotes)( sel: MemberLookup.Selector, diff --git a/scaladoc/test/dotty/tools/scaladoc/tasty/comments/MemberLookupTests.scala b/scaladoc/test/dotty/tools/scaladoc/tasty/comments/MemberLookupTests.scala index dafd4003fa6f..ddb9348fd409 100644 --- a/scaladoc/test/dotty/tools/scaladoc/tasty/comments/MemberLookupTests.scala +++ b/scaladoc/test/dotty/tools/scaladoc/tasty/comments/MemberLookupTests.scala @@ -38,6 +38,9 @@ class LookupTestCases[Q <: Quotes](val q: Quotes) { "java.util.AbstractCollection" -> cls("java.util.AbstractCollection"), "java.lang.String" -> cls("java.lang.String"), + "java.util.Formatter" -> cls("java.util.Formatter"), + "java.io.Flushable" -> cls("java.io.Flushable"), + "java.util.List" -> cls("java.util.List"), "tests.lookupInheritedMembers.pack1.A.x" -> cls("tests.lookupInheritedMembers.pack1.A").fun("x"),