Ping.  Any comments on this patch?<br><br><div class="gmail_quote">On Fri, Apr 15, 2011 at 10:25 PM, Richard Trieu <span dir="ltr"><<a href="mailto:rtrieu@google.com">rtrieu@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
See <a href="http://llvm.org/bugs/show_bug.cgi?id=9548" target="_blank">http://llvm.org/bugs/show_bug.cgi?id=9548</a><div><br></div><div>When two different types has the same text representation in the same diagnostic message, print an a.k.a. after the type if the a.k.a. gives extra information about the type.</div>

<div><br></div><div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium">class versa_string;</span></div>
<div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium"><br></span></div><div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium"></span><span style="font-family:monospace;white-space:pre-wrap;font-size:medium">typedef versa_string string;</span></div>

<div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium"><br></span></div><div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium"></span><span style="font-family:monospace;white-space:pre-wrap;font-size:medium">namespace std {template <typename T> class vector;}</span></div>

<div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium"><br></span></div><div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium"></span><span style="font-family:monospace;white-space:pre-wrap;font-size:medium">using std::vector;</span></div>

<div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium"><br></span></div><div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium"></span><span style="font-family:monospace;white-space:pre-wrap;font-size:medium">void f(vector<string> v);</span></div>

<div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium"><br></span></div><div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium"></span><span style="font-family:monospace;white-space:pre-wrap;font-size:medium">namespace std {</span></div>

<div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium"></span><span style="font-family:monospace;white-space:pre-wrap;font-size:medium">class basic_string;</span></div>
<div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium"></span><span style="font-family:monospace;white-space:pre-wrap;font-size:medium">typedef basic_string string;</span></div>
<div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium"></span><span style="font-family:monospace;white-space:pre-wrap;font-size:medium">template <typename T> class vector {};</span></div>
<div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium"></span><span style="font-family:monospace;white-space:pre-wrap;font-size:medium">void g() {</span></div>
<div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium"></span><span style="font-family:monospace;white-space:pre-wrap;font-size:medium">  vector<string> v;</span></div>
<div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium"></span><span style="font-family:monospace;white-space:pre-wrap;font-size:medium">  f(v);</span></div>
<div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium"></span><span style="font-family:monospace;white-space:pre-wrap;font-size:medium">}</span></div>
<div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium">}</span></div><div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium"><br>
</span></div><div><font face="monospace" size="3"><span style="white-space:pre-wrap">Old message:</span></font></div>
<div><font face="monospace" size="3"><span style="white-space:pre-wrap">----------------</span></font></div>
<div><font face="monospace" size="3"><span style="white-space:pre-wrap"></span></font><span style="font-family:monospace;white-space:pre-wrap;font-size:medium">test.cc:15:3: error: no matching function for call to 'f'</span></div>

<div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium"></span><span style="font-family:monospace;white-space:pre-wrap;font-size:medium">  f(&v);</span></div>
<div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium"></span><span style="font-family:monospace;white-space:pre-wrap;font-size:medium">  ^</span></div>
<div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium"></span><span style="font-family:monospace;white-space:pre-wrap;font-size:medium">test.cc:7:6: note: candidate function not viable: no known conversion from</span></div>

<div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium">      'vector<string>' to 'vector<string>' for 1st argument</span></div>
<div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium"></span><span style="font-family:monospace;white-space:pre-wrap;font-size:medium">void f(vector<string> v);</span></div>
<div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium">     ^</span></div><div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium"></span><span style="font-family:monospace;white-space:pre-wrap;font-size:medium">1 error generated.</span></div>

<div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium"><br></span></div><div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium">New message:</span></div>
<div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium">---------------</span></div><div>
<font face="monospace" size="3"><span style="white-space:pre-wrap">test.cc:15:3: error: no matching function for call to 'f'
  f(v);
  ^
test.cc:7:6: note: candidate function not viable: no known conversion from
      'vector<string>' (aka 'std::vector<std::basic_string>') to
      'vector<string>' (aka 'std::vector<versa_string>') for 1st argument
void f(vector<string> v);
     ^
1 error generated.</span></font><span style="font-family:monospace;white-space:pre-wrap;font-size:medium">
</span></div><div><span style="font-family:monospace;white-space:pre-wrap;font-size:medium"><br></span></div><div>
<span style="font-family:monospace;white-space:pre-wrap;font-size:medium"><br></span></div>
</blockquote></div><br>