From cd7951356808238cfb9545c2077d14a242e3bc20 Mon Sep 17 00:00:00 2001 From: Allan Renucci Date: Wed, 3 Jan 2018 18:30:14 +0100 Subject: [PATCH] Fix #2840: Add regression test --- .../src/dotty/tools/dotc/transform/PatternMatcher.scala | 2 +- tests/pickling/i2840.scala | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 tests/pickling/i2840.scala diff --git a/compiler/src/dotty/tools/dotc/transform/PatternMatcher.scala b/compiler/src/dotty/tools/dotc/transform/PatternMatcher.scala index 599c577dd2f0..d810ec420bb7 100644 --- a/compiler/src/dotty/tools/dotc/transform/PatternMatcher.scala +++ b/compiler/src/dotty/tools/dotc/transform/PatternMatcher.scala @@ -969,7 +969,7 @@ object PatternMatcher { } def numConsts(cdefs: List[CaseDef]): Int = { val tpes = cdefs.map(_.pat.tpe) - tpes.toSet.size: Int // without the type ascription, testPickling fails because of #2840. + tpes.toSet.size } if (numConsts(resultCases) < numConsts(original.cases)) ctx.warning(UnableToEmitSwitch(), original.pos) diff --git a/tests/pickling/i2840.scala b/tests/pickling/i2840.scala new file mode 100644 index 000000000000..a2459c25eb2d --- /dev/null +++ b/tests/pickling/i2840.scala @@ -0,0 +1,8 @@ +object Test { + class Type + def f(x: Type): Type = ??? + def g(xs: List[Type]): Int = { + val ys = xs.map(f) + ys.toSet.size + } +}