Skip to content

Commit dd358f9

Browse files
committed
Register TypeRef's symbol that present in source as occurrence
1 parent 86eabc7 commit dd358f9

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
@@ -231,6 +231,16 @@ class ExtractSemanticDB extends Phase:
231231
registerUseGuarded(None, alt.symbol.companionClass, sel.imported.span, tree.source)
232232
case tree: Inlined =>
233233
traverse(tree.call)
234+
case tree: TypeTree =>
235+
tree.typeOpt match
236+
// Any types could be appear inside of `TypeTree`, but
237+
// types that precent in source other than TypeRef are traversable and contain Ident tree nodes
238+
// (e.g. TypeBoundsTree, AppliedTypeTree)
239+
case Types.TypeRef(_, sym: Symbol) if namePresentInSource(sym, tree.span, tree.source) =>
240+
registerUseGuarded(None, sym, tree.span, tree.source)
241+
case _ => ()
242+
243+
234244
case _ =>
235245
traverseChildren(tree)
236246

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
@@ -2594,7 +2594,7 @@ Uri => Prefixes.scala
25942594
Text => empty
25952595
Language => Scala
25962596
Symbols => 19 entries
2597-
Occurrences => 47 entries
2597+
Occurrences => 48 entries
25982598

25992599
Symbols:
26002600
prefixes/C# => class C extends Object { self: C => +6 decls }
@@ -2656,6 +2656,7 @@ Occurrences:
26562656
[25:9..25:10): c -> prefixes/Test.c.
26572657
[25:11..25:12): N -> prefixes/C#N.
26582658
[26:6..26:8): k3 <- prefixes/Test.k3().
2659+
[26:10..26:11): U -> prefixes/C#N.U#
26592660
[26:14..26:17): ??? -> scala/Predef.`???`().
26602661
[28:6..28:8): n2 <- prefixes/Test.n2().
26612662
[28:10..28:11): M -> prefixes/M.

0 commit comments

Comments
 (0)