Scala Programming Language
  1. Scala Programming Language
  2. SI-7026

CompilerControl.parseTree can in certain conditions return a typed tree

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: Scala 2.10.1
    • Component/s: None

      Description

      Calling `CompilerControl.parseTree` can return a typechecked tree, which is problematic if what you wanted was just a parsed tree.

      It happens because the current implementation tries to memorize the tree. An easy fix is just to re-create the parse tree every time. Tests for this should check that:

      1. You get a new parse tree every time you ask for one
      2. A parse tree should never contain any symbols or types [1]
      3. If you ask for a parse tree and then someone else asks for a typed tree it shouldn't change the parse tree you originally asked for, i.e. property
      2 still holds.

      I've discussed this with the IDE team and provided a fix in their project for now but this is something that should be fixed in the compiler. See the ticket here: https://www.assembla.com/spaces/scala-ide/tickets/1001326#/activity/ticket:

      I have a fix for this but I need to port my tests from the IDE to the compiler before I can have a pull request ready.

      [1] There is an exception to this though. Some of the nodes that
      the compiler generates will actually contain symbols. I've
      chosen to just ignore these special cases for now.

        Activity

        Show
        Adriaan Moors added a comment - https://github.com/scala/scala/pull/1993
        Hide
        James Iry added a comment -

        "Assigning" to Adriaan so it doesn't look like nobody is working on it.

        Show
        James Iry added a comment - "Assigning" to Adriaan so it doesn't look like nobody is working on it.

          People

          • Assignee:
            Mads Hartmann Jensen
            Reporter:
            Mads Hartmann Jensen
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development