On Friday, January 20, 2017 at 10:36:46 AM UTC+11, Bobby Holley wrote: > On Thu, Jan 19, 2017 at 3:26 PM, <gsqu...@mozilla.com> wrote: > > > On Friday, January 20, 2017 at 10:13:54 AM UTC+11, Nicholas Nethercote > > wrote: > > > On Fri, Jan 20, 2017 at 10:01 AM, <gsqu...@mozilla.com> wrote: > > > > > > > And the next step would be to make must-use the default, and have > > > > MOZ_CAN_IGNORE for the rest. ;-) > > > > > > > > > > I actually tried this with all XPIDL methods. After adding several > > hundred > > > "Unused <<" annotations for calls that legitimately didn't need to check > > > the return value -- and I was only a fraction of the way through the > > > codebase -- I decided that a big bang approach wasn't going to work. So I > > > then implemented [must_use] as an incremental alternative. > > > > > > Nick > > > > I guess my slightly-tongue-in-cheek suggestion was to reverse MOZ_MUST_USE. > > > > I think the point is that it's not obvious that "must check the return > value" is a sufficiently-dominant common case for arbitrary return values. > FWIW, Rust took the [must_use] rather than [can_ignore] approach too.
That's unfortunate. But real-world data must trump my idealism in the end. :-) > It probably depends a lot on the return value type. Makes sense. Another idea: Could all non-void const methods (those that don't modify *this) be MOZ_MUST_USE by default? They supposedly don't have side-effects, so why would their return value ever be ignored? > > So in cases where a return value from a function can be ignored, instead > > of adding "Unused <<" at all the call sites, you'd add MOZ_CAN_IGNORE in > > front of the function declaration. Or possibly MOZ_CAN_IGNORE_TYPE if more > > appropriate. > > > > Of course I'm sure it would still take a lot of work! > > > > Maybe there could be a slow hybrid approach: > > - Start with Eric's suggestion to make a directory MOZ_MUST_USE'able. > > - Add "Unused <<" for isolated failures, or add MOZ_CAN_IGNORE[_TYPE] for > > larger failures. > > - Gradually "infect" more directories. > > - Once it's everywhere, make MOZ_MUST_USE the default, and remove the > > above scaffolding. > > - Profit! > > > > Gerald > > _______________________________________________ > > dev-platform mailing list > > dev-pl...@lists.mozilla.org > > https://lists.mozilla.org/listinfo/dev-platform > > _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform