<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sat, Dec 31, 2016 at 1:55 PM, Robert Widmann <span dir="ltr">&lt;<a href="mailto:devteam.codafi@gmail.com" target="_blank">devteam.codafi@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word"><div><br></div><div><div>As for why this works with non-chained binops no simplification occurs in that case because, well, there’s no chain here.  The solver walks each part in turn instead.  </div></div></div></blockquote><div><br></div><div>What do you mean by this? The LinkedExprAnalyzer is still used in the &quot;x! + x!&quot; case. Maybe I just haven&#39;t followed the execution quite far enough to see why the current behavior doesn&#39;t cause problems.</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 style="word-wrap:break-word"><div><div><br></div><div>The walker is, I think, appropriate.  It is a very domain-specific optimization that doesn’t quite know about its entire domain yet.  However, I don’t think anyone would be opposed to a little meta-programming with an ASTVisitor to refactor it into a more manageable form.</div><span class="gmail-HOEnZb"><font color="#888888"><div><br></div><div>~Robert Widmann</div></font></span><div><div class="gmail-h5"><br></div></div></div></div></blockquote></div></div></div>