[webkit-dev] Idiom for functions with all return values in a switch case

Michael Catanzaro mcatanzaro at igalia.com
Tue May 9 11:35:54 PDT 2017


On Tue, May 9, 2017 at 1:13 PM, Maciej Stachowiak <mjs at apple.com> wrote:
> I think this second option may suppress the warning when you have 
> forgotten to list one of the enum values, since there is now a 
> default case. I believe that's the reason for the recommended option.

Ah, good point. Normally we do want a warning when a new enum value has 
been introduced. That could be avoided by this variant:

       static WKAutoplayEvent toWKAutoplayEvent(WebCore::AutoplayEvent 
event)
       {
           switch (event) {
           // ...
           }

           RELEASE_ASSERT_NOT_REACHED();
       }

That seems nicer than this:

       static WKAutoplayEvent toWKAutoplayEvent(WebCore::AutoplayEvent 
event)
       {
           switch (event) {
           // ...
           }

           ASSERT_NOT_REACHED();
           return static_cast<WKAutoplayEvent>(0);
       }

Andy suggests returning one of the enumeration values directly, then we 
can use ASSERT_NOT_REACHED() instead of RELEASE_ASSERT_NOT_REACHED(). 
That would work too, though it forces me to think about which one to 
pick.

Michael



More information about the webkit-dev mailing list