Skip to content

Commit 3bc85d7

Browse files
committed
don't emit occurrences for anonymous symbols
1 parent fc8f08a commit 3bc85d7

File tree

4 files changed

+25
-19
lines changed

4 files changed

+25
-19
lines changed

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,13 @@ class ExtractSemanticDB extends Phase {
150150

151151
/** Definitions of this symbol should be excluded from semanticdb */
152152
private def excludeDef(sym: Symbol)(given Context): Boolean =
153-
!sym.exists || sym.isLocalDummy || sym.is(Synthetic)
153+
!sym.exists
154+
|| sym.isLocalDummy
155+
|| sym.is(Synthetic)
156+
|| sym.isAnonymousClass
157+
|| sym.isAnonymousModuleVal
158+
|| sym.isAnonymousFunction
159+
|| sym.isPrimaryConstructor && excludeDef(sym.owner)
154160

155161
/** Uses of this symbol where the reference has given span should be excluded from semanticdb */
156162
private def excludeUse(sym: Symbol, span: Span)(given Context): Boolean =

tests/semanticdb/Advanced.expect.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ class /*=>>java.lang.Object#`<init>`().*/C/*<<=advanced.C#*/[T] {
1111

1212
class /*=>>java.lang.Object#`<init>`().*/Structural/*<<=advanced.Structural#*/ {
1313
def s1/*<<=advanced.Structural#s1().*/: { val x/*<<=local0*/: Int/*=>>scala.Int#*/ } = ???/*=>>scala.Predef.`???`().*/
14-
def s2/*<<=advanced.Structural#s2().*/: { val x/*<<=local1*/: Int/*=>>scala.Int#*/ } = /*=>>java.lang.Object#`<init>`().*/new {/*<<=local2*/ val x/*<<=local3*/: Int/*=>>scala.Int#*/ = ???/*=>>scala.Predef.`???`().*/ }/*=>>local4*//*=>>local2*/
15-
def s3/*<<=advanced.Structural#s3().*/: { def m/*<<=local5*/(x/*<<=local6*/: Int/*=>>scala.Int#*/): Int/*=>>scala.Int#*/ } = /*=>>java.lang.Object#`<init>`().*/new {/*<<=local7*/ def m/*<<=local8*/(x/*<<=local9*/: Int/*=>>scala.Int#*/): Int/*=>>scala.Int#*/ = ???/*=>>scala.Predef.`???`().*/ }/*=>>local10*//*=>>local7*/
14+
def s2/*<<=advanced.Structural#s2().*/: { val x/*<<=local1*/: Int/*=>>scala.Int#*/ } = /*=>>java.lang.Object#`<init>`().*/new { val x/*<<=local2*/: Int/*=>>scala.Int#*/ = ???/*=>>scala.Predef.`???`().*/ }
15+
def s3/*<<=advanced.Structural#s3().*/: { def m/*<<=local3*/(x/*<<=local4*/: Int/*=>>scala.Int#*/): Int/*=>>scala.Int#*/ } = /*=>>java.lang.Object#`<init>`().*/new { def m/*<<=local5*/(x/*<<=local6*/: Int/*=>>scala.Int#*/): Int/*=>>scala.Int#*/ = ???/*=>>scala.Predef.`???`().*/ }
1616
}
1717

1818
class /*=>>java.lang.Object#`<init>`().*/Wildcards/*<<=advanced.Wildcards#*/ {
@@ -34,8 +34,8 @@ object /*=>>java.lang.Object#`<init>`().*/Test/*<<=advanced.Test.*/ {
3434

3535
{
3636
(???/*=>>scala.Predef.`???`().*/ : Any/*=>>scala.Any#*/) match {
37-
case e3/*<<=local11*/: List/*=>>scala.package.List#*/[_] =>
38-
val e3x/*<<=local12*/ = e3/*=>>local11*/.head/*=>>scala.collection.IterableOps#head().*/
37+
case e3/*<<=local7*/: List/*=>>scala.package.List#*/[_] =>
38+
val e3x/*<<=local8*/ = e3/*=>>local7*/.head/*=>>scala.collection.IterableOps#head().*/
3939
()
4040
}
4141
}

tests/semanticdb/Anonymous.expect.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@ class /*=>>java.lang.Object#`<init>`().*/Anonymous/*<<=example.Anonymous#*/ {
1616
}
1717

1818
trait Foo/*<<=example.Anonymous#Foo#*/
19-
/*=>>java.lang.Object#`<init>`().*/new F/*<<=local1*/oo/*=>>example.Anonymous#Foo#*/ {}/*=>>local2*//*=>>local1*/
19+
/*=>>java.lang.Object#`<init>`().*/new Foo/*=>>example.Anonymous#Foo#*/ {}
2020
}

tests/semanticdb/Enums.expect.scala

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
object /*=>>java.lang.Object#`<init>`().*/Enums/*<<=Enums.*/ {
22
/*=>>scala.package.Serializable#*//*=>>scala.*//*=>>_root_*//*=>>Enums.*/enum /*=>>java.lang.Object#`<init>`().*/Colour/*<<=Enums.Colour#*/ {
3-
/*=>>java.lang.Object#`<init>`().*//*=>>scala.package.Serializable#*//*=>>scala.*//*=>>_root_*/case /*=>>scala.collection.IterableOnceOps#toArray().*//*=>>scala.runtime.EnumValues#values().*//*=>>Enums.Colour.$values.*//*=>>scala.reflect.ClassTag.apply().*//*=>>scala.reflect.ClassTag.*//*=>>scala.runtime.EnumValues#`<init>`().*//*=>>scala.collection.MapOps#apply().*//*=>>scala.runtime.EnumValues#fromName().*//*=>>Enums.Colour.valueOf().($name)*//*=>>`<special-ops>`.throw().*//*=>>java.lang.IllegalArgumentException#`<init>`(+1).*//*=>>java.lang.String#concat().*//*=>>Enums.Colour#`<init>`().*//*=>>Enums.Colour.$new().(_$ordinal)*//*=>>Enums.Colour.$new().($name)*//*=>>scala.runtime.EnumValues#register().*//*=>>local0*//*=>>local1*/Red/*=>>Enums.Colour.Red.*//*<<=Enums.Colour.Red.*/, Gr/*<<=Enums.Colour.$values.*/een/*=>>Enums.Colour.Green.*//*<<=Enums.Colour.Green.*/, Blue/*=>>Enums.Colour.Blue.*//*<<=Enums.Colour.Blue.*/
3+
/*=>>java.lang.Object#`<init>`().*//*=>>scala.package.Serializable#*//*=>>scala.*//*=>>_root_*/case /*=>>scala.collection.IterableOnceOps#toArray().*//*=>>scala.runtime.EnumValues#values().*//*=>>Enums.Colour.$values.*//*=>>scala.reflect.ClassTag.apply().*//*=>>scala.reflect.ClassTag.*//*=>>scala.runtime.EnumValues#`<init>`().*//*=>>scala.collection.MapOps#apply().*//*=>>scala.runtime.EnumValues#fromName().*//*=>>Enums.Colour.valueOf().($name)*//*=>>`<special-ops>`.throw().*//*=>>java.lang.IllegalArgumentException#`<init>`(+1).*//*=>>java.lang.String#concat().*//*=>>Enums.Colour#`<init>`().*//*=>>Enums.Colour.$new().(_$ordinal)*//*=>>Enums.Colour.$new().($name)*//*=>>scala.runtime.EnumValues#register().*/Red/*=>>Enums.Colour.Red.*//*<<=Enums.Colour.Red.*/, Gr/*<<=Enums.Colour.$values.*/een/*=>>Enums.Colour.Green.*//*<<=Enums.Colour.Green.*/, Blue/*=>>Enums.Colour.Blue.*//*<<=Enums.Colour.Blue.*/
44
}
55

66
enum /*=>>java.lang.Object#`<init>`().*/WeekDays/*<<=Enums.WeekDays#*/ {
7-
/*=>>Enums.WeekDays.Monday.*//*=>>Enums.WeekDays.Tuesday.*//*=>>Enums.WeekDays.Wednesday.*//*=>>Enums.WeekDays.Thursday.*//*=>>Enums.WeekDays.Friday.*//*=>>Enums.WeekDays.Saturday.*//*=>>Enums.WeekDays.Sunday.*//*=>>java.lang.Object#`<init>`().*//*=>>scala.package.Serializable#*//*=>>scala.*//*=>>_root_*//*=>>scala.collection.IterableOnceOps#toArray().*//*=>>scala.runtime.EnumValues#values().*//*=>>Enums.WeekDays.$values.*//*=>>scala.reflect.ClassTag.apply().*//*=>>scala.reflect.ClassTag.*//*=>>scala.runtime.EnumValues#`<init>`().*//*=>>scala.collection.MapOps#apply().*//*=>>scala.runtime.EnumValues#fromName().*//*=>>Enums.WeekDays.valueOf().($name)*//*=>>`<special-ops>`.throw().*//*=>>java.lang.IllegalArgumentException#`<init>`(+1).*//*=>>java.lang.String#concat().*//*=>>Enums.WeekDays#`<init>`().*//*=>>Enums.WeekDays.$new().(_$ordinal)*//*=>>Enums.WeekDays.$new().($name)*//*=>>scala.runtime.EnumValues#register().*//*=>>local2*//*=>>local3*/case Monday/*<<=Enums.WeekDays.Monday.*/
7+
/*=>>Enums.WeekDays.Monday.*//*=>>Enums.WeekDays.Tuesday.*//*=>>Enums.WeekDays.Wednesday.*//*=>>Enums.WeekDays.Thursday.*//*=>>Enums.WeekDays.Friday.*//*=>>Enums.WeekDays.Saturday.*//*=>>Enums.WeekDays.Sunday.*//*=>>java.lang.Object#`<init>`().*//*=>>scala.package.Serializable#*//*=>>scala.*//*=>>_root_*//*=>>scala.collection.IterableOnceOps#toArray().*//*=>>scala.runtime.EnumValues#values().*//*=>>Enums.WeekDays.$values.*//*=>>scala.reflect.ClassTag.apply().*//*=>>scala.reflect.ClassTag.*//*=>>scala.runtime.EnumValues#`<init>`().*//*=>>scala.collection.MapOps#apply().*//*=>>scala.runtime.EnumValues#fromName().*//*=>>Enums.WeekDays.valueOf().($name)*//*=>>`<special-ops>`.throw().*//*=>>java.lang.IllegalArgumentException#`<init>`(+1).*//*=>>java.lang.String#concat().*//*=>>Enums.WeekDays#`<init>`().*//*=>>Enums.WeekDays.$new().(_$ordinal)*//*=>>Enums.WeekDays.$new().($name)*//*=>>scala.runtime.EnumValues#register().*/case Monday/*<<=Enums.WeekDays.Monday.*/
88
/*<<=Enums.WeekDays.$values.*/ case Tuesday/*<<=Enums.WeekDays.Tuesday.*/
99
case Wednesday/*<<=Enums.WeekDays.Wednesday.*/
1010
case Thursday/*<<=Enums.WeekDays.Thursday.*/
@@ -15,12 +15,12 @@ object /*=>>java.lang.Object#`<init>`().*/Enums/*<<=Enums.*/ {
1515

1616
enum /*=>>java.lang.Object#`<init>`().*/Maybe/*<<=Enums.Maybe#*/[+A] {/*<<=Enums.Maybe#`<init>`().*//*<<=Enums.Maybe#`<init>`().[A]*//*<<=Enums.Maybe#[A]*//*=>>Enums.Maybe.None.*/
1717
/*=>>java.lang.Object#`<init>`().*//*=>>scala.package.Serializable#*//*=>>scala.*//*=>>_root_*//*=>>Enums.Maybe#`<init>`().*//*=>>Enums.Maybe.Just#[A]*//*=>>Enums.Maybe.Just#`<init>`().*//*=>>Enums.Maybe.Just#copy().[A]*//*=>>Enums.Maybe.Just#copy().(value)*//*=>>Enums.Maybe.Just.apply().[A]*//*=>>Enums.Maybe.Just.apply().(value)*//*=>>Enums.Maybe.Just.unapply().[A]*/case Just/*<<=Enums.Maybe.Just#*/(value/*<<=Enums.Maybe.Just#`<init>`().*//*<<=Enums.Maybe.Just#`<init>`().(value)*//*<<=Enums.Maybe.Just#(value)*//*<<=Enums.Maybe.Just#copy().(value)*//*<<=Enums.Maybe.Just.apply().(value)*/: A/*=>>Enums.Maybe.Just#`<init>`().[A]*//*=>>Enums.Maybe.Just#(value)*/)/*=>>scala.Product#*//*=>>scala.*//*=>>_root_*//*=>>scala.package.Serializable#*/
18-
/*=>>Enums.Maybe#`<init>`().*/case /*<<=local4*/None/*<<=Enums.Maybe.None.*//*=>>local5*//*=>>local4*/
18+
/*=>>Enums.Maybe#`<init>`().*/case None/*<<=Enums.Maybe.None.*/
1919
}
2020

2121
enum /*=>>java.lang.Object#`<init>`().*/Tag/*<<=Enums.Tag#*/[A] {
22-
/*<<=Enums.Tag#`<init>`().*//*<<=Enums.Tag#`<init>`().[A]*//*<<=Enums.Tag#[A]*//*=>>Enums.Tag.IntTag.*//*=>>Enums.Tag.BooleanTag.*/ /*=>>java.lang.Object#`<init>`().*//*=>>scala.package.Serializable#*//*=>>scala.*//*=>>_root_*/case IntTag/*<<=Enums.Tag.IntTag.*/ extends Tag/*=>>Enums.Tag#*/[I/*<<=local6*/nt/*=>>scala.Int#*/]/*=>>Enums.Tag#`<init>`().*//*=>>local7*//*=>>local6*/
23-
case BooleanTag/*<<=Enums.Tag.BooleanTag.*/ extends Tag/*=>>Enums.Tag#*/[B/*<<=local8*/oolean/*=>>scala.Boolean#*/]/*=>>Enums.Tag#`<init>`().*//*=>>local9*//*=>>local8*/
22+
/*<<=Enums.Tag#`<init>`().*//*<<=Enums.Tag#`<init>`().[A]*//*<<=Enums.Tag#[A]*//*=>>Enums.Tag.IntTag.*//*=>>Enums.Tag.BooleanTag.*/ /*=>>java.lang.Object#`<init>`().*//*=>>scala.package.Serializable#*//*=>>scala.*//*=>>_root_*/case IntTag/*<<=Enums.Tag.IntTag.*/ extends Tag/*=>>Enums.Tag#*/[Int/*=>>scala.Int#*/]/*=>>Enums.Tag#`<init>`().*/
23+
case BooleanTag/*<<=Enums.Tag.BooleanTag.*/ extends Tag/*=>>Enums.Tag#*/[Boolean/*=>>scala.Boolean#*/]/*=>>Enums.Tag#`<init>`().*/
2424
}
2525

2626
enum /*=>>java.lang.Object#`<init>`().*/=:=/*<<=Enums.`=:=`#*/[A, B]/*<<=Enums.`=:=`#`<init>`().*//*<<=Enums.`=:=`#`<init>`().[A]*//*<<=Enums.`=:=`#[A]*//*<<=Enums.`=:=`#`<init>`().[B]*//*<<=Enums.`=:=`#[B]*/ {
@@ -38,13 +38,13 @@ object /*=>>java.lang.Object#`<init>`().*/Enums/*<<=Enums.*/ {
3838
def surfaceGravity/*<<=Enums.Planet#surfaceGravity().*/ = G/*=>>Enums.Planet#G.*/ */*=>>scala.Double#`*`(+6).*/ mass/*=>>Enums.Planet#(mass)*/ //*=>>scala.Double#`.`(+6).*/ (radius/*=>>Enums.Planet#(radius)*/ */*=>>scala.Double#`*`(+6).*/ radius/*=>>Enums.Planet#(radius)*/)
3939
def surfaceWeight/*<<=Enums.Planet#surfaceWeight().*/(otherMass/*<<=Enums.Planet#surfaceWeight().(otherMass)*/: Double/*=>>scala.Double#*/) = otherMass/*=>>Enums.Planet#surfaceWeight().(otherMass)*/ */*=>>scala.Double#`*`(+6).*/ surfaceGravity/*=>>Enums.Planet#surfaceGravity().*/
4040

41-
/*=>>java.lang.Object#`<init>`().*//*=>>scala.package.Serializable#*//*=>>scala.*//*=>>_root_*/case Mercury/*<<=Enums.Planet.$values.*//*<<=Enums.Planet.Mercury.*/ extends /*=>>scala.collection.IterableOnceOps#toArray().*//*=>>scala.runtime.EnumValues#values().*//*=>>Enums.Planet.$values.*//*=>>scala.reflect.ClassTag.apply().*//*=>>scala.reflect.ClassTag.*//*=>>scala.runtime.EnumValues#`<init>`().*//*=>>scala.collection.MapOps#apply().*//*=>>scala.runtime.EnumValues#fromName().*//*=>>Enums.Planet.valueOf().($name)*//*=>>`<special-ops>`.throw().*//*=>>java.lang.IllegalArgumentException#`<init>`(+1).*//*=>>java.lang.String#concat().*/Plane/*<<=local10*/t/*=>>Enums.Planet#*//*=>>Enums.Planet#`<init>`().*/(3.303e+23, 2.4397e6)/*=>>scala.runtime.EnumValues#register().*//*=>>Enums.Planet.$values.*//*=>>local11*//*=>>local10*/
42-
case Venus/*<<=Enums.Planet.Venus.*/ extends Plane/*<<=local12*/t/*=>>Enums.Planet#*//*=>>Enums.Planet#`<init>`().*/(4.869e+24, 6.0518e6)/*=>>scala.runtime.EnumValues#register().*//*=>>Enums.Planet.$values.*//*=>>local13*//*=>>local12*/
43-
case Earth/*<<=Enums.Planet.Earth.*/ extends Plane/*<<=local14*/t/*=>>Enums.Planet#*//*=>>Enums.Planet#`<init>`().*/(5.976e+24, 6.37814e6)/*=>>scala.runtime.EnumValues#register().*//*=>>Enums.Planet.$values.*//*=>>local15*//*=>>local14*/
44-
case Mars/*<<=Enums.Planet.Mars.*/ extends Plane/*<<=local16*/t/*=>>Enums.Planet#*//*=>>Enums.Planet#`<init>`().*/(6.421e+23, 3.3972e6)/*=>>scala.runtime.EnumValues#register().*//*=>>Enums.Planet.$values.*//*=>>local17*//*=>>local16*/
45-
case Jupiter/*<<=Enums.Planet.Jupiter.*/ extends Plane/*<<=local18*/t/*=>>Enums.Planet#*//*=>>Enums.Planet#`<init>`().*/(1.9e+27, 7.1492e7)/*=>>scala.runtime.EnumValues#register().*//*=>>Enums.Planet.$values.*//*=>>local19*//*=>>local18*/
46-
case Saturn/*<<=Enums.Planet.Saturn.*/ extends Plane/*<<=local20*/t/*=>>Enums.Planet#*//*=>>Enums.Planet#`<init>`().*/(5.688e+26, 6.0268e7)/*=>>scala.runtime.EnumValues#register().*//*=>>Enums.Planet.$values.*//*=>>local21*//*=>>local20*/
47-
case Uranus/*<<=Enums.Planet.Uranus.*/ extends Plane/*<<=local22*/t/*=>>Enums.Planet#*//*=>>Enums.Planet#`<init>`().*/(8.686e+25, 2.5559e7)/*=>>scala.runtime.EnumValues#register().*//*=>>Enums.Planet.$values.*//*=>>local23*//*=>>local22*/
48-
case Neptune/*<<=Enums.Planet.Neptune.*/ extends Plane/*<<=local24*/t/*=>>Enums.Planet#*//*=>>Enums.Planet#`<init>`().*/(1.024e+26, 2.4746e7)/*=>>scala.runtime.EnumValues#register().*//*=>>Enums.Planet.$values.*//*=>>local25*//*=>>local24*/
41+
/*=>>java.lang.Object#`<init>`().*//*=>>scala.package.Serializable#*//*=>>scala.*//*=>>_root_*/case Mercury/*<<=Enums.Planet.$values.*//*<<=Enums.Planet.Mercury.*/ extends /*=>>scala.collection.IterableOnceOps#toArray().*//*=>>scala.runtime.EnumValues#values().*//*=>>Enums.Planet.$values.*//*=>>scala.reflect.ClassTag.apply().*//*=>>scala.reflect.ClassTag.*//*=>>scala.runtime.EnumValues#`<init>`().*//*=>>scala.collection.MapOps#apply().*//*=>>scala.runtime.EnumValues#fromName().*//*=>>Enums.Planet.valueOf().($name)*//*=>>`<special-ops>`.throw().*//*=>>java.lang.IllegalArgumentException#`<init>`(+1).*//*=>>java.lang.String#concat().*/Planet/*=>>Enums.Planet#*//*=>>Enums.Planet#`<init>`().*/(3.303e+23, 2.4397e6)/*=>>scala.runtime.EnumValues#register().*//*=>>Enums.Planet.$values.*/
42+
case Venus/*<<=Enums.Planet.Venus.*/ extends Planet/*=>>Enums.Planet#*//*=>>Enums.Planet#`<init>`().*/(4.869e+24, 6.0518e6)/*=>>scala.runtime.EnumValues#register().*//*=>>Enums.Planet.$values.*/
43+
case Earth/*<<=Enums.Planet.Earth.*/ extends Planet/*=>>Enums.Planet#*//*=>>Enums.Planet#`<init>`().*/(5.976e+24, 6.37814e6)/*=>>scala.runtime.EnumValues#register().*//*=>>Enums.Planet.$values.*/
44+
case Mars/*<<=Enums.Planet.Mars.*/ extends Planet/*=>>Enums.Planet#*//*=>>Enums.Planet#`<init>`().*/(6.421e+23, 3.3972e6)/*=>>scala.runtime.EnumValues#register().*//*=>>Enums.Planet.$values.*/
45+
case Jupiter/*<<=Enums.Planet.Jupiter.*/ extends Planet/*=>>Enums.Planet#*//*=>>Enums.Planet#`<init>`().*/(1.9e+27, 7.1492e7)/*=>>scala.runtime.EnumValues#register().*//*=>>Enums.Planet.$values.*/
46+
case Saturn/*<<=Enums.Planet.Saturn.*/ extends Planet/*=>>Enums.Planet#*//*=>>Enums.Planet#`<init>`().*/(5.688e+26, 6.0268e7)/*=>>scala.runtime.EnumValues#register().*//*=>>Enums.Planet.$values.*/
47+
case Uranus/*<<=Enums.Planet.Uranus.*/ extends Planet/*=>>Enums.Planet#*//*=>>Enums.Planet#`<init>`().*/(8.686e+25, 2.5559e7)/*=>>scala.runtime.EnumValues#register().*//*=>>Enums.Planet.$values.*/
48+
case Neptune/*<<=Enums.Planet.Neptune.*/ extends Planet/*=>>Enums.Planet#*//*=>>Enums.Planet#`<init>`().*/(1.024e+26, 2.4746e7)/*=>>scala.runtime.EnumValues#register().*//*=>>Enums.Planet.$values.*/
4949
}
5050
}

0 commit comments

Comments
 (0)