Skip to content

Commit 4f60d9f

Browse files
committed
Make package objects present in source
1 parent c0e7b88 commit 4f60d9f

File tree

5 files changed

+12
-9
lines changed

5 files changed

+12
-9
lines changed

compiler/src/dotty/tools/dotc/semanticdb/ExtractSemanticDB.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,8 @@ class ExtractSemanticDB extends Phase:
324324
if content.lift(span.end - 1).map(_ == '`').getOrElse(false) then
325325
(span.start + 1, span.end - 1)
326326
else (span.start, span.end)
327-
content.slice(start, end).mkString == sym.name.stripModuleClassSuffix.lastPart.toString
327+
val target = if sym.isPackageObject then sym.owner else sym
328+
content.slice(start, end).mkString == target.name.stripModuleClassSuffix.lastPart.toString
328329

329330
private def spanOfSymbol(sym: Symbol, span: Span, treeSource: SourceFile)(using Context): Span =
330331
val contents = if treeSource.exists then treeSource.content() else Array.empty[Char]
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
package object endmarkers2:
1+
package object endmarkers2/*<-endmarkers2::package.*/:
22

33
type Foo/*<-endmarkers2::package.Foo#*/ =
44
Unit/*->scala::Unit#*/
55
end Foo/*->endmarkers2::package.Foo#*/
66

7-
end endmarkers2
7+
end endmarkers2/*->endmarkers2::package.*/

tests/semanticdb/expect/semanticdb-Flags.expect.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package flags
22

33
import scala.language/*->scala::language.*/.experimental/*->scala::language.experimental.*/.macros/*->scala::language.experimental.macros.*/
44

5-
package object p {
5+
package object p/*<-flags::p::package.*/ {
66
private lazy val x/*<-flags::p::package.x.*/ = 1
77
protected implicit var y/*<-flags::p::package.y().*/: Int/*->scala::Int#*/ = 2
88
def z/*<-flags::p::package.z().*/(pp/*<-flags::p::package.z().(pp)*/: Int/*->scala::Int#*/) = 3

tests/semanticdb/expect/toplevel.expect.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ def combine/*<-_empty_::toplevel$package.combine(+1).*/(x/*<-_empty_::toplevel$p
44
def combine/*<-_empty_::toplevel$package.combine(+2).*/ = 0
55
def foo/*<-_empty_::toplevel$package.foo().*/ = "foo"
66
@main/*->scala::main#*/ def MyProgram/*<-_empty_::toplevel$package.MyProgram().*/(times/*<-_empty_::toplevel$package.MyProgram().(times)*/: Int/*->scala::Int#*/): Unit/*->scala::Unit#*/ = (1 to/*->scala::runtime::RichInt#to().*/ times/*->_empty_::toplevel$package.MyProgram().(times)*/) foreach/*->scala::collection::immutable::Range#foreach().*/ (_ => println/*->scala::Predef.println(+1).*/("hello"))
7-
def fooRef/*<-_empty_::toplevel$package.fooRef().*/ = toplevel$package/*->_empty_::toplevel$package.*/.foo/*->_empty_::toplevel$package.foo().*/
7+
def fooRef/*<-_empty_::toplevel$package.fooRef().*/ = toplevel$package.foo/*->_empty_::toplevel$package.foo().*/

tests/semanticdb/metac.expect

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -734,16 +734,18 @@ Uri => EndMarkers2.scala
734734
Text => empty
735735
Language => Scala
736736
Symbols => 2 entries
737-
Occurrences => 3 entries
737+
Occurrences => 5 entries
738738

739739
Symbols:
740740
endmarkers2/package. => final package object endmarkers2 extends Object { self: endmarkers2.type => +2 decls }
741741
endmarkers2/package.Foo# => type Foo = Unit
742742

743743
Occurrences:
744+
[0:15..0:26): endmarkers2 <- endmarkers2/package.
744745
[2:7..2:10): Foo <- endmarkers2/package.Foo#
745746
[3:4..3:8): Unit -> scala/Unit#
746747
[4:6..4:9): Foo -> endmarkers2/package.Foo#
748+
[6:4..6:15): endmarkers2 -> endmarkers2/package.
747749

748750
expect/EnumVal.scala
749751
--------------------
@@ -3877,7 +3879,7 @@ Uri => semanticdb-Flags.scala
38773879
Text => empty
38783880
Language => Scala
38793881
Symbols => 50 entries
3880-
Occurrences => 70 entries
3882+
Occurrences => 71 entries
38813883

38823884
Symbols:
38833885
flags/p/package. => final package object p extends Object { self: p.type => +23 decls }
@@ -3937,6 +3939,7 @@ Occurrences:
39373939
[2:13..2:21): language -> scala/language.
39383940
[2:22..2:34): experimental -> scala/language.experimental.
39393941
[2:35..2:41): macros -> scala/language.experimental.macros.
3942+
[4:15..4:16): p <- flags/p/package.
39403943
[5:2..5:3): p -> flags/p/
39413944
[5:19..5:20): x <- flags/p/package.x.
39423945
[6:25..6:26): y <- flags/p/package.y().
@@ -4447,7 +4450,7 @@ Uri => toplevel.scala
44474450
Text => empty
44484451
Language => Scala
44494452
Symbols => 19 entries
4450-
Occurrences => 35 entries
4453+
Occurrences => 34 entries
44514454

44524455
Symbols:
44534456
_empty_/MyProgram# => final class MyProgram extends Object { self: MyProgram => +2 decls }
@@ -4504,6 +4507,5 @@ Occurrences:
45044507
[5:53..5:60): foreach -> scala/collection/immutable/Range#foreach().
45054508
[5:67..5:74): println -> scala/Predef.println(+1).
45064509
[6:4..6:10): fooRef <- _empty_/toplevel$package.fooRef().
4507-
[6:13..6:29): toplevel$package -> _empty_/toplevel$package.
45084510
[6:30..6:33): foo -> _empty_/toplevel$package.foo().
45094511

0 commit comments

Comments
 (0)