diff --git a/lib/IDE/IDETypeChecking.cpp b/lib/IDE/IDETypeChecking.cpp index 6f9793d1408ec..7b768a363f590 100644 --- a/lib/IDE/IDETypeChecking.cpp +++ b/lib/IDE/IDETypeChecking.cpp @@ -277,22 +277,17 @@ struct SynthesizedExtensionAnalyzer::Implementation { using MergeGroupVector = std::vector; NominalTypeDecl *Target; - Type BaseType; DeclContext *DC; bool IncludeUnconditional; PrintOptions Options; MergeGroupVector AllGroups; ExtensionInfoMap InfoMap; - Implementation(NominalTypeDecl *Target, - bool IncludeUnconditional, - PrintOptions &&Options): - Target(Target), - BaseType(Target->getDeclaredInterfaceType()), - DC(Target), - IncludeUnconditional(IncludeUnconditional), - Options(std::move(Options)), AllGroups(MergeGroupVector()), - InfoMap(collectSynthesizedExtensionInfo(AllGroups)) {} + Implementation(NominalTypeDecl *Target, bool IncludeUnconditional, + PrintOptions &&Options) + : Target(Target), DC(Target), IncludeUnconditional(IncludeUnconditional), + Options(std::move(Options)), AllGroups(MergeGroupVector()), + InfoMap(collectSynthesizedExtensionInfo(AllGroups)) {} unsigned countInherits(ExtensionDecl *ED) { SmallVector Results; @@ -316,19 +311,24 @@ struct SynthesizedExtensionAnalyzer::Implementation { // extension SomeType: SomeProtocol where T: SomeProtocol {}. The former is // Ext and the latter is EnablingExt/Conf. Either of these can be // conditional in ways that need to be considered when merging. - auto conformanceIsConditional = - Conf && !Conf->getConditionalRequirements().empty(); - if (!Ext->isConstrainedExtension() && !conformanceIsConditional) { + auto isConditionalEnablingExt = + Conf && EnablingExt && !Conf->getConditionalRequirements().empty(); + if (!Ext->isConstrainedExtension() && !isConditionalEnablingExt) { if (IncludeUnconditional) Result.Ext = Ext; return {Result, MergeInfo}; } - auto handleRequirements = [&](SubstitutionMap subMap, - ExtensionDecl *OwningExt, + auto handleRequirements = [&](ExtensionDecl *OwningExt, ArrayRef Reqs) { - ProtocolDecl *BaseProto = OwningExt->getInnermostDeclContext() - ->getSelfProtocolDecl(); + ProtocolDecl *BaseProto = OwningExt->getSelfProtocolDecl(); + // Substitute the base conforming type into a protocol's generic signature + // if needed. + SubstitutionMap subMap; + if (Conf && BaseProto) { + subMap = SubstitutionMap::getProtocolSubstitutions( + ProtocolConformanceRef(Conf)); + } for (auto Req : Reqs) { // Skip protocol's Self : requirement. if (BaseProto && @@ -337,10 +337,13 @@ struct SynthesizedExtensionAnalyzer::Implementation { Req.getProtocolDecl() == BaseProto) continue; - if (!BaseType->isExistentialType()) { + if (subMap) { // Apply any substitutions we need to map the requirements from a - // a protocol extension to an extension on the conforming type. - Req = Req.subst(subMap); + // a protocol extension to an extension on the conforming type. We + // need to lookup conformances outside of the substitution map since + // the extension may introduce new conformance constraints. + Req = Req.subst(QuerySubstitutionMap{subMap}, + LookUpConformanceInModule()); if (Req.hasError()) { // Substitution with interface type bases can only fail // if a concrete type fails to conform to a protocol. @@ -353,6 +356,14 @@ struct SynthesizedExtensionAnalyzer::Implementation { if (Req.getKind() != RequirementKind::Layout) assert(!Req.getSecondType()->hasArchetype()); + // FIXME: This doesn't correctly handle conformance requirements, e.g: + // + // extension P where X: Q, X.Y == Int {} + // + // Since the archetype we have for `X` doesn't necessarily have a + // conformance to `Q` in the conforming type's generic environment. This + // results in a substitution failure for `X.Y`. + // https://github.com/swiftlang/swift/issues/83564 auto *env = Target->getGenericEnvironment(); SmallVector subReqs; subReqs.push_back( @@ -385,30 +396,14 @@ struct SynthesizedExtensionAnalyzer::Implementation { }; if (Ext->isConstrainedExtension()) { - // Get the substitutions from the generic signature of - // the extension to the interface types of the base type's - // declaration. - SubstitutionMap subMap; - if (!BaseType->isExistentialType()) { - if (auto *NTD = Ext->getExtendedNominal()) - subMap = BaseType->getContextSubstitutionMap(NTD); - } - assert(Ext->getGenericSignature() && "No generic signature."); auto GenericSig = Ext->getGenericSignature(); - if (handleRequirements(subMap, Ext, GenericSig.getRequirements())) + if (handleRequirements(Ext, GenericSig.getRequirements())) return {Result, MergeInfo}; } - if (Conf) { - SubstitutionMap subMap; - if (!BaseType->isExistentialType()) { - if (auto *NTD = EnablingExt->getExtendedNominal()) - subMap = BaseType->getContextSubstitutionMap(NTD); - } - if (handleRequirements(subMap, - EnablingExt, - Conf->getConditionalRequirements())) + if (isConditionalEnablingExt) { + if (handleRequirements(EnablingExt, Conf->getConditionalRequirements())) return {Result, MergeInfo}; } @@ -479,7 +474,6 @@ struct SynthesizedExtensionAnalyzer::Implementation { ExtensionInfoMap InfoMap; ExtensionMergeInfoMap MergeInfoMap; - std::vector Unhandled; auto handleExtension = [&](ExtensionDecl *E, bool Synthesized, ExtensionDecl *EnablingE, @@ -500,31 +494,17 @@ struct SynthesizedExtensionAnalyzer::Implementation { } }; - // We want to visit the protocols of any normal conformances we see, but - // we have to avoid doing this to self-conformances or we can end up with - // a cycle. Otherwise this is cycle-proof on valid code. - // We also want to ignore inherited conformances. Members from these will - // be included in the class they were inherited from. - auto addConformance = [&](ProtocolConformance *Conf) { - if (isa(Conf)) - return; - auto RootConf = Conf->getRootConformance(); - if (isa(RootConf)) - Unhandled.push_back(RootConf->getProtocol()); - }; + for (auto *LocalConf : Target->getLocalConformances()) { + if (isa(LocalConf)) + continue; - for (auto *Conf : Target->getLocalConformances()) { - addConformance(Conf); - } - while (!Unhandled.empty()) { - NominalTypeDecl* Back = Unhandled.back(); - Unhandled.pop_back(); - for (ExtensionDecl *E : Back->getExtensions()) { - handleExtension(E, true, nullptr, nullptr); - } - for (auto *Conf : Back->getLocalConformances()) { - addConformance(Conf); - } + auto RootConf = LocalConf->getRootConformance(); + auto *Conf = dyn_cast(RootConf); + if (!Conf) + continue; + + for (auto *E : Conf->getProtocol()->getExtensions()) + handleExtension(E, true, nullptr, Conf); } // Merge with actual extensions. diff --git a/test/IDE/print_synthesized_extensions.swift b/test/IDE/print_synthesized_extensions.swift index 37a0a21d02920..abab4d10c5f1f 100644 --- a/test/IDE/print_synthesized_extensions.swift +++ b/test/IDE/print_synthesized_extensions.swift @@ -241,9 +241,9 @@ extension S13 : P5 { } // CHECK1: extension S1 where T : print_synthesized_extensions.P2 { -// CHECK1-NEXT: public func p2member() // CHECK1-NEXT: public func ef1(t: T) // CHECK1-NEXT: public func ef2(t: print_synthesized_extensions.S2) +// CHECK1-NEXT: public func p2member() // CHECK1-NEXT: } // CHECK2: extension S1 where T : print_synthesized_extensions.P3 { @@ -410,4 +410,4 @@ extension S14 : P14 where repeat each T: Hashable {} // CHECK17: extension S14 { // CHECK17-NEXT: public func fooT>(_: repeat each T) where Pack{repeat each T} : Equatable -// CHECK17-NEXT: } \ No newline at end of file +// CHECK17-NEXT: } diff --git a/test/IDE/print_synthesized_extensions_generics.swift b/test/IDE/print_synthesized_extensions_generics.swift index b7fdbec74ec72..72d2f5bb30309 100644 --- a/test/IDE/print_synthesized_extensions_generics.swift +++ b/test/IDE/print_synthesized_extensions_generics.swift @@ -85,3 +85,21 @@ extension G : P2 {} // CHECK: extension P2 where Self.T.T : print_synthesized_extensions_generics.A { // CHECK-NEXT: func blah() // CHECK-NEXT: } + +public protocol P3 { + associatedtype A +} +public protocol P4 { + associatedtype B: P3 +} + +public struct S1 {} + +// Make sure we don't crash. Unfortunately we don't yet correctly output these +// though. +extension S1: P4 where A: P4, A.B.A == A { + public typealias B = A.B +} +extension P3 where A: P4, A.B.A == A { + public func foo() {} +} diff --git a/test/SourceKit/DocSupport/doc_clang_module.swift.response b/test/SourceKit/DocSupport/doc_clang_module.swift.response index 2b018fe0704bd..2f8ce5e96e1bf 100644 --- a/test/SourceKit/DocSupport/doc_clang_module.swift.response +++ b/test/SourceKit/DocSupport/doc_clang_module.swift.response @@ -84,27 +84,6 @@ struct FooRuncingOptions : OptionSet { @inlinable init(arrayLiteral arrayLiteral: FooRuncingOptions...) } -extension FooRuncingOptions { - - @inlinable init(_ sequence: S) where S : Sequence, FooRuncingOptions == S.Element - - @inlinable mutating func subtract(_ other: FooRuncingOptions) - - @inlinable func isSubset(of other: FooRuncingOptions) -> Bool - - @inlinable func isSuperset(of other: FooRuncingOptions) -> Bool - - @inlinable func isDisjoint(with other: FooRuncingOptions) -> Bool - - @inlinable func subtracting(_ other: FooRuncingOptions) -> FooRuncingOptions - - @inlinable var isEmpty: Bool { get } - - @inlinable func isStrictSuperset(of other: FooRuncingOptions) -> Bool - - @inlinable func isStrictSubset(of other: FooRuncingOptions) -> Bool -} - extension FooRuncingOptions { @inlinable func union(_ other: FooRuncingOptions) -> FooRuncingOptions @@ -139,6 +118,27 @@ extension FooRuncingOptions { @inlinable mutating func formSymmetricDifference(_ other: FooRuncingOptions) } +extension FooRuncingOptions { + + @inlinable init(_ sequence: S) where S : Sequence, FooRuncingOptions == S.Element + + @inlinable mutating func subtract(_ other: FooRuncingOptions) + + @inlinable func isSubset(of other: FooRuncingOptions) -> Bool + + @inlinable func isSuperset(of other: FooRuncingOptions) -> Bool + + @inlinable func isDisjoint(with other: FooRuncingOptions) -> Bool + + @inlinable func subtracting(_ other: FooRuncingOptions) -> FooRuncingOptions + + @inlinable var isEmpty: Bool { get } + + @inlinable func isStrictSuperset(of other: FooRuncingOptions) -> Bool + + @inlinable func isStrictSubset(of other: FooRuncingOptions) -> Bool +} + struct FooStruct1 { init() @@ -1581,784 +1581,775 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.length: 4 }, { - key.kind: source.lang.swift.ref.generic_type_param, - key.name: "S", - key.usr: "s:s10SetAlgebraPsEyxqd__ncSTRd__7ElementQyd__ACRtzlufc1SL_qd__mfp", + key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 1836, - key.length: 1 + key.length: 5 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 1839, + key.offset: 1842, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 1841, - key.length: 8 - }, - { - key.kind: source.lang.swift.ref.generic_type_param, - key.name: "S", - key.usr: "s:s10SetAlgebraPsEyxqd__ncSTRd__7ElementQyd__ACRtzlufc1SL_qd__mfp", - key.offset: 1851, - key.length: 1 - }, - { - key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1854, + key.offset: 1844, key.length: 5 }, - { - key.kind: source.lang.swift.ref.generic_type_param, - key.name: "S", - key.usr: "s:s10SetAlgebraPsEyxqd__ncSTRd__7ElementQyd__ACRtzlufc1SL_qd__mfp", - key.offset: 1860, - key.length: 1 - }, - { - key.kind: source.lang.swift.ref.protocol, - key.name: "Sequence", - key.usr: "s:ST", - key.offset: 1864, - key.length: 8 - }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 1874, + key.offset: 1851, key.length: 17 }, { - key.kind: source.lang.swift.syntaxtype.operator, - key.offset: 1892, - key.length: 2 - }, - { - key.kind: source.lang.swift.ref.generic_type_param, - key.name: "S", - key.usr: "s:s10SetAlgebraPsEyxqd__ncSTRd__7ElementQyd__ACRtzlufc1SL_qd__mfp", - key.offset: 1895, - key.length: 1 - }, - { - key.kind: source.lang.swift.ref.associatedtype, - key.name: "Element", - key.usr: "s:ST7ElementQa", - key.offset: 1897, - key.length: 7 + key.kind: source.lang.swift.ref.struct, + key.name: "FooRuncingOptions", + key.usr: "c:@E@FooRuncingOptions", + key.offset: 1873, + key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 1910, + key.offset: 1896, key.length: 10 }, - { - key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 1921, - key.length: 8 - }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1930, + key.offset: 1907, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1935, - key.length: 8 + key.offset: 1912, + key.length: 12 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 1944, + key.offset: 1925, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 1946, + key.offset: 1927, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 1953, + key.offset: 1934, + key.length: 17 + }, + { + key.kind: source.lang.swift.ref.struct, + key.name: "FooRuncingOptions", + key.usr: "c:@E@FooRuncingOptions", + key.offset: 1956, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 1977, + key.offset: 1979, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 1988, + key.offset: 1990, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 1993, - key.length: 8 + key.offset: 1995, + key.length: 19 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2002, - key.length: 2 + key.offset: 2015, + key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2005, + key.offset: 2017, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2012, + key.offset: 2024, key.length: 17 }, { key.kind: source.lang.swift.ref.struct, - key.name: "Bool", - key.usr: "s:Sb", - key.offset: 2034, - key.length: 4 - }, - { - key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2044, - key.length: 10 + key.name: "FooRuncingOptions", + key.usr: "c:@E@FooRuncingOptions", + key.offset: 2046, + key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2055, - key.length: 4 - }, - { - key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2060, - key.length: 10 - }, - { - key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2071, - key.length: 2 - }, - { - key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2074, - key.length: 5 + key.offset: 2067, + key.length: 9 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2081, + key.offset: 2077, key.length: 17 }, - { - key.kind: source.lang.swift.ref.struct, - key.name: "Bool", - key.usr: "s:Sb", - key.offset: 2103, - key.length: 4 - }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2113, + key.offset: 2102, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2124, + key.offset: 2113, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2129, - key.length: 10 + key.offset: 2118, + key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2140, - key.length: 4 + key.offset: 2127, + key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2145, - key.length: 5 + key.offset: 2129, + key.length: 6 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2152, + key.offset: 2137, key.length: 17 }, { key.kind: source.lang.swift.ref.struct, key.name: "Bool", key.usr: "s:Sb", - key.offset: 2174, + key.offset: 2159, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2184, + key.offset: 2169, + key.length: 18 + }, + { + key.kind: source.lang.swift.syntaxtype.attribute.builtin, + key.offset: 2192, key.length: 10 }, + { + key.kind: source.lang.swift.syntaxtype.attribute.builtin, + key.offset: 2203, + key.length: 8 + }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2195, + key.offset: 2212, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2200, - key.length: 11 + key.offset: 2217, + key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2212, + key.offset: 2224, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2214, - key.length: 5 - }, - { - key.kind: source.lang.swift.ref.struct, - key.name: "FooRuncingOptions", - key.usr: "c:@E@FooRuncingOptions", - key.offset: 2221, - key.length: 17 + key.offset: 2226, + key.length: 9 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2243, + key.offset: 2237, key.length: 17 }, { - key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2266, - key.length: 10 + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 2260, + key.length: 8 }, { - key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2277, - key.length: 3 + key.kind: source.lang.swift.ref.struct, + key.name: "Bool", + key.usr: "s:Sb", + key.offset: 2270, + key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2281, - key.length: 7 + key.offset: 2276, + key.length: 17 }, { key.kind: source.lang.swift.ref.struct, - key.name: "Bool", - key.usr: "s:Sb", - key.offset: 2290, - key.length: 4 + key.name: "FooRuncingOptions", + key.usr: "c:@E@FooRuncingOptions", + key.offset: 2295, + key.length: 17 }, { - key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2297, - key.length: 3 + key.kind: source.lang.swift.syntaxtype.attribute.builtin, + key.offset: 2319, + key.length: 18 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2308, + key.offset: 2342, key.length: 10 }, + { + key.kind: source.lang.swift.syntaxtype.attribute.builtin, + key.offset: 2353, + key.length: 8 + }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2319, + key.offset: 2362, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2324, - key.length: 16 + key.offset: 2367, + key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2341, - key.length: 2 + key.offset: 2374, + key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2344, - key.length: 5 + key.offset: 2376, + key.length: 6 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2351, + key.offset: 2384, key.length: 17 }, { key.kind: source.lang.swift.ref.struct, - key.name: "Bool", - key.usr: "s:Sb", - key.offset: 2373, - key.length: 4 + key.name: "FooRuncingOptions", + key.usr: "c:@E@FooRuncingOptions", + key.offset: 2406, + key.length: 17 + }, + { + key.kind: source.lang.swift.syntaxtype.attribute.builtin, + key.offset: 2430, + key.length: 18 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2383, + key.offset: 2453, key.length: 10 }, + { + key.kind: source.lang.swift.syntaxtype.attribute.builtin, + key.offset: 2464, + key.length: 8 + }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2394, + key.offset: 2473, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2399, - key.length: 14 + key.offset: 2478, + key.length: 6 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2414, - key.length: 2 + key.offset: 2485, + key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2417, - key.length: 5 + key.offset: 2490, + key.length: 9 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2424, + key.offset: 2501, key.length: 17 }, { key.kind: source.lang.swift.ref.struct, - key.name: "Bool", - key.usr: "s:Sb", - key.offset: 2446, - key.length: 4 + key.name: "FooRuncingOptions", + key.usr: "c:@E@FooRuncingOptions", + key.offset: 2523, + key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2454, + key.offset: 2545, key.length: 9 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2464, + key.offset: 2555, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2489, + key.offset: 2580, + key.length: 10 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 2591, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.attribute.builtin, + key.offset: 2603, key.length: 10 }, + { + key.kind: source.lang.swift.syntaxtype.attribute.builtin, + key.offset: 2614, + key.length: 8 + }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2500, + key.offset: 2623, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2505, - key.length: 5 + key.offset: 2628, + key.length: 9 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2511, + key.offset: 2638, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2513, + key.offset: 2640, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2520, + key.offset: 2647, key.length: 17 }, { - key.kind: source.lang.swift.ref.struct, - key.name: "FooRuncingOptions", - key.usr: "c:@E@FooRuncingOptions", - key.offset: 2542, - key.length: 17 + key.kind: source.lang.swift.syntaxtype.attribute.builtin, + key.offset: 2671, + key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2565, - key.length: 10 + key.offset: 2682, + key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2576, + key.offset: 2691, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2581, - key.length: 12 + key.offset: 2696, + key.length: 16 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2594, + key.offset: 2713, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2596, + key.offset: 2715, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2603, + key.offset: 2722, key.length: 17 }, { - key.kind: source.lang.swift.ref.struct, - key.name: "FooRuncingOptions", - key.usr: "c:@E@FooRuncingOptions", - key.offset: 2625, - key.length: 17 + key.kind: source.lang.swift.syntaxtype.attribute.builtin, + key.offset: 2746, + key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2648, - key.length: 10 + key.offset: 2757, + key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2659, + key.offset: 2766, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2664, - key.length: 19 + key.offset: 2771, + key.length: 23 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2684, + key.offset: 2795, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2686, + key.offset: 2797, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2693, - key.length: 17 - }, - { - key.kind: source.lang.swift.ref.struct, - key.name: "FooRuncingOptions", - key.usr: "c:@E@FooRuncingOptions", - key.offset: 2715, + key.offset: 2804, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2736, + key.offset: 2826, key.length: 9 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2746, + key.offset: 2836, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2771, + key.offset: 2861, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2782, + key.offset: 2872, key.length: 4 }, { - key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2787, - key.length: 8 + key.kind: source.lang.swift.ref.generic_type_param, + key.name: "S", + key.usr: "s:s10SetAlgebraPsEyxqd__ncSTRd__7ElementQyd__ACRtzlufc1SL_qd__mfp", + key.offset: 2877, + key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2796, + key.offset: 2880, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2798, - key.length: 6 + key.offset: 2882, + key.length: 8 + }, + { + key.kind: source.lang.swift.ref.generic_type_param, + key.name: "S", + key.usr: "s:s10SetAlgebraPsEyxqd__ncSTRd__7ElementQyd__ACRtzlufc1SL_qd__mfp", + key.offset: 2892, + key.length: 1 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 2895, + key.length: 5 + }, + { + key.kind: source.lang.swift.ref.generic_type_param, + key.name: "S", + key.usr: "s:s10SetAlgebraPsEyxqd__ncSTRd__7ElementQyd__ACRtzlufc1SL_qd__mfp", + key.offset: 2901, + key.length: 1 + }, + { + key.kind: source.lang.swift.ref.protocol, + key.name: "Sequence", + key.usr: "s:ST", + key.offset: 2905, + key.length: 8 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2806, + key.offset: 2915, key.length: 17 }, { - key.kind: source.lang.swift.ref.struct, - key.name: "Bool", - key.usr: "s:Sb", - key.offset: 2828, - key.length: 4 + key.kind: source.lang.swift.syntaxtype.operator, + key.offset: 2933, + key.length: 2 }, { - key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2838, - key.length: 18 + key.kind: source.lang.swift.ref.generic_type_param, + key.name: "S", + key.usr: "s:s10SetAlgebraPsEyxqd__ncSTRd__7ElementQyd__ACRtzlufc1SL_qd__mfp", + key.offset: 2936, + key.length: 1 + }, + { + key.kind: source.lang.swift.ref.associatedtype, + key.name: "Element", + key.usr: "s:ST7ElementQa", + key.offset: 2938, + key.length: 7 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2861, + key.offset: 2951, key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2872, + key.offset: 2962, key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 2881, + key.offset: 2971, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2886, - key.length: 6 + key.offset: 2976, + key.length: 8 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 2893, + key.offset: 2985, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 2895, - key.length: 9 + key.offset: 2987, + key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2906, + key.offset: 2994, key.length: 17 }, { - key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2929, - key.length: 8 + key.kind: source.lang.swift.syntaxtype.attribute.builtin, + key.offset: 3018, + key.length: 10 }, { - key.kind: source.lang.swift.ref.struct, - key.name: "Bool", - key.usr: "s:Sb", - key.offset: 2939, + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 3029, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 2945, - key.length: 17 + key.offset: 3034, + key.length: 8 + }, + { + key.kind: source.lang.swift.syntaxtype.argument, + key.offset: 3043, + key.length: 2 + }, + { + key.kind: source.lang.swift.syntaxtype.parameter, + key.offset: 3046, + key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 2964, + key.offset: 3053, key.length: 17 }, { - key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 2988, - key.length: 18 + key.kind: source.lang.swift.ref.struct, + key.name: "Bool", + key.usr: "s:Sb", + key.offset: 3075, + key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 3011, + key.offset: 3085, key.length: 10 }, - { - key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 3022, - key.length: 8 - }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3031, + key.offset: 3096, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3036, - key.length: 6 + key.offset: 3101, + key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3043, - key.length: 1 + key.offset: 3112, + key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3045, - key.length: 6 + key.offset: 3115, + key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 3053, + key.offset: 3122, key.length: 17 }, { key.kind: source.lang.swift.ref.struct, - key.name: "FooRuncingOptions", - key.usr: "c:@E@FooRuncingOptions", - key.offset: 3075, - key.length: 17 - }, - { - key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 3099, - key.length: 18 + key.name: "Bool", + key.usr: "s:Sb", + key.offset: 3144, + key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 3122, + key.offset: 3154, key.length: 10 }, - { - key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 3133, - key.length: 8 - }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3142, + key.offset: 3165, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3147, - key.length: 6 + key.offset: 3170, + key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3154, + key.offset: 3181, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3159, - key.length: 9 - }, - { - key.kind: source.lang.swift.ref.struct, - key.name: "FooRuncingOptions", - key.usr: "c:@E@FooRuncingOptions", - key.offset: 3170, - key.length: 17 + key.offset: 3186, + key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 3192, + key.offset: 3193, key.length: 17 }, - { - key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3214, - key.length: 9 - }, { key.kind: source.lang.swift.ref.struct, - key.name: "FooRuncingOptions", - key.usr: "c:@E@FooRuncingOptions", - key.offset: 3224, - key.length: 17 - }, - { - key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 3249, - key.length: 10 - }, - { - key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3260, + key.name: "Bool", + key.usr: "s:Sb", + key.offset: 3215, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 3272, + key.offset: 3225, key.length: 10 }, - { - key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 3283, - key.length: 8 - }, { key.kind: source.lang.swift.syntaxtype.keyword, - key.offset: 3292, + key.offset: 3236, key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.identifier, - key.offset: 3297, - key.length: 9 + key.offset: 3241, + key.length: 11 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3307, + key.offset: 3253, key.length: 1 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3309, + key.offset: 3255, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 3316, + key.offset: 3262, + key.length: 17 + }, + { + key.kind: source.lang.swift.ref.struct, + key.name: "FooRuncingOptions", + key.usr: "c:@E@FooRuncingOptions", + key.offset: 3284, key.length: 17 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 3340, + key.offset: 3307, key.length: 10 }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 3318, + key.length: 3 + }, + { + key.kind: source.lang.swift.syntaxtype.identifier, + key.offset: 3322, + key.length: 7 + }, + { + key.kind: source.lang.swift.ref.struct, + key.name: "Bool", + key.usr: "s:Sb", + key.offset: 3331, + key.length: 4 + }, + { + key.kind: source.lang.swift.syntaxtype.keyword, + key.offset: 3338, + key.length: 3 + }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 3351, - key.length: 8 + key.offset: 3349, + key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, @@ -2373,29 +2364,31 @@ var FooSubUnnamedEnumeratorA1: Int { get } { key.kind: source.lang.swift.syntaxtype.argument, key.offset: 3382, - key.length: 1 + key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3384, + key.offset: 3385, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 3391, + key.offset: 3392, key.length: 17 }, { - key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 3415, - key.length: 10 + key.kind: source.lang.swift.ref.struct, + key.name: "Bool", + key.usr: "s:Sb", + key.offset: 3414, + key.length: 4 }, { key.kind: source.lang.swift.syntaxtype.attribute.builtin, - key.offset: 3426, - key.length: 8 + key.offset: 3424, + key.length: 10 }, { key.kind: source.lang.swift.syntaxtype.keyword, @@ -2405,25 +2398,32 @@ var FooSubUnnamedEnumeratorA1: Int { get } { key.kind: source.lang.swift.syntaxtype.identifier, key.offset: 3440, - key.length: 23 + key.length: 14 }, { key.kind: source.lang.swift.syntaxtype.argument, - key.offset: 3464, - key.length: 1 + key.offset: 3455, + key.length: 2 }, { key.kind: source.lang.swift.syntaxtype.parameter, - key.offset: 3466, + key.offset: 3458, key.length: 5 }, { key.kind: source.lang.swift.ref.struct, key.name: "FooRuncingOptions", key.usr: "c:@E@FooRuncingOptions", - key.offset: 3473, + key.offset: 3465, key.length: 17 }, + { + key.kind: source.lang.swift.ref.struct, + key.name: "Bool", + key.usr: "s:Sb", + key.offset: 3487, + key.length: 4 + }, { key.kind: source.lang.swift.syntaxtype.keyword, key.offset: 3495, @@ -5622,9 +5622,9 @@ var FooSubUnnamedEnumeratorA1: Int { get } }, { key.kind: source.lang.swift.decl.extension.struct, - key.doc.full_as_xml: "extension FooRuncingOptionsSetAlgebra 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.doc.full_as_xml: "extension FooRuncingOptionsOptionSet 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: 1785, - key.length: 667, + key.length: 280, key.fully_annotated_decl: "extension FooRuncingOptions", key.extends: { key.kind: source.lang.swift.ref.struct, @@ -5633,210 +5633,21 @@ var FooSubUnnamedEnumeratorA1: Int { get } }, key.entities: [ { - key.kind: source.lang.swift.decl.function.constructor, - key.name: "init(_:)", - key.usr: "s:s10SetAlgebraPsEyxqd__ncSTRd__7ElementQyd__ACRtzlufc::SYNTHESIZED::c:@E@FooRuncingOptions", - key.original_usr: "s:s10SetAlgebraPsEyxqd__ncSTRd__7ElementQyd__ACRtzlufc", - key.generic_params: [ - { - key.name: "S" - } - ], - key.generic_requirements: [ - { - key.description: "S : Sequence" - }, - { - key.description: "FooRuncingOptions == S.Element" - } - ], - key.doc.full_as_xml: "init(_:)s:s10SetAlgebraPsEyxqd__ncSTRd__7ElementQyd__ACRtzlufc::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable init<S>(_ sequence: S) where S : Sequence, FooRuncingOptions == S.ElementCreates a new set from a finite sequence of items.sequenceinThe elements to use as members of the new set.Use this initializer to create a new set from an existing sequence, like an array or a range:", + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "union(_:)", + key.usr: "s:s9OptionSetPsE5unionyxxF::SYNTHESIZED::c:@E@FooRuncingOptions", + key.original_usr: "s:s9OptionSetPsE5unionyxxF", + key.doc.full_as_xml: "union(_:)s:s9OptionSetPsE5unionyxxF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable func union(_ other: FooRuncingOptions) -> FooRuncingOptionsReturns a new option set of the elements contained in this set, in the given set, or in both.otherinAn option set.A new option set made up of the elements contained in this set, in other, or in both.This example uses the union(_:) method to add two more shipping options to the default set.", key.offset: 1820, - key.length: 84, - key.fully_annotated_decl: "@inlinable init<S>(_ sequence: S) where S : Sequence, FooRuncingOptions == S.Element", + key.length: 70, + key.fully_annotated_decl: "@inlinable func union(_ other: FooRuncingOptions) -> FooRuncingOptions", key.entities: [ { key.kind: source.lang.swift.decl.var.local, key.keyword: "_", - key.name: "sequence", + key.name: "other", key.offset: 1851, - key.length: 1 - } - ] - }, - { - key.kind: source.lang.swift.decl.function.method.instance, - key.name: "subtract(_:)", - key.usr: "s:s10SetAlgebraPsE8subtractyyxF::SYNTHESIZED::c:@E@FooRuncingOptions", - key.original_usr: "s:s10SetAlgebraPsE8subtractyyxF", - key.doc.full_as_xml: "subtract(_:)s:s10SetAlgebraPsE8subtractyyxF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable mutating func subtract(_ other: FooRuncingOptions)Removes the elements of the given set from this set.otherinA set of the same type as the current set.In the following example, the elements of the employees set that are also members of the neighbors set are removed. In particular, the names "Bethany" and "Eric" are removed from employees.", - key.offset: 1910, - key.length: 61, - key.fully_annotated_decl: "@inlinable mutating func subtract(_ other: FooRuncingOptions)", - key.entities: [ - { - key.kind: source.lang.swift.decl.var.local, - key.keyword: "_", - key.name: "other", - key.offset: 1953, - key.length: 17 - } - ] - }, - { - key.kind: source.lang.swift.decl.function.method.instance, - key.name: "isSubset(of:)", - key.usr: "s:s10SetAlgebraPsE8isSubset2ofSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions", - key.original_usr: "s:s10SetAlgebraPsE8isSubset2ofSbx_tF", - key.doc.full_as_xml: "isSubset(of:)s:s10SetAlgebraPsE8isSubset2ofSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable func isSubset(of other: FooRuncingOptions) -> BoolReturns a Boolean value that indicates whether the set is a subset of another set.otherinA set of the same type as the current set.true if the set is a subset of other; otherwise, false.Set A is a subset of another set B if every member of A is also a member of B.", - key.offset: 1977, - key.length: 61, - key.fully_annotated_decl: "@inlinable func isSubset(of other: FooRuncingOptions) -> Bool", - key.entities: [ - { - key.kind: source.lang.swift.decl.var.local, - key.keyword: "of", - key.name: "other", - key.offset: 2012, - key.length: 17 - } - ] - }, - { - key.kind: source.lang.swift.decl.function.method.instance, - key.name: "isSuperset(of:)", - key.usr: "s:s10SetAlgebraPsE10isSuperset2ofSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions", - key.original_usr: "s:s10SetAlgebraPsE10isSuperset2ofSbx_tF", - key.doc.full_as_xml: "isSuperset(of:)s:s10SetAlgebraPsE10isSuperset2ofSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable func isSuperset(of other: FooRuncingOptions) -> BoolReturns a Boolean value that indicates whether the set is a superset of the given set.otherinA set of the same type as the current set.true if the set is a superset of other; otherwise, false.Set A is a superset of another set B if every member of B is also a member of A.", - key.offset: 2044, - key.length: 63, - key.fully_annotated_decl: "@inlinable func isSuperset(of other: FooRuncingOptions) -> Bool", - key.entities: [ - { - key.kind: source.lang.swift.decl.var.local, - key.keyword: "of", - key.name: "other", - key.offset: 2081, - key.length: 17 - } - ] - }, - { - key.kind: source.lang.swift.decl.function.method.instance, - key.name: "isDisjoint(with:)", - key.usr: "s:s10SetAlgebraPsE10isDisjoint4withSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions", - key.original_usr: "s:s10SetAlgebraPsE10isDisjoint4withSbx_tF", - key.doc.full_as_xml: "isDisjoint(with:)s:s10SetAlgebraPsE10isDisjoint4withSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable func isDisjoint(with other: FooRuncingOptions) -> BoolReturns a Boolean value that indicates whether the set has no members in common with the given set.otherinA set of the same type as the current set.true if the set has no elements in common with other; otherwise, false.In the following example, the employees set is disjoint with the visitors set because no name appears in both sets.", - key.offset: 2113, - key.length: 65, - key.fully_annotated_decl: "@inlinable func isDisjoint(with other: FooRuncingOptions) -> Bool", - key.entities: [ - { - key.kind: source.lang.swift.decl.var.local, - key.keyword: "with", - key.name: "other", - key.offset: 2152, - key.length: 17 - } - ] - }, - { - key.kind: source.lang.swift.decl.function.method.instance, - key.name: "subtracting(_:)", - key.usr: "s:s10SetAlgebraPsE11subtractingyxxF::SYNTHESIZED::c:@E@FooRuncingOptions", - key.original_usr: "s:s10SetAlgebraPsE11subtractingyxxF", - key.doc.full_as_xml: "subtracting(_:)s:s10SetAlgebraPsE11subtractingyxxF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable func subtracting(_ other: FooRuncingOptions) -> FooRuncingOptionsReturns a new set containing the elements of this set that do not occur in the given set.otherinA set of the same type as the current set.A new set.In the following example, the nonNeighbors set is made up of the elements of the employees set that are not elements of neighbors:", - key.offset: 2184, - key.length: 76, - key.fully_annotated_decl: "@inlinable func subtracting(_ other: FooRuncingOptions) -> FooRuncingOptions", - key.entities: [ - { - key.kind: source.lang.swift.decl.var.local, - key.keyword: "_", - key.name: "other", - key.offset: 2221, - key.length: 17 - } - ] - }, - { - key.kind: source.lang.swift.decl.var.instance, - key.name: "isEmpty", - key.usr: "s:s10SetAlgebraPsE7isEmptySbvp::SYNTHESIZED::c:@E@FooRuncingOptions", - key.original_usr: "s:s10SetAlgebraPsE7isEmptySbvp", - key.doc.full_as_xml: "isEmptys:s10SetAlgebraPsE7isEmptySbvp::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable var isEmpty: Bool { get }A Boolean value that indicates whether the set has no elements.", - key.offset: 2266, - key.length: 36, - key.fully_annotated_decl: "@inlinable var isEmpty: Bool { get }" - }, - { - key.kind: source.lang.swift.decl.function.method.instance, - key.name: "isStrictSuperset(of:)", - key.usr: "s:s10SetAlgebraPsE16isStrictSuperset2ofSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions", - key.original_usr: "s:s10SetAlgebraPsE16isStrictSuperset2ofSbx_tF", - key.doc.full_as_xml: "isStrictSuperset(of:)s:s10SetAlgebraPsE16isStrictSuperset2ofSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable func isStrictSuperset(of other: FooRuncingOptions) -> BoolReturns a Boolean value that indicates whether this set is a strict superset of the given set.otherinA set of the same type as the current set.true if the set is a strict superset of other; otherwise, false.Set A is a strict superset of another set B if every member of B is also a member of A and A contains at least one element that is not a member of B.", - key.offset: 2308, - key.length: 69, - key.fully_annotated_decl: "@inlinable func isStrictSuperset(of other: FooRuncingOptions) -> Bool", - key.entities: [ - { - key.kind: source.lang.swift.decl.var.local, - key.keyword: "of", - key.name: "other", - key.offset: 2351, - key.length: 17 - } - ] - }, - { - key.kind: source.lang.swift.decl.function.method.instance, - key.name: "isStrictSubset(of:)", - key.usr: "s:s10SetAlgebraPsE14isStrictSubset2ofSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions", - key.original_usr: "s:s10SetAlgebraPsE14isStrictSubset2ofSbx_tF", - key.doc.full_as_xml: "isStrictSubset(of:)s:s10SetAlgebraPsE14isStrictSubset2ofSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable func isStrictSubset(of other: FooRuncingOptions) -> BoolReturns a Boolean value that indicates whether this set is a strict subset of the given set.otherinA set of the same type as the current set.true if the set is a strict subset of other; otherwise, false.Set A is a strict subset of another set B if every member of A is also a member of B and B contains at least one element that is not a member of A.", - key.offset: 2383, - key.length: 67, - key.fully_annotated_decl: "@inlinable func isStrictSubset(of other: FooRuncingOptions) -> Bool", - key.entities: [ - { - key.kind: source.lang.swift.decl.var.local, - key.keyword: "of", - key.name: "other", - key.offset: 2424, - key.length: 17 - } - ] - } - ] - }, - { - key.kind: source.lang.swift.decl.extension.struct, - key.doc.full_as_xml: "extension FooRuncingOptionsOptionSet 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: 2454, - key.length: 280, - key.fully_annotated_decl: "extension FooRuncingOptions", - key.extends: { - key.kind: source.lang.swift.ref.struct, - key.name: "FooRuncingOptions", - key.usr: "c:@E@FooRuncingOptions" - }, - key.entities: [ - { - key.kind: source.lang.swift.decl.function.method.instance, - key.name: "union(_:)", - key.usr: "s:s9OptionSetPsE5unionyxxF::SYNTHESIZED::c:@E@FooRuncingOptions", - key.original_usr: "s:s9OptionSetPsE5unionyxxF", - key.doc.full_as_xml: "union(_:)s:s9OptionSetPsE5unionyxxF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable func union(_ other: FooRuncingOptions) -> FooRuncingOptionsReturns a new option set of the elements contained in this set, in the given set, or in both.otherinAn option set.A new option set made up of the elements contained in this set, in other, or in both.This example uses the union(_:) method to add two more shipping options to the default set.", - key.offset: 2489, - key.length: 70, - key.fully_annotated_decl: "@inlinable func union(_ other: FooRuncingOptions) -> FooRuncingOptions", - key.entities: [ - { - key.kind: source.lang.swift.decl.var.local, - key.keyword: "_", - key.name: "other", - key.offset: 2520, - key.length: 17 + key.length: 17 } ] }, @@ -5846,7 +5657,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.usr: "s:s9OptionSetPsE12intersectionyxxF::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s9OptionSetPsE12intersectionyxxF", key.doc.full_as_xml: "intersection(_:)s:s9OptionSetPsE12intersectionyxxF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable func intersection(_ other: FooRuncingOptions) -> FooRuncingOptionsReturns a new option set with only the elements contained in both this set and the given set.otherinAn option set.A new option set with only the elements contained in both this set and other.This example uses the intersection(_:) method to limit the available shipping options to what can be used with a PO Box destination.", - key.offset: 2565, + key.offset: 1896, key.length: 77, key.fully_annotated_decl: "@inlinable func intersection(_ other: FooRuncingOptions) -> FooRuncingOptions", key.entities: [ @@ -5854,7 +5665,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "other", - key.offset: 2603, + key.offset: 1934, key.length: 17 } ] @@ -5865,7 +5676,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.usr: "s:s9OptionSetPsE19symmetricDifferenceyxxF::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s9OptionSetPsE19symmetricDifferenceyxxF", key.doc.full_as_xml: "symmetricDifference(_:)s:s9OptionSetPsE19symmetricDifferenceyxxF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable func symmetricDifference(_ other: FooRuncingOptions) -> FooRuncingOptionsReturns a new option set with the elements contained in this set or in the given set, but not in both.otherinAn option set.A new option set with only the elements contained in either this set or other, but not in both.", - key.offset: 2648, + key.offset: 1979, key.length: 84, key.fully_annotated_decl: "@inlinable func symmetricDifference(_ other: FooRuncingOptions) -> FooRuncingOptions", key.entities: [ @@ -5873,7 +5684,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "other", - key.offset: 2693, + key.offset: 2024, key.length: 17 } ] @@ -5883,7 +5694,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } { key.kind: source.lang.swift.decl.extension.struct, key.doc.full_as_xml: "extension FooRuncingOptionsOptionSet 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: 2736, + key.offset: 2067, key.length: 476, key.fully_annotated_decl: "extension FooRuncingOptions", key.extends: { @@ -5898,7 +5709,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.usr: "s:s9OptionSetPs7ElementQzRszrlE8containsySbxF::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s9OptionSetPs7ElementQzRszrlE8containsySbxF", key.doc.full_as_xml: "contains(_:)s:s9OptionSetPs7ElementQzRszrlE8containsySbxF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable func contains(_ member: FooRuncingOptions) -> BoolReturns a Boolean value that indicates whether a given element is a member of the option set.memberinThe element to look for in the option set.true if the option set contains member; otherwise, false.This example uses the contains(_:) method to check whether next-day shipping is in the availableOptions instance.", - key.offset: 2771, + key.offset: 2102, key.length: 61, key.fully_annotated_decl: "@inlinable func contains(_ member: FooRuncingOptions) -> Bool", key.entities: [ @@ -5906,7 +5717,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "member", - key.offset: 2806, + key.offset: 2137, key.length: 17 } ] @@ -5917,7 +5728,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.usr: "s:s9OptionSetPs7ElementQzRszrlE6insertySb8inserted_x17memberAfterInserttxF::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s9OptionSetPs7ElementQzRszrlE6insertySb8inserted_x17memberAfterInserttxF", key.doc.full_as_xml: "insert(_:)s:s9OptionSetPs7ElementQzRszrlE6insertySb8inserted_x17memberAfterInserttxF::SYNTHESIZED::c:@E@FooRuncingOptions@discardableResult\n@inlinable mutating func insert(_ newMember: FooRuncingOptions) -> (inserted: Bool, memberAfterInsert: FooRuncingOptions)Adds the given element to the option set if it is not already a member.newMemberinThe element to insert.(true, newMember) if newMember was not contained in self. Otherwise, returns (false, oldMember), where oldMember is the member of the set equal to newMember.In the following example, the .secondDay shipping option is added to the freeOptions option set if purchasePrice is greater than 50.0. For the ShippingOptions declaration, see the OptionSet protocol discussion. 50 {]]>", - key.offset: 2838, + key.offset: 2169, key.length: 144, key.fully_annotated_decl: "@discardableResult @inlinable mutating func insert(_ newMember: FooRuncingOptions) -> (inserted: Bool, memberAfterInsert: FooRuncingOptions)", key.entities: [ @@ -5925,7 +5736,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "newMember", - key.offset: 2906, + key.offset: 2237, key.length: 17 } ] @@ -5936,7 +5747,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.usr: "s:s9OptionSetPs7ElementQzRszrlE6removeyxSgxF::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s9OptionSetPs7ElementQzRszrlE6removeyxSgxF", key.doc.full_as_xml: "remove(_:)s:s9OptionSetPs7ElementQzRszrlE6removeyxSgxF::SYNTHESIZED::c:@E@FooRuncingOptions@discardableResult\n@inlinable mutating func remove(_ member: FooRuncingOptions) -> FooRuncingOptions?Removes the given element and all elements subsumed by it.memberinThe element of the set to remove.The intersection of [member] and the set, if the intersection was nonempty; otherwise, nil.In the following example, the .priority shipping option is removed from the options option set. Attempting to remove the same shipping option a second time results in nil, because options no longer contains .priority as a member.In the next example, the .express element is passed to remove(_:). Although .express is not a member of options, .express subsumes the remaining .secondDay element of the option set. Therefore, options is emptied and the intersection between .express and options is returned.", - key.offset: 2988, + key.offset: 2319, key.length: 105, key.fully_annotated_decl: "@discardableResult @inlinable mutating func remove(_ member: FooRuncingOptions) -> FooRuncingOptions?", key.entities: [ @@ -5944,7 +5755,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "member", - key.offset: 3053, + key.offset: 2384, key.length: 17 } ] @@ -5955,7 +5766,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.usr: "s:s9OptionSetPs7ElementQzRszrlE6update4withxSgx_tF::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s9OptionSetPs7ElementQzRszrlE6update4withxSgx_tF", key.doc.full_as_xml: "update(with:)s:s9OptionSetPs7ElementQzRszrlE6update4withxSgx_tF::SYNTHESIZED::c:@E@FooRuncingOptions@discardableResult\n@inlinable mutating func update(with newMember: FooRuncingOptions) -> FooRuncingOptions?Inserts the given element into the set.The intersection of [newMember] and the set if the intersection was nonempty; otherwise, nil.If newMember is not contained in the set but subsumes current members of the set, the subsumed members are returned.", - key.offset: 3099, + key.offset: 2430, key.length: 111, key.fully_annotated_decl: "@discardableResult @inlinable mutating func update(with newMember: FooRuncingOptions) -> FooRuncingOptions?", key.entities: [ @@ -5963,7 +5774,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "with", key.name: "newMember", - key.offset: 3170, + key.offset: 2501, key.length: 17 } ] @@ -5973,7 +5784,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } { key.kind: source.lang.swift.decl.extension.struct, key.doc.full_as_xml: "extension FooRuncingOptionsOptionSet requirements for which default implementations are supplied when RawValue conforms to FixedWidthInteger, which is the usual case. Each distinct bit of an option set’s .rawValue corresponds to a disjoint value of the OptionSet.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: 3214, + key.offset: 2545, key.length: 279, key.fully_annotated_decl: "extension FooRuncingOptions", key.extends: { @@ -5988,7 +5799,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.usr: "s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlExycfc::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlExycfc", key.doc.full_as_xml: "init()s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlExycfc::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable init()Creates an empty option set.This initializer creates an option set with a raw value of zero.", - key.offset: 3249, + key.offset: 2580, key.length: 17, key.fully_annotated_decl: "@inlinable init()" }, @@ -5998,7 +5809,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.usr: "s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlE9formUnionyyxF::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlE9formUnionyyxF", key.doc.full_as_xml: "formUnion(_:)s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlE9formUnionyyxF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable mutating func formUnion(_ other: FooRuncingOptions)Inserts the elements of another set into this option set.otherinAn option set.This method is implemented as a | (bitwise OR) operation on the two sets’ raw values.", - key.offset: 3272, + key.offset: 2603, key.length: 62, key.fully_annotated_decl: "@inlinable mutating func formUnion(_ other: FooRuncingOptions)", key.entities: [ @@ -6006,7 +5817,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "other", - key.offset: 3316, + key.offset: 2647, key.length: 17 } ] @@ -6017,7 +5828,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.usr: "s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlE16formIntersectionyyxF::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlE16formIntersectionyyxF", key.doc.full_as_xml: "formIntersection(_:)s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlE16formIntersectionyyxF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable mutating func formIntersection(_ other: FooRuncingOptions)Removes all elements of this option set that are not also present in the given set.otherinAn option set.This method is implemented as a & (bitwise AND) operation on the two sets’ raw values.", - key.offset: 3340, + key.offset: 2671, key.length: 69, key.fully_annotated_decl: "@inlinable mutating func formIntersection(_ other: FooRuncingOptions)", key.entities: [ @@ -6025,7 +5836,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "other", - key.offset: 3391, + key.offset: 2722, key.length: 17 } ] @@ -6036,7 +5847,7 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.usr: "s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlE23formSymmetricDifferenceyyxF::SYNTHESIZED::c:@E@FooRuncingOptions", key.original_usr: "s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlE23formSymmetricDifferenceyyxF", key.doc.full_as_xml: "formSymmetricDifference(_:)s:s9OptionSetPss17FixedWidthInteger8RawValueRpzrlE23formSymmetricDifferenceyyxF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable mutating func formSymmetricDifference(_ other: FooRuncingOptions)Replaces this set with a new set containing all elements contained in either this set or the given set, but not in both.otherinAn option set.This method is implemented as a ^ (bitwise XOR) operation on the two sets’ raw values.", - key.offset: 3415, + key.offset: 2746, key.length: 76, key.fully_annotated_decl: "@inlinable mutating func formSymmetricDifference(_ other: FooRuncingOptions)", key.entities: [ @@ -6044,7 +5855,196 @@ var FooSubUnnamedEnumeratorA1: Int { get } key.kind: source.lang.swift.decl.var.local, key.keyword: "_", key.name: "other", - key.offset: 3473, + key.offset: 2804, + key.length: 17 + } + ] + } + ] + }, + { + key.kind: source.lang.swift.decl.extension.struct, + key.doc.full_as_xml: "extension FooRuncingOptionsSetAlgebra 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: 2826, + key.length: 667, + key.fully_annotated_decl: "extension FooRuncingOptions", + key.extends: { + key.kind: source.lang.swift.ref.struct, + key.name: "FooRuncingOptions", + key.usr: "c:@E@FooRuncingOptions" + }, + key.entities: [ + { + key.kind: source.lang.swift.decl.function.constructor, + key.name: "init(_:)", + key.usr: "s:s10SetAlgebraPsEyxqd__ncSTRd__7ElementQyd__ACRtzlufc::SYNTHESIZED::c:@E@FooRuncingOptions", + key.original_usr: "s:s10SetAlgebraPsEyxqd__ncSTRd__7ElementQyd__ACRtzlufc", + key.generic_params: [ + { + key.name: "S" + } + ], + key.generic_requirements: [ + { + key.description: "S : Sequence" + }, + { + key.description: "FooRuncingOptions == S.Element" + } + ], + key.doc.full_as_xml: "init(_:)s:s10SetAlgebraPsEyxqd__ncSTRd__7ElementQyd__ACRtzlufc::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable init<S>(_ sequence: S) where S : Sequence, FooRuncingOptions == S.ElementCreates a new set from a finite sequence of items.sequenceinThe elements to use as members of the new set.Use this initializer to create a new set from an existing sequence, like an array or a range:", + key.offset: 2861, + key.length: 84, + key.fully_annotated_decl: "@inlinable init<S>(_ sequence: S) where S : Sequence, FooRuncingOptions == S.Element", + key.entities: [ + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "_", + key.name: "sequence", + key.offset: 2892, + key.length: 1 + } + ] + }, + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "subtract(_:)", + key.usr: "s:s10SetAlgebraPsE8subtractyyxF::SYNTHESIZED::c:@E@FooRuncingOptions", + key.original_usr: "s:s10SetAlgebraPsE8subtractyyxF", + key.doc.full_as_xml: "subtract(_:)s:s10SetAlgebraPsE8subtractyyxF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable mutating func subtract(_ other: FooRuncingOptions)Removes the elements of the given set from this set.otherinA set of the same type as the current set.In the following example, the elements of the employees set that are also members of the neighbors set are removed. In particular, the names "Bethany" and "Eric" are removed from employees.", + key.offset: 2951, + key.length: 61, + key.fully_annotated_decl: "@inlinable mutating func subtract(_ other: FooRuncingOptions)", + key.entities: [ + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "_", + key.name: "other", + key.offset: 2994, + key.length: 17 + } + ] + }, + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "isSubset(of:)", + key.usr: "s:s10SetAlgebraPsE8isSubset2ofSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions", + key.original_usr: "s:s10SetAlgebraPsE8isSubset2ofSbx_tF", + key.doc.full_as_xml: "isSubset(of:)s:s10SetAlgebraPsE8isSubset2ofSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable func isSubset(of other: FooRuncingOptions) -> BoolReturns a Boolean value that indicates whether the set is a subset of another set.otherinA set of the same type as the current set.true if the set is a subset of other; otherwise, false.Set A is a subset of another set B if every member of A is also a member of B.", + key.offset: 3018, + key.length: 61, + key.fully_annotated_decl: "@inlinable func isSubset(of other: FooRuncingOptions) -> Bool", + key.entities: [ + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "of", + key.name: "other", + key.offset: 3053, + key.length: 17 + } + ] + }, + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "isSuperset(of:)", + key.usr: "s:s10SetAlgebraPsE10isSuperset2ofSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions", + key.original_usr: "s:s10SetAlgebraPsE10isSuperset2ofSbx_tF", + key.doc.full_as_xml: "isSuperset(of:)s:s10SetAlgebraPsE10isSuperset2ofSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable func isSuperset(of other: FooRuncingOptions) -> BoolReturns a Boolean value that indicates whether the set is a superset of the given set.otherinA set of the same type as the current set.true if the set is a superset of other; otherwise, false.Set A is a superset of another set B if every member of B is also a member of A.", + key.offset: 3085, + key.length: 63, + key.fully_annotated_decl: "@inlinable func isSuperset(of other: FooRuncingOptions) -> Bool", + key.entities: [ + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "of", + key.name: "other", + key.offset: 3122, + key.length: 17 + } + ] + }, + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "isDisjoint(with:)", + key.usr: "s:s10SetAlgebraPsE10isDisjoint4withSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions", + key.original_usr: "s:s10SetAlgebraPsE10isDisjoint4withSbx_tF", + key.doc.full_as_xml: "isDisjoint(with:)s:s10SetAlgebraPsE10isDisjoint4withSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable func isDisjoint(with other: FooRuncingOptions) -> BoolReturns a Boolean value that indicates whether the set has no members in common with the given set.otherinA set of the same type as the current set.true if the set has no elements in common with other; otherwise, false.In the following example, the employees set is disjoint with the visitors set because no name appears in both sets.", + key.offset: 3154, + key.length: 65, + key.fully_annotated_decl: "@inlinable func isDisjoint(with other: FooRuncingOptions) -> Bool", + key.entities: [ + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "with", + key.name: "other", + key.offset: 3193, + key.length: 17 + } + ] + }, + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "subtracting(_:)", + key.usr: "s:s10SetAlgebraPsE11subtractingyxxF::SYNTHESIZED::c:@E@FooRuncingOptions", + key.original_usr: "s:s10SetAlgebraPsE11subtractingyxxF", + key.doc.full_as_xml: "subtracting(_:)s:s10SetAlgebraPsE11subtractingyxxF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable func subtracting(_ other: FooRuncingOptions) -> FooRuncingOptionsReturns a new set containing the elements of this set that do not occur in the given set.otherinA set of the same type as the current set.A new set.In the following example, the nonNeighbors set is made up of the elements of the employees set that are not elements of neighbors:", + key.offset: 3225, + key.length: 76, + key.fully_annotated_decl: "@inlinable func subtracting(_ other: FooRuncingOptions) -> FooRuncingOptions", + key.entities: [ + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "_", + key.name: "other", + key.offset: 3262, + key.length: 17 + } + ] + }, + { + key.kind: source.lang.swift.decl.var.instance, + key.name: "isEmpty", + key.usr: "s:s10SetAlgebraPsE7isEmptySbvp::SYNTHESIZED::c:@E@FooRuncingOptions", + key.original_usr: "s:s10SetAlgebraPsE7isEmptySbvp", + key.doc.full_as_xml: "isEmptys:s10SetAlgebraPsE7isEmptySbvp::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable var isEmpty: Bool { get }A Boolean value that indicates whether the set has no elements.", + key.offset: 3307, + key.length: 36, + key.fully_annotated_decl: "@inlinable var isEmpty: Bool { get }" + }, + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "isStrictSuperset(of:)", + key.usr: "s:s10SetAlgebraPsE16isStrictSuperset2ofSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions", + key.original_usr: "s:s10SetAlgebraPsE16isStrictSuperset2ofSbx_tF", + key.doc.full_as_xml: "isStrictSuperset(of:)s:s10SetAlgebraPsE16isStrictSuperset2ofSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable func isStrictSuperset(of other: FooRuncingOptions) -> BoolReturns a Boolean value that indicates whether this set is a strict superset of the given set.otherinA set of the same type as the current set.true if the set is a strict superset of other; otherwise, false.Set A is a strict superset of another set B if every member of B is also a member of A and A contains at least one element that is not a member of B.", + key.offset: 3349, + key.length: 69, + key.fully_annotated_decl: "@inlinable func isStrictSuperset(of other: FooRuncingOptions) -> Bool", + key.entities: [ + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "of", + key.name: "other", + key.offset: 3392, + key.length: 17 + } + ] + }, + { + key.kind: source.lang.swift.decl.function.method.instance, + key.name: "isStrictSubset(of:)", + key.usr: "s:s10SetAlgebraPsE14isStrictSubset2ofSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions", + key.original_usr: "s:s10SetAlgebraPsE14isStrictSubset2ofSbx_tF", + key.doc.full_as_xml: "isStrictSubset(of:)s:s10SetAlgebraPsE14isStrictSubset2ofSbx_tF::SYNTHESIZED::c:@E@FooRuncingOptions@inlinable func isStrictSubset(of other: FooRuncingOptions) -> BoolReturns a Boolean value that indicates whether this set is a strict subset of the given set.otherinA set of the same type as the current set.true if the set is a strict subset of other; otherwise, false.Set A is a strict subset of another set B if every member of A is also a member of B and B contains at least one element that is not a member of A.", + key.offset: 3424, + key.length: 67, + key.fully_annotated_decl: "@inlinable func isStrictSubset(of other: FooRuncingOptions) -> Bool", + key.entities: [ + { + key.kind: source.lang.swift.decl.var.local, + key.keyword: "of", + key.name: "other", + key.offset: 3465, key.length: 17 } ]