On Oct 16, 2013, at 21:44, Rick Mann <rm...@latencyzero.com> wrote: > > On Oct 16, 2013, at 21:16 , Keary Suska <xcode-us...@esoteritech.com> wrote: > >> "if (self.active)" should never flag a warning, because it is not only >> perfectly legal but also not in any way an odd construct. The compiler can't >> know that you might not be testing for a nil value, for instance. Some >> advocate always having an explicit r-value, e.g. "if (self.active != nil)", >> which always makes the intention clear, but it is only a convention one >> could use to avoid ambiguity. In your case, this convention might have >> helped since implicit pointer conversion is usually flagged. > > I realize this, which is why I asked for a warning. clang is smart enough to > recognize (I think) if something is actually its BOOL type, and I'd settle > for this only working in Objective-C++. Maybe that's why it didn't work. > > I never use the perfectly legitimate but IMO lazy test for nil; I always make > it explicit, and I accept this requirement when turning on the warning. > Forcing that is much better than missing things like the one I missed.
Note that it is more complex than just looking for a boolean type. Remember that operators such as “<“, “==“ or “!” return int, and not _Bool, so something like this: > if (self.active != nil) is an if statement using a non-boolean type (because "self.active != nil” is an “int", not “_Bool”, “BOOL" or “bool"). Either way, I would recommend filing a bug asking for your warning. -- Clark Smith Cox III clarkc...@gmail.com _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com