<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Feb 3, 2019 at 6:50 AM Stephen Kelly via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">On 31/12/2018 04:54, Chris Lattner via llvm-dev wrote:<br>
>> Do those uses conform to the guide? If they don't, then should the guide be updated? Are the types there 'obvious’?<br>
> <br>
> If/when we revise the policy, then it would make sense for non-conforming uses of auto to be changed. However, I don’t think that actually making a widespread change would be high priority...<br>
> <br>
>> How did all of those uses get into the codebase? Does it indicate that the guide is not followed, or does it indicate that the guide is too subjective, or that maybe the 'the type must be obvios' guide does not reflect the 'reality at the coalface' anymore? Should those uses of auto be changed?<br>
> <br>
> My understanding is that there has been no widely understood or accepted policy, so different coders and reviewers are doing different things.<br>
<br>
One of the things which has no consensus here is whether 'auto' may be<br>
used in lambdas (using c++-14). </blockquote><div><br></div><div>Under the current guidelines, my understanding is that nothing prevents to use auto in lambda in order to "make the code more readable" when "the type is already obvious from the context" or "when the type would have been abstracted away anyways, often behind a container’s typedef such as std::vector<T>::iterator".</div><div><br></div><div>We don't need to update the guideline on auto to be able to use auto in lambda as soon as c++14 is available.</div><div><br></div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">This feature was celebrated as a big<br>
feature which gets unlocked by migrating to toolchains which provide<br>
that feature:<br>
<br>
<a href="https://groups.google.com/forum/#!msg/llvm-dev/0VkIuhn10nE/QZ5FwYEmHAAJ" rel="noreferrer" target="_blank">https://groups.google.com/forum/#!msg/llvm-dev/0VkIuhn10nE/QZ5FwYEmHAAJ</a><br>
<br>
So, does this need a guideline update?<br>
<br>
Is there consistency in celbrating that but writing 'remove all use of<br>
auto from this file' in reviews?<br>
<br>
If there's no consensus and no consistency, what does that mean for the<br>
code?<br>
<br>
Is<br>
<br>
if (const auto *TSI = D->getTypeSourceInfo())<br>
<br>
ok?<br>
<br>
Some reviewers say 'no'. What is the consensus and how is that expressed<br>
in the guidelines?<br>
<br>
Does anyone have any interest in making the guidelines more clear on<br>
this?<br>
<br>
I have made several proposals, and at least Chris agreed that something<br>
should be improved, but then he left the discussion.<br>
<br>
Does anyone else think that something can be improved? Is anyone willing<br>
to read and comment on my proposal and get a change to the guidelines<br>
committed?<br></blockquote><div><br></div><div>I think that multiple people read your proposal and gave feedback on Phabricator that mandates a revision (for instance for-range loop). Also in this topic I believe some feedback was given that rewording in order to remove ambiguity is always good, as long as the "spirit" of the current rule as it is written is preserved.</div><div>So my take on the subject is that we're waiting on a new revision of your patch?</div><div><br></div><div>Best,</div><div><br></div><div>-- </div><div>Mehdi</div><div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
<br>
The original email in this thread was about how to handle features that<br>
become 'unlocked' by updates to our minimum toolchain requirements. That<br>
is now upon us.<br>
<br>
Thanks,<br>
<br>
Stephen.<br>
<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div></div></div></div>