diff options
-rw-r--r-- | src/dotty/tools/dotc/typer/ProtoTypes.scala | 7 | ||||
-rw-r--r-- | tests/run/i1543.check | 31 | ||||
-rw-r--r-- | tests/run/i1543.scala | 41 |
3 files changed, 76 insertions, 3 deletions
diff --git a/src/dotty/tools/dotc/typer/ProtoTypes.scala b/src/dotty/tools/dotc/typer/ProtoTypes.scala index 0e6697fb7..751ed928b 100644 --- a/src/dotty/tools/dotc/typer/ProtoTypes.scala +++ b/src/dotty/tools/dotc/typer/ProtoTypes.scala @@ -395,9 +395,10 @@ object ProtoTypes { if (mt.isDependent) tp else { val rt = normalize(mt.resultType, pt) - if (pt.isInstanceOf[ApplyingProto]) - mt.derivedMethodType(mt.paramNames, mt.paramTypes, rt) - else { + pt match { + case pt: IgnoredProto => mt + case pt: ApplyingProto => mt.derivedMethodType(mt.paramNames, mt.paramTypes, rt) + case _ => val ft = defn.FunctionOf(mt.paramTypes, rt) if (mt.paramTypes.nonEmpty || ft <:< pt) ft else rt } diff --git a/tests/run/i1543.check b/tests/run/i1543.check new file mode 100644 index 000000000..10adcaf83 --- /dev/null +++ b/tests/run/i1543.check @@ -0,0 +1,31 @@ +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 diff --git a/tests/run/i1543.scala b/tests/run/i1543.scala new file mode 100644 index 000000000..268bc717b --- /dev/null +++ b/tests/run/i1543.scala @@ -0,0 +1,41 @@ + +object Test extends dotty.runtime.LegacyApp { + new Bar().foo(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31) +} + + +class Bar { + def foo(p1: Int, p2: Int, p3: Int, p4: Int, p5: Int, p6: Int, p7: Int, p8: Int, p9: Int, p10: Int, p11: Int, p12: Int, p13: Int, p14: Int, p15: Int, p16: Int, p17: Int, p18: Int, p19: Int, p20: Int, p21: Int, p22: Int, p23: Int, p24: Int, p25: Int, p26: Int, p27: Int, p28: Int, p29: Int, p30: Int, p31: Int): Unit = { + println(p1) + println(p2) + println(p3) + println(p4) + println(p5) + println(p6) + println(p7) + println(p8) + println(p9) + println(p10) + println(p11) + println(p12) + println(p13) + println(p14) + println(p15) + println(p16) + println(p17) + println(p18) + println(p19) + println(p20) + println(p21) + println(p22) + println(p23) + println(p24) + println(p25) + println(p26) + println(p27) + println(p28) + println(p29) + println(p30) + println(p31) + } +} |