From 55dbf6413a5939f1a22011550f0d7e083387e8c9 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 15493e6805dc..386bae6d5338 100644 --- a/compiler/src/dotty/tools/dotc/typer/Applications.scala +++ b/compiler/src/dotty/tools/dotc/typer/Applications.scala @@ -2140,7 +2140,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)()