<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Hi Nico,<div><br></div><div>The discussion was in person, in a hallway.  We don’t discuss everything over email.  :)  I do agree that there should have been a bit more information here on the intended design.</div><div><br></div><div>The idea for the fixit is to provide a way for a user to silence the warning when they “know what they are doing”.  I suggested:</div><div><br></div><div>  @selector((…))</div><div><br></div><div>notice the double ‘((‘.  Essentially it matches the idiom provided by -Wparenthesis.</div><div><br></div><div>What do you think?</div><div><br></div><div>Cheers,</div><div>Ted</div><div><br><div><div>On Mar 28, 2014, at 11:59 AM, Nico Weber <<a href="mailto:thakis@chromium.org">thakis@chromium.org</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">Can you share the idea for the fix-it? And maybe this shouldn't be on by default until the fix-it is implemented?<div><br></div><div>As is, this will warn if someone writes @selector(length) and includes Cocoa, which doesn't seem very unlikely – and warning on that without a workaround doesn't seem useful.<div>
<br></div><div>(Also, it'd be nice if the discussion was on-list.)</div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Mar 28, 2014 at 11:22 AM, Fariborz Jahanian <span dir="ltr"><<a href="mailto:fjahanian@apple.com" target="_blank">fjahanian@apple.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: fjahanian<br>
Date: Fri Mar 28 13:22:16 2014<br>
New Revision: 205024<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=205024&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=205024&view=rev</a><br>
Log:<br>
Objective-C. revert r204965. This will make<br>
-Wselector-type-mismatch default again. After<br>
internal discussions, we think that in most cases<br>
it has helped our developers find hard to detect<br>
undefined behaviors. We are going to provide a syntax<br>
(and fix-it) to suppress the warning in remaining of<br>
false positive cases.<br>
<br>
Modified:<br>
    cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td<br>
    cfe/trunk/test/SemaObjC/selector-1.m<br>
<br>
Modified: cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td?rev=205024&r1=205023&r2=205024&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td?rev=205024&r1=205023&r2=205024&view=diff</a><br>

==============================================================================<br>
--- cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td (original)<br>
+++ cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td Fri Mar 28 13:22:16 2014<br>
@@ -907,7 +907,7 @@ def warn_unimplemented_protocol_method :<br>
 def warning_multiple_selectors: Warning<<br>
   "several methods with selector %0 of mismatched types are found "<br>
   "for the @selector expression">,<br>
-  InGroup<SelectorTypeMismatch>, DefaultIgnore;<br>
+  InGroup<SelectorTypeMismatch>;<br>
 // C++ declarations<br>
 def err_static_assert_expression_is_not_constant : Error<<br>
   "static_assert expression is not an integral constant expression">;<br>
<br>
Modified: cfe/trunk/test/SemaObjC/selector-1.m<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/selector-1.m?rev=205024&r1=205023&r2=205024&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/selector-1.m?rev=205024&r1=205023&r2=205024&view=diff</a><br>

==============================================================================<br>
--- cfe/trunk/test/SemaObjC/selector-1.m (original)<br>
+++ cfe/trunk/test/SemaObjC/selector-1.m Fri Mar 28 13:22:16 2014<br>
@@ -1,4 +1,4 @@<br>
-// RUN: %clang_cc1 -Wselector-type-mismatch -verify %s<br>
+// RUN: %clang_cc1 -verify %s<br>
<br>
 @interface I<br>
 - (id) compare: (char) arg1; // expected-note {{method 'compare:' declared here}}<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br></div>
_______________________________________________<br>cfe-commits mailing list<br><a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits<br></blockquote></div><br></div></body></html>