<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;">
This is very good. Thanks for isolating. This is the sort of thing that is easily missed because of the subtlety and could lead to days of searching.<br id="lineBreakAtBeginningOfMessage">
<div><br>
<blockquote type="cite">
<div>On 19 Dec 2023, at 04:48, Przemek Bielicki <pbielicki@gmail.com> wrote:</div>
<br class="Apple-interchange-newline">
<div>
<div dir="ltr">Oh damn! I think IDEA's decompiler helped a little with the explanation of the meaning of the order.<br>
<div>
<div>As you can see from the attached screenshot the order of permits differ:</div>
<div><br>
</div>
<div><font face="monospace">permits GradleExecGraphNodeExecutionInfo.Task, GradleExecGraphNodeExecutionInfo.Transform {</font></div>
<div>vs.</div>
<div><font face="monospace">permits GradleExecGraphNodeExecutionInfo.Transform, GradleExecGraphNodeExecutionInfo.Task {</font><br>
</div>
<div><br>
</div>
<div>I guess this structure (collection of permits?) is handled by the compiler using some sort of Set instead of a List thus we get a non-deterministic order.</div>
<span class="gmail-im" style="color:rgb(80,0,80)">
<div>My fellow Gradle colleagues told me that they discovered such non-determinisms in the past and the reasons were very similar.</div>
<div><br>
</div>
<div>I hope it's helpful and can unblock you from digging deeper? 🤞🏻</div>
<div><br>
</div>
</span>
<div>What's interesting is that javap isn't showing this difference. 🤔</div>
<div><br>
</div>
<div>Cheers,</div>
<div>Przemek</div>
</div>
</div>
<img alt="idea_decompiled.png" src="cid:f_lqc3r1j63" width="2203"></div>
</blockquote>
</div>
<br>
</body>
</html>