Skip to content

Commit d36e458

Browse files
authored
Merge pull request #7141 from dotty-staging/fix-#7119
Fix #7119: Don't infer given arguments if explicit ones are given
2 parents bc43b3a + 267701d commit d36e458

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

compiler/src/dotty/tools/dotc/typer/ProtoTypes.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -520,7 +520,7 @@ object ProtoTypes {
520520
/** Create a new TypeVar that represents a dependent method parameter singleton */
521521
def newDepTypeVar(tp: Type)(implicit ctx: Context): TypeVar =
522522
newTypeVar(TypeBounds.upper(AndType(tp.widenExpr, defn.SingletonClass.typeRef)))
523-
523+
524524
/** The result type of `mt`, where all references to parameters of `mt` are
525525
* replaced by either wildcards (if typevarsMissContext) or TypeParamRefs.
526526
*/

compiler/src/dotty/tools/dotc/typer/Typer.scala

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2640,7 +2640,14 @@ class Typer extends Namer
26402640
readaptSimplified(tpd.Apply(tree, args))
26412641
}
26422642
}
2643-
addImplicitArgs(argCtx(tree))
2643+
pt.revealIgnored match {
2644+
case pt: FunProto if pt.isGivenApply =>
2645+
// We can end up here if extension methods are called with explicit given arguments.
2646+
// See for instance #7119.
2647+
tree
2648+
case _ =>
2649+
addImplicitArgs(argCtx(tree))
2650+
}
26442651
}
26452652

26462653
/** A synthetic apply should be eta-expanded if it is the apply of an implicit function

tests/pos/i7119.scala

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
class Impl
2+
3+
def (impl: Impl) prop given Int = ???//the[Int]
4+
5+
6+
def main(args: Array[String]): Unit = {
7+
given as Int = 3
8+
println(new Impl().prop given 3)
9+
}

0 commit comments

Comments
 (0)