Skip to content

Pair is not an alias of Tuple2 #18

Closed
@scabug

Description

@scabug

If I load this code in Eclipse (plugin 2.6.3):

package test;

object PairTest {
  val foo = Tuple2(1, "Foo") :: Tuple2 (2, "Bar") :: Nil

  def main(args : Array[String]) : Unit = {
        System.out println (for (Pair(i, s) <- foo) yield { i + " " +  s })
  }
}

I get

BAIL: OffsetPosition(PairTest.scala,172) scala.this.Predef.Pair.unapply[Int, java.lang.String](<unapply-selector>) <unapply> ((i @ _), (s @ _)) class scala.tools.nsc.ast.Trees$$UnApply
BAIL: OffsetPosition(PairTest.scala,172) scala.this.Predef.Pair.unapply[Int, java.lang.String](<unapply-selector>) <unapply> ((i @ _), (s @ _)) class scala.tools.nsc.ast.Trees$$UnApply

If I change Pair to Tuple2 or leave it out, I get

Signature of L/PairTest/src/test/PairTest.scala changed, recompile dependent files
+[anonfun::Modifiers(1073741826,,List())[]]
-[anonfun::Modifiers(1073741826,,List())[]$$anonfun::Modifiers(1073741826,,List())[]]

and everything works.

(I have seen

**** COMPILER CRASH, RESET RESIDENT AND RETRY
**** COMPILER CRASH, GIVE UP, MAYBE DO CLEAN BUILD

on a clean build of more complex code containing

  for (Pair(id, Pair(foo, bar)) <- ...) yield {...}

so I think it is a compiler and not a plugin issue)

The code worked with a 2.5.something plugin.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions