<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<br>
<blockquote type="cite" cite="mid:CANSoFxudWhphg05rBBQ_ptL=yRZ=eC0S=V0R-TLpR17wcCDHHg@mail.gmail.com">
<div dir="ltr">
<div>
<div class="gmail_quote">
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div>We can exclude final instance methods declared in the
same class if the same analysis of the method
(recursively) shows no escape of `this` (this is the *
in the first bullet above.)<br>
</div>
</blockquote>
<div>
<div> </div>
<div>
<div>Neat.</div>
<div><br>
<div>You could also analyze static methods in the
class to verify non-escape if they were invoked with
'this' as a parameter... it's more or less the same
situation.</div>
<div><br>
</div>
<div>Any code in the compilation unit that is directly
invoked by the constructor and that can't possibly
be overridden could in theory be fair game for this
non-escape analysis.</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<br>
Right, more of the same trick. The key is not crossing source
files, since that is over the analysis horizon. <br>
<br>
<br>
<blockquote type="cite" cite="mid:CANSoFxudWhphg05rBBQ_ptL=yRZ=eC0S=V0R-TLpR17wcCDHHg@mail.gmail.com">
<div dir="ltr">
<div>
<div class="gmail_quote">
<div>
<div>
<div>
<div><br>
</div>
</div>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div> Inner class creation is a similar story as calling
final methods in the same class; we can do a similar
analysis of the inner class constructor to verify
non-escape.<br>
</div>
</blockquote>
</div>
<br>
<div>
<div>But the inner class <span style="font-family:monospace">Outer.Inner</span>'s
constructor is going to say <span style="font-family:monospace">this.$0 = Outer.this</span>,
which is an escape for <span style="font-family:monospace">Outer.this</span>,
right?<br>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<br>
Only if the inner class instance escapes. But we're definitely
getting into the "advanced analysis tricks" territory now.<br>
<br>
<br>
</body>
</html>