<p dir="ltr">Hi guys,</p>
<p dir="ltr">I just wanted to say thanks for taking this on. I really just haven't had time to get back to this work. Appreciate it!</p>
<br><div class="gmail_quote"><div dir="ltr">On Wed, Nov 22, 2017, 11:54 PM Changyu Li <<a href="mailto:changyu@ca.ibm.com">changyu@ca.ibm.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="m_6737129025154125254socmaildefaultfont" dir="ltr" style="font-family:Arial,Helvetica,sans-serif;font-size:10.5pt"><div dir="ltr">Hi Saar,</div>
<div dir="ltr"> </div>
<div dir="ltr">I submitted the work I did for review.</div>
<div dir="ltr"> </div>
</div><div class="m_6737129025154125254socmaildefaultfont" dir="ltr" style="font-family:Arial,Helvetica,sans-serif;font-size:10.5pt"><div dir="ltr"><div><a href="https://reviews.llvm.org/D40380" target="_blank">https://reviews.llvm.org/D40380</a></div></div>
<div dir="ltr"><a href="https://reviews.llvm.org/D40381" target="_blank">https://reviews.llvm.org/D40381</a><br> </div>
<div dir="ltr">I broke it into two parts. The removing old code part is pretty much the same as yours. </div>
<div dir="ltr"> </div>
<div dir="ltr"> </div>
<blockquote dir="ltr" style="border-left:solid #aaaaaa 2px;margin-left:5px;padding-left:5px;direction:ltr;margin-right:0px"></blockquote></div><div class="m_6737129025154125254socmaildefaultfont" dir="ltr" style="font-family:Arial,Helvetica,sans-serif;font-size:10.5pt"><blockquote dir="ltr" style="border-left:solid #aaaaaa 2px;margin-left:5px;padding-left:5px;direction:ltr;margin-right:0px">----- Original message -----<br>From: Changyu Li/Markham/IBM<br>To: <a href="mailto:hubert.reinterpretcast@gmail.com" target="_blank">hubert.reinterpretcast@gmail.com</a><br>Cc: <a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>, <a href="mailto:nwilson20@gmail.com" target="_blank">nwilson20@gmail.com</a>, <a href="mailto:richard@metafoo.co.uk" target="_blank">richard@metafoo.co.uk</a>, saar@raz.email<br>Subject: Re: [cfe-dev] Roadmap for a Concepts implementation P0734R0, currently merged into C++20 draft<br>Date: Thu, Nov 23, 2017 12:50 AM<br> 
</blockquote></div><div class="m_6737129025154125254socmaildefaultfont" dir="ltr" style="font-family:Arial,Helvetica,sans-serif;font-size:10.5pt"><blockquote dir="ltr" style="border-left:solid #aaaaaa 2px;margin-left:5px;padding-left:5px;direction:ltr;margin-right:0px"><div dir="ltr" style="font-family:Arial,Helvetica,sans-serif;font-size:10.5pt"><div dir="ltr">Hi Saar,</div>
<div dir="ltr"> </div>
<div dir="ltr">I submitted the work I did for review.</div>
<div dir="ltr"><a href="https://reviews.llvm.org/D40381" target="_blank">https://reviews.llvm.org/D40381</a><a href="https://reviews.llvm.org/D40381" target="_blank">https://reviews.llvm.org/D40381</a></div>
<div dir="ltr"> </div>
</div></blockquote></div><div class="m_6737129025154125254socmaildefaultfont" dir="ltr" style="font-family:Arial,Helvetica,sans-serif;font-size:10.5pt"><blockquote dir="ltr" style="border-left:solid #aaaaaa 2px;margin-left:5px;padding-left:5px;direction:ltr;margin-right:0px"><div dir="ltr" style="font-family:Arial,Helvetica,sans-serif;font-size:10.5pt"><blockquote dir="ltr" style="border-left:solid #aaaaaa 2px;margin-left:5px;padding-left:5px;direction:ltr;margin-right:0px">----- Original message -----<br>From: Hubert Tong <<a href="mailto:hubert.reinterpretcast@gmail.com" target="_blank">hubert.reinterpretcast@gmail.com</a>><br>To: Saar Raz <saar@raz.email><br>Cc: Richard Smith <<a href="mailto:richard@metafoo.co.uk" target="_blank">richard@metafoo.co.uk</a>>, Clang Dev <<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>>, Nathan Wilson <<a href="mailto:nwilson20@gmail.com" target="_blank">nwilson20@gmail.com</a>>, Changyu Li <<a href="mailto:changyu@ca.ibm.com" target="_blank">changyu@ca.ibm.com</a>><br>Subject: Re: [cfe-dev] Roadmap for a Concepts implementation P0734R0, currently merged into C++20 draft<br>Date: Tue, Nov 21, 2017 4:32 PM<br> 
</blockquote></div></blockquote></div><div class="m_6737129025154125254socmaildefaultfont" dir="ltr" style="font-family:Arial,Helvetica,sans-serif;font-size:10.5pt"><blockquote dir="ltr" style="border-left:solid #aaaaaa 2px;margin-left:5px;padding-left:5px;direction:ltr;margin-right:0px"><div dir="ltr" style="font-family:Arial,Helvetica,sans-serif;font-size:10.5pt"><blockquote dir="ltr" style="border-left:solid #aaaaaa 2px;margin-left:5px;padding-left:5px;direction:ltr;margin-right:0px"><div dir="ltr"><div><div>On Tue, Nov 21, 2017 at 3:53 PM, Saar Raz <span dir="ltr"><<a href="mailto:saar@raz.email" target="_blank">saar@raz.email</a>></span> wrote:

<blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Agreed, I'll post a patch with fixed tests and the diagnostic removed soon.
<div> </div>
<div>Richard - I heard from Andrew Sutton that constrained non-template functions had been cut out of the working draft when concepts was voted in because of name mangling issues - are they still left out? If so, was the trailing requires-clause cut out as well?</div>
<div>Anyway I've noticed another problem/defect with constrained non-template functions as described in P0734R0, discussed here: <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__groups.google.com_a_isocpp.org_forum_-23-21topic_std-2Ddiscussion_CJAmcnFI86o&d=DwMFaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=_TppqN2XZ2ySkHq7c46FM6kKcTPHv0u9VoUI4-BYNJg&m=1qLy4xI-SfbJo7vTFWt4Xsmyc86lguLScArE_9EIhx8&s=IB0SL0sySfBcN7XrCExUpmnerOvqjKsWiJiTTVPs5Q8&e=" target="_blank">https://groups.google.com/a/isocpp.org/forum/#!topic/std-discussion/CJAmcnFI86o</a> (Andrew also agreed that this probably should be fixed in the way I suggested)</div></div></blockquote>
</div></div></div></blockquote></div></blockquote></div><div class="m_6737129025154125254socmaildefaultfont" dir="ltr" style="font-family:Arial,Helvetica,sans-serif;font-size:10.5pt"><blockquote dir="ltr" style="border-left:solid #aaaaaa 2px;margin-left:5px;padding-left:5px;direction:ltr;margin-right:0px"><div dir="ltr" style="font-family:Arial,Helvetica,sans-serif;font-size:10.5pt"><blockquote dir="ltr" style="border-left:solid #aaaaaa 2px;margin-left:5px;padding-left:5px;direction:ltr;margin-right:0px"><div dir="ltr"><div><div><div>Yes, previous discussions on the issue you describe led to the same conclusion. There are still questions over what exactly is used to distinguish requires-clauses that are "different" without template dependent constructs. The constraint expression really just evaluates to a bool value, and all cases evaluating to "true" could be considered equivalent. [basic.link]/9 in N4700 is silent to the point of being wrong here, but I do not think we have an agreement on what the right words should look like.</div>
<div> </div>
<blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div> 
</div></div></div></blockquote></div></div></div></blockquote></div></blockquote></div><div class="m_6737129025154125254socmaildefaultfont" dir="ltr" style="font-family:Arial,Helvetica,sans-serif;font-size:10.5pt"><blockquote dir="ltr" style="border-left:solid #aaaaaa 2px;margin-left:5px;padding-left:5px;direction:ltr;margin-right:0px"><div dir="ltr" style="font-family:Arial,Helvetica,sans-serif;font-size:10.5pt"><blockquote dir="ltr" style="border-left:solid #aaaaaa 2px;margin-left:5px;padding-left:5px;direction:ltr;margin-right:0px"><div dir="ltr"><div><div><blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div dir="ltr">On Mon, Nov 20, 2017 at 7:15 PM Hubert Tong <<a href="mailto:hubert.reinterpretcast@gmail.com" target="_blank">hubert.reinterpretcast@gmail.com</a>> wrote:</div>
<blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">On Sun, Nov 19, 2017 at 7:39 PM, Saar Raz <span dir="ltr"><<a href="mailto:saar@raz.email" target="_blank">saar@raz.email</a>></span> wrote:</div>
<div dir="ltr"><div><div><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Attached is a patch file that implements point 1 with some comments as to what should be done next.</div></blockquote></div></div></div>
<div dir="ltr"><div>Saar, I believe cfe-commits is the mailing list for patch reviews. I also find Phabricator to be helpful (but it is not mandatory).</div>
<div><br>Some comments:<br>The patch would obviously break tests, so test updates are needed. I would prefer to see if some tests are salvageable by modifying them to use the new syntax (and then leaving them disabled for now).<br>The error message at line 132 of the patch still refers to "concept" as a specifier.<br>This particular error message is also more likely to be orphaned than not depending on how the parsing is implemented.<br><br>template <typename T><br>inline concept C = true;<br>//     ^<br>// error: expected unqualified-id<br><br>template <typename T><br>concept constexpr C = true;<br>//      ^<br>// error: expected unqualified-id<br> </div></div></blockquote></div></div></div></div></blockquote></div></div></div></blockquote></div></blockquote></div></blockquote></div>