Skip to content

Commit 164b5d8

Browse files
authored
Merge pull request #13609 from tanishiking/fix-missing-renamed-symbol
Fix missing SymbolOccurrence for aliased symbol
2 parents f9d4ecb + d91577a commit 164b5d8

File tree

9 files changed

+43
-17
lines changed

9 files changed

+43
-17
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ class ExtractSemanticDB extends Phase:
320320
generated += occ
321321

322322
private def registerUseGuarded(qualSym: Option[Symbol], sym: Symbol, span: Span, treeSource: SourceFile)(using Context) =
323-
if !excludeUse(qualSym, sym) && namePresentInSource(sym, span, treeSource) then
323+
if !excludeUse(qualSym, sym) && !span.isZeroExtent then
324324
registerUse(sym, span, treeSource)
325325

326326
private def registerUse(sym: Symbol, span: Span, treeSource: SourceFile)(using Context): Unit =

tests/semanticdb/expect/Givens.expect.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ package b
44
object Givens/*<-a::b::Givens.*/:
55

66
extension [A/*<-a::b::Givens.sayHello().[A]*/](any/*<-a::b::Givens.sayHello().(any)*/: A/*->a::b::Givens.sayHello().[A]*/)
7-
def sayHello/*<-a::b::Givens.sayHello().*/ = s"Hello, I am $any/*->a::b::Givens.sayHello().(any)*/"
7+
def sayHello/*<-a::b::Givens.sayHello().*/ = s"Hello, I am $any/*->a::b::Givens.sayHello().(any)*/"/*->scala::StringContext#s().*/
88

99
extension [B/*<-a::b::Givens.sayGoodbye().[B]*//*<-a::b::Givens.saySoLong().[B]*/](any/*<-a::b::Givens.sayGoodbye().(any)*//*<-a::b::Givens.saySoLong().(any)*/: B/*->a::b::Givens.sayGoodbye().[B]*//*->a::b::Givens.saySoLong().[B]*/)
10-
def sayGoodbye/*<-a::b::Givens.sayGoodbye().*/ = s"Goodbye, from $any/*->a::b::Givens.sayGoodbye().(any)*/"
11-
def saySoLong/*<-a::b::Givens.saySoLong().*/ = s"So Long, from $any/*->a::b::Givens.saySoLong().(any)*/"
10+
def sayGoodbye/*<-a::b::Givens.sayGoodbye().*/ = s"Goodbye, from $any/*->a::b::Givens.sayGoodbye().(any)*/"/*->scala::StringContext#s().*/
11+
def saySoLong/*<-a::b::Givens.saySoLong().*/ = s"So Long, from $any/*->a::b::Givens.saySoLong().(any)*/"/*->scala::StringContext#s().*/
1212

1313
val hello1/*<-a::b::Givens.hello1.*/ = 1.sayHello/*->a::b::Givens.sayHello().*/
1414
val goodbye1/*<-a::b::Givens.goodbye1.*/ = 1.sayGoodbye/*->a::b::Givens.sayGoodbye().*/

tests/semanticdb/expect/ImplicitConversion.expect.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ class ImplicitConversion/*<-example::ImplicitConversion#*/ {
2121
val x/*<-example::ImplicitConversion#x.*/: Int/*->scala::Int#*/ = message/*->example::ImplicitConversion#message.*/
2222

2323
// interpolators
24-
s"Hello $message/*->example::ImplicitConversion#message.*/ $number/*->example::ImplicitConversion#number.*/"
24+
s"Hello $message/*->example::ImplicitConversion#message.*/ $number/*->example::ImplicitConversion#number.*/"/*->scala::StringContext#s().*/
2525
s"""Hello
2626
|$message/*->example::ImplicitConversion#message.*/
27-
|$number/*->example::ImplicitConversion#number.*/""".stripMargin/*->scala::collection::StringOps#stripMargin(+1).*/
27+
|$number/*->example::ImplicitConversion#number.*/"""/*->scala::StringContext#s().*/.stripMargin/*->scala::collection::StringOps#stripMargin(+1).*/
2828

2929
val a/*<-example::ImplicitConversion#a.*/: Int/*->scala::Int#*/ = char/*->example::ImplicitConversion#char.*/
3030
val b/*<-example::ImplicitConversion#b.*/: Long/*->scala::Long#*/ = char/*->example::ImplicitConversion#char.*/
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
11
import scala.util.control.NonFatal/*->scala::util::control::NonFatal.*/
2+
import scala.collection.immutable.{HashMap/*->scala::collection::immutable::HashMap.*//*->scala::collection::immutable::HashMap#*/ as HM}
3+
4+
val m/*<-_empty_::Imports$package.m.*/: HM/*->scala::collection::immutable::HashMap#*/[Int/*->scala::Int#*/, Int/*->scala::Int#*/] = HM/*->scala::collection::immutable::HashMap.*/[Int/*->scala::Int#*/, Int/*->scala::Int#*/]()

tests/semanticdb/expect/Imports.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
11
import scala.util.control.NonFatal
2+
import scala.collection.immutable.{HashMap as HM}
3+
4+
val m: HM[Int, Int] = HM[Int, Int]()

tests/semanticdb/expect/Synthetic.expect.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class Synthetic/*<-example::Synthetic#*/ {
3030
null.asInstanceOf/*->scala::Any#asInstanceOf().*/[Int/*->scala::Int#*/ => Int/*->scala::Int#*/](2)
3131
}
3232

33-
class J/*<-example::Synthetic#J#*/[T/*<-example::Synthetic#J#[T]*//*<-example::Synthetic#J#evidence$1.*/: Manifest/*->scala::Predef.Manifest#*/] { val arr/*<-example::Synthetic#J#arr.*/ = Array/*->scala::Array.*/.empty/*->scala::Array.empty().*/[T/*->example::Synthetic#J#[T]*/]/*->example::Synthetic#J#evidence$1.*/ }
33+
class J/*<-example::Synthetic#J#*/[T/*<-example::Synthetic#J#[T]*//*<-example::Synthetic#J#evidence$1.*/: Manifest/*->scala::Predef.Manifest#*/] { val arr/*<-example::Synthetic#J#arr.*/ = Array/*->scala::Array.*/.empty/*->scala::Array.empty().*/[T/*->example::Synthetic#J#[T]*/] }
3434

3535
class F/*<-example::Synthetic#F#*/
3636
implicit val ordering/*<-example::Synthetic#ordering.*/: Ordering/*->scala::package.Ordering#*/[F/*->example::Synthetic#F#*/] = ???/*->scala::Predef.`???`().*/

tests/semanticdb/expect/Vals.expect.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,5 +47,5 @@ object ValUsages/*<-example::ValUsages.*/ {
4747
println/*->scala::Predef.println(+1).*/(v/*->example::ValUsages.v.*/.xzm/*->example::Vals#xzm.*/)
4848
v/*->example::ValUsages.v.*/.yfm/*->example::Vals#`yfm_=`().*/ = v/*->example::ValUsages.v.*/.xfm/*->example::Vals#xfm.*/ +/*->scala::Int#`+`(+4).*/ v/*->example::ValUsages.v.*/.yfm/*->example::Vals#yfm().*/
4949
v/*->example::ValUsages.v.*/.yim/*->example::Vals#`yim_=`().*/ = v/*->example::ValUsages.v.*/.xim/*->example::Vals#xim.*/ +/*->scala::Int#`+`(+4).*/ v/*->example::ValUsages.v.*/.yim/*->example::Vals#yim().*/
50-
v/*->example::ValUsages.v.*/.explicitSetter = 25
50+
v/*->example::ValUsages.v.*/.explicitSetter/*->example::Vals#`explicitSetter_=`().*/ = 25
5151
}

tests/semanticdb/expect/toplevel.expect.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ 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"))
77
@main/*->scala::main#*/ def readInts/*<-_empty_::toplevel$package.readInts().*/(ints/*<-_empty_::toplevel$package.readInts().(ints)*/: Int/*->scala::Int#*/*): Unit/*->scala::Unit#*/ = println/*->scala::Predef.println(+1).*/(ints/*->_empty_::toplevel$package.readInts().(ints)*/.mkString/*->scala::collection::IterableOnceOps#mkString(+1).*/(","))
8-
def fooRef/*<-_empty_::toplevel$package.fooRef().*/ = toplevel$package.foo/*->_empty_::toplevel$package.foo().*/
8+
def fooRef/*<-_empty_::toplevel$package.fooRef().*/ = toplevel$package/*->_empty_::toplevel$package.*/.foo/*->_empty_::toplevel$package.foo().*/

tests/semanticdb/metac.expect

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1408,7 +1408,7 @@ Uri => Givens.scala
14081408
Text => empty
14091409
Language => Scala
14101410
Symbols => 29 entries
1411-
Occurrences => 62 entries
1411+
Occurrences => 65 entries
14121412

14131413
Symbols:
14141414
a/b/Givens. => final object Givens extends Object { self: Givens.type => +12 decls }
@@ -1450,6 +1450,7 @@ Occurrences:
14501450
[5:21..5:22): A -> a/b/Givens.sayHello().[A]
14511451
[6:8..6:16): sayHello <- a/b/Givens.sayHello().
14521452
[6:34..6:37): any -> a/b/Givens.sayHello().(any)
1453+
[6:37..6:38): " -> scala/StringContext#s().
14531454
[8:13..8:14): B <- a/b/Givens.sayGoodbye().[B]
14541455
[8:13..8:14): B <- a/b/Givens.saySoLong().[B]
14551456
[8:16..8:19): any <- a/b/Givens.sayGoodbye().(any)
@@ -1458,8 +1459,10 @@ Occurrences:
14581459
[8:21..8:22): B -> a/b/Givens.saySoLong().[B]
14591460
[9:8..9:18): sayGoodbye <- a/b/Givens.sayGoodbye().
14601461
[9:38..9:41): any -> a/b/Givens.sayGoodbye().(any)
1462+
[9:41..9:42): " -> scala/StringContext#s().
14611463
[10:8..10:17): saySoLong <- a/b/Givens.saySoLong().
14621464
[10:37..10:40): any -> a/b/Givens.saySoLong().(any)
1465+
[10:40..10:41): " -> scala/StringContext#s().
14631466
[12:6..12:12): hello1 <- a/b/Givens.hello1.
14641467
[12:17..12:25): sayHello -> a/b/Givens.sayHello().
14651468
[13:6..13:14): goodbye1 <- a/b/Givens.goodbye1.
@@ -1514,7 +1517,7 @@ Uri => ImplicitConversion.scala
15141517
Text => empty
15151518
Language => Scala
15161519
Symbols => 23 entries
1517-
Occurrences => 48 entries
1520+
Occurrences => 50 entries
15181521
Synthetics => 6 entries
15191522

15201523
Symbols:
@@ -1567,8 +1570,10 @@ Occurrences:
15671570
[20:15..20:22): message -> example/ImplicitConversion#message.
15681571
[23:11..23:18): message -> example/ImplicitConversion#message.
15691572
[23:20..23:26): number -> example/ImplicitConversion#number.
1573+
[23:26..23:27): " -> scala/StringContext#s().
15701574
[25:7..25:14): message -> example/ImplicitConversion#message.
15711575
[26:7..26:13): number -> example/ImplicitConversion#number.
1576+
[26:15..26:16): " -> scala/StringContext#s().
15721577
[26:17..26:28): stripMargin -> scala/collection/StringOps#stripMargin(+1).
15731578
[28:6..28:7): a <- example/ImplicitConversion#a.
15741579
[28:9..28:12): Int -> scala/Int#
@@ -1610,16 +1615,30 @@ Schema => SemanticDB v4
16101615
Uri => Imports.scala
16111616
Text => empty
16121617
Language => Scala
1613-
Symbols => 0 entries
1614-
Occurrences => 4 entries
1618+
Symbols => 2 entries
1619+
Occurrences => 16 entries
16151620

16161621
Symbols:
1622+
_empty_/Imports$package. => final package object _empty_ extends Object { self: _empty_.type => +2 decls }
1623+
_empty_/Imports$package.m. => val method m HashMap[Int, Int]
16171624

16181625
Occurrences:
16191626
[0:7..0:12): scala -> scala/
16201627
[0:13..0:17): util -> scala/util/
16211628
[0:18..0:25): control -> scala/util/control/
16221629
[0:26..0:34): NonFatal -> scala/util/control/NonFatal.
1630+
[1:7..1:12): scala -> scala/
1631+
[1:13..1:23): collection -> scala/collection/
1632+
[1:24..1:33): immutable -> scala/collection/immutable/
1633+
[1:35..1:42): HashMap -> scala/collection/immutable/HashMap.
1634+
[1:35..1:42): HashMap -> scala/collection/immutable/HashMap#
1635+
[3:4..3:5): m <- _empty_/Imports$package.m.
1636+
[3:7..3:9): HM -> scala/collection/immutable/HashMap#
1637+
[3:10..3:13): Int -> scala/Int#
1638+
[3:15..3:18): Int -> scala/Int#
1639+
[3:22..3:24): HM -> scala/collection/immutable/HashMap.
1640+
[3:25..3:28): Int -> scala/Int#
1641+
[3:30..3:33): Int -> scala/Int#
16231642

16241643
expect/InstrumentTyper.scala
16251644
----------------------------
@@ -2964,7 +2983,7 @@ Uri => Synthetic.scala
29642983
Text => empty
29652984
Language => Scala
29662985
Symbols => 52 entries
2967-
Occurrences => 133 entries
2986+
Occurrences => 132 entries
29682987
Synthetics => 21 entries
29692988

29702989
Symbols:
@@ -3093,7 +3112,6 @@ Occurrences:
30933112
[32:35..32:40): Array -> scala/Array.
30943113
[32:41..32:46): empty -> scala/Array.empty().
30953114
[32:47..32:48): T -> example/Synthetic#J#[T]
3096-
[32:49..32:49): -> example/Synthetic#J#evidence$1.
30973115
[34:8..34:9): F <- example/Synthetic#F#
30983116
[35:15..35:23): ordering <- example/Synthetic#ordering.
30993117
[35:25..35:33): Ordering -> scala/package.Ordering#
@@ -3311,7 +3329,7 @@ Uri => Vals.scala
33113329
Text => empty
33123330
Language => Scala
33133331
Symbols => 42 entries
3314-
Occurrences => 127 entries
3332+
Occurrences => 128 entries
33153333

33163334
Symbols:
33173335
example/ValUsages. => final object ValUsages extends Object { self: ValUsages.type => +2 decls }
@@ -3485,6 +3503,7 @@ Occurrences:
34853503
[48:18..48:19): v -> example/ValUsages.v.
34863504
[48:20..48:23): yim -> example/Vals#yim().
34873505
[49:2..49:3): v -> example/ValUsages.v.
3506+
[49:3..49:18): .explicitSetter -> example/Vals#`explicitSetter_=`().
34883507

34893508
expect/Vararg.scala
34903509
-------------------
@@ -4609,7 +4628,7 @@ Uri => toplevel.scala
46094628
Text => empty
46104629
Language => Scala
46114630
Symbols => 18 entries
4612-
Occurrences => 42 entries
4631+
Occurrences => 43 entries
46134632
Synthetics => 1 entries
46144633

46154634
Symbols:
@@ -4674,6 +4693,7 @@ Occurrences:
46744693
[6:47..6:51): ints -> _empty_/toplevel$package.readInts().(ints)
46754694
[6:52..6:60): mkString -> scala/collection/IterableOnceOps#mkString(+1).
46764695
[7:4..7:10): fooRef <- _empty_/toplevel$package.fooRef().
4696+
[7:13..7:29): toplevel$package -> _empty_/toplevel$package.
46774697
[7:30..7:33): foo -> _empty_/toplevel$package.foo().
46784698

46794699
Synthetics:

0 commit comments

Comments
 (0)