diff --git a/benchmark/single-source/SetTests.swift b/benchmark/single-source/SetTests.swift index 923103b37e342..5f6deff5ffdd6 100644 --- a/benchmark/single-source/SetTests.swift +++ b/benchmark/single-source/SetTests.swift @@ -13,7 +13,7 @@ import TestsUtils @inline(never) -public func run_SetIsSubsetOf(N: Int) { +public func run_SetIsSubset(of N: Int) { let size = 200 SRand() @@ -28,7 +28,7 @@ public func run_SetIsSubsetOf(N: Int) { var isSubset = false; for _ in 0 ..< N * 5000 { - isSubset = set.isSubsetOf(otherSet) + isSubset = set.isSubset(of: otherSet) if isSubset { break } @@ -57,7 +57,7 @@ public func run_SetExclusiveOr(N: Int) { var xor = Set() for _ in 0 ..< N * 100 { - xor = set.exclusiveOr(otherSet) + xor = set.symmetricDifference(otherSet) } sink(&xor) } @@ -99,7 +99,7 @@ public func run_SetIntersect(N: Int) { var and = Set() for _ in 0 ..< N * 100 { - and = set.intersect(otherSet) + and = set.intersection(otherSet) } sink(&and) } @@ -139,7 +139,7 @@ public func run_SetIsSubsetOf_OfObjects(N: Int) { var isSubset = false; for _ in 0 ..< N * 5000 { - isSubset = set.isSubsetOf(otherSet) + isSubset = set.isSubset(of: otherSet) if isSubset { break } @@ -168,7 +168,7 @@ public func run_SetExclusiveOr_OfObjects(N: Int) { var xor = Set>() for _ in 0 ..< N * 100 { - xor = set.exclusiveOr(otherSet) + xor = set.symmetricDifference(otherSet) } sink(&xor) } @@ -210,7 +210,7 @@ public func run_SetIntersect_OfObjects(N: Int) { var and = Set>() for _ in 0 ..< N * 100 { - and = set.intersect(otherSet) + and = set.intersection(otherSet) } sink(&and) } diff --git a/stdlib/internal/SwiftExperimental/SwiftExperimental.swift b/stdlib/internal/SwiftExperimental/SwiftExperimental.swift index 62f3c99bf1869..9bc4ac4229622 100644 --- a/stdlib/internal/SwiftExperimental/SwiftExperimental.swift +++ b/stdlib/internal/SwiftExperimental/SwiftExperimental.swift @@ -66,14 +66,14 @@ infix operator ⊉ { associativity left precedence 130 } public func ∖ < T, S: Sequence where S.Iterator.Element == T >(lhs: Set, rhs: S) -> Set { - return lhs.subtract(rhs) + return lhs.subtracting(rhs) } /// Assigns the relative complement between `lhs` and `rhs` to `lhs`. public func ∖= < T, S: Sequence where S.Iterator.Element == T >(lhs: inout Set, rhs: S) { - lhs.subtractInPlace(rhs) + lhs.subtract(rhs) } /// - Returns: The union of `lhs` and `rhs`. @@ -87,35 +87,35 @@ public func ∪ < public func ∪= < T, S: Sequence where S.Iterator.Element == T >(lhs: inout Set, rhs: S) { - lhs.unionInPlace(rhs) + lhs.formUnion(rhs) } /// - Returns: The intersection of `lhs` and `rhs`. public func ∩ < T, S: Sequence where S.Iterator.Element == T >(lhs: Set, rhs: S) -> Set { - return lhs.intersect(rhs) + return lhs.intersection(rhs) } /// Assigns the intersection of `lhs` and `rhs` to `lhs`. public func ∩= < T, S: Sequence where S.Iterator.Element == T >(lhs: inout Set, rhs: S) { - lhs.intersectInPlace(rhs) + lhs.formIntersection(rhs) } /// - Returns: A set with elements in `lhs` or `rhs` but not in both. public func ⨁ < T, S: Sequence where S.Iterator.Element == T >(lhs: Set, rhs: S) -> Set { - return lhs.exclusiveOr(rhs) + return lhs.symmetricDifference(rhs) } /// Assigns to `lhs` the set with elements in `lhs` or `rhs` but not in both. public func ⨁= < T, S: Sequence where S.Iterator.Element == T >(lhs: inout Set, rhs: S) { - lhs.exclusiveOrInPlace(rhs) + lhs.formSymmetricDifference(rhs) } /// - Returns: True if `x` is in the set. @@ -132,54 +132,54 @@ public func ∉ (x: T, rhs: Set) -> Bool { public func ⊂ < T, S: Sequence where S.Iterator.Element == T >(lhs: Set, rhs: S) -> Bool { - return lhs.isStrictSubsetOf(rhs) + return lhs.isStrictSubset(of: rhs) } /// - Returns: True if `lhs` is not a strict subset of `rhs`. public func ⊄ < T, S: Sequence where S.Iterator.Element == T >(lhs: Set, rhs: S) -> Bool { - return !lhs.isStrictSubsetOf(rhs) + return !lhs.isStrictSubset(of: rhs) } /// - Returns: True if `lhs` is a subset of `rhs`. public func ⊆ < T, S: Sequence where S.Iterator.Element == T >(lhs: Set, rhs: S) -> Bool { - return lhs.isSubsetOf(rhs) + return lhs.isSubset(of: rhs) } /// - Returns: True if `lhs` is not a subset of `rhs`. public func ⊈ < T, S: Sequence where S.Iterator.Element == T >(lhs: Set, rhs: S) -> Bool { - return !lhs.isSubsetOf(rhs) + return !lhs.isSubset(of: rhs) } /// - Returns: True if `lhs` is a strict superset of `rhs`. public func ⊃ < T, S: Sequence where S.Iterator.Element == T >(lhs: Set, rhs: S) -> Bool { - return lhs.isStrictSupersetOf(rhs) + return lhs.isStrictSuperset(of: rhs) } /// - Returns: True if `lhs` is not a strict superset of `rhs`. public func ⊅ < T, S: Sequence where S.Iterator.Element == T >(lhs: Set, rhs: S) -> Bool { - return !lhs.isStrictSupersetOf(rhs) + return !lhs.isStrictSuperset(of: rhs) } /// - Returns: True if `lhs` is a superset of `rhs`. public func ⊇ < T, S: Sequence where S.Iterator.Element == T >(lhs: Set, rhs: S) -> Bool { - return lhs.isSupersetOf(rhs) + return lhs.isSuperset(of: rhs) } /// - Returns: True if `lhs` is not a superset of `rhs`. public func ⊉ < T, S: Sequence where S.Iterator.Element == T >(lhs: Set, rhs: S) -> Bool { - return !lhs.isSupersetOf(rhs) + return !lhs.isSuperset(of: rhs) } diff --git a/stdlib/public/SDK/CoreGraphics/CoreGraphics.swift b/stdlib/public/SDK/CoreGraphics/CoreGraphics.swift index 44400793c55d2..a0f20365ca44f 100644 --- a/stdlib/public/SDK/CoreGraphics/CoreGraphics.swift +++ b/stdlib/public/SDK/CoreGraphics/CoreGraphics.swift @@ -245,25 +245,25 @@ public extension CGRect { } @_transparent // @fragile - @warn_unused_result(mutable_variant: "unionInPlace") + @warn_unused_result(mutable_variant: "formUnion") func union(rect: CGRect) -> CGRect { return CGRectUnion(self, rect) } @_transparent // @fragile - mutating func unionInPlace(rect: CGRect) { + mutating func formUnion(rect: CGRect) { self = union(rect) } @_transparent // @fragile - @warn_unused_result(mutable_variant: "intersectInPlace") - func intersect(rect: CGRect) -> CGRect { + @warn_unused_result(mutable_variant: "formIntersection") + func intersection(rect: CGRect) -> CGRect { return CGRectIntersection(self, rect) } @_transparent // @fragile - mutating func intersectInPlace(rect: CGRect) { - self = intersect(rect) + mutating func formIntersection(rect: CGRect) { + self = intersection(rect) } @_transparent // @fragile diff --git a/stdlib/public/SDK/CoreMedia/CMTime.swift b/stdlib/public/SDK/CoreMedia/CMTime.swift index 99ab104703ee7..9c95f3c96514c 100644 --- a/stdlib/public/SDK/CoreMedia/CMTime.swift +++ b/stdlib/public/SDK/CoreMedia/CMTime.swift @@ -53,7 +53,7 @@ extension CMTime { public var isNumeric: Bool { return - self.flags.intersect([.valid, .impliedValueFlagsMask]) == .valid + self.flags.intersection([.valid, .impliedValueFlagsMask]) == .valid } public var hasBeenRounded: Bool { diff --git a/stdlib/public/core/HashedCollections.swift.gyb b/stdlib/public/core/HashedCollections.swift.gyb index e7bb295bb667a..0a34e3bb85cb2 100644 --- a/stdlib/public/core/HashedCollections.swift.gyb +++ b/stdlib/public/core/HashedCollections.swift.gyb @@ -368,12 +368,36 @@ public struct Set : return _variantStorage.index(forKey: member) } - // APINAMING: say what happens when the element is already there. - /// Insert a new member into the set. - public mutating func insert(newMember: Element) { + /// If `newMember`` is not already contained in `self`, inserts it. + /// + /// - Returns: `(true, newMember)` if `e` was not contained in `self`. + /// Otherwise, returns `(false, oldMember)`, where `oldMember` is the + /// member of `self` equal to `newMember` (which may be distinguishable + /// from `newMember`, e.g. via `===`). + /// + /// - Postcondition: `self.contains(newMember)`. + public mutating func insert( + newMember: Element + ) -> (inserted: Bool, memberAfterInsert: Element) { + // FIXME: optimize this to do just one lookup + if let i = index(of: newMember) { + return (inserted: false, memberAfterInsert: self[i]) + } _variantStorage.updateValue(newMember, forKey: newMember) + return (inserted: true, memberAfterInsert: newMember) } + /// Inserts `newMember` unconditionally. + /// + /// - Returns: the former member of `self` equal to `newMember` + /// (which may be distinguishable from `newMember`, e.g. via + /// `===`), or `nil` if no such element existed. + /// + /// - Postcondition: `self.contains(newMember)` + public mutating func update(with newMember: Element) -> Element? { + return _variantStorage.updateValue(newMember, forKey: newMember) + } + /// Remove the member from the set and return it if it was present. public mutating func remove(member: Element) -> Element? { return _variantStorage.removeValue(forKey: member) @@ -469,54 +493,54 @@ public struct Set : /// Returns `true` iff `possibleSuperset` contains every member of `self`. @warn_unused_result - public func isSubsetOf< + public func isSubset< S : Sequence where S.Iterator.Element == Element - >(possibleSuperset: S) -> Bool { + >(of possibleSuperset: S) -> Bool { // FIXME(performance): isEmpty fast path, here and elsewhere. let other = Set(possibleSuperset) - return isSubsetOf(other) + return isSubset(of: other) } /// Returns `true` iff `possibleStrictSuperset` contains every member /// of `self`, and at least one other element. @warn_unused_result - public func isStrictSubsetOf< + public func isStrictSubset< S : Sequence where S.Iterator.Element == Element - >(possibleStrictSuperset: S) -> Bool { + >(of possibleStrictSuperset: S) -> Bool { // FIXME: code duplication. let other = Set(possibleStrictSuperset) - return isStrictSubsetOf(other) + return isStrictSubset(of: other) } /// Returns `true` iff `self` contains every element of `possibleSubset`. @warn_unused_result - public func isSupersetOf< + public func isSuperset< S : Sequence where S.Iterator.Element == Element - >(possibleSubset: S) -> Bool { + >(of possibleSubset: S) -> Bool { // FIXME(performance): Don't build a set; just ask if every element is in // `self`. let other = Set(possibleSubset) - return other.isSubsetOf(self) + return other.isSubset(of: self) } /// Returns `true` iff `self` contains every element of /// `possibleStrictSubset`, and at least one other element. @warn_unused_result - public func isStrictSupersetOf< + public func isStrictSuperset< S : Sequence where S.Iterator.Element == Element - >(possibleStrictSubset: S) -> Bool { + >(of possibleStrictSubset: S) -> Bool { let other = Set(possibleStrictSubset) - return other.isStrictSubsetOf(self) + return other.isStrictSubset(of: self) } /// Returns `true` iff no element of `other` is a member of `self`. @warn_unused_result - public func isDisjointWith< + public func isDisjoint< S : Sequence where S.Iterator.Element == Element - >(other: S) -> Bool { + >(with other: S) -> Bool { // FIXME(performance): Don't need to build a set. let otherSet = Set(other) - return isDisjointWith(otherSet) + return isDisjoint(with: otherSet) } // APINAMING: should we say which one wins if an element appears twice? @@ -527,12 +551,12 @@ public struct Set : S : Sequence where S.Iterator.Element == Element >(other: S) -> Set { var newSet = self - newSet.unionInPlace(other) + newSet.formUnion(other) return newSet } /// Inserts the elements of `other` into `self`. - public mutating func unionInPlace< + public mutating func formUnion< S : Sequence where S.Iterator.Element == Element >(other: S) { for item in other { @@ -542,28 +566,28 @@ public struct Set : /// Returns the members of `self` not contained in `other`. @warn_unused_result - public func subtract< + public func subtracting< S : Sequence where S.Iterator.Element == Element >(other: S) -> Set { - return _subtract(other) + return self._subtracting(other) } - internal func _subtract< + internal func _subtracting< S : Sequence where S.Iterator.Element == Element >(other: S) -> Set { var newSet = self - newSet.subtractInPlace(other) + newSet.subtract(other) return newSet } /// Removes the elements of `other` from `self`. - public mutating func subtractInPlace< + public mutating func subtract< S : Sequence where S.Iterator.Element == Element >(other: S) { - _subtractInPlace(other) + _subtract(other) } - internal mutating func _subtractInPlace< + internal mutating func _subtract< S : Sequence where S.Iterator.Element == Element >(other: S) { for item in other { @@ -573,15 +597,15 @@ public struct Set : /// Returns the members of `self` contained in `other`. @warn_unused_result - public func intersect< + public func intersection< S : Sequence where S.Iterator.Element == Element >(other: S) -> Set { let otherSet = Set(other) - return intersect(otherSet) + return intersection(otherSet) } /// Removes any members not contained in `other`. - public mutating func intersectInPlace< + public mutating func formIntersection< S : Sequence where S.Iterator.Element == Element >(other: S) { // Because `intersect` needs to both modify and iterate over @@ -590,7 +614,7 @@ public struct Set : // // FIXME(performance): perform this operation at a lower level // to avoid invalidating the index and avoiding a copy. - let result = self.intersect(other) + let result = self.intersection(other) // The result can only have fewer or the same number of elements. // If no elements were removed, don't perform a reassignment @@ -602,21 +626,21 @@ public struct Set : /// Returns the elements contained in `self` or `other`, but not both. @warn_unused_result - public func exclusiveOr< + public func symmetricDifference< S : Sequence where S.Iterator.Element == Element >(other: S) -> Set { var newSet = self - newSet.exclusiveOrInPlace(other) + newSet.formSymmetricDifference(other) return newSet } /// Replace `self` with the elements contained in `self` or `other`, /// but not both. - public mutating func exclusiveOrInPlace< + public mutating func formSymmetricDifference< S : Sequence where S.Iterator.Element == Element >(other: S) { let otherSet = Set(other) - exclusiveOrInPlace(otherSet) + formSymmetricDifference(otherSet) } public var hashValue: Int { @@ -4145,27 +4169,27 @@ extension ${Self} { extension Set { /// Removes all elements of `other` from `self`. /// - /// - Equivalent to replacing `self` with `self.subtract(other)`. - public mutating func subtractInPlace(other: Set) { - _subtractInPlace(other) + /// - Equivalent to replacing `self` with `self.subtracting(other)`. + public mutating func subtract(other: Set) { + _subtract(other) } /// Returns true iff every element of `self` is contained in `other`. @warn_unused_result - public func isSubsetOf(other: Set) -> Bool { + public func isSubset(of other: Set) -> Bool { let (isSubset, isEqual) = _compareSets(self, other) return isSubset || isEqual } /// Returns true iff every element of `other` is contained in `self`. @warn_unused_result - public func isSupersetOf(other: Set) -> Bool { - return other.isSubsetOf(self) + public func isSuperset(of other: Set) -> Bool { + return other.isSubset(of: self) } - /// Returns true iff `self.intersect(other).isEmpty`. + /// Returns true iff `self.intersection(other).isEmpty`. @warn_unused_result - public func isDisjointWith(other: Set) -> Bool { + public func isDisjoint(with other: Set) -> Bool { for member in self { if other.contains(member) { return false @@ -4176,27 +4200,27 @@ extension Set { /// Returns the set of elements contained in `self` but not in `other`. @warn_unused_result - public func subtract(other: Set) -> Set { - return _subtract(other) + public func subtracting(other: Set) -> Set { + return self._subtracting(other) } /// Returns true iff every element of `other` is contained in `self` /// and `self` contains an element that is not contained in `other`. @warn_unused_result - public func isStrictSupersetOf(other: Set) -> Bool { - return self.isSupersetOf(other) && self != other + public func isStrictSuperset(of other: Set) -> Bool { + return self.isSuperset(of: other) && self != other } /// Return true iff every element of `self` is contained in `other` /// and `other` contains an element that is not contained in `self`. @warn_unused_result - public func isStrictSubsetOf(other: Set) -> Bool { - return other.isStrictSupersetOf(self) + public func isStrictSubset(of other: Set) -> Bool { + return other.isStrictSuperset(of: self) } /// Return the members of `self` contained in `other`. @warn_unused_result - public func intersect(other: Set) -> Set { + public func intersection(other: Set) -> Set { var newSet = Set() for member in self { if other.contains(member) { @@ -4208,7 +4232,7 @@ extension Set { /// Replace `self` with the elements contained in `self` or `other`, /// but not both. - public mutating func exclusiveOrInPlace(other: Set) { + public mutating func formSymmetricDifference(other: Set) { for member in other { if contains(member) { remove(member) diff --git a/stdlib/public/core/OptionSet.swift b/stdlib/public/core/OptionSet.swift index 712e8e0149f4d..87436df5e20be 100644 --- a/stdlib/public/core/OptionSet.swift +++ b/stdlib/public/core/OptionSet.swift @@ -26,8 +26,11 @@ /// } /// /// In the example above, `PackagingOptions.Element` is the same type -/// as `PackagingOptions`, and instance `a` subsumes instance `b` if -/// and only if `a.rawValue & b.rawValue == b.rawValue`. +/// as `PackagingOptions`, and `Elements` whose `rawValue`s have bits +/// in common have a non-empty intersection when treated as sets. For +/// example, +/// +/// PackagingOptions.boxOrBag.intersection(.bag).rawValue // 4 public protocol OptionSet : SetAlgebra, RawRepresentable { // We can't constrain the associated Element type to be the same as // Self, but we can do almost as well with a default and a @@ -60,24 +63,24 @@ extension OptionSet { @warn_unused_result public func union(other: Self) -> Self { var r: Self = Self(rawValue: self.rawValue) - r.unionInPlace(other) + r.formUnion(other) return r } /// Returns the set of elements contained in both `self` and `other`. @warn_unused_result - public func intersect(other: Self) -> Self { + public func intersection(other: Self) -> Self { var r = Self(rawValue: self.rawValue) - r.intersectInPlace(other) + r.formIntersection(other) return r } /// Returns the set of elements contained in `self` or in `other`, /// but not in both `self` and `other`. @warn_unused_result - public func exclusiveOr(other: Self) -> Self { + public func symmetricDifference(other: Self) -> Self { var r = Self(rawValue: self.rawValue) - r.exclusiveOrInPlace(other) + r.formSymmetricDifference(other) return r } } @@ -91,39 +94,67 @@ extension OptionSet { extension OptionSet where Element == Self { /// Returns `true` if `self` contains `member`. /// - /// - Equivalent to `self.intersect([member]) == [member]` + /// - Equivalent to `self.intersection([member]) == [member]` @warn_unused_result public func contains(member: Self) -> Bool { - return self.isSupersetOf(member) + return self.isSuperset(of: member) } - /// If `member` is not already contained in `self`, insert it. + /// If `newMember` is not already contained in `self`, inserts it. + /// + /// - Returns: `(true, newMember)` if `e` was not contained in `self`. + /// Otherwise, returns `(false, oldMember)`, where `oldMember` is the + /// member of `self` equal to `newMember`. /// - /// - Equivalent to `self.unionInPlace([member])` - /// - Postcondition: `self.contains(member)` - public mutating func insert(member: Element) { - self.unionInPlace(member) + /// - Postcondition: `self.contains(newMember)`. + public mutating func insert( + newMember: Element + ) -> (inserted: Bool, memberAfterInsert: Element) { + let oldMember = self.intersection(newMember) + let shouldInsert = oldMember != newMember + let result = ( + inserted: shouldInsert, + memberAfterInsert: shouldInsert ? newMember : oldMember) + if shouldInsert { + self.formUnion(newMember) + } + return result } /// If `member` is contained in `self`, remove and return it. /// Otherwise, return `nil`. /// - /// - Postcondition: `self.intersect([member]).isEmpty` + /// - Postcondition: `self.intersection([member]).isEmpty` public mutating func remove(member: Element) -> Element? { - let r = isSupersetOf(member) ? Optional(member) : nil - self.subtractInPlace(member) + let r = isSuperset(of: member) ? Optional(member) : nil + self.subtract(member) return r } + + /// Inserts `e` unconditionally. + /// + /// - Returns: a former member `r` of `self` such that + /// `self.intersection([e]) == [r]` if `self.intersection([e])` was + /// non-empty. Returns `nil` otherwise. + /// + /// - Postcondition: `self.contains(e)` + public mutating func update(with e: Element) -> Element? { + let r = self.intersection(e) + self.formUnion(e) + return r.isEmpty ? nil : r + } } /// `OptionSet` requirements for which default implementations are /// supplied when `RawValue` conforms to `BitwiseOperations`, /// which is the usual case. Each distinct bit of an option set's -/// `.rawValue` corresponds to a disjoint element of the option set. +/// `.rawValue` corresponds to a disjoint value of the `OptionSet`. /// /// - `union` is implemented as a bitwise "or" (`|`) of `rawValue`s -/// - `intersection` is implemented as a bitwise "and" (`|`) of `rawValue`s -/// - `exclusiveOr` is implemented as a bitwise "exclusive or" (`^`) of `rawValue`s +/// - `intersection` is implemented as a bitwise "and" (`&`) of +/// `rawValue`s +/// - `symmetricDifference` is implemented as a bitwise "exclusive or" +/// (`^`) of `rawValue`s /// /// - Note: A type conforming to `OptionSet` can implement any of /// these initializers or methods, and those implementations will be @@ -139,25 +170,25 @@ extension OptionSet where RawValue : BitwiseOperations { /// Insert all elements of `other` into `self`. /// /// - Equivalent to replacing `self` with `self.union(other)`. - /// - Postcondition: `self.isSupersetOf(other)` - public mutating func unionInPlace(other: Self) { + /// - Postcondition: `self.isSuperset(of: other)` + public mutating func formUnion(other: Self) { self = Self(rawValue: self.rawValue | other.rawValue) } /// Remove all elements of `self` that are not also present in /// `other`. /// - /// - Equivalent to replacing `self` with `self.intersect(other)` - /// - Postcondition: `self.isSubsetOf(other)` - public mutating func intersectInPlace(other: Self) { + /// - Equivalent to replacing `self` with `self.intersection(other)` + /// - Postcondition: `self.isSubset(of: other)` + public mutating func formIntersection(other: Self) { self = Self(rawValue: self.rawValue & other.rawValue) } /// Replace `self` with a set containing all elements contained in /// either `self` or `other`, but not both. /// - /// - Equivalent to replacing `self` with `self.exclusiveOr(other)` - public mutating func exclusiveOrInPlace(other: Self) { + /// - Equivalent to replacing `self` with `self.symmetricDifference(other)` + public mutating func formSymmetricDifference(other: Self) { self = Self(rawValue: self.rawValue ^ other.rawValue) } } diff --git a/stdlib/public/core/SetAlgebra.swift b/stdlib/public/core/SetAlgebra.swift index aa0d37ae5c4ae..fd1e325f6e713 100644 --- a/stdlib/public/core/SetAlgebra.swift +++ b/stdlib/public/core/SetAlgebra.swift @@ -14,38 +14,17 @@ // //===----------------------------------------------------------------------===// -/// A generalized set whose distinct elements are not necessarily -/// disjoint. +/// A mutable set of a given `Element` type. /// -/// In a model of `SetAlgebra`, some elements may subsume other -/// elements, where +/// - Note: Unlike ordinary set types, the `Element` type of an +/// `OptionSet` is identical to the `OptionSet` type itself. This +/// protocol is specifically designed to accomodate both kinds of +/// set. /// -/// > `a` **subsumes** `b` iff `([a] as Self).isSupersetOf([b])` -/// -/// In many models of `SetAlgebra` such as `Set`, `a` -/// *subsumes* `b` if and only if `a == b`, but that is not always the -/// case. For example, option sets typically do not satisfy that -/// property. -/// -/// Two elements are **disjoint** when neither one *subsumes* the other. -/// -/// - SeeAlso: `OptionSet`. -/// -/// - Axioms, where `S` conforms to `SetAlgebra`, `x` and `y` are -/// of type `S`, and `e` is of type `S.Element`: -/// -/// - `S() == []` -/// - `x.intersect(x) == x` -/// - `x.intersect([]) == []` -/// - `x.union(x) == x` -/// - `x.union([]) == x` -/// - `x.contains(e)` implies `x.union(y).contains(e)` -/// - `x.union(y).contains(e)` implies `x.contains(e) || y.contains(e)` -/// - `x.contains(e) && y.contains(e)` iff `x.intersect(y).contains(e)` -/// - `x.isSubsetOf(y)` iff `y.isSupersetOf(x)` -/// - `x.isStrictSupersetOf(y)` iff `x.isSupersetOf(y) && x != y` -/// - `x.isStrictSubsetOf(y)` iff `x.isSubsetOf(y) && x != y` +/// - SeeAlso: `Set`, `OptionSet`. public protocol SetAlgebra : Equatable, ArrayLiteralConvertible { + // FIXME: write tests for SetAlgebra + /// A type for which `Self` provides a containment test. associatedtype Element @@ -56,72 +35,105 @@ public protocol SetAlgebra : Equatable, ArrayLiteralConvertible { /// Returns `true` if `self` contains `member`. /// - /// - Equivalent to `self.intersect([member]) == [member]` + /// - Equivalent to `self.intersection([member]) == [member]` @warn_unused_result func contains(member: Element) -> Bool /// Returns the set of elements contained in `self`, in `other`, or in /// both `self` and `other`. + /// + /// - Note: if `self` and `other` contain elements that are equal + /// but distinguishable (e.g. via `===`), which of these elements is + /// present in the result is unspecified. @warn_unused_result func union(other: Self) -> Self /// Returns the set of elements contained in both `self` and `other`. + /// + /// - Note: if `self` and `other` contain elements that are equal + /// but distinguishable (e.g. via `===`), which of these elements is + /// present in the result is unspecified. @warn_unused_result - func intersect(other: Self) -> Self + func intersection(other: Self) -> Self /// Returns the set of elements contained in `self` or in `other`, /// but not in both `self` and `other`. @warn_unused_result - func exclusiveOr(other: Self) -> Self + func symmetricDifference(other: Self) -> Self - /// If `member` is not already contained in `self`, inserts it. + /// If `newMember` is not already contained in `self`, inserts it. /// - /// - Equivalent to `self.unionInPlace([member])` - /// - Postcondition: `self.contains(member)` - mutating func insert(member: Element) + /// - Returns: `(true, newMember)` if `e` was not contained in `self`. + /// Otherwise, returns `(false, oldMember)`, where `oldMember` is the + /// member of `self` equal to `newMember` (which may be distinguishable + /// from `newMember`, e.g. via `===`). + /// + /// - Postcondition: `self.contains(newMember)`. + mutating func insert( + newMember: Element + ) -> (inserted: Bool, memberAfterInsert: Element) - /// If `member` is contained in `self`, removes and returns it. - /// Otherwise, removes all elements subsumed by `member` and returns - /// `nil`. + /// If `self` intersects `[e]`, removes and returns an element `r` + /// such that `self.intersection([e]) == [r]`; returns `nil` + /// otherwise. + /// + /// - Note: for ordinary sets where `Self` is not the same type as + /// `Element`, `s.remove(e)` removes and returns an element equal + /// to `e` (which may be distinguishable from `e`, e.g. via + /// `===`), or returns `nil` if no such element existed. /// - /// - Postcondition: `self.intersect([member]).isEmpty` - mutating func remove(member: Element) -> Element? + /// - Postcondition: `self.intersection([e]).isEmpty` + mutating func remove(e: Element) -> Element? + /// Inserts `e` unconditionally. + /// + /// - Returns: a former member `r` of `self` such that + /// `self.intersection([e]) == [r]` if `self.intersection([e])` was + /// non-empty. Returns `nil` otherwise. + /// + /// - Note: for ordinary sets where `Self` is not the same type as + /// `Element`, `s.update(with: e)` returns an element equal + /// to `e` (which may be distinguishable from `e`, e.g. via + /// `===`), or returns `nil` if no such element existed. + /// + /// - Postcondition: `self.contains(e)` + mutating func update(with e: Element) -> Element? + /// Insert all elements of `other` into `self`. /// /// - Equivalent to replacing `self` with `self.union(other)`. - /// - Postcondition: `self.isSupersetOf(other)` - mutating func unionInPlace(other: Self) + /// - Postcondition: `self.isSuperset(of: other)` + mutating func formUnion(other: Self) /// Removes all elements of `self` that are not also present in /// `other`. /// - /// - Equivalent to replacing `self` with `self.intersect(other)` - /// - Postcondition: `self.isSubsetOf(other)` - mutating func intersectInPlace(other: Self) + /// - Equivalent to replacing `self` with `self.intersection(other)` + /// - Postcondition: `self.isSubset(of: other)` + mutating func formIntersection(other: Self) /// Replaces `self` with a set containing all elements contained in /// either `self` or `other`, but not both. /// - /// - Equivalent to replacing `self` with `self.exclusiveOr(other)` - mutating func exclusiveOrInPlace(other: Self) + /// - Equivalent to replacing `self` with `self.symmetricDifference(other)` + mutating func formSymmetricDifference(other: Self) //===--- Requirements with default implementations ----------------------===// /// Returns the set of elements contained in `self` but not in `other`. @warn_unused_result - func subtract(other: Self) -> Self + func subtracting(other: Self) -> Self /// Returns `true` iff every element of `self` is contained in `other`. @warn_unused_result - func isSubsetOf(other: Self) -> Bool + func isSubset(of other: Self) -> Bool - /// Returns `true` iff `self.intersect(other).isEmpty`. + /// Returns `true` iff `self.intersection(other).isEmpty`. @warn_unused_result - func isDisjointWith(other: Self) -> Bool + func isDisjoint(with other: Self) -> Bool /// Returns `true` iff every element of `other` is contained in `self`. @warn_unused_result - func isSupersetOf(other: Self) -> Bool + func isSuperset(of other: Self) -> Bool /// Returns `true` iff `self.contains(e)` is `false` for all `e`. var isEmpty: Bool { get } @@ -131,22 +143,8 @@ public protocol SetAlgebra : Equatable, ArrayLiteralConvertible { /// Removes all elements of `other` from `self`. /// - /// - Equivalent to replacing `self` with `self.subtract(other)`. - mutating func subtractInPlace(other: Self) - - /// Returns `true` iff `a` subsumes `b`. - /// - /// - Equivalent to `([a] as Self).isSupersetOf([b])` - @warn_unused_result - static func element(a: Element, subsumes b: Element) -> Bool - - /// Returns `true` iff `a` is disjoint with `b`. - /// - /// Two elements are disjoint when neither one subsumes the other. - /// - /// - SeeAlso: `Self.element(_, subsumes:_)` - @warn_unused_result - static func element(a: Element, isDisjointWith b: Element) -> Bool + /// - Equivalent to replacing `self` with `self.subtracting(other)`. + mutating func subtract(other: Self) } /// `SetAlgebra` requirements for which default implementations @@ -175,33 +173,33 @@ extension SetAlgebra { /// Removes all elements of `other` from `self`. /// - /// - Equivalent to replacing `self` with `self.subtract(other)`. - public mutating func subtractInPlace(other: Self) { - self.intersectInPlace(self.exclusiveOr(other)) + /// - Equivalent to replacing `self` with `self.subtracting(other)`. + public mutating func subtract(other: Self) { + self.formIntersection(self.symmetricDifference(other)) } /// Returns `true` iff every element of `self` is contained in `other`. @warn_unused_result - public func isSubsetOf(other: Self) -> Bool { - return self.intersect(other) == self + public func isSubset(of other: Self) -> Bool { + return self.intersection(other) == self } /// Returns `true` iff every element of `other` is contained in `self`. @warn_unused_result - public func isSupersetOf(other: Self) -> Bool { - return other.isSubsetOf(self) + public func isSuperset(of other: Self) -> Bool { + return other.isSubset(of: self) } - /// Returns `true` iff `self.intersect(other).isEmpty`. + /// Returns `true` iff `self.intersection(other).isEmpty`. @warn_unused_result - public func isDisjointWith(other: Self) -> Bool { - return self.intersect(other).isEmpty + public func isDisjoint(with other: Self) -> Bool { + return self.intersection(other).isEmpty } /// Returns the set of elements contained in `self` but not in `other`. @warn_unused_result - public func subtract(other: Self) -> Self { - return self.intersect(self.exclusiveOr(other)) + public func subtracting(other: Self) -> Self { + return self.intersection(self.symmetricDifference(other)) } /// Returns `true` iff `self.contains(e)` is `false` for all `e`. @@ -212,33 +210,15 @@ extension SetAlgebra { /// Returns `true` iff every element of `other` is contained in `self` /// and `self` contains an element that is not contained in `other`. @warn_unused_result - public func isStrictSupersetOf(other: Self) -> Bool { - return self.isSupersetOf(other) && self != other + public func isStrictSuperset(of other: Self) -> Bool { + return self.isSuperset(of: other) && self != other } /// Returns `true` iff every element of `self` is contained in `other` /// and `other` contains an element that is not contained in `self`. @warn_unused_result - public func isStrictSubsetOf(other: Self) -> Bool { - return other.isStrictSupersetOf(self) - } - - /// Returns `true` iff `a` subsumes `b`. - /// - /// - Equivalent to `([a] as Self).isSupersetOf([b])` - @warn_unused_result - public static func element(a: Element, subsumes b: Element) -> Bool { - return ([a] as Self).isSupersetOf([b]) - } - - /// Returns `true` iff `a` is disjoint with `b`. - /// - /// Two elements are disjoint when neither one subsumes the other. - /// - /// - SeeAlso: `Self.element(_, subsumes:_)` - @warn_unused_result - public static func element(a: Element, isDisjointWith b: Element) -> Bool { - return ([a] as Self).isDisjointWith([b]) + public func isStrictSubset(of other: Self) -> Bool { + return other.isStrictSuperset(of: self) } } diff --git a/test/1_stdlib/CGGeometry.swift b/test/1_stdlib/CGGeometry.swift index 6043bb6c5ea81..328369e13dfa1 100644 --- a/test/1_stdlib/CGGeometry.swift +++ b/test/1_stdlib/CGGeometry.swift @@ -203,27 +203,27 @@ print_(rect.union(distantRect), "union distant") // CHECK-NEXT: union small 10.0 20.0 34.5 46.5 // CHECK-NEXT: union big 1.0 2.0 101.0 102.0 // CHECK-NEXT: union distant 11.25 22.25 989.75 1978.75 -rect.unionInPlace(smallRect) -rect.unionInPlace(bigRect) -rect.unionInPlace(distantRect) -print_(rect, "unionInPlace") -// CHECK-NEXT: unionInPlace 1.0 2.0 1000.0 1999.0 +rect.formUnion(smallRect) +rect.formUnion(bigRect) +rect.formUnion(distantRect) +print_(rect, "formUnion") +// CHECK-NEXT: formUnion 1.0 2.0 1000.0 1999.0 rect = CGRect(x: 11.25, y: 22.25, width: 33.25, height: 44.25) -print_(rect.intersect(smallRect), "intersect small") -print_(rect.intersect(bigRect), "intersect big") -print_(rect.intersect(distantRect), "intersect distant") +print_(rect.intersection(smallRect), "intersect small") +print_(rect.intersection(bigRect), "intersect big") +print_(rect.intersection(distantRect), "intersect distant") // CHECK-NEXT: intersect small 11.25 22.25 3.75 2.75 // CHECK-NEXT: intersect big 11.25 22.25 33.25 44.25 // CHECK-NEXT: intersect distant inf inf 0.0 0.0 assert(rect.intersects(smallRect)) -rect.intersectInPlace(smallRect) +rect.formIntersection(smallRect) assert(!rect.isEmpty) assert(rect.intersects(bigRect)) -rect.intersectInPlace(bigRect) +rect.formIntersection(bigRect) assert(!rect.isEmpty) assert(!rect.intersects(distantRect)) -rect.intersectInPlace(distantRect) +rect.formIntersection(distantRect) assert(rect.isEmpty) diff --git a/test/1_stdlib/Inputs/DictionaryKeyValueTypes.swift b/test/1_stdlib/Inputs/DictionaryKeyValueTypes.swift index 19da0dc46dc80..35877b5d32702 100644 --- a/test/1_stdlib/Inputs/DictionaryKeyValueTypes.swift +++ b/test/1_stdlib/Inputs/DictionaryKeyValueTypes.swift @@ -30,7 +30,9 @@ var _keySerial = _stdlib_AtomicInt(0) // A wrapper class that can help us track allocations and find issues with // object lifetime. -class TestKeyTy : Equatable, Hashable, CustomStringConvertible { +final class TestKeyTy + : Equatable, Hashable, CustomStringConvertible, IntegerLiteralConvertible +{ class var objectCount: Int { get { return _keyCount.load() @@ -47,6 +49,10 @@ class TestKeyTy : Equatable, Hashable, CustomStringConvertible { self._hashValue = value } + convenience init(integerLiteral value: Int) { + self.init(value) + } + convenience init(value: Int, hashValue: Int) { self.init(value) self._hashValue = hashValue diff --git a/test/1_stdlib/OptionSetTest.swift b/test/1_stdlib/OptionSetTest.swift index 847ed6c102870..34e68b775ac82 100644 --- a/test/1_stdlib/OptionSetTest.swift +++ b/test/1_stdlib/OptionSetTest.swift @@ -48,46 +48,49 @@ tests.test("basics") { expectNotEqual(P.Box, .Carton) expectNotEqual(P.Box, .BoxOrBag) - expectEqual(.Box, P.Box.intersect(.BoxOrBag)) - expectEqual(.Bag, P.Bag.intersect(.BoxOrBag)) - expectEqual(P(), P.Bag.intersect(.Box)) - expectEqual(P(), P.Box.intersect(.Satchel)) + expectEqual(.Box, P.Box.intersection(.BoxOrBag)) + expectEqual(.Bag, P.Bag.intersection(.BoxOrBag)) + expectEqual(P(), P.Bag.intersection(.Box)) + expectEqual(P(), P.Box.intersection(.Satchel)) expectEqual(.BoxOrBag, P.Bag.union(.Box)) expectEqual(.BoxOrBag, P.Box.union(.Bag)) expectEqual(.BoxOrCartonOrBag, P.BoxOrBag.union(.Carton)) - expectEqual([.Satchel, .Box], P.SatchelOrBag.exclusiveOr(.BoxOrBag)) + expectEqual([.Satchel, .Box], P.SatchelOrBag.symmetricDifference(.BoxOrBag)) var p = P.Box - p.intersectInPlace(.BoxOrBag) + p.formIntersection(.BoxOrBag) expectEqual(.Box, p) p = .Bag - p.intersectInPlace(.BoxOrBag) + p.formIntersection(.BoxOrBag) expectEqual(.Bag, p) p = .Bag - p.intersectInPlace(.Box) + p.formIntersection(.Box) expectEqual(P(), p) p = .Box - p.intersectInPlace(.Satchel) + p.formIntersection(.Satchel) expectEqual(P(), p) p = .Bag - p.unionInPlace(.Box) + p.formUnion(.Box) expectEqual(.BoxOrBag, p) p = .Box - p.unionInPlace(.Bag) + p.formUnion(.Bag) expectEqual(.BoxOrBag, p) p = .BoxOrBag - p.unionInPlace(.Carton) + p.formUnion(.Carton) expectEqual(.BoxOrCartonOrBag, p) p = .SatchelOrBag - p.exclusiveOrInPlace(.BoxOrBag) + p.formSymmetricDifference(.BoxOrBag) expectEqual([.Satchel, .Box], p) } +// FIXME: add tests for all of SetAlgebra, in particular +// insert/remove/replace. + runAllTests() diff --git a/test/ClangModules/enum.swift b/test/ClangModules/enum.swift index 0f3c3bebfedff..2afd45408b556 100644 --- a/test/ClangModules/enum.swift +++ b/test/ClangModules/enum.swift @@ -143,10 +143,10 @@ var withQuince: NSRuncingOptions = .enableQuince var singleValue: NSSingleOptions = .value // Check OptionSet conformance. -var minceAndQuince: NSRuncingOptions = NSRuncingOptions.enableMince.intersect(NSRuncingOptions.enableQuince) +var minceAndQuince: NSRuncingOptions = NSRuncingOptions.enableMince.intersection(NSRuncingOptions.enableQuince) var minceOrQuince: NSRuncingOptions = [.enableMince, .enableQuince] -minceOrQuince.intersectInPlace(minceAndQuince) -minceOrQuince.unionInPlace(minceAndQuince) +minceOrQuince.formIntersection(minceAndQuince) +minceOrQuince.formUnion(minceAndQuince) var minceValue: UInt = minceAndQuince.rawValue var minceFromMask: NSRuncingOptions = [] diff --git a/test/Interpreter/SDK/Cocoa_enums.swift b/test/Interpreter/SDK/Cocoa_enums.swift index 1df5962a96b38..0256ad16c4984 100644 --- a/test/Interpreter/SDK/Cocoa_enums.swift +++ b/test/Interpreter/SDK/Cocoa_enums.swift @@ -8,9 +8,9 @@ import Foundation let opts: NSBinarySearchingOptions = [.firstEqual, .insertionIndex] // CHECK: true -print(opts.intersect([.lastEqual, .insertionIndex]) == .insertionIndex) +print(opts.intersection([.lastEqual, .insertionIndex]) == .insertionIndex) // CHECK: false -print(!opts.intersect(.lastEqual).isEmpty) +print(!opts.intersection(.lastEqual).isEmpty) // CHECK: {{^}}0 0{{$}} print("\(([] as NSBinarySearchingOptions).rawValue) \(NSBinarySearchingOptions(rawValue: 0).rawValue)") diff --git a/test/SourceKit/DocSupport/doc_clang_module.swift.response b/test/SourceKit/DocSupport/doc_clang_module.swift.response index 29107ccd749f1..90c988c6ce412 100644 --- a/test/SourceKit/DocSupport/doc_clang_module.swift.response +++ b/test/SourceKit/DocSupport/doc_clang_module.swift.response @@ -139,29 +139,31 @@ extension FooRuncingOptions { func union(_ other: Self) -> Self - func intersect(_ other: Self) -> Self + func intersection(_ other: Self) -> Self - func exclusiveOr(_ other: Self) -> Self + func symmetricDifference(_ other: Self) -> Self } extension FooRuncingOptions { func contains(_ member: Self) -> Bool - mutating func insert(_ member: Self) + mutating func insert(_ newMember: Self) -> (inserted: Bool, memberAfterInsert: Self) mutating func remove(_ member: Self) -> Self? + + mutating func update(with: _ e: Self) -> Self? } extension FooRuncingOptions { convenience init() - mutating func unionInPlace(_ other: Self) + mutating func formUnion(_ other: Self) - mutating func intersectInPlace(_ other: Self) + mutating func formIntersection(_ other: Self) - mutating func exclusiveOrInPlace(_ other: Self) + mutating func formSymmetricDifference(_ other: Self) } extension FooRuncingOptions { @@ -170,25 +172,21 @@ extension FooRuncingOptions { convenience init(arrayLiteral arrayLiteral: FooRuncingOptions...) - mutating func subtractInPlace(_ other: Self) + mutating func subtract(_ other: Self) - func isSubsetOf(_ other: Self) -> Bool + func isSubset(of other: Self) -> Bool - func isSupersetOf(_ other: Self) -> Bool + func isSuperset(of other: Self) -> Bool - func isDisjointWith(_ other: Self) -> Bool + func isDisjoint(with other: Self) -> Bool - func subtract(_ other: Self) -> Self + func subtracting(_ other: Self) -> Self var isEmpty: Bool { get } - func isStrictSupersetOf(_ other: Self) -> Bool - - func isStrictSubsetOf(_ other: Self) -> Bool + func isStrictSuperset(of other: Self) -> Bool - static func element(_ a: FooRuncingOptions, subsumes b: FooRuncingOptions) -> Bool - - static func element(_ a: FooRuncingOptions, isDisjointWith b: FooRuncingOptions) -> Bool + func isStrictSubset(of other: Self) -> Bool } struct FooStruct1 { @@ -2359,3381 +2357,3332 @@ var FooSubUnnamedEnumeratorA1: Int { get } { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 2789, - key.length: 9 + key.length: 12 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2799, + key.offset: 2802, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2801, + key.offset: 2804, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2801, + key.offset: 2804, key.length: 5 }, { key.kind: source.lang.swift.ref.generic_type_param, key.name: "Self", key.usr: "s:tPs9OptionSet4SelfMx", - key.offset: 2808, + key.offset: 2811, key.length: 4 }, { key.kind: source.lang.swift.ref.generic_type_param, key.name: "Self", key.usr: "s:tPs9OptionSet4SelfMx", - key.offset: 2817, + key.offset: 2820, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2827, + key.offset: 2830, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2832, - key.length: 11 + key.offset: 2835, + key.length: 19 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2844, + key.offset: 2855, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2846, + key.offset: 2857, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2846, + key.offset: 2857, key.length: 5 }, { key.kind: source.lang.swift.ref.generic_type_param, key.name: "Self", key.usr: "s:tPs9OptionSet4SelfMx", - key.offset: 2853, + key.offset: 2864, key.length: 4 }, { key.kind: source.lang.swift.ref.generic_type_param, key.name: "Self", key.usr: "s:tPs9OptionSet4SelfMx", - key.offset: 2862, + key.offset: 2873, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2870, + key.offset: 2881, key.length: 9 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2880, + key.offset: 2891, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2905, + key.offset: 2916, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2910, + key.offset: 2921, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2919, + key.offset: 2930, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2921, + key.offset: 2932, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2921, + key.offset: 2932, key.length: 6 }, { key.kind: source.lang.swift.ref.generic_type_param, key.name: "Self", key.usr: "s:tPs9OptionSet4SelfMx", - key.offset: 2929, + key.offset: 2940, key.length: 4 }, { key.kind: source.lang.swift.ref.struct, key.name: "Bool", key.usr: "s:Sb", - key.offset: 2938, + key.offset: 2949, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2948, + key.offset: 2959, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2957, + key.offset: 2968, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2962, + key.offset: 2973, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2969, + key.offset: 2980, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2971, - key.length: 6 + key.offset: 2982, + key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2971, - key.length: 6 + key.offset: 2982, + key.length: 9 }, { key.kind: source.lang.swift.ref.generic_type_param, key.name: "Self", key.usr: "s:tPs9OptionSet4SelfMx", - key.offset: 2979, + key.offset: 2993, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 3003, + key.length: 8 + }, + { + key.kind: source.lang.swift.ref.struct, + key.name: "Bool", + key.usr: "s:Sb", + key.offset: 3013, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 3019, + key.length: 17 + }, + { + key.kind: source.lang.swift.ref.generic_type_param, + key.name: "Self", + key.usr: "s:tPs9OptionSet4SelfMx", + key.offset: 3038, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2990, + key.offset: 3049, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2999, + key.offset: 3058, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3004, + key.offset: 3063, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3011, + key.offset: 3070, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3013, + key.offset: 3072, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3013, + key.offset: 3072, key.length: 6 }, { key.kind: source.lang.swift.ref.generic_type_param, key.name: "Self", key.usr: "s:tPs9OptionSet4SelfMx", - key.offset: 3021, + key.offset: 3080, key.length: 4 }, { key.kind: source.lang.swift.ref.generic_type_param, key.name: "Self", key.usr: "s:tPs9OptionSet4SelfMx", - key.offset: 3030, + key.offset: 3089, key.length: 4 }, + { + key.kind: source.lang.swift.syntaxtype.attribute.builtin, + key.offset: 3100, + key.length: 8 + }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3039, + key.offset: 3109, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 3114, + key.length: 7 + }, + { + key.kind: source.lang.swift.syntaxtype.argument, + key.offset: 3122, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.parameter, + key.offset: 3124, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 3124, + key.length: 1 + }, + { + key.kind: source.lang.swift.ref.generic_type_param, + key.name: "Self", + key.usr: "s:tPs9OptionSet4SelfMx", + key.offset: 3127, + key.length: 4 + }, + { + key.kind: source.lang.swift.ref.generic_type_param, + key.name: "Self", + key.usr: "s:tPs9OptionSet4SelfMx", + key.offset: 3136, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 3145, key.length: 9 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 3049, + key.offset: 3155, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 3074, + key.offset: 3180, key.length: 11 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3086, + key.offset: 3192, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 3098, + key.offset: 3204, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3107, + key.offset: 3213, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3112, - key.length: 12 + key.offset: 3218, + key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3125, + key.offset: 3228, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3127, + key.offset: 3230, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3127, + key.offset: 3230, key.length: 5 }, { key.kind: source.lang.swift.ref.generic_type_param, key.name: "Self", key.usr: "s:tPs9OptionSet4SelfMx", - key.offset: 3134, + key.offset: 3237, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 3145, + key.offset: 3248, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3154, + key.offset: 3257, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3159, + key.offset: 3262, key.length: 16 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3176, + key.offset: 3279, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3178, + key.offset: 3281, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3178, + key.offset: 3281, key.length: 5 }, { key.kind: source.lang.swift.ref.generic_type_param, key.name: "Self", key.usr: "s:tPs9OptionSet4SelfMx", - key.offset: 3185, + key.offset: 3288, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 3196, + key.offset: 3299, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3205, + key.offset: 3308, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3210, - key.length: 18 + key.offset: 3313, + key.length: 23 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3229, + key.offset: 3337, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3231, + key.offset: 3339, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3231, + key.offset: 3339, key.length: 5 }, { key.kind: source.lang.swift.ref.generic_type_param, key.name: "Self", key.usr: "s:tPs9OptionSet4SelfMx", - key.offset: 3238, + key.offset: 3346, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3247, + key.offset: 3355, key.length: 9 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 3257, + key.offset: 3365, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 3282, + key.offset: 3390, key.length: 11 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3294, + key.offset: 3402, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3299, + key.offset: 3407, key.length: 1 }, { key.kind: source.lang.swift.ref.protocol, key.name: "Sequence", key.usr: "s:Ps8Sequence", - key.offset: 3303, + key.offset: 3411, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3312, + key.offset: 3420, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 3318, + key.offset: 3426, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 3320, + key.offset: 3428, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 3329, + key.offset: 3437, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 3340, + key.offset: 3448, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3359, + key.offset: 3467, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3361, + key.offset: 3469, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3361, + key.offset: 3469, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.typeidentifier, - key.offset: 3371, + key.offset: 3479, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 3379, + key.offset: 3487, key.length: 11 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3391, + key.offset: 3499, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3396, + key.offset: 3504, key.length: 12 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3409, + key.offset: 3517, key.length: 12 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3396, + key.offset: 3504, key.length: 12 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3409, + key.offset: 3517, key.length: 12 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 3423, + key.offset: 3531, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 3450, + key.offset: 3558, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3459, + key.offset: 3567, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3464, - key.length: 15 + key.offset: 3572, + key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3480, + key.offset: 3581, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3482, + key.offset: 3583, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3482, + key.offset: 3583, key.length: 5 }, { key.kind: source.lang.swift.ref.generic_type_param, key.name: "Self", key.usr: "s:tPs10SetAlgebra4SelfMx", - key.offset: 3489, + key.offset: 3590, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3500, + key.offset: 3601, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3505, - key.length: 10 + key.offset: 3606, + key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3516, - key.length: 1 + key.offset: 3615, + key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3518, + key.offset: 3618, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3518, + key.offset: 3615, + key.length: 2 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 3618, key.length: 5 }, { key.kind: source.lang.swift.ref.generic_type_param, key.name: "Self", key.usr: "s:tPs10SetAlgebra4SelfMx", - key.offset: 3525, + key.offset: 3625, key.length: 4 }, { key.kind: source.lang.swift.ref.struct, key.name: "Bool", key.usr: "s:Sb", - key.offset: 3534, + key.offset: 3634, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3544, + key.offset: 3644, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3549, - key.length: 12 + key.offset: 3649, + key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3562, - key.length: 1 + key.offset: 3660, + key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3564, + key.offset: 3663, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3564, + key.offset: 3660, + key.length: 2 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 3663, key.length: 5 }, { key.kind: source.lang.swift.ref.generic_type_param, key.name: "Self", key.usr: "s:tPs10SetAlgebra4SelfMx", - key.offset: 3571, + key.offset: 3670, key.length: 4 }, { key.kind: source.lang.swift.ref.struct, key.name: "Bool", key.usr: "s:Sb", - key.offset: 3580, + key.offset: 3679, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3590, + key.offset: 3689, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3595, - key.length: 14 + key.offset: 3694, + key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3610, - key.length: 1 + key.offset: 3705, + key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3612, + key.offset: 3710, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3612, + key.offset: 3705, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 3710, key.length: 5 }, { key.kind: source.lang.swift.ref.generic_type_param, key.name: "Self", key.usr: "s:tPs10SetAlgebra4SelfMx", - key.offset: 3619, + key.offset: 3717, key.length: 4 }, { key.kind: source.lang.swift.ref.struct, key.name: "Bool", key.usr: "s:Sb", - key.offset: 3628, + key.offset: 3726, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3638, + key.offset: 3736, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3643, - key.length: 8 + key.offset: 3741, + key.length: 11 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3652, + key.offset: 3753, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3654, + key.offset: 3755, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3654, + key.offset: 3755, key.length: 5 }, { key.kind: source.lang.swift.ref.generic_type_param, key.name: "Self", key.usr: "s:tPs10SetAlgebra4SelfMx", - key.offset: 3661, + key.offset: 3762, key.length: 4 }, { key.kind: source.lang.swift.ref.generic_type_param, key.name: "Self", key.usr: "s:tPs10SetAlgebra4SelfMx", - key.offset: 3670, + key.offset: 3771, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3680, + key.offset: 3781, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3684, + key.offset: 3785, key.length: 7 }, { key.kind: source.lang.swift.ref.struct, key.name: "Bool", key.usr: "s:Sb", - key.offset: 3693, + key.offset: 3794, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3700, + key.offset: 3801, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3711, + key.offset: 3812, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3716, - key.length: 18 + key.offset: 3817, + key.length: 16 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3735, - key.length: 1 + key.offset: 3834, + key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3737, + key.offset: 3837, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3737, - key.length: 5 - }, - { - key.kind: source.lang.swift.ref.generic_type_param, - key.name: "Self", - key.usr: "s:tPs10SetAlgebra4SelfMx", - key.offset: 3744, - key.length: 4 - }, - { - key.kind: source.lang.swift.ref.struct, - key.name: "Bool", - key.usr: "s:Sb", - key.offset: 3753, - key.length: 4 - }, - { - key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3763, - key.length: 4 - }, - { - key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3768, - key.length: 16 - }, - { - key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3785, - key.length: 1 - }, - { - key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3787, - key.length: 5 + key.offset: 3834, + key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3787, + key.offset: 3837, key.length: 5 }, { key.kind: source.lang.swift.ref.generic_type_param, key.name: "Self", key.usr: "s:tPs10SetAlgebra4SelfMx", - key.offset: 3794, + key.offset: 3844, key.length: 4 }, { key.kind: source.lang.swift.ref.struct, key.name: "Bool", key.usr: "s:Sb", - key.offset: 3803, + key.offset: 3853, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3813, - key.length: 6 - }, - { - key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3820, + key.offset: 3863, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3825, - key.length: 7 - }, - { - key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3833, - key.length: 1 - }, - { - key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3835, - key.length: 1 - }, - { - key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3835, - key.length: 1 - }, - { - key.kind: source.lang.swift.ref.struct, - key.name: "FooRuncingOptions", - key.usr: "c:@E@FooRuncingOptions", - key.offset: 3838, - key.length: 17 + key.offset: 3868, + key.length: 14 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3857, - key.length: 8 + key.offset: 3883, + key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3866, - key.length: 1 + key.offset: 3886, + key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3857, - key.length: 8 + key.offset: 3883, + key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3866, - key.length: 1 - }, - { - key.kind: source.lang.swift.ref.struct, - key.name: "FooRuncingOptions", - key.usr: "c:@E@FooRuncingOptions", - key.offset: 3869, - key.length: 17 - }, - { - key.kind: source.lang.swift.ref.struct, - key.name: "Bool", - key.usr: "s:Sb", - key.offset: 3891, - key.length: 4 - }, - { - key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3901, - key.length: 6 + key.offset: 3886, + key.length: 5 }, { - key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3908, + key.kind: source.lang.swift.ref.generic_type_param, + key.name: "Self", + key.usr: "s:tPs10SetAlgebra4SelfMx", + key.offset: 3893, key.length: 4 }, - { - key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3913, - key.length: 7 - }, - { - key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3921, - key.length: 1 - }, - { - key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3923, - key.length: 1 - }, - { - key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3923, - key.length: 1 - }, - { - key.kind: source.lang.swift.ref.struct, - key.name: "FooRuncingOptions", - key.usr: "c:@E@FooRuncingOptions", - key.offset: 3926, - key.length: 17 - }, - { - key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3945, - key.length: 14 - }, - { - key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3960, - key.length: 1 - }, - { - key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3945, - key.length: 14 - }, - { - key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3960, - key.length: 1 - }, - { - key.kind: source.lang.swift.ref.struct, - key.name: "FooRuncingOptions", - key.usr: "c:@E@FooRuncingOptions", - key.offset: 3963, - key.length: 17 - }, { key.kind: source.lang.swift.ref.struct, key.name: "Bool", key.usr: "s:Sb", - key.offset: 3985, + key.offset: 3902, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3992, + key.offset: 3909, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3999, + key.offset: 3916, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4017, + key.offset: 3934, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4021, + key.offset: 3938, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 4024, + key.offset: 3941, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4035, + key.offset: 3952, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4039, + key.offset: 3956, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Double", key.usr: "s:Sd", - key.offset: 4042, + key.offset: 3959, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4054, + key.offset: 3971, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4066, + key.offset: 3983, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 4071, + key.offset: 3988, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 4073, + key.offset: 3990, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4071, + key.offset: 3988, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4073, + key.offset: 3990, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 4076, + key.offset: 3993, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 4083, + key.offset: 4000, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 4085, + key.offset: 4002, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4083, + key.offset: 4000, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4085, + key.offset: 4002, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Double", key.usr: "s:Sd", - key.offset: 4088, + key.offset: 4005, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4098, + key.offset: 4015, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4105, + key.offset: 4022, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4123, + key.offset: 4040, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4127, + key.offset: 4044, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 4130, + key.offset: 4047, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4141, + key.offset: 4058, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4145, + key.offset: 4062, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Double", key.usr: "s:Sd", - key.offset: 4148, + key.offset: 4065, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4160, + key.offset: 4077, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4172, + key.offset: 4089, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 4177, + key.offset: 4094, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 4179, + key.offset: 4096, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4177, + key.offset: 4094, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4179, + key.offset: 4096, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 4182, + key.offset: 4099, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 4189, + key.offset: 4106, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 4191, + key.offset: 4108, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4189, + key.offset: 4106, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4191, + key.offset: 4108, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Double", key.usr: "s:Sd", - key.offset: 4194, + key.offset: 4111, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4204, + key.offset: 4121, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4214, + key.offset: 4131, key.length: 17 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooStruct2", key.usr: "c:@S@FooStruct2", - key.offset: 4234, + key.offset: 4151, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4245, + key.offset: 4162, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4252, + key.offset: 4169, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4277, + key.offset: 4194, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4281, + key.offset: 4198, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 4284, + key.offset: 4201, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4295, + key.offset: 4212, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4299, + key.offset: 4216, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Double", key.usr: "s:Sd", - key.offset: 4302, + key.offset: 4219, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4314, + key.offset: 4231, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4326, + key.offset: 4243, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 4331, + key.offset: 4248, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 4333, + key.offset: 4250, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4331, + key.offset: 4248, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4333, + key.offset: 4250, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 4336, + key.offset: 4253, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 4343, + key.offset: 4260, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 4345, + key.offset: 4262, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4343, + key.offset: 4260, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4345, + key.offset: 4262, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Double", key.usr: "s:Sd", - key.offset: 4348, + key.offset: 4265, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4358, + key.offset: 4275, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4368, + key.offset: 4285, key.length: 11 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 4382, + key.offset: 4299, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4388, + key.offset: 4305, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4392, + key.offset: 4309, key.length: 9 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 4403, + key.offset: 4320, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4409, + key.offset: 4326, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4414, + key.offset: 4331, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 4423, + key.offset: 4340, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 4425, + key.offset: 4342, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4425, + key.offset: 4342, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 4428, + key.offset: 4345, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 4438, + key.offset: 4355, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4444, + key.offset: 4361, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4449, + key.offset: 4366, key.length: 22 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 4472, + key.offset: 4389, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 4474, + key.offset: 4391, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 4477, + key.offset: 4394, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 4487, + key.offset: 4404, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4493, + key.offset: 4410, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4498, + key.offset: 4415, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 4507, + key.offset: 4424, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 4509, + key.offset: 4426, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4509, + key.offset: 4426, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 4512, + key.offset: 4429, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 4519, + key.offset: 4436, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 4521, + key.offset: 4438, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4521, + key.offset: 4438, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Float", key.usr: "s:Sf", - key.offset: 4524, + key.offset: 4441, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 4531, + key.offset: 4448, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 4533, + key.offset: 4450, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4533, + key.offset: 4450, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Double", key.usr: "s:Sd", - key.offset: 4536, + key.offset: 4453, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 4544, + key.offset: 4461, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 4546, + key.offset: 4463, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4546, + key.offset: 4463, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "UnsafeMutablePointer", key.usr: "s:Sp", - key.offset: 4549, + key.offset: 4466, key.length: 20 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 4570, + key.offset: 4487, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 4581, + key.offset: 4498, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4587, + key.offset: 4504, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4592, + key.offset: 4509, key.length: 16 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 4609, + key.offset: 4526, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 4611, + key.offset: 4528, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4611, + key.offset: 4528, key.length: 3 }, { key.kind: source.lang.swift.ref.struct, key.name: "Float", key.usr: "s:Sf", - key.offset: 4618, + key.offset: 4535, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 4628, + key.offset: 4545, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4637, + key.offset: 4554, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4642, + key.offset: 4559, key.length: 26 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 4669, + key.offset: 4586, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 4671, + key.offset: 4588, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4671, + key.offset: 4588, key.length: 4 }, { key.kind: source.lang.swift.ref.struct, key.name: "Float", key.usr: "s:Sf", - key.offset: 4679, + key.offset: 4596, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 4689, + key.offset: 4606, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 4698, + key.offset: 4615, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4708, + key.offset: 4625, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4713, + key.offset: 4630, key.length: 16 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 4732, + key.offset: 4649, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4742, + key.offset: 4659, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4747, + key.offset: 4664, key.length: 16 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4766, + key.offset: 4683, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4771, + key.offset: 4688, key.length: 19 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4793, + key.offset: 4710, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4798, + key.offset: 4715, key.length: 19 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4820, + key.offset: 4737, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4825, + key.offset: 4742, key.length: 19 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4847, + key.offset: 4764, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4852, + key.offset: 4769, key.length: 19 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4874, + key.offset: 4791, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4879, + key.offset: 4796, key.length: 19 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4901, + key.offset: 4818, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4906, + key.offset: 4823, key.length: 32 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 4939, + key.offset: 4856, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 4941, + key.offset: 4858, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4941, + key.offset: 4858, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 4944, + key.offset: 4861, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 4954, + key.offset: 4871, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4960, + key.offset: 4877, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4969, + key.offset: 4886, key.length: 15 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 4992, + key.offset: 4909, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 4997, + key.offset: 4914, key.length: 12 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5017, + key.offset: 4934, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5022, + key.offset: 4939, key.length: 33 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5063, + key.offset: 4980, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5068, + key.offset: 4985, key.length: 33 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5109, + key.offset: 5026, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5116, + key.offset: 5033, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5121, + key.offset: 5038, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5146, + key.offset: 5063, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5150, + key.offset: 5067, key.length: 12 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 5164, + key.offset: 5081, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5172, + key.offset: 5089, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5176, + key.offset: 5093, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5187, + key.offset: 5104, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5191, + key.offset: 5108, key.length: 12 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 5205, + key.offset: 5122, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5213, + key.offset: 5130, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5217, + key.offset: 5134, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5228, + key.offset: 5145, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5232, + key.offset: 5149, key.length: 12 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 5246, + key.offset: 5163, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5254, + key.offset: 5171, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5262, + key.offset: 5179, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5271, + key.offset: 5188, key.length: 18 }, { key.kind: source.lang.swift.ref.protocol, key.name: "FooProtocolBase", key.usr: "c:objc(pl)FooProtocolBase", - key.offset: 5292, + key.offset: 5209, key.length: 15 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5312, + key.offset: 5229, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5318, + key.offset: 5235, key.length: 12 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5338, + key.offset: 5255, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5343, + key.offset: 5260, key.length: 20 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5371, + key.offset: 5288, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5376, + key.offset: 5293, key.length: 20 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 5397, + key.offset: 5314, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 5399, + key.offset: 5316, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5399, + key.offset: 5316, key.length: 8 }, { key.kind: source.lang.swift.ref.protocol, key.name: "AnyObject", key.usr: "s:Ps9AnyObject", - key.offset: 5409, + key.offset: 5326, key.length: 9 }, { key.kind: source.lang.swift.ref.class, key.name: "FooClassBase", key.usr: "c:objc(cs)FooClassBase", - key.offset: 5424, + key.offset: 5341, key.length: 12 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5443, + key.offset: 5360, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 5456, + key.offset: 5373, key.length: 11 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5468, + key.offset: 5385, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 5474, + key.offset: 5391, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 5480, + key.offset: 5397, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5474, + key.offset: 5391, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5480, + key.offset: 5397, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Float", key.usr: "s:Sf", - key.offset: 5483, + key.offset: 5400, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5495, + key.offset: 5412, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5500, + key.offset: 5417, key.length: 29 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5537, + key.offset: 5454, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5543, + key.offset: 5460, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5548, + key.offset: 5465, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5573, + key.offset: 5490, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5578, + key.offset: 5495, key.length: 14 }, { key.kind: source.lang.swift.ref.protocol, key.name: "AnyObject", key.usr: "s:Ps9AnyObject", - key.offset: 5598, + key.offset: 5515, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5614, + key.offset: 5531, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5619, + key.offset: 5536, key.length: 14 }, { key.kind: source.lang.swift.ref.protocol, key.name: "AnyObject", key.usr: "s:Ps9AnyObject", - key.offset: 5639, + key.offset: 5556, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5655, + key.offset: 5572, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5660, + key.offset: 5577, key.length: 15 }, { key.kind: source.lang.swift.ref.protocol, key.name: "AnyObject", key.usr: "s:Ps9AnyObject", - key.offset: 5681, + key.offset: 5598, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5697, + key.offset: 5614, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5702, + key.offset: 5619, key.length: 14 }, { key.kind: source.lang.swift.ref.protocol, key.name: "AnyObject", key.usr: "s:Ps9AnyObject", - key.offset: 5722, + key.offset: 5639, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5735, + key.offset: 5652, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5741, + key.offset: 5658, key.length: 15 }, { key.kind: source.lang.swift.ref.class, key.name: "FooClassBase", key.usr: "c:objc(cs)FooClassBase", - key.offset: 5759, + key.offset: 5676, key.length: 12 }, { key.kind: source.lang.swift.ref.protocol, key.name: "FooProtocolDerived", key.usr: "c:objc(pl)FooProtocolDerived", - key.offset: 5773, + key.offset: 5690, key.length: 18 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5799, + key.offset: 5716, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5803, + key.offset: 5720, key.length: 12 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 5817, + key.offset: 5734, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5828, + key.offset: 5745, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5832, + key.offset: 5749, key.length: 12 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 5846, + key.offset: 5763, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5857, + key.offset: 5774, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5861, + key.offset: 5778, key.length: 12 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 5875, + key.offset: 5792, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5883, + key.offset: 5800, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5894, + key.offset: 5811, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5899, + key.offset: 5816, key.length: 16 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5923, + key.offset: 5840, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5928, + key.offset: 5845, key.length: 16 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 5945, + key.offset: 5862, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 5947, + key.offset: 5864, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5947, + key.offset: 5864, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 5950, + key.offset: 5867, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 5962, + key.offset: 5879, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5967, + key.offset: 5884, key.length: 16 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 5984, + key.offset: 5901, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 5986, + key.offset: 5903, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5986, + key.offset: 5903, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 5989, + key.offset: 5906, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 5996, + key.offset: 5913, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 6002, + key.offset: 5919, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 5996, + key.offset: 5913, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6002, + key.offset: 5919, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 6005, + key.offset: 5922, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6017, + key.offset: 5934, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6022, + key.offset: 5939, key.length: 29 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6059, + key.offset: 5976, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6065, + key.offset: 5982, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6070, + key.offset: 5987, key.length: 13 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6091, + key.offset: 6008, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6096, + key.offset: 6013, key.length: 14 }, { key.kind: source.lang.swift.ref.protocol, key.name: "AnyObject", key.usr: "s:Ps9AnyObject", - key.offset: 6116, + key.offset: 6033, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6132, + key.offset: 6049, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6137, + key.offset: 6054, key.length: 14 }, { key.kind: source.lang.swift.ref.protocol, key.name: "AnyObject", key.usr: "s:Ps9AnyObject", - key.offset: 6157, + key.offset: 6074, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6173, + key.offset: 6090, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6178, + key.offset: 6095, key.length: 15 }, { key.kind: source.lang.swift.ref.protocol, key.name: "AnyObject", key.usr: "s:Ps9AnyObject", - key.offset: 6199, + key.offset: 6116, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6215, + key.offset: 6132, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6220, + key.offset: 6137, key.length: 14 }, { key.kind: source.lang.swift.ref.protocol, key.name: "AnyObject", key.usr: "s:Ps9AnyObject", - key.offset: 6240, + key.offset: 6157, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6253, + key.offset: 6170, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6257, + key.offset: 6174, key.length: 11 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 6270, + key.offset: 6187, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6278, + key.offset: 6195, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6284, + key.offset: 6201, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6288, + key.offset: 6205, key.length: 11 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 6301, + key.offset: 6218, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6309, + key.offset: 6226, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6315, + key.offset: 6232, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6319, + key.offset: 6236, key.length: 11 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 6332, + key.offset: 6249, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6340, + key.offset: 6257, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6346, + key.offset: 6263, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6350, + key.offset: 6267, key.length: 11 }, { key.kind: source.lang.swift.ref.struct, key.name: "UInt32", key.usr: "s:Vs6UInt32", - key.offset: 6363, + key.offset: 6280, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6372, + key.offset: 6289, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6378, + key.offset: 6295, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6382, + key.offset: 6299, key.length: 11 }, { key.kind: source.lang.swift.ref.struct, key.name: "UInt64", key.usr: "s:Vs6UInt64", - key.offset: 6395, + key.offset: 6312, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6404, + key.offset: 6321, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6410, + key.offset: 6327, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6414, + key.offset: 6331, key.length: 17 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 6433, + key.offset: 6350, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6441, + key.offset: 6358, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6447, + key.offset: 6364, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6451, + key.offset: 6368, key.length: 17 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 6470, + key.offset: 6387, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6478, + key.offset: 6395, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6484, + key.offset: 6401, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6489, + key.offset: 6406, key.length: 16 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6508, + key.offset: 6425, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6513, + key.offset: 6430, key.length: 21 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6537, + key.offset: 6454, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6544, + key.offset: 6461, key.length: 15 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6567, + key.offset: 6484, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6571, + key.offset: 6488, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 6574, + key.offset: 6491, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6585, + key.offset: 6502, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6597, + key.offset: 6514, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 6602, + key.offset: 6519, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 6604, + key.offset: 6521, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6602, + key.offset: 6519, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6604, + key.offset: 6521, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 6607, + key.offset: 6524, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6616, + key.offset: 6533, key.length: 9 }, { key.kind: source.lang.swift.ref.class, key.name: "FooClassBase", key.usr: "c:objc(cs)FooClassBase", - key.offset: 6626, + key.offset: 6543, key.length: 12 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6646, + key.offset: 6563, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6651, + key.offset: 6568, key.length: 14 }, { key.kind: source.lang.swift.ref.protocol, key.name: "AnyObject", key.usr: "s:Ps9AnyObject", - key.offset: 6671, + key.offset: 6588, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6684, + key.offset: 6601, key.length: 9 }, { key.kind: source.lang.swift.ref.class, key.name: "FooClassBase", key.usr: "c:objc(cs)FooClassBase", - key.offset: 6694, + key.offset: 6611, key.length: 12 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6714, + key.offset: 6631, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6719, + key.offset: 6636, key.length: 14 }, { key.kind: source.lang.swift.ref.protocol, key.name: "AnyObject", key.usr: "s:Ps9AnyObject", - key.offset: 6739, + key.offset: 6656, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6755, + key.offset: 6672, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6760, + key.offset: 6677, key.length: 15 }, { key.kind: source.lang.swift.ref.protocol, key.name: "AnyObject", key.usr: "s:Ps9AnyObject", - key.offset: 6781, + key.offset: 6698, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6794, + key.offset: 6711, key.length: 9 }, { key.kind: source.lang.swift.ref.class, key.name: "FooClassBase", key.usr: "c:objc(cs)FooClassBase", - key.offset: 6804, + key.offset: 6721, key.length: 12 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6824, + key.offset: 6741, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6829, + key.offset: 6746, key.length: 14 }, { key.kind: source.lang.swift.ref.protocol, key.name: "AnyObject", key.usr: "s:Ps9AnyObject", - key.offset: 6849, + key.offset: 6766, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6862, + key.offset: 6779, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6871, + key.offset: 6788, key.length: 13 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6889, + key.offset: 6806, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6895, + key.offset: 6812, key.length: 21 }, { key.kind: source.lang.swift.ref.protocol, key.name: "_InternalProt", key.usr: "c:objc(pl)_InternalProt", - key.offset: 6919, + key.offset: 6836, key.length: 13 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 6937, + key.offset: 6854, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 6943, + key.offset: 6860, key.length: 25 }, { key.kind: source.lang.swift.ref.class, key.name: "FooClassBase", key.usr: "c:objc(cs)FooClassBase", - key.offset: 6971, + key.offset: 6888, key.length: 12 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 6991, + key.offset: 6908, key.length: 15 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7007, + key.offset: 6924, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7011, + key.offset: 6928, key.length: 10 }, { key.kind: source.lang.swift.ref.protocol, key.name: "AnyObject", key.usr: "s:Ps9AnyObject", - key.offset: 7023, + key.offset: 6940, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 7039, + key.offset: 6956, key.length: 15 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7055, + key.offset: 6972, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7059, + key.offset: 6976, key.length: 16 }, { key.kind: source.lang.swift.ref.protocol, key.name: "AnyObject", key.usr: "s:Ps9AnyObject", - key.offset: 7077, + key.offset: 6994, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7093, + key.offset: 7010, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7097, + key.offset: 7014, key.length: 10 }, { key.kind: source.lang.swift.ref.protocol, key.name: "AnyObject", key.usr: "s:Ps9AnyObject", - key.offset: 7109, + key.offset: 7026, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7125, + key.offset: 7042, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7129, + key.offset: 7046, key.length: 9 }, { key.kind: source.lang.swift.ref.protocol, key.name: "AnyObject", key.usr: "s:Ps9AnyObject", - key.offset: 7140, + key.offset: 7057, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 7156, + key.offset: 7073, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7167, + key.offset: 7084, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7171, + key.offset: 7088, key.length: 8 }, { key.kind: source.lang.swift.ref.protocol, key.name: "AnyObject", key.usr: "s:Ps9AnyObject", - key.offset: 7181, + key.offset: 7098, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 7197, + key.offset: 7114, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7202, + key.offset: 7119, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7206, + key.offset: 7123, key.length: 7 }, { key.kind: source.lang.swift.ref.protocol, key.name: "AnyObject", key.usr: "s:Ps9AnyObject", - key.offset: 7215, + key.offset: 7132, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7231, + key.offset: 7148, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7235, + key.offset: 7152, key.length: 6 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 7243, + key.offset: 7160, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7254, + key.offset: 7171, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7259, + key.offset: 7176, key.length: 14 }, { key.kind: source.lang.swift.ref.protocol, key.name: "AnyObject", key.usr: "s:Ps9AnyObject", - key.offset: 7279, + key.offset: 7196, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7295, + key.offset: 7212, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7300, + key.offset: 7217, key.length: 14 }, { key.kind: source.lang.swift.ref.protocol, key.name: "AnyObject", key.usr: "s:Ps9AnyObject", - key.offset: 7320, + key.offset: 7237, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7336, + key.offset: 7253, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7341, + key.offset: 7258, key.length: 15 }, { key.kind: source.lang.swift.ref.protocol, key.name: "AnyObject", key.usr: "s:Ps9AnyObject", - key.offset: 7362, + key.offset: 7279, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7378, + key.offset: 7295, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7383, + key.offset: 7300, key.length: 14 }, { key.kind: source.lang.swift.ref.protocol, key.name: "AnyObject", key.usr: "s:Ps9AnyObject", - key.offset: 7403, + key.offset: 7320, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7416, + key.offset: 7333, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7422, + key.offset: 7339, key.length: 21 }, { key.kind: source.lang.swift.ref.class, key.name: "FooClassBase", key.usr: "c:objc(cs)FooClassBase", - key.offset: 7446, + key.offset: 7363, key.length: 12 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 7466, + key.offset: 7383, key.length: 11 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7478, + key.offset: 7395, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 7484, + key.offset: 7401, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 7488, + key.offset: 7405, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7484, + key.offset: 7401, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7488, + key.offset: 7405, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 7491, + key.offset: 7408, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7503, + key.offset: 7420, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7509, + key.offset: 7426, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7514, + key.offset: 7431, key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 7522, + key.offset: 7439, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 7524, + key.offset: 7441, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7524, + key.offset: 7441, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 7527, + key.offset: 7444, key.length: 5 }, { key.kind: source.lang.swift.ref.class, key.name: "FooUnavailableMembers", key.usr: "c:objc(cs)FooUnavailableMembers", - key.offset: 7537, + key.offset: 7454, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7548, + key.offset: 7465, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7553, + key.offset: 7470, key.length: 11 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7572, + key.offset: 7489, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7577, + key.offset: 7494, key.length: 16 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7601, + key.offset: 7518, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7606, + key.offset: 7523, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7624, + key.offset: 7541, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7629, + key.offset: 7546, key.length: 22 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7659, + key.offset: 7576, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7664, + key.offset: 7581, key.length: 22 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7694, + key.offset: 7611, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7699, + key.offset: 7616, key.length: 21 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7728, + key.offset: 7645, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7733, + key.offset: 7650, key.length: 23 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7764, + key.offset: 7681, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7769, + key.offset: 7686, key.length: 25 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7802, + key.offset: 7719, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7807, + key.offset: 7724, key.length: 25 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7840, + key.offset: 7757, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7845, + key.offset: 7762, key.length: 24 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7877, + key.offset: 7794, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7882, + key.offset: 7799, key.length: 26 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7916, + key.offset: 7833, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7921, + key.offset: 7838, key.length: 14 }, { key.kind: source.lang.swift.ref.protocol, key.name: "AnyObject", key.usr: "s:Ps9AnyObject", - key.offset: 7941, + key.offset: 7858, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7957, + key.offset: 7874, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 7962, + key.offset: 7879, key.length: 14 }, { key.kind: source.lang.swift.ref.protocol, key.name: "AnyObject", key.usr: "s:Ps9AnyObject", - key.offset: 7982, + key.offset: 7899, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 7998, + key.offset: 7915, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 8003, + key.offset: 7920, key.length: 15 }, { key.kind: source.lang.swift.ref.protocol, key.name: "AnyObject", key.usr: "s:Ps9AnyObject", - key.offset: 8024, + key.offset: 7941, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 8040, + key.offset: 7957, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 8045, + key.offset: 7962, key.length: 14 }, { key.kind: source.lang.swift.ref.protocol, key.name: "AnyObject", key.usr: "s:Ps9AnyObject", - key.offset: 8065, + key.offset: 7982, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 8078, + key.offset: 7995, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 8088, + key.offset: 8005, key.length: 12 }, { key.kind: source.lang.swift.ref.struct, key.name: "OpaquePointer", key.usr: "s:Vs13OpaquePointer", - key.offset: 8103, + key.offset: 8020, key.length: 13 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 8117, + key.offset: 8034, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 8122, + key.offset: 8039, key.length: 16 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 8139, + key.offset: 8056, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 8141, + key.offset: 8058, key.length: 1 }, { key.kind: source.lang.swift.ref.typealias, key.name: "FooCFTypeRef", key.usr: "c:Foo.h@T@FooCFTypeRef", - key.offset: 8144, + key.offset: 8061, key.length: 12 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 8158, + key.offset: 8075, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 8163, + key.offset: 8080, key.length: 11 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 8175, + key.offset: 8092, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 8177, + key.offset: 8094, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 8177, + key.offset: 8094, key.length: 1 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 8180, + key.offset: 8097, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int32", key.usr: "s:Vs5Int32", - key.offset: 8190, + key.offset: 8107, key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 8196, + key.offset: 8113, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 8203, + key.offset: 8120, key.length: 11 }, { key.kind: source.lang.swift.ref.protocol, key.name: "RawRepresentable", key.usr: "s:Ps16RawRepresentable", - key.offset: 8217, + key.offset: 8134, key.length: 16 }, { key.kind: source.lang.swift.ref.protocol, key.name: "Equatable", key.usr: "s:Ps9Equatable", - key.offset: 8235, + key.offset: 8152, key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 8252, + key.offset: 8169, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 8257, + key.offset: 8174, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 8259, + key.offset: 8176, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 8259, + key.offset: 8176, key.length: 8 }, { key.kind: source.lang.swift.ref.struct, key.name: "UInt32", key.usr: "s:Vs6UInt32", - key.offset: 8269, + key.offset: 8186, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 8282, + key.offset: 8199, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 8287, + key.offset: 8204, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 8296, + key.offset: 8213, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 8287, + key.offset: 8204, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 8296, + key.offset: 8213, key.length: 8 }, { key.kind: source.lang.swift.ref.struct, key.name: "UInt32", key.usr: "s:Vs6UInt32", - key.offset: 8306, + key.offset: 8223, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 8319, + key.offset: 8236, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 8323, + key.offset: 8240, key.length: 8 }, { key.kind: source.lang.swift.ref.struct, key.name: "UInt32", key.usr: "s:Vs6UInt32", - key.offset: 8333, + key.offset: 8250, key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 8342, + key.offset: 8259, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 8346, + key.offset: 8263, key.length: 12 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooSubEnum1", key.usr: "c:@E@FooSubEnum1", - key.offset: 8360, + key.offset: 8277, key.length: 11 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 8374, + key.offset: 8291, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 8380, + key.offset: 8297, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 8384, + key.offset: 8301, key.length: 12 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooSubEnum1", key.usr: "c:@E@FooSubEnum1", - key.offset: 8398, + key.offset: 8315, key.length: 11 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 8412, + key.offset: 8329, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 8418, + key.offset: 8335, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 8422, + key.offset: 8339, key.length: 25 }, { key.kind: source.lang.swift.ref.struct, key.name: "Int", key.usr: "s:Si", - key.offset: 8449, + key.offset: 8366, key.length: 3 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 8455, + key.offset: 8372, key.length: 3 } ] @@ -6984,7 +6933,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.extension.protocol, key.doc.full_as_xml: "extension OptionSetOptionSet requirements for which default implementations are supplied.A type conforming to OptionSet can implement any of these initializers or methods, and those implementations will be used in lieu of these defaults.", key.offset: 2710, - key.length: 158, + key.length: 169, key.extends: { key.kind: source.lang.swift.ref.protocol, key.name: "OptionSet", @@ -7012,38 +6961,38 @@ var FooSubUnnamedEnumeratorA1: Int { get } }, { key.kind: source.lang.swift.decl.function.method.instance, - key.name: "intersect(_:)", - key.usr: "s:FEsPs9OptionSet9intersectFxx::SYNTHESIZED::c:@E@FooRuncingOptions", - key.original_usr: "s:FEsPs9OptionSet9intersectFxx", - key.doc.full_as_xml: "intersect(_:)s:FEsPs9OptionSet9intersectFxxfunc intersect(other: Self) -> SelfReturns the set of elements contained in both self and other.", + key.name: "intersection(_:)", + key.usr: "s:FEsPs9OptionSet12intersectionFxx::SYNTHESIZED::c:@E@FooRuncingOptions", + key.original_usr: "s:FEsPs9OptionSet12intersectionFxx", + key.doc.full_as_xml: "intersection(_:)s:FEsPs9OptionSet12intersectionFxxfunc intersection(other: Self) -> SelfReturns the set of elements contained in both self and other.", key.offset: 2784, - key.length: 37, - key.fully_annotated_decl: "func intersect(other: Self) -> Self", + key.length: 40, + key.fully_annotated_decl: "func intersection(other: Self) -> Self", key.entities: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "other", - key.offset: 2808, + key.offset: 2811, key.length: 4 } ] }, { key.kind: source.lang.swift.decl.function.method.instance, - key.name: "exclusiveOr(_:)", - key.usr: "s:FEsPs9OptionSet11exclusiveOrFxx::SYNTHESIZED::c:@E@FooRuncingOptions", - key.original_usr: "s:FEsPs9OptionSet11exclusiveOrFxx", - key.doc.full_as_xml: "exclusiveOr(_:)s:FEsPs9OptionSet11exclusiveOrFxxfunc exclusiveOr(other: Self) -> SelfReturns the set of elements contained in self or in other, but not in both self and other.", - key.offset: 2827, - key.length: 39, - key.fully_annotated_decl: "func exclusiveOr(other: Self) -> Self", + key.name: "symmetricDifference(_:)", + key.usr: "s:FEsPs9OptionSet19symmetricDifferenceFxx::SYNTHESIZED::c:@E@FooRuncingOptions", + key.original_usr: "s:FEsPs9OptionSet19symmetricDifferenceFxx", + key.doc.full_as_xml: "symmetricDifference(_:)s:FEsPs9OptionSet19symmetricDifferenceFxxfunc symmetricDifference(other: Self) -> SelfReturns the set of elements contained in self or in other, but not in both self and other.", + key.offset: 2830, + key.length: 47, + key.fully_annotated_decl: "func symmetricDifference(other: Self) -> Self", key.entities: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "other", - key.offset: 2853, + key.offset: 2864, key.length: 4 } ] @@ -7058,8 +7007,8 @@ var FooSubUnnamedEnumeratorA1: Int { get } } ], key.doc.full_as_xml: "extension OptionSet where Element == SelfOptionSet requirements for which default implementations are supplied when Element == Self, which is the default.A type conforming to OptionSet can implement any of these initializers or methods, and those implementations will be used in lieu of these defaults.", - key.offset: 2870, - key.length: 167, + key.offset: 2881, + key.length: 262, key.extends: { key.kind: source.lang.swift.ref.protocol, key.name: "OptionSet", @@ -7071,8 +7020,8 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "contains(_:)", key.usr: "s:FesRxs9OptionSetxzwx7ElementrS_8containsFxSb::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:FesRxs9OptionSetxzwx7ElementrS_8containsFxSb", - key.doc.full_as_xml: "contains(_:)s:FesRxs9OptionSetxzwx7ElementrS_8containsFxSbfunc contains(member: Self) -> BoolReturns true if self contains member.Equivalent to self.intersect([member]) == [member]", - key.offset: 2905, + key.doc.full_as_xml: "contains(_:)s:FesRxs9OptionSetxzwx7ElementrS_8containsFxSbfunc contains(member: Self) -> BoolReturns true if self contains member.Equivalent to self.intersection([member]) == [member]", + key.offset: 2916, key.length: 37, key.fully_annotated_decl: "func contains(member: Self) -> Bool", key.entities: [ @@ -7080,7 +7029,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "member", - key.offset: 2929, + key.offset: 2940, key.length: 4 } ] @@ -7088,18 +7037,18 @@ var FooSubUnnamedEnumeratorA1: Int { get } { key.kind: source.lang.swift.decl.function.method.instance, key.name: "insert(_:)", - key.usr: "s:FesRxs9OptionSetxzwx7ElementrS_6insertFwxS0_T_::SYNTHESIZED::c:@E@FooRuncingOptions", - key.original_usr: "s:FesRxs9OptionSetxzwx7ElementrS_6insertFwxS0_T_", - key.doc.full_as_xml: "insert(_:)s:FesRxs9OptionSetxzwx7ElementrS_6insertFwxS0_T_mutating func insert(member: Self)If member is not already contained in self, insert it.self.contains(member)Equivalent to self.unionInPlace([member])", - key.offset: 2948, - key.length: 36, - key.fully_annotated_decl: "mutating func insert(member: Self)", + key.usr: "s:FesRxs9OptionSetxzwx7ElementrS_6insertFwxS0_T8insertedSb17memberAfterInsertwxS0__::SYNTHESIZED::c:@E@FooRuncingOptions", + key.original_usr: "s:FesRxs9OptionSetxzwx7ElementrS_6insertFwxS0_T8insertedSb17memberAfterInsertwxS0__", + key.doc.full_as_xml: "insert(_:)s:FesRxs9OptionSetxzwx7ElementrS_6insertFwxS0_T8insertedSb17memberAfterInsertwxS0__mutating func insert(newMember: Self) -> (inserted: Bool, memberAfterInsert: Self)If newMember is not already contained in self, inserts it.(true, newMember) if e was not contained in self. Otherwise, returns (false, oldMember), where oldMember is the member of self equal to newMember.self.contains(newMember).", + key.offset: 2959, + key.length: 84, + key.fully_annotated_decl: "mutating func insert(newMember: Self) -> (inserted: Bool, memberAfterInsert: Self)", key.entities: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", - key.name: "member", - key.offset: 2979, + key.name: "newMember", + key.offset: 2993, key.length: 4 } ] @@ -7109,8 +7058,8 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "remove(_:)", key.usr: "s:FesRxs9OptionSetxzwx7ElementrS_6removeFwxS0_GSqwxS0__::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:FesRxs9OptionSetxzwx7ElementrS_6removeFwxS0_GSqwxS0__", - key.doc.full_as_xml: "remove(_:)s:FesRxs9OptionSetxzwx7ElementrS_6removeFwxS0_GSqwxS0__mutating func remove(member: Self) -> Self?If member is contained in self, remove and return it. Otherwise, return nil.self.intersect([member]).isEmpty", - key.offset: 2990, + key.doc.full_as_xml: "remove(_:)s:FesRxs9OptionSetxzwx7ElementrS_6removeFwxS0_GSqwxS0__mutating func remove(member: Self) -> Self?If member is contained in self, remove and return it. Otherwise, return nil.self.intersection([member]).isEmpty", + key.offset: 3049, key.length: 45, key.fully_annotated_decl: "mutating func remove(member: Self) -> Self?", key.entities: [ @@ -7118,7 +7067,26 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "member", - key.offset: 3021, + key.offset: 3080, + key.length: 4 + } + ] + }, + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "update(with:)", + key.usr: "s:FesRxs9OptionSetxzwx7ElementrS_7replaceFwxS0_GSqwxS0__::SYNTHESIZED::c:@E@FooRuncingOptions", + key.original_usr: "s:FesRxs9OptionSetxzwx7ElementrS_7replaceFwxS0_GSqwxS0__", + key.doc.full_as_xml: "update(with:)s:FesRxs9OptionSetxzwx7ElementrS_7replaceFwxS0_GSqwxS0__mutating func update(with e: Self) -> Self?Inserts e unconditionally.a former member r of self such that self.intersection([e]) == [r] if self.intersection([e]) was non-empty. Returns nil otherwise.self.contains(e)", + key.offset: 3100, + key.length: 41, + key.fully_annotated_decl: "mutating func replace(e: Self) -> Self?", + key.entities: [ + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "_", + key.name: "e", + key.offset: 3127, key.length: 4 } ] @@ -7132,9 +7100,9 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.description: "RawValue : BitwiseOperations" } ], - key.doc.full_as_xml: "extension OptionSet where RawValue : BitwiseOperationsOptionSet requirements for which default implementations are supplied when RawValue conforms to BitwiseOperations, which is the usual case. Each distinct bit of an option set's .rawValue corresponds to a disjoint element of the option set.A type conforming to OptionSet can implement any of these initializers or methods, and those implementations will be used in lieu of these defaults.union is implemented as a bitwise "or" (|) of rawValuesintersection is implemented as a bitwise "and" (|) of rawValuesexclusiveOr is implemented as a bitwise "exclusive or" (^) of rawValues", - key.offset: 3039, - key.length: 206, + key.doc.full_as_xml: "extension OptionSet where RawValue : BitwiseOperationsOptionSet requirements for which default implementations are supplied when RawValue conforms to BitwiseOperations, which is the usual case. Each distinct bit of an option set's .rawValue corresponds to a disjoint element of the option set.A type conforming to OptionSet can implement any of these initializers or methods, and those implementations will be used in lieu of these defaults.union is implemented as a bitwise "or" (|) of rawValuesintersection is implemented as a bitwise "and" (|) of rawValuessymmetricDifference is implemented as a bitwise "exclusive or" (^) of rawValues", + key.offset: 3145, + key.length: 208, key.extends: { key.kind: source.lang.swift.ref.protocol, key.name: "OptionSet", @@ -7147,63 +7115,63 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.usr: "s:FesRxs9OptionSetwx8RawValues17BitwiseOperationsrS_cFT_x::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:FesRxs9OptionSetwx8RawValues17BitwiseOperationsrS_cFT_x", key.doc.full_as_xml: "init()s:FesRxs9OptionSetwx8RawValues17BitwiseOperationsrS_cFT_xconvenience init()Create an empty instance.Equivalent to [] as Self", - key.offset: 3074, + key.offset: 3180, key.length: 18, key.fully_annotated_decl: "convenience init()" }, { key.kind: source.lang.swift.decl.function.method.instance, - key.name: "unionInPlace(_:)", - key.usr: "s:FesRxs9OptionSetwx8RawValues17BitwiseOperationsrS_12unionInPlaceFxT_::SYNTHESIZED::c:@E@FooRuncingOptions", - key.original_usr: "s:FesRxs9OptionSetwx8RawValues17BitwiseOperationsrS_12unionInPlaceFxT_", - key.doc.full_as_xml: "unionInPlace(_:)s:FesRxs9OptionSetwx8RawValues17BitwiseOperationsrS_12unionInPlaceFxT_mutating func unionInPlace(other: Self)Insert all elements of other into self.self.isSupersetOf(other)Equivalent to replacing self with self.union(other).", - key.offset: 3098, - key.length: 41, - key.fully_annotated_decl: "mutating func unionInPlace(other: Self)", + key.name: "formUnion(_:)", + key.usr: "s:FesRxs9OptionSetwx8RawValues17BitwiseOperationsrS_9formUnionFxT_::SYNTHESIZED::c:@E@FooRuncingOptions", + key.original_usr: "s:FesRxs9OptionSetwx8RawValues17BitwiseOperationsrS_9formUnionFxT_", + key.doc.full_as_xml: "formUnion(_:)s:FesRxs9OptionSetwx8RawValues17BitwiseOperationsrS_9formUnionFxT_mutating func formUnion(other: Self)Insert all elements of other into self.self.isSuperset(of: other)Equivalent to replacing self with self.union(other).", + key.offset: 3204, + key.length: 38, + key.fully_annotated_decl: "mutating func formUnion(other: Self)", key.entities: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "other", - key.offset: 3134, + key.offset: 3237, key.length: 4 } ] }, { key.kind: source.lang.swift.decl.function.method.instance, - key.name: "intersectInPlace(_:)", - key.usr: "s:FesRxs9OptionSetwx8RawValues17BitwiseOperationsrS_16intersectInPlaceFxT_::SYNTHESIZED::c:@E@FooRuncingOptions", - key.original_usr: "s:FesRxs9OptionSetwx8RawValues17BitwiseOperationsrS_16intersectInPlaceFxT_", - key.doc.full_as_xml: "intersectInPlace(_:)s:FesRxs9OptionSetwx8RawValues17BitwiseOperationsrS_16intersectInPlaceFxT_mutating func intersectInPlace(other: Self)Remove all elements of self that are not also present in other.self.isSubsetOf(other)Equivalent to replacing self with self.intersect(other)", - key.offset: 3145, + key.name: "formIntersection(_:)", + key.usr: "s:FesRxs9OptionSetwx8RawValues17BitwiseOperationsrS_16formIntersectionFxT_::SYNTHESIZED::c:@E@FooRuncingOptions", + key.original_usr: "s:FesRxs9OptionSetwx8RawValues17BitwiseOperationsrS_16formIntersectionFxT_", + key.doc.full_as_xml: "formIntersection(_:)s:FesRxs9OptionSetwx8RawValues17BitwiseOperationsrS_16formIntersectionFxT_mutating func formIntersection(other: Self)Remove all elements of self that are not also present in other.self.isSubset(of: other)Equivalent to replacing self with self.intersection(other)", + key.offset: 3248, key.length: 45, - key.fully_annotated_decl: "mutating func intersectInPlace(other: Self)", + key.fully_annotated_decl: "mutating func formIntersection(other: Self)", key.entities: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "other", - key.offset: 3185, + key.offset: 3288, key.length: 4 } ] }, { key.kind: source.lang.swift.decl.function.method.instance, - key.name: "exclusiveOrInPlace(_:)", - key.usr: "s:FesRxs9OptionSetwx8RawValues17BitwiseOperationsrS_18exclusiveOrInPlaceFxT_::SYNTHESIZED::c:@E@FooRuncingOptions", - key.original_usr: "s:FesRxs9OptionSetwx8RawValues17BitwiseOperationsrS_18exclusiveOrInPlaceFxT_", - key.doc.full_as_xml: "exclusiveOrInPlace(_:)s:FesRxs9OptionSetwx8RawValues17BitwiseOperationsrS_18exclusiveOrInPlaceFxT_mutating func exclusiveOrInPlace(other: Self)Replace self with a set containing all elements contained in either self or other, but not both.Equivalent to replacing self with self.exclusiveOr(other)", - key.offset: 3196, - key.length: 47, - key.fully_annotated_decl: "mutating func exclusiveOrInPlace(other: Self)", + key.name: "formSymmetricDifference(_:)", + key.usr: "s:FesRxs9OptionSetwx8RawValues17BitwiseOperationsrS_23formSymmetricDifferenceFxT_::SYNTHESIZED::c:@E@FooRuncingOptions", + key.original_usr: "s:FesRxs9OptionSetwx8RawValues17BitwiseOperationsrS_23formSymmetricDifferenceFxT_", + key.doc.full_as_xml: "formSymmetricDifference(_:)s:FesRxs9OptionSetwx8RawValues17BitwiseOperationsrS_23formSymmetricDifferenceFxT_mutating func formSymmetricDifference(other: Self)Replace self with a set containing all elements contained in either self or other, but not both.Equivalent to replacing self with self.symmetricDifference(other)", + key.offset: 3299, + key.length: 52, + key.fully_annotated_decl: "mutating func formSymmetricDifference(other: Self)", key.entities: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "other", - key.offset: 3238, + key.offset: 3346, key.length: 4 } ] @@ -7213,8 +7181,8 @@ var FooSubUnnamedEnumeratorA1: Int { get } { key.kind: source.lang.swift.decl.extension.protocol, key.doc.full_as_xml: "extension SetAlgebraSetAlgebra requirements for which default implementations are supplied.A type conforming to SetAlgebra can implement any of these initializers or methods, and those implementations will be used in lieu of these defaults.", - key.offset: 3247, - key.length: 744, + key.offset: 3355, + key.length: 553, key.extends: { key.kind: source.lang.swift.ref.protocol, key.name: "SetAlgebra", @@ -7238,7 +7206,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } } ], key.doc.full_as_xml: "init(_:)s:FEsPs10SetAlgebracuRd__s8Sequencewx7ElementzWd__8Iterator7Element_rFqd__xconvenience init<S : Sequence where S.Iterator.Element == Element>(_ sequence: S)Creates the set containing all elements of sequence.", - key.offset: 3282, + key.offset: 3390, key.length: 91, key.fully_annotated_decl: "convenience init<S : Sequence where S.Iterator.Element == Element>(_ sequence: S)", key.entities: [ @@ -7246,7 +7214,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "sequence", - key.offset: 3371, + key.offset: 3479, key.length: 1 } ] @@ -7257,7 +7225,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.usr: "s:FEsPs10SetAlgebracFt12arrayLiteralGSawx7Element__x::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:FEsPs10SetAlgebracFt12arrayLiteralGSawx7Element__x", key.doc.full_as_xml: "init(arrayLiteral:)s:FEsPs10SetAlgebracFt12arrayLiteralGSawx7Element__xconvenience init(arrayLiteral: Self.Element...)Creates a set containing all elements of the given arrayLiteral.This initializer allows an array literal containing Self.Element to represent an instance of the set, wherever it is implied by the type context.", - key.offset: 3379, + key.offset: 3487, key.length: 65, key.fully_annotated_decl: "convenience init(arrayLiteral: Self.Element...)", key.entities: [ @@ -7265,102 +7233,102 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "arrayLiteral", key.name: "arrayLiteral", - key.offset: 3423, + key.offset: 3531, key.length: 17 } ] }, { key.kind: source.lang.swift.decl.function.method.instance, - key.name: "subtractInPlace(_:)", - key.usr: "s:FEsPs10SetAlgebra15subtractInPlaceFxT_::SYNTHESIZED::c:@E@FooRuncingOptions", - key.original_usr: "s:FEsPs10SetAlgebra15subtractInPlaceFxT_", - key.doc.full_as_xml: "subtractInPlace(_:)s:FEsPs10SetAlgebra15subtractInPlaceFxT_mutating func subtractInPlace(other: Self)Removes all elements of other from self.Equivalent to replacing self with self.subtract(other).", - key.offset: 3450, - key.length: 44, - key.fully_annotated_decl: "mutating func subtractInPlace(other: Self)", + key.name: "subtract(_:)", + key.usr: "s:FEsPs10SetAlgebra8subtractFxT_::SYNTHESIZED::c:@E@FooRuncingOptions", + key.original_usr: "s:FEsPs10SetAlgebra8subtractFxT_", + key.doc.full_as_xml: "subtract(_:)s:FEsPs10SetAlgebra8subtractFxT_mutating func subtract(other: Self)Removes all elements of other from self.Equivalent to replacing self with self.subtracting(other).", + key.offset: 3558, + key.length: 37, + key.fully_annotated_decl: "mutating func subtract(other: Self)", key.entities: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "other", - key.offset: 3489, + key.offset: 3590, key.length: 4 } ] }, { key.kind: source.lang.swift.decl.function.method.instance, - key.name: "isSubsetOf(_:)", - key.usr: "s:FEsPs10SetAlgebra10isSubsetOfFxSb::SYNTHESIZED::c:@E@FooRuncingOptions", - key.original_usr: "s:FEsPs10SetAlgebra10isSubsetOfFxSb", - key.doc.full_as_xml: "isSubsetOf(_:)s:FEsPs10SetAlgebra10isSubsetOfFxSbfunc isSubsetOf(other: Self) -> BoolReturns true iff every element of self is contained in other.", - key.offset: 3500, - key.length: 38, - key.fully_annotated_decl: "func isSubsetOf(other: Self) -> Bool", + key.name: "isSubset(of:)", + key.usr: "s:FEsPs10SetAlgebra8isSubsetFT2ofx_Sb::SYNTHESIZED::c:@E@FooRuncingOptions", + key.original_usr: "s:FEsPs10SetAlgebra8isSubsetFT2ofx_Sb", + key.doc.full_as_xml: "isSubset(of:)s:FEsPs10SetAlgebra8isSubsetFT2ofx_Sbfunc isSubset(of other: Self) -> BoolReturns true iff every element of self is contained in other.", + key.offset: 3601, + key.length: 37, + key.fully_annotated_decl: "func isSubset(of other: Self) -> Bool", key.entities: [ { key.kind: source.lang.swift.decl.var.local, - key.keyword: "_", + key.keyword: "of", key.name: "other", - key.offset: 3525, + key.offset: 3625, key.length: 4 } ] }, { key.kind: source.lang.swift.decl.function.method.instance, - key.name: "isSupersetOf(_:)", - key.usr: "s:FEsPs10SetAlgebra12isSupersetOfFxSb::SYNTHESIZED::c:@E@FooRuncingOptions", - key.original_usr: "s:FEsPs10SetAlgebra12isSupersetOfFxSb", - key.doc.full_as_xml: "isSupersetOf(_:)s:FEsPs10SetAlgebra12isSupersetOfFxSbfunc isSupersetOf(other: Self) -> BoolReturns true iff every element of other is contained in self.", - key.offset: 3544, - key.length: 40, - key.fully_annotated_decl: "func isSupersetOf(other: Self) -> Bool", + key.name: "isSuperset(of:)", + key.usr: "s:FEsPs10SetAlgebra10isSupersetFT2ofx_Sb::SYNTHESIZED::c:@E@FooRuncingOptions", + key.original_usr: "s:FEsPs10SetAlgebra10isSupersetFT2ofx_Sb", + key.doc.full_as_xml: "isSuperset(of:)s:FEsPs10SetAlgebra10isSupersetFT2ofx_Sbfunc isSuperset(of other: Self) -> BoolReturns true iff every element of other is contained in self.", + key.offset: 3644, + key.length: 39, + key.fully_annotated_decl: "func isSuperset(of other: Self) -> Bool", key.entities: [ { key.kind: source.lang.swift.decl.var.local, - key.keyword: "_", + key.keyword: "of", key.name: "other", - key.offset: 3571, + key.offset: 3670, key.length: 4 } ] }, { key.kind: source.lang.swift.decl.function.method.instance, - key.name: "isDisjointWith(_:)", - key.usr: "s:FEsPs10SetAlgebra14isDisjointWithFxSb::SYNTHESIZED::c:@E@FooRuncingOptions", - key.original_usr: "s:FEsPs10SetAlgebra14isDisjointWithFxSb", - key.doc.full_as_xml: "isDisjointWith(_:)s:FEsPs10SetAlgebra14isDisjointWithFxSbfunc isDisjointWith(other: Self) -> BoolReturns true iff self.intersect(other).isEmpty.", - key.offset: 3590, - key.length: 42, - key.fully_annotated_decl: "func isDisjointWith(other: Self) -> Bool", + key.name: "isDisjoint(with:)", + key.usr: "s:FEsPs10SetAlgebra10isDisjointFT4withx_Sb::SYNTHESIZED::c:@E@FooRuncingOptions", + key.original_usr: "s:FEsPs10SetAlgebra10isDisjointFT4withx_Sb", + key.doc.full_as_xml: "isDisjoint(with:)s:FEsPs10SetAlgebra10isDisjointFT4withx_Sbfunc isDisjoint(with other: Self) -> BoolReturns true iff self.intersection(other).isEmpty.", + key.offset: 3689, + key.length: 41, + key.fully_annotated_decl: "func isDisjoint(with other: Self) -> Bool", key.entities: [ { key.kind: source.lang.swift.decl.var.local, - key.keyword: "_", + key.keyword: "with", key.name: "other", - key.offset: 3619, + key.offset: 3717, key.length: 4 } ] }, { key.kind: source.lang.swift.decl.function.method.instance, - key.name: "subtract(_:)", - key.usr: "s:FEsPs10SetAlgebra8subtractFxx::SYNTHESIZED::c:@E@FooRuncingOptions", - key.original_usr: "s:FEsPs10SetAlgebra8subtractFxx", - key.doc.full_as_xml: "subtract(_:)s:FEsPs10SetAlgebra8subtractFxxfunc subtract(other: Self) -> SelfReturns the set of elements contained in self but not in other.", - key.offset: 3638, - key.length: 36, - key.fully_annotated_decl: "func subtract(other: Self) -> Self", + key.name: "subtracting(_:)", + key.usr: "s:FEsPs10SetAlgebra11subtractingFxx::SYNTHESIZED::c:@E@FooRuncingOptions", + key.original_usr: "s:FEsPs10SetAlgebra11subtractingFxx", + key.doc.full_as_xml: "subtracting(_:)s:FEsPs10SetAlgebra11subtractingFxxfunc subtracting(other: Self) -> SelfReturns the set of elements contained in self but not in other.", + key.offset: 3736, + key.length: 39, + key.fully_annotated_decl: "func subtracting(other: Self) -> Self", key.entities: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "other", - key.offset: 3661, + key.offset: 3762, key.length: 4 } ] @@ -7371,99 +7339,47 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.usr: "s:vEsPs10SetAlgebra7isEmptySb::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:vEsPs10SetAlgebra7isEmptySb", key.doc.full_as_xml: "isEmptys:vEsPs10SetAlgebra7isEmptySbvar isEmpty: Bool { get }Returns true iff self.contains(e) is false for all e.", - key.offset: 3680, + key.offset: 3781, key.length: 25, key.fully_annotated_decl: "var isEmpty: Bool { get }" }, { key.kind: source.lang.swift.decl.function.method.instance, - key.name: "isStrictSupersetOf(_:)", - key.usr: "s:FEsPs10SetAlgebra18isStrictSupersetOfFxSb::SYNTHESIZED::c:@E@FooRuncingOptions", - key.original_usr: "s:FEsPs10SetAlgebra18isStrictSupersetOfFxSb", - key.doc.full_as_xml: "isStrictSupersetOf(_:)s:FEsPs10SetAlgebra18isStrictSupersetOfFxSbfunc isStrictSupersetOf(other: Self) -> BoolReturns true iff every element of other is contained in self and self contains an element that is not contained in other.", - key.offset: 3711, - key.length: 46, - key.fully_annotated_decl: "func isStrictSupersetOf(other: Self) -> Bool", + key.name: "isStrictSuperset(of:)", + key.usr: "s:FEsPs10SetAlgebra16isStrictSupersetFT2ofx_Sb::SYNTHESIZED::c:@E@FooRuncingOptions", + key.original_usr: "s:FEsPs10SetAlgebra16isStrictSupersetFT2ofx_Sb", + key.doc.full_as_xml: "isStrictSuperset(of:)s:FEsPs10SetAlgebra16isStrictSupersetFT2ofx_Sbfunc isStrictSuperset(of other: Self) -> BoolReturns true iff every element of other is contained in self and self contains an element that is not contained in other.", + key.offset: 3812, + key.length: 45, + key.fully_annotated_decl: "func isStrictSuperset(of other: Self) -> Bool", key.entities: [ { key.kind: source.lang.swift.decl.var.local, - key.keyword: "_", + key.keyword: "of", key.name: "other", - key.offset: 3744, + key.offset: 3844, key.length: 4 } ] }, { key.kind: source.lang.swift.decl.function.method.instance, - key.name: "isStrictSubsetOf(_:)", - key.usr: "s:FEsPs10SetAlgebra16isStrictSubsetOfFxSb::SYNTHESIZED::c:@E@FooRuncingOptions", - key.original_usr: "s:FEsPs10SetAlgebra16isStrictSubsetOfFxSb", - key.doc.full_as_xml: "isStrictSubsetOf(_:)s:FEsPs10SetAlgebra16isStrictSubsetOfFxSbfunc isStrictSubsetOf(other: Self) -> BoolReturns true iff every element of self is contained in other and other contains an element that is not contained in self.", - key.offset: 3763, - key.length: 44, - key.fully_annotated_decl: "func isStrictSubsetOf(other: Self) -> Bool", + key.name: "isStrictSubset(of:)", + key.usr: "s:FEsPs10SetAlgebra14isStrictSubsetFT2ofx_Sb::SYNTHESIZED::c:@E@FooRuncingOptions", + key.original_usr: "s:FEsPs10SetAlgebra14isStrictSubsetFT2ofx_Sb", + key.doc.full_as_xml: "isStrictSubset(of:)s:FEsPs10SetAlgebra14isStrictSubsetFT2ofx_Sbfunc isStrictSubset(of other: Self) -> BoolReturns true iff every element of self is contained in other and other contains an element that is not contained in self.", + key.offset: 3863, + key.length: 43, + key.fully_annotated_decl: "func isStrictSubset(of other: Self) -> Bool", key.entities: [ { key.kind: source.lang.swift.decl.var.local, - key.keyword: "_", + key.keyword: "of", key.name: "other", - key.offset: 3794, + key.offset: 3893, key.length: 4 } ] - }, - { - key.kind: source.lang.swift.decl.function.method.static, - key.name: "element(_:subsumes:)", - key.usr: "s:ZFEsPs10SetAlgebra7elementFTwx7Element8subsumeswxS0__Sb::SYNTHESIZED::c:@E@FooRuncingOptions", - key.original_usr: "s:ZFEsPs10SetAlgebra7elementFTwx7Element8subsumeswxS0__Sb", - key.doc.full_as_xml: "element(_:subsumes:)s:ZFEsPs10SetAlgebra7elementFTwx7Element8subsumeswxS0__Sbstatic func element(a: Self.Element, subsumes b: Self.Element) -> BoolReturns true iff a subsumes b.Equivalent to ([a] as Self).isSupersetOf([b])", - key.offset: 3813, - key.length: 82, - key.fully_annotated_decl: "static func element(a: Self.Element, subsumes b: Self.Element) -> Bool", - key.entities: [ - { - key.kind: source.lang.swift.decl.var.local, - key.keyword: "_", - key.name: "a", - key.offset: 3838, - key.length: 17 - }, - { - key.kind: source.lang.swift.decl.var.local, - key.keyword: "subsumes", - key.name: "b", - key.offset: 3869, - key.length: 17 - } - ] - }, - { - key.kind: source.lang.swift.decl.function.method.static, - key.name: "element(_:isDisjointWith:)", - key.usr: "s:ZFEsPs10SetAlgebra7elementFTwx7Element14isDisjointWithwxS0__Sb::SYNTHESIZED::c:@E@FooRuncingOptions", - key.original_usr: "s:ZFEsPs10SetAlgebra7elementFTwx7Element14isDisjointWithwxS0__Sb", - key.doc.full_as_xml: "element(_:isDisjointWith:)s:ZFEsPs10SetAlgebra7elementFTwx7Element14isDisjointWithwxS0__Sbstatic func element(a: Self.Element, isDisjointWith b: Self.Element) -> BoolReturns true iff a is disjoint with b.Two elements are disjoint when neither one subsumes the other.Self.element(_, subsumes:_)", - key.offset: 3901, - key.length: 88, - key.fully_annotated_decl: "static func element(a: Self.Element, isDisjointWith b: Self.Element) -> Bool", - key.entities: [ - { - key.kind: source.lang.swift.decl.var.local, - key.keyword: "_", - key.name: "a", - key.offset: 3926, - key.length: 17 - }, - { - key.kind: source.lang.swift.decl.var.local, - key.keyword: "isDisjointWith", - key.name: "b", - key.offset: 3963, - key.length: 17 - } - ] } ] }, @@ -7471,7 +7387,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.struct, key.name: "FooStruct1", key.usr: "c:@S@FooStruct1", - key.offset: 3992, + key.offset: 3909, key.length: 105, key.fully_annotated_decl: "struct FooStruct1", key.entities: [ @@ -7479,7 +7395,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "x", key.usr: "c:@S@FooStruct1@FI@x", - key.offset: 4017, + key.offset: 3934, key.length: 12, key.fully_annotated_decl: "var x: Int32" }, @@ -7487,7 +7403,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "y", key.usr: "c:@S@FooStruct1@FI@y", - key.offset: 4035, + key.offset: 3952, key.length: 13, key.fully_annotated_decl: "var y: Double" }, @@ -7495,7 +7411,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.constructor, key.name: "init()", key.usr: "s:FVSC10FooStruct1cFT_S_", - key.offset: 4054, + key.offset: 3971, key.length: 6, key.fully_annotated_decl: "init()" }, @@ -7503,7 +7419,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.constructor, key.name: "init(x:y:)", key.usr: "s:FVSC10FooStruct1cFT1xVs5Int321ySd_S_", - key.offset: 4066, + key.offset: 3983, key.length: 29, key.fully_annotated_decl: "init(x: Int32, y: Double)", key.entities: [ @@ -7511,14 +7427,14 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "x", key.name: "x", - key.offset: 4076, + key.offset: 3993, key.length: 5 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "y", key.name: "y", - key.offset: 4088, + key.offset: 4005, key.length: 6 } ] @@ -7529,7 +7445,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.struct, key.name: "FooStruct2", key.usr: "c:@S@FooStruct2", - key.offset: 4098, + key.offset: 4015, key.length: 105, key.fully_annotated_decl: "struct FooStruct2", key.entities: [ @@ -7537,7 +7453,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "x", key.usr: "c:@S@FooStruct2@FI@x", - key.offset: 4123, + key.offset: 4040, key.length: 12, key.fully_annotated_decl: "var x: Int32" }, @@ -7545,7 +7461,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "y", key.usr: "c:@S@FooStruct2@FI@y", - key.offset: 4141, + key.offset: 4058, key.length: 13, key.fully_annotated_decl: "var y: Double" }, @@ -7553,7 +7469,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.constructor, key.name: "init()", key.usr: "s:FVSC10FooStruct2cFT_S_", - key.offset: 4160, + key.offset: 4077, key.length: 6, key.fully_annotated_decl: "init()" }, @@ -7561,7 +7477,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.constructor, key.name: "init(x:y:)", key.usr: "s:FVSC10FooStruct2cFT1xVs5Int321ySd_S_", - key.offset: 4172, + key.offset: 4089, key.length: 29, key.fully_annotated_decl: "init(x: Int32, y: Double)", key.entities: [ @@ -7569,14 +7485,14 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "x", key.name: "x", - key.offset: 4182, + key.offset: 4099, key.length: 5 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "y", key.name: "y", - key.offset: 4194, + key.offset: 4111, key.length: 6 } ] @@ -7587,7 +7503,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.typealias, key.name: "FooStructTypedef1", key.usr: "c:Foo.h@T@FooStructTypedef1", - key.offset: 4204, + key.offset: 4121, key.length: 40, key.fully_annotated_decl: "typealias FooStructTypedef1 = FooStruct2" }, @@ -7595,7 +7511,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.struct, key.name: "FooStructTypedef2", key.usr: "c:@SA@FooStructTypedef2", - key.offset: 4245, + key.offset: 4162, key.length: 112, key.fully_annotated_decl: "struct FooStructTypedef2", key.entities: [ @@ -7603,7 +7519,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "x", key.usr: "c:@SA@FooStructTypedef2@FI@x", - key.offset: 4277, + key.offset: 4194, key.length: 12, key.fully_annotated_decl: "var x: Int32" }, @@ -7611,7 +7527,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "y", key.usr: "c:@SA@FooStructTypedef2@FI@y", - key.offset: 4295, + key.offset: 4212, key.length: 13, key.fully_annotated_decl: "var y: Double" }, @@ -7619,7 +7535,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.constructor, key.name: "init()", key.usr: "s:FVSC17FooStructTypedef2cFT_S_", - key.offset: 4314, + key.offset: 4231, key.length: 6, key.fully_annotated_decl: "init()" }, @@ -7627,7 +7543,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.constructor, key.name: "init(x:y:)", key.usr: "s:FVSC17FooStructTypedef2cFT1xVs5Int321ySd_S_", - key.offset: 4326, + key.offset: 4243, key.length: 29, key.fully_annotated_decl: "init(x: Int32, y: Double)", key.entities: [ @@ -7635,14 +7551,14 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "x", key.name: "x", - key.offset: 4336, + key.offset: 4253, key.length: 5 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "y", key.name: "y", - key.offset: 4348, + key.offset: 4265, key.length: 6 } ] @@ -7654,7 +7570,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "FooTypedef1", key.usr: "c:Foo.h@T@FooTypedef1", key.doc.full_as_xml: "FooTypedef1c:Foo.h@T@FooTypedef1typealias FooTypedef1 = Int32 Aaa. FooTypedef1. Bbb.", - key.offset: 4358, + key.offset: 4275, key.length: 29, key.fully_annotated_decl: "typealias FooTypedef1 = Int32" }, @@ -7663,7 +7579,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "fooIntVar", key.usr: "c:@fooIntVar", key.doc.full_as_xml: "fooIntVarc:@fooIntVarvar fooIntVar: Int32 Aaa. fooIntVar. Bbb.", - key.offset: 4388, + key.offset: 4305, key.length: 20, key.fully_annotated_decl: "var fooIntVar: Int32" }, @@ -7672,7 +7588,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "fooFunc1(_:)", key.usr: "c:@F@fooFunc1", key.doc.full_as_xml: "fooFunc1c:@F@fooFunc1func fooFunc1(a: Int32) -> Int32 Aaa. fooFunc1. Bbb.", - key.offset: 4409, + key.offset: 4326, key.length: 34, key.fully_annotated_decl: "func fooFunc1(a: Int32) -> Int32", key.entities: [ @@ -7680,7 +7596,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "a", - key.offset: 4428, + key.offset: 4345, key.length: 5 } ] @@ -7689,14 +7605,14 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.free, key.name: "fooFunc1AnonymousParam(_:)", key.usr: "c:@F@fooFunc1AnonymousParam", - key.offset: 4444, + key.offset: 4361, key.length: 48, key.fully_annotated_decl: "func fooFunc1AnonymousParam(_: Int32) -> Int32", key.entities: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", - key.offset: 4477, + key.offset: 4394, key.length: 5 } ] @@ -7705,7 +7621,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.free, key.name: "fooFunc3(_:_:_:_:)", key.usr: "c:@F@fooFunc3", - key.offset: 4493, + key.offset: 4410, key.length: 93, key.fully_annotated_decl: "func fooFunc3(a: Int32, _ b: Float, _ c: Double, _ d: UnsafeMutablePointer<Int32>) -> Int32", key.entities: [ @@ -7713,28 +7629,28 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "a", - key.offset: 4512, + key.offset: 4429, key.length: 5 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "b", - key.offset: 4524, + key.offset: 4441, key.length: 5 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "c", - key.offset: 4536, + key.offset: 4453, key.length: 6 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "d", - key.offset: 4549, + key.offset: 4466, key.length: 27 } ] @@ -7743,7 +7659,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.free, key.name: "fooFuncWithBlock(_:)", key.usr: "c:@F@fooFuncWithBlock", - key.offset: 4587, + key.offset: 4504, key.length: 49, key.fully_annotated_decl: "func fooFuncWithBlock(blk: ((Float) -> Int32)!)", key.entities: [ @@ -7751,7 +7667,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "blk", - key.offset: 4616, + key.offset: 4533, key.length: 19 } ] @@ -7760,7 +7676,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.free, key.name: "fooFuncWithFunctionPointer(_:)", key.usr: "c:@F@fooFuncWithFunctionPointer", - key.offset: 4637, + key.offset: 4554, key.length: 60, key.fully_annotated_decl: "func fooFuncWithFunctionPointer(fptr: ((Float) -> Int32)!)", key.entities: [ @@ -7768,7 +7684,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "fptr", - key.offset: 4677, + key.offset: 4594, key.length: 19 } ] @@ -7777,7 +7693,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.free, key.name: "fooFuncNoreturn1()", key.usr: "c:@F@fooFuncNoreturn1", - key.offset: 4698, + key.offset: 4615, key.length: 33, key.fully_annotated_decl: "@noreturn func fooFuncNoreturn1()" }, @@ -7785,7 +7701,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.free, key.name: "fooFuncNoreturn2()", key.usr: "c:@F@fooFuncNoreturn2", - key.offset: 4732, + key.offset: 4649, key.length: 33, key.fully_annotated_decl: "@noreturn func fooFuncNoreturn2()" }, @@ -7794,7 +7710,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "fooFuncWithComment1()", key.usr: "c:@F@fooFuncWithComment1", key.doc.full_as_xml: "fooFuncWithComment1c:@F@fooFuncWithComment1func fooFuncWithComment1() Aaa. fooFuncWithComment1. Bbb. Ccc. Ddd.", - key.offset: 4766, + key.offset: 4683, key.length: 26, key.fully_annotated_decl: "func fooFuncWithComment1()" }, @@ -7803,7 +7719,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "fooFuncWithComment2()", key.usr: "c:@F@fooFuncWithComment2", key.doc.full_as_xml: "fooFuncWithComment2c:@F@fooFuncWithComment2func fooFuncWithComment2() Aaa. fooFuncWithComment2. Bbb.", - key.offset: 4793, + key.offset: 4710, key.length: 26, key.fully_annotated_decl: "func fooFuncWithComment2()" }, @@ -7812,7 +7728,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "fooFuncWithComment3()", key.usr: "c:@F@fooFuncWithComment3", key.doc.full_as_xml: "fooFuncWithComment3c:@F@fooFuncWithComment3func fooFuncWithComment3() Aaa. fooFuncWithComment3. Bbb. Ccc.", - key.offset: 4820, + key.offset: 4737, key.length: 26, key.fully_annotated_decl: "func fooFuncWithComment3()" }, @@ -7821,7 +7737,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "fooFuncWithComment4()", key.usr: "c:@F@fooFuncWithComment4", key.doc.full_as_xml: "fooFuncWithComment4c:@F@fooFuncWithComment4func fooFuncWithComment4() Aaa. fooFuncWithComment4. Bbb. Ddd.", - key.offset: 4847, + key.offset: 4764, key.length: 26, key.fully_annotated_decl: "func fooFuncWithComment4()" }, @@ -7830,7 +7746,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "fooFuncWithComment5()", key.usr: "c:@F@fooFuncWithComment5", key.doc.full_as_xml: "fooFuncWithComment5c:@F@fooFuncWithComment5func fooFuncWithComment5() Aaa. fooFuncWithComment5. Bbb. Ccc. Ddd.", - key.offset: 4874, + key.offset: 4791, key.length: 26, key.fully_annotated_decl: "func fooFuncWithComment5()" }, @@ -7839,7 +7755,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "redeclaredInMultipleModulesFunc1(_:)", key.usr: "c:@F@redeclaredInMultipleModulesFunc1", key.doc.full_as_xml: "redeclaredInMultipleModulesFunc1c:@F@redeclaredInMultipleModulesFunc1func redeclaredInMultipleModulesFunc1(a: Int32) -> Int32 Aaa. redeclaredInMultipleModulesFunc1. Bbb.", - key.offset: 4901, + key.offset: 4818, key.length: 58, key.fully_annotated_decl: "func redeclaredInMultipleModulesFunc1(a: Int32) -> Int32", key.entities: [ @@ -7847,7 +7763,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "a", - key.offset: 4944, + key.offset: 4861, key.length: 5 } ] @@ -7857,7 +7773,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "FooProtocolBase", key.usr: "c:objc(pl)FooProtocolBase", key.doc.full_as_xml: "FooProtocolBasec:objc(pl)FooProtocolBaseprotocol FooProtocolBase Aaa. FooProtocolBase. Bbb.", - key.offset: 4960, + key.offset: 4877, key.length: 301, key.fully_annotated_decl: "protocol FooProtocolBase", key.entities: [ @@ -7866,7 +7782,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "fooProtoFunc()", key.usr: "c:objc(pl)FooProtocolBase(im)fooProtoFunc", key.doc.full_as_xml: "fooProtoFuncc:objc(pl)FooProtocolBase(im)fooProtoFuncfunc fooProtoFunc() Aaa. fooProtoFunc. Bbb. Ccc.", - key.offset: 4992, + key.offset: 4909, key.length: 19, key.fully_annotated_decl: "func fooProtoFunc()" }, @@ -7875,7 +7791,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "fooProtoFuncWithExtraIndentation1()", key.usr: "c:objc(pl)FooProtocolBase(im)fooProtoFuncWithExtraIndentation1", key.doc.full_as_xml: "fooProtoFuncWithExtraIndentation1c:objc(pl)FooProtocolBase(im)fooProtoFuncWithExtraIndentation1func fooProtoFuncWithExtraIndentation1() Aaa. fooProtoFuncWithExtraIndentation1. Bbb. Ccc.", - key.offset: 5017, + key.offset: 4934, key.length: 40, key.fully_annotated_decl: "func fooProtoFuncWithExtraIndentation1()" }, @@ -7884,7 +7800,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "fooProtoFuncWithExtraIndentation2()", key.usr: "c:objc(pl)FooProtocolBase(im)fooProtoFuncWithExtraIndentation2", key.doc.full_as_xml: "fooProtoFuncWithExtraIndentation2c:objc(pl)FooProtocolBase(im)fooProtoFuncWithExtraIndentation2func fooProtoFuncWithExtraIndentation2() Aaa. fooProtoFuncWithExtraIndentation2. Bbb. Ccc.", - key.offset: 5063, + key.offset: 4980, key.length: 40, key.fully_annotated_decl: "func fooProtoFuncWithExtraIndentation2()" }, @@ -7892,7 +7808,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.static, key.name: "fooProtoClassFunc()", key.usr: "c:objc(pl)FooProtocolBase(cm)fooProtoClassFunc", - key.offset: 5109, + key.offset: 5026, key.length: 31, key.fully_annotated_decl: "static func fooProtoClassFunc()" }, @@ -7900,7 +7816,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "fooProperty1", key.usr: "c:objc(pl)FooProtocolBase(py)fooProperty1", - key.offset: 5146, + key.offset: 5063, key.length: 35, key.fully_annotated_decl: "var fooProperty1: Int32 { get set }" }, @@ -7908,7 +7824,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "fooProperty2", key.usr: "c:objc(pl)FooProtocolBase(py)fooProperty2", - key.offset: 5187, + key.offset: 5104, key.length: 35, key.fully_annotated_decl: "var fooProperty2: Int32 { get set }" }, @@ -7916,7 +7832,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "fooProperty3", key.usr: "c:objc(pl)FooProtocolBase(py)fooProperty3", - key.offset: 5228, + key.offset: 5145, key.length: 31, key.fully_annotated_decl: "var fooProperty3: Int32 { get }" } @@ -7926,7 +7842,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.protocol, key.name: "FooProtocolDerived", key.usr: "c:objc(pl)FooProtocolDerived", - key.offset: 5262, + key.offset: 5179, key.length: 49, key.fully_annotated_decl: "protocol FooProtocolDerived : FooProtocolBase", key.conforms: [ @@ -7941,7 +7857,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.class, key.name: "FooClassBase", key.usr: "c:objc(cs)FooClassBase", - key.offset: 5312, + key.offset: 5229, key.length: 422, key.fully_annotated_decl: "class FooClassBase", key.entities: [ @@ -7949,7 +7865,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "fooBaseInstanceFunc0()", key.usr: "c:objc(cs)FooClassBase(im)fooBaseInstanceFunc0", - key.offset: 5338, + key.offset: 5255, key.length: 27, key.fully_annotated_decl: "func fooBaseInstanceFunc0()" }, @@ -7957,7 +7873,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "fooBaseInstanceFunc1(_:)", key.usr: "c:objc(cs)FooClassBase(im)fooBaseInstanceFunc1:", - key.offset: 5371, + key.offset: 5288, key.length: 66, key.fully_annotated_decl: "func fooBaseInstanceFunc1(anObject: AnyObject!) -> FooClassBase!", key.entities: [ @@ -7965,7 +7881,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "anObject", - key.offset: 5409, + key.offset: 5326, key.length: 10 } ] @@ -7974,7 +7890,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.constructor, key.name: "init()", key.usr: "c:objc(cs)FooClassBase(im)init", - key.offset: 5443, + key.offset: 5360, key.length: 7, key.fully_annotated_decl: "init!()" }, @@ -7982,7 +7898,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.constructor, key.name: "init(float:)", key.usr: "c:objc(cs)FooClassBase(im)initWithFloat:", - key.offset: 5456, + key.offset: 5373, key.length: 33, key.fully_annotated_decl: "convenience init!(float f: Float)", key.entities: [ @@ -7990,7 +7906,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "float", key.name: "f", - key.offset: 5483, + key.offset: 5400, key.length: 5 } ] @@ -7999,7 +7915,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "fooBaseInstanceFuncOverridden()", key.usr: "c:objc(cs)FooClassBase(im)fooBaseInstanceFuncOverridden", - key.offset: 5495, + key.offset: 5412, key.length: 36, key.fully_annotated_decl: "func fooBaseInstanceFuncOverridden()" }, @@ -8007,7 +7923,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.class, key.name: "fooBaseClassFunc0()", key.usr: "c:objc(cs)FooClassBase(cm)fooBaseClassFunc0", - key.offset: 5537, + key.offset: 5454, key.length: 30, key.fully_annotated_decl: "class func fooBaseClassFunc0()" }, @@ -8015,7 +7931,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "_internalMeth3()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth3", - key.offset: 5573, + key.offset: 5490, key.length: 35, key.fully_annotated_decl: "func _internalMeth3() -> AnyObject!" }, @@ -8023,7 +7939,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "_internalMeth2()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth2", - key.offset: 5614, + key.offset: 5531, key.length: 35, key.fully_annotated_decl: "func _internalMeth2() -> AnyObject!" }, @@ -8031,7 +7947,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "nonInternalMeth()", key.usr: "c:objc(cs)FooClassBase(im)nonInternalMeth", - key.offset: 5655, + key.offset: 5572, key.length: 36, key.fully_annotated_decl: "func nonInternalMeth() -> AnyObject!" }, @@ -8039,7 +7955,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "_internalMeth1()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth1", - key.offset: 5697, + key.offset: 5614, key.length: 35, key.fully_annotated_decl: "func _internalMeth1() -> AnyObject!" } @@ -8050,7 +7966,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "FooClassDerived", key.usr: "c:objc(cs)FooClassDerived", key.doc.full_as_xml: "FooClassDerivedc:objc(cs)FooClassDerivedclass FooClassDerived : FooClassBase, FooProtocolDerived Aaa. FooClassDerived. Bbb.", - key.offset: 5735, + key.offset: 5652, key.length: 517, key.fully_annotated_decl: "class FooClassDerived : FooClassBase, FooProtocolDerived", key.inherits: [ @@ -8072,7 +7988,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "fooProperty1", key.usr: "c:objc(cs)FooClassDerived(py)fooProperty1", - key.offset: 5799, + key.offset: 5716, key.length: 23, key.fully_annotated_decl: "var fooProperty1: Int32 { get set }" }, @@ -8080,7 +7996,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "fooProperty2", key.usr: "c:objc(cs)FooClassDerived(py)fooProperty2", - key.offset: 5828, + key.offset: 5745, key.length: 23, key.fully_annotated_decl: "var fooProperty2: Int32 { get set }" }, @@ -8088,7 +8004,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "fooProperty3", key.usr: "c:objc(cs)FooClassDerived(py)fooProperty3", - key.offset: 5857, + key.offset: 5774, key.length: 31, key.fully_annotated_decl: "var fooProperty3: Int32 { get }" }, @@ -8096,7 +8012,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "fooInstanceFunc0()", key.usr: "c:objc(cs)FooClassDerived(im)fooInstanceFunc0", - key.offset: 5894, + key.offset: 5811, key.length: 23, key.fully_annotated_decl: "func fooInstanceFunc0()" }, @@ -8104,7 +8020,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "fooInstanceFunc1(_:)", key.usr: "c:objc(cs)FooClassDerived(im)fooInstanceFunc1:", - key.offset: 5923, + key.offset: 5840, key.length: 33, key.fully_annotated_decl: "func fooInstanceFunc1(a: Int32)", key.entities: [ @@ -8112,7 +8028,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "a", - key.offset: 5950, + key.offset: 5867, key.length: 5 } ] @@ -8121,7 +8037,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "fooInstanceFunc2(_:withB:)", key.usr: "c:objc(cs)FooClassDerived(im)fooInstanceFunc2:withB:", - key.offset: 5962, + key.offset: 5879, key.length: 49, key.fully_annotated_decl: "func fooInstanceFunc2(a: Int32, withB b: Int32)", key.entities: [ @@ -8129,14 +8045,14 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "a", - key.offset: 5989, + key.offset: 5906, key.length: 5 }, { key.kind: source.lang.swift.decl.var.local, key.keyword: "withB", key.name: "b", - key.offset: 6005, + key.offset: 5922, key.length: 5 } ] @@ -8145,7 +8061,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "fooBaseInstanceFuncOverridden()", key.usr: "c:objc(cs)FooClassDerived(im)fooBaseInstanceFuncOverridden", - key.offset: 6017, + key.offset: 5934, key.length: 36, key.fully_annotated_decl: "func fooBaseInstanceFuncOverridden()", key.inherits: [ @@ -8160,7 +8076,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.class, key.name: "fooClassFunc0()", key.usr: "c:objc(cs)FooClassDerived(cm)fooClassFunc0", - key.offset: 6059, + key.offset: 5976, key.length: 26, key.fully_annotated_decl: "class func fooClassFunc0()" }, @@ -8169,7 +8085,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "_internalMeth3()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth3::SYNTHESIZED::c:objc(cs)FooClassDerived", key.original_usr: "c:objc(cs)FooClassBase(im)_internalMeth3", - key.offset: 6091, + key.offset: 6008, key.length: 35, key.fully_annotated_decl: "func _internalMeth3() -> AnyObject!" }, @@ -8178,7 +8094,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "_internalMeth2()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth2::SYNTHESIZED::c:objc(cs)FooClassDerived", key.original_usr: "c:objc(cs)FooClassBase(im)_internalMeth2", - key.offset: 6132, + key.offset: 6049, key.length: 35, key.fully_annotated_decl: "func _internalMeth2() -> AnyObject!" }, @@ -8187,7 +8103,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "nonInternalMeth()", key.usr: "c:objc(cs)FooClassBase(im)nonInternalMeth::SYNTHESIZED::c:objc(cs)FooClassDerived", key.original_usr: "c:objc(cs)FooClassBase(im)nonInternalMeth", - key.offset: 6173, + key.offset: 6090, key.length: 36, key.fully_annotated_decl: "func nonInternalMeth() -> AnyObject!" }, @@ -8196,7 +8112,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "_internalMeth1()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth1::SYNTHESIZED::c:objc(cs)FooClassDerived", key.original_usr: "c:objc(cs)FooClassBase(im)_internalMeth1", - key.offset: 6215, + key.offset: 6132, key.length: 35, key.fully_annotated_decl: "func _internalMeth1() -> AnyObject!" } @@ -8206,7 +8122,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FOO_MACRO_1", key.usr: "c:Foo.h@3647@macro@FOO_MACRO_1", - key.offset: 6253, + key.offset: 6170, key.length: 30, key.fully_annotated_decl: "var FOO_MACRO_1: Int32 { get }" }, @@ -8214,7 +8130,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FOO_MACRO_2", key.usr: "c:Foo.h@3669@macro@FOO_MACRO_2", - key.offset: 6284, + key.offset: 6201, key.length: 30, key.fully_annotated_decl: "var FOO_MACRO_2: Int32 { get }" }, @@ -8222,7 +8138,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FOO_MACRO_3", key.usr: "c:Foo.h@3691@macro@FOO_MACRO_3", - key.offset: 6315, + key.offset: 6232, key.length: 30, key.fully_annotated_decl: "var FOO_MACRO_3: Int32 { get }" }, @@ -8230,7 +8146,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FOO_MACRO_4", key.usr: "c:Foo.h@3755@macro@FOO_MACRO_4", - key.offset: 6346, + key.offset: 6263, key.length: 31, key.fully_annotated_decl: "var FOO_MACRO_4: UInt32 { get }" }, @@ -8238,7 +8154,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FOO_MACRO_5", key.usr: "c:Foo.h@3787@macro@FOO_MACRO_5", - key.offset: 6378, + key.offset: 6295, key.length: 31, key.fully_annotated_decl: "var FOO_MACRO_5: UInt64 { get }" }, @@ -8246,7 +8162,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FOO_MACRO_REDEF_1", key.usr: "c:Foo.h@3937@macro@FOO_MACRO_REDEF_1", - key.offset: 6410, + key.offset: 6327, key.length: 36, key.fully_annotated_decl: "var FOO_MACRO_REDEF_1: Int32 { get }" }, @@ -8254,7 +8170,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FOO_MACRO_REDEF_2", key.usr: "c:Foo.h@3994@macro@FOO_MACRO_REDEF_2", - key.offset: 6447, + key.offset: 6364, key.length: 36, key.fully_annotated_decl: "var FOO_MACRO_REDEF_2: Int32 { get }" }, @@ -8262,7 +8178,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.free, key.name: "theLastDeclInFoo()", key.usr: "c:@F@theLastDeclInFoo", - key.offset: 6484, + key.offset: 6401, key.length: 23, key.fully_annotated_decl: "func theLastDeclInFoo()" }, @@ -8270,7 +8186,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.free, key.name: "_internalTopLevelFunc()", key.usr: "c:@F@_internalTopLevelFunc", - key.offset: 6508, + key.offset: 6425, key.length: 28, key.fully_annotated_decl: "func _internalTopLevelFunc()" }, @@ -8278,7 +8194,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.struct, key.name: "_InternalStruct", key.usr: "c:@S@_InternalStruct", - key.offset: 6537, + key.offset: 6454, key.length: 78, key.fully_annotated_decl: "struct _InternalStruct", key.entities: [ @@ -8286,7 +8202,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "x", key.usr: "c:@S@_InternalStruct@FI@x", - key.offset: 6567, + key.offset: 6484, key.length: 12, key.fully_annotated_decl: "var x: Int32" }, @@ -8294,7 +8210,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.constructor, key.name: "init()", key.usr: "s:FVSC15_InternalStructcFT_S_", - key.offset: 6585, + key.offset: 6502, key.length: 6, key.fully_annotated_decl: "init()" }, @@ -8302,7 +8218,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.constructor, key.name: "init(x:)", key.usr: "s:FVSC15_InternalStructcFT1xVs5Int32_S_", - key.offset: 6597, + key.offset: 6514, key.length: 16, key.fully_annotated_decl: "init(x: Int32)", key.entities: [ @@ -8310,7 +8226,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "x", key.name: "x", - key.offset: 6607, + key.offset: 6524, key.length: 5 } ] @@ -8319,7 +8235,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } }, { key.kind: source.lang.swift.decl.extension.class, - key.offset: 6616, + key.offset: 6533, key.length: 67, key.extends: { key.kind: source.lang.swift.ref.class, @@ -8331,7 +8247,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "_internalMeth1()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth1", - key.offset: 6646, + key.offset: 6563, key.length: 35, key.fully_annotated_decl: "func _internalMeth1() -> AnyObject!" } @@ -8339,7 +8255,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } }, { key.kind: source.lang.swift.decl.extension.class, - key.offset: 6684, + key.offset: 6601, key.length: 109, key.extends: { key.kind: source.lang.swift.ref.class, @@ -8351,7 +8267,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "_internalMeth2()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth2", - key.offset: 6714, + key.offset: 6631, key.length: 35, key.fully_annotated_decl: "func _internalMeth2() -> AnyObject!" }, @@ -8359,7 +8275,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "nonInternalMeth()", key.usr: "c:objc(cs)FooClassBase(im)nonInternalMeth", - key.offset: 6755, + key.offset: 6672, key.length: 36, key.fully_annotated_decl: "func nonInternalMeth() -> AnyObject!" } @@ -8367,7 +8283,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } }, { key.kind: source.lang.swift.decl.extension.class, - key.offset: 6794, + key.offset: 6711, key.length: 67, key.extends: { key.kind: source.lang.swift.ref.class, @@ -8379,7 +8295,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "_internalMeth3()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth3", - key.offset: 6824, + key.offset: 6741, key.length: 35, key.fully_annotated_decl: "func _internalMeth3() -> AnyObject!" } @@ -8389,7 +8305,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.protocol, key.name: "_InternalProt", key.usr: "c:objc(pl)_InternalProt", - key.offset: 6862, + key.offset: 6779, key.length: 26, key.fully_annotated_decl: "protocol _InternalProt" }, @@ -8397,7 +8313,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.class, key.name: "ClassWithInternalProt", key.usr: "c:objc(cs)ClassWithInternalProt", - key.offset: 6889, + key.offset: 6806, key.length: 47, key.fully_annotated_decl: "class ClassWithInternalProt : _InternalProt", key.conforms: [ @@ -8412,7 +8328,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.class, key.name: "FooClassPropertyOwnership", key.usr: "c:objc(cs)FooClassPropertyOwnership", - key.offset: 6937, + key.offset: 6854, key.length: 478, key.fully_annotated_decl: "class FooClassPropertyOwnership : FooClassBase", key.inherits: [ @@ -8427,7 +8343,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "assignable", key.usr: "c:objc(cs)FooClassPropertyOwnership(py)assignable", - key.offset: 6991, + key.offset: 6908, key.length: 42, key.fully_annotated_decl: "unowned(unsafe) var assignable: AnyObject! { get set }" }, @@ -8435,7 +8351,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "unsafeAssignable", key.usr: "c:objc(cs)FooClassPropertyOwnership(py)unsafeAssignable", - key.offset: 7039, + key.offset: 6956, key.length: 48, key.fully_annotated_decl: "unowned(unsafe) var unsafeAssignable: AnyObject! { get set }" }, @@ -8443,7 +8359,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "retainable", key.usr: "c:objc(cs)FooClassPropertyOwnership(py)retainable", - key.offset: 7093, + key.offset: 7010, key.length: 26, key.fully_annotated_decl: "var retainable: AnyObject! { get set }" }, @@ -8451,7 +8367,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "strongRef", key.usr: "c:objc(cs)FooClassPropertyOwnership(py)strongRef", - key.offset: 7125, + key.offset: 7042, key.length: 25, key.fully_annotated_decl: "var strongRef: AnyObject! { get set }" }, @@ -8459,7 +8375,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "copyable", key.usr: "c:objc(cs)FooClassPropertyOwnership(py)copyable", - key.offset: 7156, + key.offset: 7073, key.length: 35, key.fully_annotated_decl: "@NSCopying var copyable: AnyObject! { get set }" }, @@ -8467,7 +8383,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "weakRef", key.usr: "c:objc(cs)FooClassPropertyOwnership(py)weakRef", - key.offset: 7197, + key.offset: 7114, key.length: 28, key.fully_annotated_decl: "weak var weakRef: AnyObject! { get set }" }, @@ -8475,7 +8391,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "scalar", key.usr: "c:objc(cs)FooClassPropertyOwnership(py)scalar", - key.offset: 7231, + key.offset: 7148, key.length: 17, key.fully_annotated_decl: "var scalar: Int32 { get set }" }, @@ -8484,7 +8400,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "_internalMeth3()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth3::SYNTHESIZED::c:objc(cs)FooClassPropertyOwnership", key.original_usr: "c:objc(cs)FooClassBase(im)_internalMeth3", - key.offset: 7254, + key.offset: 7171, key.length: 35, key.fully_annotated_decl: "func _internalMeth3() -> AnyObject!" }, @@ -8493,7 +8409,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "_internalMeth2()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth2::SYNTHESIZED::c:objc(cs)FooClassPropertyOwnership", key.original_usr: "c:objc(cs)FooClassBase(im)_internalMeth2", - key.offset: 7295, + key.offset: 7212, key.length: 35, key.fully_annotated_decl: "func _internalMeth2() -> AnyObject!" }, @@ -8502,7 +8418,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "nonInternalMeth()", key.usr: "c:objc(cs)FooClassBase(im)nonInternalMeth::SYNTHESIZED::c:objc(cs)FooClassPropertyOwnership", key.original_usr: "c:objc(cs)FooClassBase(im)nonInternalMeth", - key.offset: 7336, + key.offset: 7253, key.length: 36, key.fully_annotated_decl: "func nonInternalMeth() -> AnyObject!" }, @@ -8511,7 +8427,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "_internalMeth1()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth1::SYNTHESIZED::c:objc(cs)FooClassPropertyOwnership", key.original_usr: "c:objc(cs)FooClassBase(im)_internalMeth1", - key.offset: 7378, + key.offset: 7295, key.length: 35, key.fully_annotated_decl: "func _internalMeth1() -> AnyObject!" } @@ -8521,7 +8437,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.class, key.name: "FooUnavailableMembers", key.usr: "c:objc(cs)FooUnavailableMembers", - key.offset: 7416, + key.offset: 7333, key.length: 661, key.fully_annotated_decl: "class FooUnavailableMembers : FooClassBase", key.inherits: [ @@ -8536,7 +8452,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.constructor, key.name: "init(int:)", key.usr: "c:objc(cs)FooUnavailableMembers(cm)unavailableMembersWithInt:", - key.offset: 7466, + key.offset: 7383, key.length: 31, key.fully_annotated_decl: "convenience init!(int i: Int32)", key.entities: [ @@ -8544,7 +8460,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "int", key.name: "i", - key.offset: 7491, + key.offset: 7408, key.length: 5 } ] @@ -8553,7 +8469,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.class, key.name: "withInt(_:)", key.usr: "c:objc(cs)FooUnavailableMembers(cm)unavailableMembersWithInt:", - key.offset: 7503, + key.offset: 7420, key.length: 39, key.fully_annotated_decl: "class func withInt(i: Int32) -> Self!", key.entities: [ @@ -8561,7 +8477,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "i", - key.offset: 7527, + key.offset: 7444, key.length: 5 } ], @@ -8578,7 +8494,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "unavailable()", key.usr: "c:objc(cs)FooUnavailableMembers(im)unavailable", - key.offset: 7548, + key.offset: 7465, key.length: 18, key.fully_annotated_decl: "func unavailable()", key.attributes: [ @@ -8594,7 +8510,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "swiftUnavailable()", key.usr: "c:objc(cs)FooUnavailableMembers(im)swiftUnavailable", - key.offset: 7572, + key.offset: 7489, key.length: 23, key.fully_annotated_decl: "func swiftUnavailable()", key.attributes: [ @@ -8609,7 +8525,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "deprecated()", key.usr: "c:objc(cs)FooUnavailableMembers(im)deprecated", - key.offset: 7601, + key.offset: 7518, key.length: 17, key.fully_annotated_decl: "func deprecated()", key.attributes: [ @@ -8625,7 +8541,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "availabilityIntroduced()", key.usr: "c:objc(cs)FooUnavailableMembers(im)availabilityIntroduced", - key.offset: 7624, + key.offset: 7541, key.length: 29, key.fully_annotated_decl: "func availabilityIntroduced()", key.attributes: [ @@ -8640,7 +8556,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "availabilityDeprecated()", key.usr: "c:objc(cs)FooUnavailableMembers(im)availabilityDeprecated", - key.offset: 7659, + key.offset: 7576, key.length: 29, key.fully_annotated_decl: "func availabilityDeprecated()", key.attributes: [ @@ -8659,7 +8575,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "availabilityObsoleted()", key.usr: "c:objc(cs)FooUnavailableMembers(im)availabilityObsoleted", - key.offset: 7694, + key.offset: 7611, key.length: 28, key.fully_annotated_decl: "func availabilityObsoleted()", key.attributes: [ @@ -8675,7 +8591,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "availabilityUnavailable()", key.usr: "c:objc(cs)FooUnavailableMembers(im)availabilityUnavailable", - key.offset: 7728, + key.offset: 7645, key.length: 30, key.fully_annotated_decl: "func availabilityUnavailable()", key.attributes: [ @@ -8691,7 +8607,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "availabilityIntroducedMsg()", key.usr: "c:objc(cs)FooUnavailableMembers(im)availabilityIntroducedMsg", - key.offset: 7764, + key.offset: 7681, key.length: 32, key.fully_annotated_decl: "func availabilityIntroducedMsg()", key.attributes: [ @@ -8707,7 +8623,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "availabilityDeprecatedMsg()", key.usr: "c:objc(cs)FooUnavailableMembers(im)availabilityDeprecatedMsg", - key.offset: 7802, + key.offset: 7719, key.length: 32, key.fully_annotated_decl: "func availabilityDeprecatedMsg()", key.attributes: [ @@ -8726,7 +8642,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "availabilityObsoletedMsg()", key.usr: "c:objc(cs)FooUnavailableMembers(im)availabilityObsoletedMsg", - key.offset: 7840, + key.offset: 7757, key.length: 31, key.fully_annotated_decl: "func availabilityObsoletedMsg()", key.attributes: [ @@ -8743,7 +8659,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.method.instance, key.name: "availabilityUnavailableMsg()", key.usr: "c:objc(cs)FooUnavailableMembers(im)availabilityUnavailableMsg", - key.offset: 7877, + key.offset: 7794, key.length: 33, key.fully_annotated_decl: "func availabilityUnavailableMsg()", key.attributes: [ @@ -8761,7 +8677,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "_internalMeth3()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth3::SYNTHESIZED::c:objc(cs)FooUnavailableMembers", key.original_usr: "c:objc(cs)FooClassBase(im)_internalMeth3", - key.offset: 7916, + key.offset: 7833, key.length: 35, key.fully_annotated_decl: "func _internalMeth3() -> AnyObject!" }, @@ -8770,7 +8686,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "_internalMeth2()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth2::SYNTHESIZED::c:objc(cs)FooUnavailableMembers", key.original_usr: "c:objc(cs)FooClassBase(im)_internalMeth2", - key.offset: 7957, + key.offset: 7874, key.length: 35, key.fully_annotated_decl: "func _internalMeth2() -> AnyObject!" }, @@ -8779,7 +8695,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "nonInternalMeth()", key.usr: "c:objc(cs)FooClassBase(im)nonInternalMeth::SYNTHESIZED::c:objc(cs)FooUnavailableMembers", key.original_usr: "c:objc(cs)FooClassBase(im)nonInternalMeth", - key.offset: 7998, + key.offset: 7915, key.length: 36, key.fully_annotated_decl: "func nonInternalMeth() -> AnyObject!" }, @@ -8788,7 +8704,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.name: "_internalMeth1()", key.usr: "c:objc(cs)FooClassBase(im)_internalMeth1::SYNTHESIZED::c:objc(cs)FooUnavailableMembers", key.original_usr: "c:objc(cs)FooClassBase(im)_internalMeth1", - key.offset: 8040, + key.offset: 7957, key.length: 35, key.fully_annotated_decl: "func _internalMeth1() -> AnyObject!" } @@ -8798,7 +8714,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.typealias, key.name: "FooCFTypeRef", key.usr: "c:Foo.h@T@FooCFTypeRef", - key.offset: 8078, + key.offset: 7995, key.length: 38, key.fully_annotated_decl: "typealias FooCFTypeRef = OpaquePointer" }, @@ -8806,14 +8722,14 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.free, key.name: "FooCFTypeRelease(_:)", key.usr: "c:@F@FooCFTypeRelease", - key.offset: 8117, + key.offset: 8034, key.length: 40, key.fully_annotated_decl: "func FooCFTypeRelease(_: FooCFTypeRef)", key.entities: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", - key.offset: 8144, + key.offset: 8061, key.length: 12 } ] @@ -8822,7 +8738,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.free, key.name: "fooSubFunc1(_:)", key.usr: "c:@F@fooSubFunc1", - key.offset: 8158, + key.offset: 8075, key.length: 37, key.fully_annotated_decl: "func fooSubFunc1(a: Int32) -> Int32", key.entities: [ @@ -8830,7 +8746,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "a", - key.offset: 8180, + key.offset: 8097, key.length: 5 } ] @@ -8839,7 +8755,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.struct, key.name: "FooSubEnum1", key.usr: "c:@E@FooSubEnum1", - key.offset: 8196, + key.offset: 8113, key.length: 145, key.fully_annotated_decl: "struct FooSubEnum1 : RawRepresentable, Equatable", key.conforms: [ @@ -8859,7 +8775,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.constructor, key.name: "init(_:)", key.usr: "s:FVSC11FooSubEnum1cFVs6UInt32S_", - key.offset: 8252, + key.offset: 8169, key.length: 24, key.fully_annotated_decl: "init(_ rawValue: UInt32)", key.entities: [ @@ -8867,7 +8783,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "rawValue", - key.offset: 8269, + key.offset: 8186, key.length: 6 } ] @@ -8876,7 +8792,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.function.constructor, key.name: "init(rawValue:)", key.usr: "s:FVSC11FooSubEnum1cFT8rawValueVs6UInt32_S_", - key.offset: 8282, + key.offset: 8199, key.length: 31, key.fully_annotated_decl: "init(rawValue: UInt32)", key.conforms: [ @@ -8891,7 +8807,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "rawValue", key.name: "rawValue", - key.offset: 8306, + key.offset: 8223, key.length: 6 } ] @@ -8900,7 +8816,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.instance, key.name: "rawValue", key.usr: "s:vVSC11FooSubEnum18rawValueVs6UInt32", - key.offset: 8319, + key.offset: 8236, key.length: 20, key.fully_annotated_decl: "var rawValue: UInt32", key.conforms: [ @@ -8917,7 +8833,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FooSubEnum1X", key.usr: "c:@E@FooSubEnum1@FooSubEnum1X", - key.offset: 8342, + key.offset: 8259, key.length: 37, key.fully_annotated_decl: "var FooSubEnum1X: FooSubEnum1 { get }" }, @@ -8925,7 +8841,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FooSubEnum1Y", key.usr: "c:@E@FooSubEnum1@FooSubEnum1Y", - key.offset: 8380, + key.offset: 8297, key.length: 37, key.fully_annotated_decl: "var FooSubEnum1Y: FooSubEnum1 { get }" }, @@ -8933,7 +8849,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.global, key.name: "FooSubUnnamedEnumeratorA1", key.usr: "c:FooSub.h@Ea@FooSubUnnamedEnumeratorA1", - key.offset: 8418, + key.offset: 8335, key.length: 42, key.fully_annotated_decl: "var FooSubUnnamedEnumeratorA1: Int { get }" } diff --git a/validation-test/stdlib/Set.swift b/validation-test/stdlib/Set.swift index fd51d2cf05a96..df94383718139 100644 --- a/validation-test/stdlib/Set.swift +++ b/validation-test/stdlib/Set.swift @@ -545,8 +545,8 @@ SetTestSuite.test("COW.Slow.InsertDoesNotReallocate") { expectEqual(identity1, unsafeBitCast(s1, to: Int.self)) expectEqual(identity1, unsafeBitCast(s2, to: Int.self)) - // Insert a redundant element. - s2.insert(TestKeyTy(2020)) + // Replace a redundant element. + s2.update(with: TestKeyTy(2020)) expectEqual(identity1, unsafeBitCast(s1, to: Int.self)) expectNotEqual(identity1, unsafeBitCast(s2, to: Int.self)) @@ -800,11 +800,11 @@ SetTestSuite.test("COW.Fast.UnionInPlaceSmallSetDoesNotReallocate") { let identity1 = unsafeBitCast(s1, to: Int.self) // Adding the empty set should obviously not allocate - s1.unionInPlace(Set()) + s1.formUnion(Set()) expectEqual(identity1, unsafeBitCast(s1, to: Int.self)) // adding a small set shouldn't cause a reallocation - s1.unionInPlace(s2) + s1.formUnion(s2) expectEqual(s1, s3) expectEqual(identity1, unsafeBitCast(s1, to: Int.self)) } @@ -2683,16 +2683,16 @@ SetTestSuite.test("init(arrayLiteral:)") { SetTestSuite.test("isSubsetOf.Set.Set") { let s1 = Set([1010, 2020, 3030, 4040, 5050, 6060]) let s2 = Set([1010, 2020, 3030]) - expectTrue(Set().isSubsetOf(s1)) - expectFalse(s1.isSubsetOf(Set())) - expectTrue(s1.isSubsetOf(s1)) - expectTrue(s2.isSubsetOf(s1)) + expectTrue(Set().isSubset(of: s1)) + expectFalse(s1.isSubset(of: Set())) + expectTrue(s1.isSubset(of: s1)) + expectTrue(s2.isSubset(of: s1)) } SetTestSuite.test("⊆.Set.Set") { let s1 = Set([1010, 2020, 3030, 4040, 5050, 6060]) let s2 = Set([1010, 2020, 3030]) - expectTrue(Set().isSubsetOf(s1)) + expectTrue(Set().isSubset(of: s1)) expectFalse(s1 ⊆ Set()) expectTrue(s1 ⊆ s1) expectTrue(s2 ⊆ s1) @@ -2710,15 +2710,15 @@ SetTestSuite.test("⊈.Set.Set") { SetTestSuite.test("isSubsetOf.Set.Sequence") { let s1 = Set([1010, 2020, 3030, 4040, 5050, 6060]) let s2 = AnySequence([1010, 2020, 3030]) - expectTrue(Set().isSubsetOf(s1)) - expectFalse(s1.isSubsetOf(Set())) - expectTrue(s1.isSubsetOf(s1)) + expectTrue(Set().isSubset(of: s1)) + expectFalse(s1.isSubset(of: Set())) + expectTrue(s1.isSubset(of: s1)) } SetTestSuite.test("⊆.Set.Sequence") { let s1 = Set([1010, 2020, 3030, 4040, 5050, 6060]) let s2 = AnySequence([1010, 2020, 3030]) - expectTrue(Set().isSubsetOf(s1)) + expectTrue(Set().isSubset(of: s1)) expectFalse(s1 ⊆ Set()) expectTrue(s1 ⊆ s1) } @@ -2734,9 +2734,9 @@ SetTestSuite.test("⊈.Set.Sequence") { SetTestSuite.test("isStrictSubsetOf.Set.Set") { let s1 = Set([1010, 2020, 3030, 4040, 5050, 6060]) let s2 = Set([1010, 2020, 3030]) - expectTrue(Set().isStrictSubsetOf(s1)) - expectFalse(s1.isStrictSubsetOf(Set())) - expectFalse(s1.isStrictSubsetOf(s1)) + expectTrue(Set().isStrictSubset(of: s1)) + expectFalse(s1.isStrictSubset(of: Set())) + expectFalse(s1.isStrictSubset(of: s1)) } SetTestSuite.test("⊂.Set.Set") { @@ -2758,9 +2758,9 @@ SetTestSuite.test("⊄.Set.Set") { SetTestSuite.test("isStrictSubsetOf.Set.Sequence") { let s1 = Set([1010, 2020, 3030, 4040, 5050, 6060]) let s2 = AnySequence([1010, 2020, 3030]) - expectTrue(Set().isStrictSubsetOf(s1)) - expectFalse(s1.isStrictSubsetOf(Set())) - expectFalse(s1.isStrictSubsetOf(s1)) + expectTrue(Set().isStrictSubset(of: s1)) + expectFalse(s1.isStrictSubset(of: Set())) + expectFalse(s1.isStrictSubset(of: s1)) } SetTestSuite.test("⊂.Set.Sequence") { @@ -2782,11 +2782,11 @@ SetTestSuite.test("⊄.Set.Sequence") { SetTestSuite.test("isSupersetOf.Set.Set") { let s1 = Set([1010, 2020, 3030, 4040, 5050, 6060]) let s2 = Set([1010, 2020, 3030]) - expectTrue(s1.isSupersetOf(Set())) - expectFalse(Set().isSupersetOf(s1)) - expectTrue(s1.isSupersetOf(s1)) - expectTrue(s1.isSupersetOf(s2)) - expectFalse(Set().isSupersetOf(s1)) + expectTrue(s1.isSuperset(of: Set())) + expectFalse(Set().isSuperset(of: s1)) + expectTrue(s1.isSuperset(of: s1)) + expectTrue(s1.isSuperset(of: s2)) + expectFalse(Set().isSuperset(of: s1)) } SetTestSuite.test("⊇.Set.Set") { @@ -2812,11 +2812,11 @@ SetTestSuite.test("⊉.Set.Set") { SetTestSuite.test("isSupersetOf.Set.Sequence") { let s1 = Set([1010, 2020, 3030, 4040, 5050, 6060]) let s2 = AnySequence([1010, 2020, 3030]) - expectTrue(s1.isSupersetOf(Set())) - expectFalse(Set().isSupersetOf(s1)) - expectTrue(s1.isSupersetOf(s1)) - expectTrue(s1.isSupersetOf(s2)) - expectFalse(Set().isSupersetOf(s1)) + expectTrue(s1.isSuperset(of: Set())) + expectFalse(Set().isSuperset(of: s1)) + expectTrue(s1.isSuperset(of: s1)) + expectTrue(s1.isSuperset(of: s2)) + expectFalse(Set().isSuperset(of: s1)) } SetTestSuite.test("⊇.Set.Sequence") { @@ -2842,10 +2842,10 @@ SetTestSuite.test("⊉.Set.Sequence") { SetTestSuite.test("strictSuperset.Set.Set") { let s1 = Set([1010, 2020, 3030, 4040, 5050, 6060]) let s2 = Set([1010, 2020, 3030]) - expectTrue(s1.isStrictSupersetOf(Set())) - expectFalse(Set().isStrictSupersetOf(s1)) - expectFalse(s1.isStrictSupersetOf(s1)) - expectTrue(s1.isStrictSupersetOf(s2)) + expectTrue(s1.isStrictSuperset(of: Set())) + expectFalse(Set().isStrictSuperset(of: s1)) + expectFalse(s1.isStrictSuperset(of: s1)) + expectTrue(s1.isStrictSuperset(of: s2)) } SetTestSuite.test("⊃.Set.Set") { @@ -2869,10 +2869,10 @@ SetTestSuite.test("⊅.Set.Set") { SetTestSuite.test("strictSuperset.Set.Sequence") { let s1 = Set([1010, 2020, 3030, 4040, 5050, 6060]) let s2 = AnySequence([1010, 2020, 3030]) - expectTrue(s1.isStrictSupersetOf(Set())) - expectFalse(Set().isStrictSupersetOf(s1)) - expectFalse(s1.isStrictSupersetOf(s1)) - expectTrue(s1.isStrictSupersetOf(s2)) + expectTrue(s1.isStrictSuperset(of: Set())) + expectFalse(Set().isStrictSuperset(of: s1)) + expectFalse(s1.isStrictSuperset(of: s1)) + expectTrue(s1.isStrictSuperset(of: s2)) } SetTestSuite.test("⊃.Set.Sequence") { @@ -2939,29 +2939,65 @@ SetTestSuite.test("isDisjointWith.Set.Set") { let s1 = Set([1010, 2020, 3030, 4040, 5050, 6060]) let s2 = Set([1010, 2020, 3030]) let s3 = Set([7070, 8080, 9090]) - expectTrue(s1.isDisjointWith(s3)) - expectFalse(s1.isDisjointWith(s2)) - expectTrue(Set().isDisjointWith(s1)) - expectTrue(Set().isDisjointWith(Set())) + expectTrue(s1.isDisjoint(with: s3)) + expectFalse(s1.isDisjoint(with: s2)) + expectTrue(Set().isDisjoint(with: s1)) + expectTrue(Set().isDisjoint(with: Set())) } SetTestSuite.test("isDisjointWith.Set.Sequence") { let s1 = Set([1010, 2020, 3030, 4040, 5050, 6060]) let s2 = AnySequence([1010, 2020, 3030]) let s3 = AnySequence([7070, 8080, 9090]) - expectTrue(s1.isDisjointWith(s3)) - expectFalse(s1.isDisjointWith(s2)) - expectTrue(Set().isDisjointWith(s1)) - expectTrue(Set().isDisjointWith(Set())) + expectTrue(s1.isDisjoint(with: s3)) + expectFalse(s1.isDisjoint(with: s2)) + expectTrue(Set().isDisjoint(with: s1)) + expectTrue(Set().isDisjoint(with: Set())) } SetTestSuite.test("insert") { // These are anagrams - they should amount to the same sets. - var s1 = Set([1010, 2020, 3030]) + var s1 = Set([1010, 2020, 3030]) - let identity1 = unsafeBitCast(s1, to: Int.self) + let fortyForty: TestKeyTy = 4040 + do { + // Inserting an element that isn't present + let (inserted, currentMember) = s1.insert(fortyForty) + expectTrue(inserted) + expectTrue(currentMember === fortyForty) + } + + do { + // Inserting an element that is already present + let (inserted, currentMember) = s1.insert(4040) + expectFalse(inserted) + expectTrue(currentMember === fortyForty) + } + + expectEqual(4, s1.count) + expectTrue(s1.contains(1010)) + expectTrue(s1.contains(2020)) + expectTrue(s1.contains(3030)) + expectTrue(s1.contains(4040)) +} - s1.insert(4040) +SetTestSuite.test("replace") { + // These are anagrams - they should amount to the same sets. + var s1 = Set([1010, 2020, 3030]) + + let fortyForty: TestKeyTy = 4040 + do { + // Replacing an element that isn't present + let oldMember = s1.update(with: fortyForty) + expectEmpty(oldMember) + } + + do { + // Replacing an element that is already present + let oldMember = s1.update(with: 4040) + expectTrue(oldMember === fortyForty) + } + expectEqual(4, s1.count) expectTrue(s1.contains(1010)) expectTrue(s1.contains(2020)) @@ -3021,7 +3057,7 @@ SetTestSuite.test("∪") { expectEqual(s1, Set() ∪ s1) } -SetTestSuite.test("unionInPlace") { +SetTestSuite.test("formUnion") { // These are anagrams - they should amount to the same sets. var s1 = Set("the morse code".characters) let s2 = Set("here come dots".characters) @@ -3029,15 +3065,15 @@ SetTestSuite.test("unionInPlace") { let identity1 = unsafeBitCast(s1, to: Int.self) - s1.unionInPlace("".characters) + s1.formUnion("".characters) expectEqual(identity1, unsafeBitCast(s1, to: Int.self)) expectEqual(s1, s2) - s1.unionInPlace(s2) + s1.formUnion(s2) expectEqual(s1, s2) expectEqual(identity1, unsafeBitCast(s1, to: Int.self)) - s1.unionInPlace(s3) + s1.formUnion(s3) expectNotEqual(s1, s2) expectEqual(identity1, unsafeBitCast(s1, to: Int.self)) } @@ -3072,20 +3108,20 @@ SetTestSuite.test("subtract") { // Subtracting a disjoint set should not create a // unique reference - let s4 = s1.subtract(s2) + let s4 = s1.subtracting(s2) expectEqual(s1, s4) expectEqual(identity1, unsafeBitCast(s1, to: Int.self)) expectEqual(identity1, unsafeBitCast(s4, to: Int.self)) // Subtracting a superset will leave the set empty - let s5 = s1.subtract(s3) + let s5 = s1.subtracting(s3) expectTrue(s5.isEmpty) expectEqual(identity1, unsafeBitCast(s1, to: Int.self)) expectNotEqual(identity1, unsafeBitCast(s5, to: Int.self)) // Subtracting the empty set does nothing - expectEqual(s1, s1.subtract(Set())) - expectEqual(Set(), Set().subtract(s1)) + expectEqual(s1, s1.subtracting(Set())) + expectEqual(Set(), Set().subtracting(s1)) expectEqual(identity1, unsafeBitCast(s1, to: Int.self)) } @@ -3115,17 +3151,17 @@ SetTestSuite.test("∖") { expectEqual(identity1, unsafeBitCast(s1, to: Int.self)) } -SetTestSuite.test("subtractInPlace") { +SetTestSuite.test("subtract") { var s1 = Set([1010, 2020, 3030, 4040, 5050, 6060]) let s2 = Set([1010, 2020, 3030]) let s3 = Set([4040, 5050, 6060]) let identity1 = unsafeBitCast(s1, to: Int.self) - s1.subtractInPlace(Set()) + s1.subtract(Set()) expectEqual(identity1, unsafeBitCast(s1, to: Int.self)) - s1.subtractInPlace(s3) + s1.subtract(s3) expectEqual(identity1, unsafeBitCast(s1, to: Int.self)) expectEqual(s1, s2) @@ -3157,15 +3193,15 @@ SetTestSuite.test("intersect") { let identity1 = unsafeBitCast(s1, to: Int.self) expectEqual(Set([1010, 2020, 3030]), - Set([1010, 2020, 3030]).intersect(Set([1010, 2020, 3030])) as Set) + Set([1010, 2020, 3030]).intersection(Set([1010, 2020, 3030])) as Set) expectEqual(identity1, unsafeBitCast(s1, to: Int.self)) - expectEqual(s1, s1.intersect(s3)) + expectEqual(s1, s1.intersection(s3)) expectEqual(identity1, unsafeBitCast(s1, to: Int.self)) - expectEqual(Set(), Set().intersect(Set())) - expectEqual(Set(), s1.intersect(Set())) - expectEqual(Set(), Set().intersect(s1)) + expectEqual(Set(), Set().intersection(Set())) + expectEqual(Set(), s1.intersection(Set())) + expectEqual(Set(), Set().intersection(s1)) } SetTestSuite.test("∩") { @@ -3187,30 +3223,30 @@ SetTestSuite.test("∩") { expectEqual(Set(), Set() ∩ s1) } -SetTestSuite.test("intersectInPlace") { +SetTestSuite.test("formIntersection") { var s1 = Set([1010, 2020, 3030]) let s2 = Set([4040, 5050, 6060]) var s3 = Set([1010, 2020, 3030, 4040, 5050, 6060]) var s4 = Set([1010, 2020, 3030]) let identity1 = unsafeBitCast(s1, to: Int.self) - s1.intersectInPlace(s4) + s1.formIntersection(s4) expectEqual(s1, s4) expectEqual(identity1, unsafeBitCast(s1, to: Int.self)) - s4.intersectInPlace(s2) + s4.formIntersection(s2) expectEqual(Set(), s4) let identity2 = unsafeBitCast(s3, to: Int.self) - s3.intersectInPlace(s2) + s3.formIntersection(s2) expectEqual(s3, s2) - expectTrue(s1.isDisjointWith(s3)) + expectTrue(s1.isDisjoint(with: s3)) expectNotEqual(identity1, unsafeBitCast(s3, to: Int.self)) var s5 = Set() - s5.intersectInPlace(s5) + s5.formIntersection(s5) expectEqual(s5, Set()) - s5.intersectInPlace(s1) + s5.formIntersection(s1) expectEqual(s5, Set()) } @@ -3231,7 +3267,7 @@ SetTestSuite.test("∩=") { let identity2 = unsafeBitCast(s3, to: Int.self) s3 ∩= s2 expectEqual(s3, s2) - expectTrue(s1.isDisjointWith(s3)) + expectTrue(s1.isDisjoint(with: s3)) expectNotEqual(identity1, unsafeBitCast(s3, to: Int.self)) var s5 = Set() @@ -3241,7 +3277,7 @@ SetTestSuite.test("∩=") { expectEqual(s5, Set()) } -SetTestSuite.test("exclusiveOr") { +SetTestSuite.test("symmetricDifference") { // Overlap with 4040, 5050, 6060 let s1 = Set([1010, 2020, 3030, 4040, 5050, 6060]) @@ -3252,19 +3288,19 @@ SetTestSuite.test("exclusiveOr") { let identity1 = unsafeBitCast(s1, to: Int.self) - let s3 = s1.exclusiveOr(s2) + let s3 = s1.symmetricDifference(s2) expectEqual(identity1, unsafeBitCast(s1, to: Int.self)) expectEqual(s3, result) - expectEqual(s1.exclusiveOr(s2), - s1.union(s2).intersect(universe.subtract(s1.intersect(s2)))) + expectEqual(s1.symmetricDifference(s2), + s1.union(s2).intersection(universe.subtracting(s1.intersection(s2)))) - expectEqual(s1.exclusiveOr(s2), - s1.intersect(universe.subtract(s2)).union(universe.subtract(s1).intersect(s2))) + expectEqual(s1.symmetricDifference(s2), + s1.intersection(universe.subtracting(s2)).union(universe.subtracting(s1).intersection(s2))) - expectTrue(s1.exclusiveOr(s1).isEmpty) + expectTrue(s1.symmetricDifference(s1).isEmpty) } SetTestSuite.test("⨁") { @@ -3293,7 +3329,7 @@ SetTestSuite.test("⨁") { expectTrue((s1 ⨁ s1).isEmpty) } -SetTestSuite.test("exclusiveOrInPlace") { +SetTestSuite.test("formSymmetricDifference") { // Overlap with 4040, 5050, 6060 var s1 = Set([1010, 2020, 3030, 4040, 5050, 6060]) let s2 = Set([1010]) @@ -3301,7 +3337,7 @@ SetTestSuite.test("exclusiveOrInPlace") { // s1 ⨁ s2 == result let identity1 = unsafeBitCast(s1, to: Int.self) - s1.exclusiveOrInPlace(s2) + s1.formSymmetricDifference(s2) // Removing just one element shouldn't cause an identity change expectEqual(identity1, unsafeBitCast(s1, to: Int.self)) @@ -3309,7 +3345,7 @@ SetTestSuite.test("exclusiveOrInPlace") { expectEqual(s1, result) // A ⨁ A == {} - s1.exclusiveOrInPlace(s1) + s1.formSymmetricDifference(s1) expectTrue(s1.isEmpty) // Removing all elements should cause an identity change @@ -3347,23 +3383,27 @@ SetTestSuite.test("removeFirst") { expectFalse(s1.contains(a1)) expectTrue(s2.contains(a1)) expectNotEqual(unsafeBitCast(s1, to: Int.self), unsafeBitCast(s2, to: Int.self)) - expectTrue(s1.isSubsetOf(s2)) + expectTrue(s1.isSubset(of: s2)) expectEmpty(empty.first) } SetTestSuite.test("remove(member)") { - let s1 = Set([1010, 2020, 3030]) - var s2 = Set(minimumCapacity: 10) + let s1 : Set = [1010, 2020, 3030] + var s2 = Set(minimumCapacity: 10) for i in [1010, 2020, 3030] { - s2.insert(i) + s2.insert(TestKeyTy(i)) } - let identity1 = unsafeBitCast(s2, to: Int.self) - s2.remove(4040) + + // remove something that's not there. + let fortyForty = s2.remove(4040) expectEqual(s2, s1) + expectEmpty(fortyForty) expectEqual(identity1, unsafeBitCast(s2, to: Int.self)) - s2.remove(3030) + // Remove things that are there. + let thirtyThirty = s2.remove(3030) + expectEqual(3030, thirtyThirty) expectEqual(identity1, unsafeBitCast(s2, to: Int.self)) s2.remove(2020) @@ -3371,7 +3411,7 @@ SetTestSuite.test("remove(member)") { s2.remove(1010) expectEqual(identity1, unsafeBitCast(s2, to: Int.self)) - expectEqual(Set(), s2) + expectEqual(Set(), s2) expectTrue(s2.isEmpty) } @@ -3576,7 +3616,7 @@ SetTestSuite.test("_customIndexOfEquatableElement") { SetTestSuite.test("commutative") { let s1 = Set([1010, 2020, 3030]) let s2 = Set([2020, 3030]) - expectTrue(equalsUnordered(s1.intersect(s2), s2.intersect(s1))) + expectTrue(equalsUnordered(s1.intersection(s2), s2.intersection(s1))) expectTrue(equalsUnordered(s1.union(s2), s2.union(s1))) } @@ -3587,8 +3627,8 @@ SetTestSuite.test("associative") { let s4 = Set([2020, 3030]) let s5 = Set([7070, 8080, 9090]) - expectTrue(equalsUnordered(s1.intersect(s2).intersect(s3), - s1.intersect(s2.intersect(s3)))) + expectTrue(equalsUnordered(s1.intersection(s2).intersection(s3), + s1.intersection(s2.intersection(s3)))) expectTrue(equalsUnordered(s3.union(s4).union(s5), s3.union(s4.union(s5)))) } @@ -3596,17 +3636,17 @@ SetTestSuite.test("distributive") { let s1 = Set([1010]) let s2 = Set([1010, 2020, 3030, 4040, 5050, 6060]) let s3 = Set([2020, 3030]) - expectTrue(equalsUnordered(s1.union(s2.intersect(s3)), - s1.union(s2).intersect(s1.union(s3)))) + expectTrue(equalsUnordered(s1.union(s2.intersection(s3)), + s1.union(s2).intersection(s1.union(s3)))) let s4 = Set([2020, 3030]) - expectTrue(equalsUnordered(s4.intersect(s1.union(s3)), - s4.intersect(s1).union(s4.intersect(s3)))) + expectTrue(equalsUnordered(s4.intersection(s1.union(s3)), + s4.intersection(s1).union(s4.intersection(s3)))) } SetTestSuite.test("idempotent") { let s1 = Set([1010, 2020, 3030, 4040, 5050, 6060]) - expectTrue(equalsUnordered(s1, s1.intersect(s1))) + expectTrue(equalsUnordered(s1, s1.intersection(s1))) expectTrue(equalsUnordered(s1, s1.union(s1))) } @@ -3614,8 +3654,8 @@ SetTestSuite.test("absorption") { let s1 = Set([1010, 2020, 3030]) let s2 = Set([4040, 5050, 6060]) let s3 = Set([2020, 3030]) - expectTrue(equalsUnordered(s1, s1.union(s1.intersect(s2)))) - expectTrue(equalsUnordered(s1, s1.intersect(s1.union(s3)))) + expectTrue(equalsUnordered(s1, s1.union(s1.intersection(s2)))) + expectTrue(equalsUnordered(s1, s1.intersection(s1.union(s3)))) } SetTestSuite.test("misc") {