<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:DengXian;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:DengXian;
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:DengXian;}
.MsoChpDefault
{mso-style-type:export-only;}
/* Page Definitions */
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
{page:WordSection1;}
--></style></head><body lang=ZH-CN link=blue vlink="#954F72" style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal><span lang=EN-US>Hi all,</span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>I am not sure whether this should be reported to amber-dev or compiler-dev so I am reporting it here (sorry!)</span></p><p class=MsoNormal><span lang=EN-US>A minimal repro was attached below or you can visit here: https://gist.github.com/imkiva/8db13b6e578e473c1c9b977086bfe898</span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>import java.util.function.BiFunction;</span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>public class Bug {</span></p><p class=MsoNormal><span lang=EN-US> sealed interface Term {</span></p><p class=MsoNormal><span lang=EN-US> record Lit() implements Term {}</span></p><p class=MsoNormal><span lang=EN-US> record Lam(String x, Term a) implements Term {}</span></p><p class=MsoNormal><span lang=EN-US> }</span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US> public static <X, T> void call(BiFunction<X, T, T> op, X x, T t) {</span></p><p class=MsoNormal><span lang=EN-US> op.apply(x, t);</span></p><p class=MsoNormal><span lang=EN-US> }</span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US> public static void main(String[] args) {</span></p><p class=MsoNormal><span lang=EN-US> // this code works</span></p><p class=MsoNormal><span lang=EN-US> call(Term.Lam::new, "x", (Term) new Term.Lit());</span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US> // this does not</span></p><p class=MsoNormal><span lang=EN-US> call(Term.Lam::new, "x", new Term.Lit());</span></p><p class=MsoNormal><span lang=EN-US> // java.lang.invoke.LambdaConversionException: Type mismatch for lambda argument 1: </span></p><p class=MsoNormal><span lang=EN-US> // class java.lang.Record is not convertible to interface Term</span></p><p class=MsoNormal><span lang=EN-US> }</span></p><p class=MsoNormal><span lang=EN-US>}</span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p></div></body></html>