From 43a77e987e3f3075bf71a27ac3aecf85245b2ac1 Mon Sep 17 00:00:00 2001 From: odersky Date: Fri, 9 Dec 2022 15:44:44 +0100 Subject: [PATCH] Fix curried overloading resolution for polymorphic methods Fixes #16484 --- compiler/src/dotty/tools/dotc/typer/Applications.scala | 2 +- tests/pos/i16484.scala | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 tests/pos/i16484.scala diff --git a/compiler/src/dotty/tools/dotc/typer/Applications.scala b/compiler/src/dotty/tools/dotc/typer/Applications.scala index 8dad9247a6e9..20ae81a74655 100644 --- a/compiler/src/dotty/tools/dotc/typer/Applications.scala +++ b/compiler/src/dotty/tools/dotc/typer/Applications.scala @@ -2166,7 +2166,7 @@ trait Applications extends Compatibility { val reverseMapping = alts.flatMap { alt => val t = f(alt) if t.exists then - val (trimmed, skipped) = trimParamss(t, alt.symbol.rawParamss) + val (trimmed, skipped) = trimParamss(t.stripPoly, alt.symbol.rawParamss) val mappedSym = alt.symbol.asTerm.copy(info = t) mappedSym.rawParamss = trimmed val (pre, totalSkipped) = mappedAltInfo(alt.symbol) match diff --git a/tests/pos/i16484.scala b/tests/pos/i16484.scala new file mode 100644 index 000000000000..b0a5bf1f8a17 --- /dev/null +++ b/tests/pos/i16484.scala @@ -0,0 +1,3 @@ +trait JWTEncoder: + def encode[P](arg: String)(opt: Option[String] = None): String + def encode[P](arg: String): String = encode(arg)()