diff --git a/compiler/src/dotty/tools/dotc/semanticdb/ExtractSemanticDB.scala b/compiler/src/dotty/tools/dotc/semanticdb/ExtractSemanticDB.scala index e1b5abe799e1..7007ffb49161 100644 --- a/compiler/src/dotty/tools/dotc/semanticdb/ExtractSemanticDB.scala +++ b/compiler/src/dotty/tools/dotc/semanticdb/ExtractSemanticDB.scala @@ -169,6 +169,7 @@ class ExtractSemanticDB extends Phase: tree match case tree: DefDef => tree.paramss.foreach(_.foreach(param => registerSymbolSimple(param.symbol))) + case tree: ValDef if tree.symbol.is(Given) => traverse(tree.tpt) case _ => if !tree.symbol.isGlobal then localBodies(tree.symbol) = tree.rhs diff --git a/tests/semanticdb/expect/AnonymousGiven.expect.scala b/tests/semanticdb/expect/AnonymousGiven.expect.scala new file mode 100644 index 000000000000..68800202b6c1 --- /dev/null +++ b/tests/semanticdb/expect/AnonymousGiven.expect.scala @@ -0,0 +1,5 @@ +package angiven + +trait Foo/*<-angiven::Foo#*/ + +/*<-angiven::AnonymousGiven$package.*/def bar/*<-angiven::AnonymousGiven$package.bar().*/(using Foo/*->angiven::Foo#*/) = 42 \ No newline at end of file diff --git a/tests/semanticdb/expect/AnonymousGiven.scala b/tests/semanticdb/expect/AnonymousGiven.scala new file mode 100644 index 000000000000..9288b0078267 --- /dev/null +++ b/tests/semanticdb/expect/AnonymousGiven.scala @@ -0,0 +1,5 @@ +package angiven + +trait Foo + +def bar(using Foo) = 42 \ No newline at end of file diff --git a/tests/semanticdb/metac.expect b/tests/semanticdb/metac.expect index 191e2f3d0379..ea69b3755ea7 100644 --- a/tests/semanticdb/metac.expect +++ b/tests/semanticdb/metac.expect @@ -329,6 +329,32 @@ Occurrences: [18:6..18:9): foo <- example/Anonymous#foo. [18:16..18:19): Foo -> example/Anonymous#Foo# +expect/AnonymousGiven.scala +--------------------------- + +Summary: +Schema => SemanticDB v4 +Uri => AnonymousGiven.scala +Text => empty +Language => Scala +Symbols => 5 entries +Occurrences => 6 entries + +Symbols: +angiven/AnonymousGiven$package. => final package object angiven +angiven/AnonymousGiven$package.bar(). => method bar +angiven/AnonymousGiven$package.bar().(x$1) => implicit param x$1 +angiven/Foo# => trait Foo +angiven/Foo#``(). => primary ctor + +Occurrences: +[0:8..0:15): angiven <- angiven/ +[2:0..2:0): <- angiven/Foo#``(). +[2:6..2:9): Foo <- angiven/Foo# +[4:0..4:0): <- angiven/AnonymousGiven$package. +[4:4..4:7): bar <- angiven/AnonymousGiven$package.bar(). +[4:14..4:17): Foo -> angiven/Foo# + expect/Classes.scala --------------------