File tree Expand file tree Collapse file tree
quicklens/src/main/scala-3/com/softwaremill/quicklens Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -178,6 +178,10 @@ object QuicklensMacros {
178178 extension (term : Term )
179179 def appliedToIfNeeded (args : List [Term ]): Term =
180180 if args.isEmpty then term else term.appliedToArgs(args)
181+ def appliedToTypesIfNeeded (args : List [TypeRepr ]): Term =
182+ if term.symbol.paramSymss.headOption.toList.flatten.filter(_.isType).nonEmpty then
183+ term.appliedToTypes(args)
184+ else term
181185
182186 def symbolAccessorByNameOrError (obj : Term , name : String ): Term = {
183187 val objTpe = obj.tpe.widenAll
@@ -253,7 +257,7 @@ object QuicklensMacros {
253257 val methodSymbol = methodSymbolByNameOrError(objSymbol, copy.name + " $default$" + i.toString)
254258 // default values in extension methods take the extension receiver as the first parameter
255259 val defaultMethodArgs = argsMap.dropRight(1 ).flatMap(_.values)
256- obj.select(methodSymbol).appliedToIfNeeded(defaultMethodArgs)
260+ obj.select(methodSymbol).appliedToTypesIfNeeded(typeParams). appliedToIfNeeded(defaultMethodArgs)
257261 n -> v.getOrElse(defaultMethod)
258262 }.toMap
259263
You can’t perform that action at this time.
0 commit comments