Implement SE-0117.

One minor revision: this lifts the proposed restriction against
overriding a non-open method with an open one.  On reflection,
that was inconsistent with the existing rule permitting non-public
methods to be overridden with public ones.  The restriction on
subclassing a non-open class with an open class remains, and is
in fact consistent with the existing access rule.
This commit is contained in:
John McCall
2016-07-29 14:49:04 -07:00
parent 328866ace9
commit afdda3d107
67 changed files with 1234 additions and 903 deletions

View File

@@ -956,6 +956,7 @@ void SwiftEditorDocument::Implementation::buildSwiftInv(
namespace {
static UIdent getAccessibilityUID(Accessibility Access) {
static UIdent AccessOpen("source.lang.swift.accessibility.open");
static UIdent AccessPublic("source.lang.swift.accessibility.public");
static UIdent AccessInternal("source.lang.swift.accessibility.internal");
static UIdent AccessFilePrivate("source.lang.swift.accessibility.fileprivate");
@@ -970,6 +971,8 @@ static UIdent getAccessibilityUID(Accessibility Access) {
return AccessInternal;
case Accessibility::Public:
return AccessPublic;
case Accessibility::Open:
return AccessOpen;
}
}