Skip to content

Commit 41d5ba1

Browse files
kasiaMarekWojciechMazur
authored andcommitted
fix: semanticdb symbol creation when targetName set
[Cherry-picked 05f45b1]
1 parent 4b39c6f commit 41d5ba1

File tree

4 files changed

+55
-1
lines changed

4 files changed

+55
-1
lines changed

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

+2-1
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,8 @@ class SemanticSymbolBuilder:
9191
case _ =>
9292
end find
9393
val sig = sym.signature
94-
find(_.signature == sig)
94+
val targetName = sym.targetName
95+
find(sym => sym.signature == sig && sym.targetName == targetName)
9596

9697
def addDescriptor(sym: Symbol): Unit =
9798
if sym.is(ModuleClass) then
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package example
2+
3+
object TargetName/*<-example::TargetName.*/:
4+
@annotation.targetName/*->scala::annotation::targetName#*/("m1")
5+
def m/*<-example::TargetName.m().*/(i/*<-example::TargetName.m().(i)*/: Int/*->scala::Int#*/) = 1
6+
@annotation.targetName/*->scala::annotation::targetName#*/("m2")
7+
def m/*<-example::TargetName.m(+1).*/(i/*<-example::TargetName.m(+1).(i)*/: Int/*->scala::Int#*/) = 1
8+
def m1/*<-example::TargetName.m1().*/(i/*<-example::TargetName.m1().(i)*/: String/*->scala::Predef.String#*/) = 1
+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package example
2+
3+
object TargetName:
4+
@annotation.targetName("m1")
5+
def m(i: Int) = 1
6+
@annotation.targetName("m2")
7+
def m(i: Int) = 1
8+
def m1(i: String) = 1

tests/semanticdb/metac.expect

+37
Original file line numberDiff line numberDiff line change
@@ -3757,6 +3757,43 @@ Synthetics:
37573757
.map => *[Int]
37583758
[3:1..3:5):List => *.apply[Int]
37593759

3760+
expect/TargetName.scala
3761+
-----------------------
3762+
3763+
Summary:
3764+
Schema => SemanticDB v4
3765+
Uri => TargetName.scala
3766+
Text => empty
3767+
Language => Scala
3768+
Symbols => 7 entries
3769+
Occurrences => 15 entries
3770+
3771+
Symbols:
3772+
example/TargetName. => final object TargetName extends Object { self: TargetName.type => +4 decls }
3773+
example/TargetName.m(). => @targetName method m (param i: Int): Int
3774+
example/TargetName.m().(i) => param i: Int
3775+
example/TargetName.m(+1). => @targetName method m (param i: Int): Int
3776+
example/TargetName.m(+1).(i) => param i: Int
3777+
example/TargetName.m1(). => method m1 (param i: String): Int
3778+
example/TargetName.m1().(i) => param i: String
3779+
3780+
Occurrences:
3781+
[0:8..0:15): example <- example/
3782+
[2:7..2:17): TargetName <- example/TargetName.
3783+
[3:3..3:13): annotation -> scala/annotation/
3784+
[3:14..3:24): targetName -> scala/annotation/targetName#
3785+
[4:6..4:7): m <- example/TargetName.m().
3786+
[4:8..4:9): i <- example/TargetName.m().(i)
3787+
[4:11..4:14): Int -> scala/Int#
3788+
[5:3..5:13): annotation -> scala/annotation/
3789+
[5:14..5:24): targetName -> scala/annotation/targetName#
3790+
[6:6..6:7): m <- example/TargetName.m(+1).
3791+
[6:8..6:9): i <- example/TargetName.m(+1).(i)
3792+
[6:11..6:14): Int -> scala/Int#
3793+
[7:6..7:8): m1 <- example/TargetName.m1().
3794+
[7:9..7:10): i <- example/TargetName.m1().(i)
3795+
[7:12..7:18): String -> scala/Predef.String#
3796+
37603797
expect/Traits.scala
37613798
-------------------
37623799

0 commit comments

Comments
 (0)