So in the interest of keeping the overall changes a bit more digestible, I've split my dev branch in two. The first part, for which I've attached the latest diff, contains just the changes for the improved version of Sema::CorrectTypo and does not include the new unit test or any changes to any of the callers of CorrectTypo (all calls are going through the compatibility wrapper, and all unit tests pass). The second part, which I'm still working on (and which is already a third of the combined patch size), already has many of the callers modified to use the new version of CorrectTypo so I'd be fine with getting the first part submitted. Splitting it apart should also make the changes a bit easier to bisect if something breaks down the road.<br>
<br>Cheers,<br>Kaelyn<br><br><div class="gmail_quote">On Mon, Jun 20, 2011 at 3:28 PM, Kaelyn Uhrain <span dir="ltr"><<a href="mailto:rikka@google.com">rikka@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Same day, yet another version of my patch. ;)<br><br>I've eliminated the use of std::multimap and moved the building and sorting of the sets of NestedNameSpecifiers into a separate class.  I've also fixed up the typo correction cache to store TypoCorrections instead of just the StringRef name and a keyword boolean (I moved the declaration of the TypoCorrection class out of Sema/Lookup.h and into its own header so that Sema/Sema.h could use the class in an llvm::DenseMap). The only failing unit test is the new one I added which is dependent on more of the users of CorrectTypo being made aware of namespace corrections.<br>

<br>Chandler, if you get to a point where you can easily do so, I'd be curious to know if your benchmarking shows any noticeable difference between these last two patches (ns-20110620.diff and ns-20110620-nomultimap.diff; I can easily provide an incremental diff between the two if you want/need it).<br>

<br>Now to fix up those call sites!<br><br>Cheers,<br><font color="#888888">Kaelyn</font><div><div></div><div class="h5"><br><br><div class="gmail_quote">On Mon, Jun 20, 2011 at 10:14 AM, Kaelyn Uhrain <span dir="ltr"><<a href="mailto:rikka@google.com" target="_blank">rikka@google.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Managed to not reply to all... which is okay as the patch was against the clang git tree as of a couple weeks ago and recent changes causes a couple of minor merge conflicts.  Here's the patch based on the current git HEAD.<div>

<div></div><div><br>
<br><div class="gmail_quote">On Mon, Jun 20, 2011 at 9:54 AM, Kaelyn Uhrain <span dir="ltr"><<a href="mailto:rikka@google.com" target="_blank">rikka@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


Here ya go.  It has most of the smaller changes based on dgregor's most recent feedback.  It also makes CorrectTypo know when argument-dependent lookup is required and skips trying namespace qualifiers, which allows basic.lookup.argdep/p4.cpp to pass. The main pieces I'm still working on (within CorrectTypo at least) are improving the caching and updating the CXXScopeSpec if/when possible.  I also still need to remove the use of std::multimap, though you're welcome to benchmark it and alternatives. ;)<div>


<div></div><div><br>
<br><div class="gmail_quote">On Mon, Jun 20, 2011 at 9:37 AM, Chandler Carruth <span dir="ltr"><<a href="mailto:chandlerc@google.com" target="_blank">chandlerc@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div><div class="gmail_quote">On Mon, Jun 20, 2011 at 9:35 AM, Kaelyn Uhrain <span dir="ltr"><<a href="mailto:rikka@google.com" target="_blank">rikka@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




<div>Don't quite have it ready yet.  Being sick for much of last week didn't help...<br><br>I could post for submission my last patch + the smaller cleanups that I already have done and finish up the work as a second patch, so that folks can get started on the serialization, etc.</div>




</blockquote></div><br><div style="zoom:100%"></div></div><div>I'm just looking for a WIP patch that I can run with.</div>
</blockquote></div><br>
</div></div></blockquote></div><br>
</div></div></blockquote></div><br>
</div></div></blockquote></div><br>