From 45fae3570da95613f4a8201a18dc45b9302ec83b Mon Sep 17 00:00:00 2001 From: Felix Mulder Date: Thu, 14 Jul 2016 16:18:05 +0200 Subject: [PATCH] Correct typo in IsInstanceOfEvalautor, fixes #1352 --- .../dotc/transform/IsInstanceOfEvaluator.scala | 4 ++-- tests/pos/i1352.scala | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 tests/pos/i1352.scala diff --git a/src/dotty/tools/dotc/transform/IsInstanceOfEvaluator.scala b/src/dotty/tools/dotc/transform/IsInstanceOfEvaluator.scala index 6765604c8bf3..8bc4a2aa91ea 100644 --- a/src/dotty/tools/dotc/transform/IsInstanceOfEvaluator.scala +++ b/src/dotty/tools/dotc/transform/IsInstanceOfEvaluator.scala @@ -124,8 +124,8 @@ class IsInstanceOfEvaluator extends MiniPhaseTransform { thisTransformer => !(selector.typeSymbol is Trait) && !(selector.typeSymbol is Module) - val selClassNonFinal = scClass && !(selector.typeSymbol is Final) - val selFinalClass = scClass && (selector.typeSymbol is Final) + val selClassNonFinal = selClass && !(selector.typeSymbol is Final) + val selFinalClass = selClass && (selector.typeSymbol is Final) // Cases --------------------------------- val valueClassesOrAny = diff --git a/tests/pos/i1352.scala b/tests/pos/i1352.scala new file mode 100644 index 000000000000..b73ef33fc2cd --- /dev/null +++ b/tests/pos/i1352.scala @@ -0,0 +1,15 @@ +object Test { + trait A + trait B + abstract sealed class Parent + class Foo extends Parent with A + class Bar extends Parent with B + + (null: Parent) match { + case (_: A) | (_: B) => + /* + * This case would incorrectly be reported as an error, + * due to a typo in IsInstanceOfEvaluator + */ + } +}