Skip to content

Ydebug-pos shows wrong file #8973

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
bishabosha opened this issue May 13, 2020 · 1 comment
Open

Ydebug-pos shows wrong file #8973

bishabosha opened this issue May 13, 2020 · 1 comment

Comments

@bishabosha
Copy link
Member

bishabosha commented May 13, 2020

Minimized code

import scala.compiletime._

object Test {
  def main(args: Array[String]): Unit = {
    assert(code"" == "")
  }
}

Output

compile with -Xprint:typer -Yprint-pos -Ydebug-pos

package <empty>@sandbox/semanticdb/example2.scala<0..0> {
  import 
    scala@sandbox/semanticdb/example2.scala<7..12>.compiletime@
      sandbox/semanticdb/example2.scala<7..24>
  ._@sandbox/semanticdb/example2.scala<25..26>@
    sandbox/semanticdb/example2.scala<0..26>
  final lazy module val Test: Test$@sandbox/semanticdb/example2.scala<28..28> = 
    new Test$@sandbox/semanticdb/example2.scala<28..28>@
      sandbox/semanticdb/example2.scala<28..28>
    @sandbox/semanticdb/example2.scala<28..28>()@
      sandbox/semanticdb/example2.scala<28..28>
  @sandbox/semanticdb/example2.scala<28..28>
  final module class Test$() extends Object@
    sandbox/semanticdb/example2.scala<35..35>
  @sandbox/semanticdb/example2.scala<35..35>()@
    sandbox/semanticdb/example2.scala<35..35>
  , _root_@sandbox/semanticdb/example2.scala<45..45>.scala@
    sandbox/semanticdb/example2.scala<45..45>
  .Serializable@sandbox/semanticdb/example2.scala<45..45> { 
    this: 
      Test@sandbox/semanticdb/example2.scala<45..45>.type@
        sandbox/semanticdb/example2.scala<45..45>
     =>
    def main(
      args: 
        Array@sandbox/semanticdb/example2.scala<60..65>[
          String@sandbox/semanticdb/example2.scala<66..72>
        ]@sandbox/semanticdb/example2.scala<60..73>
      @sandbox/semanticdb/example2.scala[54..73]
    ): Unit@sandbox/semanticdb/example2.scala<76..80> = 
      {
        {
          if 
            {
              {
                ""@sandbox/semanticdb/example2.scala<1112..1172>
              }@sandbox/semanticdb/example2.scala<96..102>.==@
                sandbox/semanticdb/example2.scala<96..105>
              (""@sandbox/semanticdb/example2.scala<106..108>)@
                sandbox/semanticdb/example2.scala<96..108>
            }@
              /Users/jamie/Workspace/dotty/library/src/dotty/DottyPredef.scala<291..300>
            .unary_!@
              /Users/jamie/Workspace/dotty/library/src/dotty/DottyPredef.scala<290..300>
           then 
            assertFail@
              /Users/jamie/Workspace/dotty/library/src/dotty/DottyPredef.scala<308..318>
            ()@
              /Users/jamie/Workspace/dotty/library/src/dotty/DottyPredef.scala<308..320>
           else 
            ()@
              /Users/jamie/Workspace/dotty/library/src/dotty/DottyPredef.scala<320..320>
            @
          /Users/jamie/Workspace/dotty/library/src/dotty/DottyPredef.scala<286..320>
        }@sandbox/semanticdb/example2.scala<89..109>
      }@sandbox/semanticdb/example2.scala<83..113>
    @sandbox/semanticdb/example2.scala[45..49..113]
  }@sandbox/semanticdb/example2.scala[28..35..116]
}@sandbox/semanticdb/example2.scala<0..116>

Expectation

""@sandbox/semanticdb/example2.scala<1112..1172> should say
""@/Users/jamie/Workspace/dotty/library/src/scala/compiletime/package.scala<1112..1172>

at least the tree.source where the span is <1112..1172> is /Users/jamie/Workspace/dotty/library/src/scala/compiletime/package.scala

@Blaisorblade
Copy link
Contributor

Seems related/a duplicate of #6542?

When we have a position on a tree the was loaded from TASTy we have no way to compute line numbers and columns as we only have the offset but no source file.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants