From 495b07ea1509a1bf3a7091f9fc0a95fccf1b183e Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Mon, 15 Jun 2015 17:31:02 +0200 Subject: [PATCH 1/2] Fix #651 Generalize criterion for isOpAssign Methods like + can have multiple parameters. In that case += also takes multiple parameters. --- src/dotty/tools/dotc/ast/TreeInfo.scala | 2 +- tests/{pending => }/run/colltest1.check | 0 tests/{pending => }/run/colltest1.scala | 3 ++- 3 files changed, 3 insertions(+), 2 deletions(-) rename tests/{pending => }/run/colltest1.check (100%) rename tests/{pending => }/run/colltest1.scala (99%) diff --git a/src/dotty/tools/dotc/ast/TreeInfo.scala b/src/dotty/tools/dotc/ast/TreeInfo.scala index 2f6b6b914bab..6401c01c1273 100644 --- a/src/dotty/tools/dotc/ast/TreeInfo.scala +++ b/src/dotty/tools/dotc/ast/TreeInfo.scala @@ -33,7 +33,7 @@ trait TreeInfo[T >: Untyped <: Type] { self: Trees.Instance[T] => } def isOpAssign(tree: Tree) = unsplice(tree) match { - case Apply(fn, _ :: Nil) => + case Apply(fn, _ :: _) => unsplice(fn) match { case Select(_, name) if name.isOpAssignmentName => true case _ => false diff --git a/tests/pending/run/colltest1.check b/tests/run/colltest1.check similarity index 100% rename from tests/pending/run/colltest1.check rename to tests/run/colltest1.check diff --git a/tests/pending/run/colltest1.scala b/tests/run/colltest1.scala similarity index 99% rename from tests/pending/run/colltest1.scala rename to tests/run/colltest1.scala index 3f1fe5530fea..1fd1a4bb96b8 100644 --- a/tests/pending/run/colltest1.scala +++ b/tests/run/colltest1.scala @@ -139,7 +139,8 @@ object Test extends dotty.runtime.LegacyApp { def setTest(empty: => Set[String]): Unit = { var s = empty + "A" + "B" + "C" - s += ("D", "E", "F") + s += "D" + s = s + ("D", "E", "F") s ++= List("G", "H", "I") s ++= ('J' to 'Z') map (_.toString) assert(s forall (s contains)) From f9cb7aa3071bfb614efd23e2a14771b0bfd4ccf8 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Mon, 15 Jun 2015 18:04:27 +0200 Subject: [PATCH 2/2] Revert changes in test Changes were made by accident. --- tests/run/colltest1.scala | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/run/colltest1.scala b/tests/run/colltest1.scala index 1fd1a4bb96b8..3f1fe5530fea 100644 --- a/tests/run/colltest1.scala +++ b/tests/run/colltest1.scala @@ -139,8 +139,7 @@ object Test extends dotty.runtime.LegacyApp { def setTest(empty: => Set[String]): Unit = { var s = empty + "A" + "B" + "C" - s += "D" - s = s + ("D", "E", "F") + s += ("D", "E", "F") s ++= List("G", "H", "I") s ++= ('J' to 'Z') map (_.toString) assert(s forall (s contains))