Adds a build against a Swift 5 development snapshot to Travis, and resolves Swift 5 compilation warnings.
The compiler now emits a warning if a redundant access control modifier is applied to a member of an extension. This comes about if you declare an explicit access control modifier on the extension itself (ie. public extension Foo) and also on members (public var Bar).
There are two choices: keep the default access modifier on the extension (and remove public from all members of the extension), or remove the default access modifier and ensure all members that should be public are marked as such.
I've chosen the latter, as I think it makes it more clear as to what forms part of our public API: things that are public are still marked as such.
Description
Adds a build against a Swift 5 development snapshot to Travis, and resolves Swift 5 compilation warnings.
The compiler now emits a warning if a redundant access control modifier is applied to a member of an extension. This comes about if you declare an explicit access control modifier on the extension itself (ie.
public extension Foo
) and also on members (public var Bar
).There are two choices: keep the default access modifier on the extension (and remove
public
from all members of the extension), or remove the default access modifier and ensure all members that should bepublic
are marked as such.I've chosen the latter, as I think it makes it more clear as to what forms part of our public API: things that are public are still marked as such.
(note: my understanding is that removing the
public
from the extension only affects the default visibility of its members. Public members of the extension remain public. See: https://docs.swift.org/swift-book/LanguageGuide/AccessControl.html#ID25)Motivation and Context
How Has This Been Tested?
Checklist: