diff --git a/compiler/src/dotty/tools/dotc/transform/ShortcutImplicits.scala b/compiler/src/dotty/tools/dotc/transform/ShortcutImplicits.scala index f574a34a6685..06c265e29d2a 100644 --- a/compiler/src/dotty/tools/dotc/transform/ShortcutImplicits.scala +++ b/compiler/src/dotty/tools/dotc/transform/ShortcutImplicits.scala @@ -129,6 +129,9 @@ class ShortcutImplicits extends MiniPhase with IdentityDenotTransformer { thisPh .appliedToArgss(vparamSymss.map(_.map(ref(_))) :+ clparamSyms.map(ref(_))) val fwdClosure = cpy.Block(tree)(cpy.DefDef(meth)(rhs = forwarder) :: Nil, cl) (remappedCore, fwdClosure) + case id: Ident => + val SAMType(mt) = id.tpe.widen + splitClosure(tpd.Lambda(mt, args => id.select(nme.apply).appliedToArgs(args))(ctx.withOwner(original))) case EmptyTree => (_ => _ => EmptyTree, EmptyTree) } diff --git a/tests/pos/i5295.scala b/tests/pos/i5295.scala new file mode 100644 index 000000000000..1fb0a4292394 --- /dev/null +++ b/tests/pos/i5295.scala @@ -0,0 +1,2 @@ +inline def foo: String = bar given (4) +private def bar: given Int => String = "baz"