<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">
<br id="lineBreakAtBeginningOfMessage">
<div><br>
<blockquote type="cite">
<div>On Feb 5, 2026, at 12:37 PM, nadeesh t v <nadeeshtv@gmail.com> wrote:</div>
<br class="Apple-interchange-newline">
<div>
<div dir="ltr">
<div>Hi,</div>
<div><br>
</div>
<div>Thank you for the clarification.</div>
<div><br>
</div>
<div>Any performance implication whenever a <a class="gmail_plusreply" id="gmail-plusReplyChip-1">@Reflect  annotated </a> method executes on the JVM?</div>
<div><br>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
No (or at least not yet :-) depending on how we encode the model and whether we only encode the model there might be an initialization hit on first invocation to generate the bytecode, that could be ameliorated at link time and/or with Leyden. Details to be
 worked out…)</div>
<div><br>
</div>
<div><br>
<blockquote type="cite">
<div>
<div dir="ltr">
<div>If an instance method is  <a class="gmail_plusreply" id="gmail-plusReplyChip-1">@Reflect  annotated, I hope  that it does not carry over to its overridden method in child class. Should that need to be explicitly documented in the JEP or is that implicit?`</a></div>
<div><a class="gmail_plusreply"><br>
</a></div>
<div><span style="font-family: "DejaVu Sans", "Bitstream Vera Sans", "Luxi Sans", Verdana, Arial, Helvetica; font-size: 13.333333px;">> declaring a reflectable lambda expression does broaden the scope to the surrounding code of final, or effectively final, </span><span style="font-family: "DejaVu Sans", "Bitstream Vera Sans", "Luxi Sans", Verdana, Arial, Helvetica; font-size: 13.333333px;">variables
 used</span><span class="gmail-Apple-converted-space" style="font-family: "DejaVu Sans", "Bitstream Vera Sans", "Luxi Sans", Verdana, Arial, Helvetica; font-size: 13.333333px;"> </span></div>
<div><font face="DejaVu Sans, Bitstream Vera Sans, Luxi Sans, Verdana, Arial, Helvetica" size="2"><span style="caret-color: rgb(0, 0, 0);">Could you please expand on how the scope broadens for the  </span></font><span style="font-family: "DejaVu Sans", "Bitstream Vera Sans", "Luxi Sans", Verdana, Arial, Helvetica; font-size: 13.333333px;">final,
 or effectively final, </span><span style="font-family: "DejaVu Sans", "Bitstream Vera Sans", "Luxi Sans", Verdana, Arial, Helvetica; font-size: 13.333333px;">variables<span class="gmail-Apple-converted-space"> in the lambda?</span></span></div>
</div>
</div>
</blockquote>
<div><br>
</div>
To be clear it *does not* broaden. e.g.,</div>
<div><br>
</div>
<div>final int i = a() + b();</div>
<div>@Reflect</div>
<div>Runnable r = () -> IO.println(i);</div>
<div><br>
</div>
<div>We don’t broaden the scope to reflect over the declaration of local variable i and its initializer expression.</div>
<div><br>
</div>
<div><br>
<blockquote type="cite">
<div>
<div dir="ltr">
<div><font face="DejaVu Sans, Bitstream Vera Sans, Luxi Sans, Verdana, Arial, Helvetica" size="2"><span style="caret-color: rgb(0, 0, 0);">Should not the same happen for instance fields that are used in </span></font><a class="gmail_plusreply" id="gmail-plusReplyChip-1">@Reflect
  annotated </a> method<span class="gmail-Apple-converted-space"> ?`</span></div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>“this" is a final variable that is captured. The fields themselves are not captured.</div>
<div><br>
</div>
<div>Paul.</div>
</div>
<br>
</body>
</html>