If you don’t want the default case, and if you like a warning free compilation, you need a way to suppress the warning.
Regards, Rien Site: http://balancingrock.nl Blog: http://swiftrien.blogspot.com Github: http://github.com/Balancingrock Project: http://swiftfire.nl > On 07 Feb 2017, at 19:42, Tanner Nelson <tan...@qutheory.io> wrote: > > I don't understand the part about warning suppression. The warning would go > away when you add the default case. > > Sent from my iPhone > >> On Feb 7, 2017, at 16:25, Rien <r...@balancingrock.nl> wrote: >> >> -1 >> >> Reason 1: the “negative” behaviour you describe is actually exactly what I >> want to happen. >> Reason 2: Introducing a warning would also necessitate a warning suppression >> in order to have your code compile without warnings. But when you suppress, >> the purpose of the warning is nul and void. >> >> PS: I would suggest not to use an enum in cases where this is really >> annoying and replace the enums with constants. >> >> Regards, >> Rien >> >> Site: http://balancingrock.nl >> Blog: http://swiftrien.blogspot.com >> Github: http://github.com/Balancingrock >> Project: http://swiftfire.nl >> >> >> >> >> >>> On 07 Feb 2017, at 16:12, Tanner Nelson via swift-evolution >>> <swift-evolution@swift.org> wrote: >>> >>> Hello Swift Evolution, >>> >>> I'd like to propose that a warning be emitted when default cases are >>> omitted for enums from other modules. >>> >>> What this would look like: >>> >>> OtherModule: >>> ``` >>> public enum SomeEnum { >>> case one >>> case two >>> } >>> >>> public let global: SomeEnum = .one >>> ``` >>> >>> executable: >>> ``` >>> import OtherModule >>> >>> switch OtherModule.global { >>> case .one: break >>> case .two: break >>> ^~~~~ ⚠︎ Warning: Default case recommended for imported enums. Fix-it: >>> Add `default: break` >>> } >>> ``` >>> >>> Why: >>> >>> Allowing the omission of a default case in an exhaustive switch makes the >>> addition of a new case to the enum a breaking change. >>> In other words, if you're exhaustively switching on an enum from an >>> imported library, the imported library can break your code by adding a new >>> case to that enum (which the library authors may erroneously view as an >>> additive/minor-bump change). >>> >>> Background: >>> >>> As a maintainer of a Swift framework, public enums have been a pain point >>> in maintaining semver. They've made it difficult to implement additive >>> features and have necessitated the avoidance of enums in our future public >>> API plans. >>> >>> Related Twitter thread: >>> https://twitter.com/tanner0101/status/796860273760104454 >>> >>> Looking forward to hearing your thoughts. >>> >>> Best, >>> Tanner >>> >>> Tanner Nelson >>> Vapor >>> +1 (435) 773-2831 >>> >>> >>> >>> >>> >>> >>> >>> _______________________________________________ >>> swift-evolution mailing list >>> swift-evolution@swift.org >>> https://lists.swift.org/mailman/listinfo/swift-evolution >> _______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution