Skip to content

Commit 0687269

Browse files
committed
Register TypeRef's symbol that present in source as occurrence
1 parent 5d3bdf3 commit 0687269

File tree

3 files changed

+13
-2
lines changed

3 files changed

+13
-2
lines changed

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,16 @@ class ExtractSemanticDB extends Phase:
237237
traverseChildren(tree)
238238
case tree: Inlined =>
239239
traverse(tree.call)
240+
case tree: TypeTree =>
241+
tree.typeOpt match
242+
// Any types could be appear inside of `TypeTree`, but
243+
// types that precent in source other than TypeRef are traversable and contain Ident tree nodes
244+
// (e.g. TypeBoundsTree, AppliedTypeTree)
245+
case Types.TypeRef(_, sym: Symbol) if namePresentInSource(sym, tree.span, tree.source) =>
246+
registerUseGuarded(None, sym, tree.span, tree.source)
247+
case _ => ()
248+
249+
240250
case _ =>
241251
traverseChildren(tree)
242252

tests/semanticdb/expect/Prefixes.expect.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ object Test/*<-prefixes::Test.*/ {
2424
def m2/*<-prefixes::Test.m2().*/: c/*->prefixes::Test.c.*/.T/*->prefixes::C#T#*/ = ???/*->scala::Predef.`???`().*/
2525
def k2/*<-prefixes::Test.k2().*/: c/*->prefixes::Test.c.*/.N/*->prefixes::C#N.*/.U/*->prefixes::C#N.U#*/ = ???/*->scala::Predef.`???`().*/
2626
import c/*->prefixes::Test.c.*/.N/*->prefixes::C#N.*/.*
27-
def k3/*<-prefixes::Test.k3().*/: U = ???/*->scala::Predef.`???`().*/
27+
def k3/*<-prefixes::Test.k3().*/: U/*->prefixes::C#N.U#*/ = ???/*->scala::Predef.`???`().*/
2828

2929
def n2/*<-prefixes::Test.n2().*/: M/*->prefixes::M.*/.T/*->prefixes::M.T#*/ = ???/*->scala::Predef.`???`().*/
3030

tests/semanticdb/metac.expect

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2644,7 +2644,7 @@ Uri => Prefixes.scala
26442644
Text => empty
26452645
Language => Scala
26462646
Symbols => 19 entries
2647-
Occurrences => 49 entries
2647+
Occurrences => 50 entries
26482648

26492649
Symbols:
26502650
prefixes/C# => class C
@@ -2708,6 +2708,7 @@ Occurrences:
27082708
[25:9..25:10): c -> prefixes/Test.c.
27092709
[25:11..25:12): N -> prefixes/C#N.
27102710
[26:6..26:8): k3 <- prefixes/Test.k3().
2711+
[26:10..26:11): U -> prefixes/C#N.U#
27112712
[26:14..26:17): ??? -> scala/Predef.`???`().
27122713
[28:6..28:8): n2 <- prefixes/Test.n2().
27132714
[28:10..28:11): M -> prefixes/M.

0 commit comments

Comments
 (0)