Open
Description
Compiler version
3.5.0
Minimized code
val xx, yy, zz = 1
Output
[[syntax trees at end of typer]] // demo.scala
package <empty>@demo.scala<0..0> {
final lazy module val demo$package: demo$package@demo.scala<0..0> =
new demo$package@demo.scala<0..0>@demo.scala<0..0>@demo.scala<0..0>()@
demo.scala<0..0>
@demo.scala<0..0>
final module class demo$package() extends Object@demo.scala<0..0>@
demo.scala<0..0>()@demo.scala<0..0> {
this: demo$package@demo.scala<0..0>.type@demo.scala<0..0> =>
val xx: Int = 1@demo.scala<17..18>@demo.scala[0..4..18]
val yy: Int = 1@demo.scala<17..18>@demo.scala[0..8..18]
val zz: Int = 1@demo.scala<17..18>@demo.scala[0..12..18]
}@demo.scala<0..18>
}@demo.scala<0..18>
Problem
Start and end position for all definitions are the same. This leads to incorrect Interactive.pathTo
for position on xx
or yy
definition -- head being zz
definition.
Expectation
I would either expect positions on multiple declaration to be solved as in Scala 2 (though this is also buggy there):
xx -- `4..18`
yy --`8..18`
zz -- `12..18`
or for Interactive.pathTo
to account for that situation.