Skip to content

Commit 2b818ee

Browse files
authored
Merge pull request #11791 from dotty-staging/i11307
Fix #11307 - look up definitions in packages as well
2 parents 86e9a42 + 6d3fa1f commit 2b818ee

File tree

4 files changed

+21
-12
lines changed

4 files changed

+21
-12
lines changed
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/** This should be moved to its own project */
21
package object tests {
3-
2+
val foo = "foo"
43
}

scaladoc-testcases/src/tests/tests.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,8 @@ package inner {
162162
}
163163
}
164164

165+
val bar = "bar"
166+
165167
/** A class with a semi-non-trivial constructor.
166168
*
167169
* @param a Hello!

scaladoc/src/dotty/tools/scaladoc/tasty/comments/MemberLookup.scala

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -128,27 +128,26 @@ trait MemberLookup {
128128
// val syms0 = syms.toList
129129
// val matched0 = syms0.filter(matches)
130130
// if matched0.isEmpty then
131-
// println(s"Failed to look up $q in $owner; all members below:")
131+
// println(s"Failed to look up $q in $owner; all members: {{{")
132132
// syms0.foreach { s => println(s"\t$s") }
133+
// println("}}}")
133134
// val matched = matched0.iterator
134135

135-
// def showMatched() = matched.foreach { s =>
136-
// println(s">>> $s")
137-
// println(s">>> ${s.pos}")
138-
// println(s">>> [${s.flags.show}]")
139-
// println(s">>> {${if s.isTerm then "isterm" else ""};${if s.isType then "istype" else ""}}")
140-
// println(s">>> moduleClass = ${if hackResolveModule(s) == s then hackResolveModule(s).show else "none"}")
136+
// def showMatched() = matched0.foreach { s =>
137+
// println(s"\t $s")
141138
// }
142-
// println(s"localLookup in class ${owner} for `$q`{forceTerm=$forceTerm}")
143-
// println(s"\t${matched0.mkString(", ")}")
139+
// println(s"localLookup in class ${owner} for `$q`{forceTerm=$forceTerm}:")
144140
// showMatched()
145141

146142
val matched = syms.filter(matches)
147143
matched.map(hackResolveModule)
148144
}
149145

150146
if owner.isPackageDef then
151-
findMatch(hackMembersOf(owner))
147+
findMatch(hackMembersOf(owner).flatMap {
148+
s =>
149+
(if s.name.endsWith("package$") then hackMembersOf(s) else Iterator.empty) ++ Iterator(s)
150+
})
152151
else
153152
owner.tree match {
154153
case tree: ClassDef =>

scaladoc/test/dotty/tools/scaladoc/tasty/comments/MemberLookupTests.scala

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,13 @@ class LookupTestCases[Q <: Quotes](val q: Quotes) {
2626
"Predef.identity" -> cls("scala.Predef$").fun("identity"),
2727
"Array$.from" -> cls("scala.Array$").fun("from"),
2828
"???" -> cls("scala.Predef$").fun("???"),
29+
"scala.List" -> cls("scala.package$").tpe("List"),
30+
2931
"tests.A" -> cls("tests.A"),
3032
"tests.A$" -> cls("tests.A$"),
3133
"tests.Methods.simple" -> cls("tests.Methods").fun("simple"),
34+
"tests.foo" -> cls("tests.package$").fld("foo"),
35+
"tests.bar" -> cls("tests.tests$package$").fld("bar"),
3236

3337
"java.util.AbstractCollection" -> cls("java.util.AbstractCollection"),
3438
"java.lang.String" -> cls("java.lang.String"),
@@ -86,6 +90,11 @@ class LookupTestCases[Q <: Quotes](val q: Quotes) {
8690
cls("tests.A") -> "A.foo" -> cls("tests.A$").fun("foo"),
8791

8892
cls("tests.inner.B") -> "A" -> cls("tests.inner.A$"),
93+
94+
cls("tests.D") -> "foo" -> cls("tests.package$").fld("foo"),
95+
cls("tests.D") -> "bar" -> cls("tests.tests$package$").fld("bar"),
96+
cls("tests.inner.A$") -> "foo" -> cls("tests.package$").fld("foo"),
97+
cls("tests.inner.A$") -> "bar" -> cls("tests.tests$package$").fld("bar"),
8998
)
9099

91100
cases.foreach { case ((Sym(owner), query), Sym(target)) =>

0 commit comments

Comments
 (0)