FYI, I have all of the CorrectTypo call sites updated and everything working (including fixit mode, which didn't require mucking with the CXXScopeSpec [and said mucking screws up diagnostic messages]); I'm just waiting on guidance for resolving the issues with basic.lookup.argdep/p4.cpp. I'm tempted to just fix up the expectations in basic.lookup.argdep/p4.cpp, except the old error message is far more useful than the new and misleading/bogus messages and I'd like to figure out a way to keep the old behavior if possible without severely crippling the missing-namespace corrections.<br>
<br>Cheers,<br>Kaelyn<br><br><div class="gmail_quote">On Thu, Jun 23, 2011 at 5:11 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;">
<div class="gmail_quote"><div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">+    // FIXME: Don't do the lookups if argument dependent lookup is required as<br>

+    // this will break test/CXX/basic/basic.lookup/basic.lookup.argdep/p4.cpp<br>
<br>
Is this FIXME still relevant, given that we're doing the appropriate requiresADL check?<br></blockquote></div><div><br>I've found a problem with the simple ADL check in CorrectTypo... with it, common cases we want to suggest corrections for such as:<br>

<br><div style="margin-left:40px">namespace fizbin {<br>  namespace nested { bool moreFoobar() { return true; } }<br>}<br>void foo() {<br>  moreFoobar();<br>}<br></div></div></div><br>give:<br><br><div style="margin-left:40px">

tmp.cpp:5:3: error: use of undeclared identifier 'moreFoobar'<br>  moreFoobar();<br>  ^<br>1 error generated.<br></div><br>instead of:<br><br><div style="margin-left:40px">tmp.cpp:5:3: error: use of undeclared identifier 'moreFoobar'; did you mean<br>

      'fizbin::nested::moreFoobar'?<br>  moreFoobar();<br>  ^~~~~~~~~~<br>  fizbin::nested::moreFoobar<br>tmp.cpp:2:27: note: 'fizbin::nested::moreFoobar' declared here<br>  namespace nested { bool moreFoobar() { return true; } }<br>

</div><br>but without the check, basic.lookup.argdep/p4.cpp reports:<br><br><div style="margin-left:40px"><div class="im">error: 'error' diagnostics seen but not expected: <br></div>  Line 35: no viable conversion from 'B::B' to 'C::C'<div class="im">
<br>
error: 'note' diagnostics seen but not expected: <br></div>  Line 23: 'C::func' declared here<br>  Line 22: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'B::B' to 'const C::C &' for 1st argument<br>

  Line 23: passing argument to parameter here<br>4 errors generated.<br></div><br>Ideas?<br><font color="#888888"><br>- Kaelyn<br>
</font></blockquote></div><br>