Skip to content

Commit 9224f14

Browse files
committed
Move OptionSet to its own namespace
The type was colliding with the `OptionSet` type in the Swift stdlib when using Swift from C++.
1 parent eee45f7 commit 9224f14

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+94
-78
lines changed

include/swift/AST/CaptureInfo.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ template <> struct DenseMapInfo<swift::CapturedValue>;
3333
}
3434

3535
namespace swift {
36+
using namespace swift::optionset;
3637
class ValueDecl;
3738
class FuncDecl;
3839
class OpaqueValueExpr;
@@ -146,7 +147,7 @@ class CaptureInfo {
146147
HasGenericParamCaptures = 1 << 0
147148
};
148149

149-
llvm::PointerIntPair<const CaptureInfoStorage *, 2, OptionSet<Flags>>
150+
llvm::PointerIntPair<const CaptureInfoStorage *, 2, optionset::OptionSet<Flags>>
150151
StorageAndFlags;
151152

152153
public:

include/swift/AST/Decl.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ class PointerAuthQualifier;
6060
} // end namespace clang
6161

6262
namespace swift {
63+
using namespace swift::optionset;
6364
enum class AccessSemantics : unsigned char;
6465
class AccessorDecl;
6566
class ApplyExpr;

include/swift/AST/Effects.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ enum class EffectKind : uint8_t {
4242
Throws = 1 << 0,
4343
Async = 1 << 1
4444
};
45-
using PossibleEffects = OptionSet<EffectKind>;
45+
using PossibleEffects = optionset::OptionSet<EffectKind>;
4646

4747
void simple_display(llvm::raw_ostream &out, const EffectKind kind);
4848

include/swift/AST/FileUnit.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ class FileUnit : public DeclContext, public ASTAllocated<FileUnit> {
6565
///
6666
/// This does a simple local lookup, not recursively looking through imports.
6767
virtual void lookupValue(DeclName name, NLKind lookupKind,
68-
OptionSet<ModuleLookupFlags> Flags,
68+
optionset::OptionSet<ModuleLookupFlags> Flags,
6969
SmallVectorImpl<ValueDecl*> &result) const = 0;
7070

7171
/// Look up a local type declaration by its mangled name.
@@ -384,7 +384,7 @@ class BuiltinUnit final : public FileUnit {
384384
explicit BuiltinUnit(ModuleDecl &M);
385385

386386
virtual void lookupValue(DeclName name, NLKind lookupKind,
387-
OptionSet<ModuleLookupFlags> Flags,
387+
optionset::OptionSet<ModuleLookupFlags> Flags,
388388
SmallVectorImpl<ValueDecl*> &result) const override;
389389

390390
/// Find all Objective-C methods with the given selector.

include/swift/AST/GenericSignature.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -581,7 +581,7 @@ enum class GenericSignatureErrorFlags {
581581
CompletionFailed = (1<<2)
582582
};
583583

584-
using GenericSignatureErrors = OptionSet<GenericSignatureErrorFlags>;
584+
using GenericSignatureErrors = optionset::OptionSet<GenericSignatureErrorFlags>;
585585

586586
/// AbstractGenericSignatureRequest and InferredGenericSignatureRequest
587587
/// return this type, which stores a GenericSignature together with the

include/swift/AST/IRGenOptions.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
#include <vector>
3636

3737
namespace swift {
38+
using namespace swift::optionset;
3839

3940
enum class IRGenOutputKind : unsigned {
4041
/// Just generate an LLVM module and return it.
@@ -265,10 +266,10 @@ class IRGenOptions {
265266
OptimizationMode OptMode;
266267

267268
/// Which sanitizer is turned on.
268-
OptionSet<SanitizerKind> Sanitizers;
269+
optionset::OptionSet<SanitizerKind> Sanitizers;
269270

270271
/// Which sanitizer(s) have recovery instrumentation enabled.
271-
OptionSet<SanitizerKind> SanitizersWithRecoveryInstrumentation;
272+
optionset::OptionSet<SanitizerKind> SanitizersWithRecoveryInstrumentation;
272273

273274
/// Whether to enable ODR indicators when building with ASan.
274275
unsigned SanitizeAddressUseODRIndicator : 1;
@@ -514,8 +515,8 @@ class IRGenOptions {
514515
IRGenOptions()
515516
: OutputKind(IRGenOutputKind::LLVMAssemblyAfterOptimization),
516517
Verify(true), OptMode(OptimizationMode::NotSet),
517-
Sanitizers(OptionSet<SanitizerKind>()),
518-
SanitizersWithRecoveryInstrumentation(OptionSet<SanitizerKind>()),
518+
Sanitizers(optionset::OptionSet<SanitizerKind>()),
519+
SanitizersWithRecoveryInstrumentation(optionset::OptionSet<SanitizerKind>()),
519520
SanitizeAddressUseODRIndicator(false),
520521
DebugInfoLevel(IRGenDebugInfoLevel::None),
521522
DebugInfoFormat(IRGenDebugInfoFormat::None),

include/swift/AST/Import.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
#include <algorithm>
3636

3737
namespace swift {
38+
using namespace swift::optionset;
3839
class ASTContext;
3940
class ModuleDecl;
4041

@@ -99,7 +100,7 @@ enum class ImportFlags {
99100
};
100101

101102
/// \see ImportFlags
102-
using ImportOptions = OptionSet<ImportFlags>;
103+
using ImportOptions = optionset::OptionSet<ImportFlags>;
103104

104105
void simple_display(llvm::raw_ostream &out, ImportOptions options);
105106

include/swift/AST/MacroDeclaration.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ enum class MacroRole: uint32_t {
6969
std::vector<MacroRole> getAllMacroRoles();
7070

7171
/// The contexts in which a particular macro declaration can be used.
72-
using MacroRoles = OptionSet<MacroRole>;
72+
using MacroRoles = optionset::OptionSet<MacroRole>;
7373

7474
void simple_display(llvm::raw_ostream &out, MacroRoles roles);
7575
bool operator==(MacroRoles lhs, MacroRoles rhs);

include/swift/AST/Module.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@ class ModuleDecl
322322
DiagnosedMultipleMainClasses = 1 << 0,
323323
DiagnosedMainClassWithScript = 1 << 1
324324
};
325-
llvm::PointerIntPair<FileUnit *, 2, OptionSet<Flags>> storage;
325+
llvm::PointerIntPair<FileUnit *, 2, optionset::OptionSet<Flags>> storage;
326326
public:
327327
EntryPointInfoTy() = default;
328328

@@ -757,7 +757,7 @@ class ModuleDecl
757757
///
758758
/// This does a simple local lookup, not recursively looking through imports.
759759
void lookupValue(DeclName Name, NLKind LookupKind,
760-
OptionSet<ModuleLookupFlags> Flags,
760+
optionset::OptionSet<ModuleLookupFlags> Flags,
761761
SmallVectorImpl<ValueDecl*> &Result) const;
762762

763763
/// Look up a (possibly overloaded) value set at top-level scope
@@ -907,7 +907,7 @@ class ModuleDecl
907907
ShadowedByCrossImportOverlay = 1 << 6
908908
};
909909
/// \sa getImportedModules
910-
using ImportFilter = OptionSet<ImportFilterKind>;
910+
using ImportFilter = optionset::OptionSet<ImportFilterKind>;
911911

912912
/// Returns an \c ImportFilter with all elements of \c ImportFilterKind.
913913
constexpr static ImportFilter getImportFilterAll() {

include/swift/AST/NameLookup.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ enum class UnqualifiedLookupFlags {
247247
MacroLookup = 1 << 7,
248248
};
249249

250-
using UnqualifiedLookupOptions = OptionSet<UnqualifiedLookupFlags>;
250+
using UnqualifiedLookupOptions = optionset::OptionSet<UnqualifiedLookupFlags>;
251251

252252
void simple_display(llvm::raw_ostream &out, UnqualifiedLookupOptions options);
253253

include/swift/AST/NameLookupRequests.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,7 @@ class GenericParamListRequest :
390390

391391
/// The input type for an unqualified lookup request.
392392
class UnqualifiedLookupDescriptor {
393-
using LookupOptions = OptionSet<UnqualifiedLookupFlags>;
393+
using LookupOptions = optionset::OptionSet<UnqualifiedLookupFlags>;
394394

395395
public:
396396
DeclNameRef Name;
@@ -552,7 +552,7 @@ class QualifiedLookupRequest
552552

553553
/// The input type for a direct lookup request.
554554
class DirectLookupDescriptor final {
555-
using LookupOptions = OptionSet<NominalTypeDecl::LookupDirectFlags>;
555+
using LookupOptions = optionset::OptionSet<NominalTypeDecl::LookupDirectFlags>;
556556

557557
public:
558558
NominalTypeDecl *DC;

include/swift/AST/ParameterList.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,14 +123,14 @@ class alignas(ParamDecl *) ParameterList final :
123123
NamedArguments = 0x04,
124124
};
125125

126-
friend OptionSet<CloneFlags> operator|(CloneFlags flag1, CloneFlags flag2) {
127-
return OptionSet<CloneFlags>(flag1) | flag2;
126+
friend optionset::OptionSet<CloneFlags> operator|(CloneFlags flag1, CloneFlags flag2) {
127+
return optionset::OptionSet<CloneFlags>(flag1) | flag2;
128128
}
129129

130130
/// Make a duplicate copy of this parameter list. This allocates copies of
131131
/// the ParamDecls, so they can be reparented into a new DeclContext.
132132
ParameterList *clone(const ASTContext &C,
133-
OptionSet<CloneFlags> options = llvm::None) const;
133+
optionset::OptionSet<CloneFlags> options = llvm::None) const;
134134

135135
/// Return a list of function parameters for this parameter list,
136136
/// based on the interface types of the parameters in this list.

include/swift/AST/SILOptions.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ class SILOptions {
245245
bool IgnoreAlwaysInline = false;
246246

247247
/// Indicates which sanitizer is turned on.
248-
OptionSet<SanitizerKind> Sanitizers;
248+
optionset::OptionSet<SanitizerKind> Sanitizers;
249249

250250
/// Emit compile-time diagnostics when the law of exclusivity is violated.
251251
bool EnforceExclusivityStatic = true;

include/swift/AST/SourceFile.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ class SourceFile final : public FileUnit {
9797
/// Validate the new SwiftSyntax parser diagnostics.
9898
ValidateNewParserDiagnostics = 1 << 6,
9999
};
100-
using ParsingOptions = OptionSet<ParsingFlags>;
100+
using ParsingOptions = optionset::OptionSet<ParsingFlags>;
101101

102102
/// Retrieve the parsing options specified in the LangOptions.
103103
static ParsingOptions getDefaultParsingOptions(const LangOptions &langOpts);
@@ -455,7 +455,7 @@ class SourceFile final : public FileUnit {
455455
const SmallVectorImpl<ValueDecl *> &getCachedVisibleDecls() const;
456456

457457
virtual void lookupValue(DeclName name, NLKind lookupKind,
458-
OptionSet<ModuleLookupFlags> Flags,
458+
optionset::OptionSet<ModuleLookupFlags> Flags,
459459
SmallVectorImpl<ValueDecl*> &result) const override;
460460

461461
virtual void lookupVisibleDecls(ImportPath::Access accessPath,

include/swift/AST/SynthesizedFileUnit.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class SynthesizedFileUnit final : public FileUnit {
4444
void addTopLevelDecl(Decl *D) { TopLevelDecls.push_back(D); }
4545

4646
virtual void lookupValue(DeclName name, NLKind lookupKind,
47-
OptionSet<ModuleLookupFlags> Flags,
47+
optionset::OptionSet<ModuleLookupFlags> Flags,
4848
SmallVectorImpl<ValueDecl *> &result) const override;
4949

5050
void lookupObjCMethods(

include/swift/AST/Type.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838

3939
namespace swift {
4040

41+
using namespace swift::optionset;
4142
class ASTPrinter;
4243
class ArchetypeType;
4344
class ClassDecl;
@@ -160,7 +161,7 @@ enum class SubstFlags {
160161
};
161162

162163
/// Options for performing substitutions into a type.
163-
struct SubstOptions : public OptionSet<SubstFlags> {
164+
struct SubstOptions : public optionset::OptionSet<SubstFlags> {
164165
// Note: The unfortunate use of TypeBase * here, rather than Type,
165166
// is due to a libc++ quirk that requires the result type to be
166167
// complete.
@@ -176,7 +177,7 @@ struct SubstOptions : public OptionSet<SubstFlags> {
176177

177178
SubstOptions(SubstFlags flags) : OptionSet(flags) { }
178179

179-
SubstOptions(OptionSet<SubstFlags> options) : OptionSet(options) { }
180+
SubstOptions(optionset::OptionSet<SubstFlags> options) : OptionSet(options) { }
180181
};
181182

182183
inline SubstOptions operator|(SubstFlags lhs, SubstFlags rhs) {

include/swift/AST/Types.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ struct fltSemantics;
5555

5656
namespace swift {
5757

58+
using namespace swift::optionset;
5859
enum class AllocationArena;
5960
class ArchetypeType;
6061
class ArgumentList;

include/swift/Basic/OptionSet.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include <initializer_list>
2525

2626
namespace swift {
27+
namespace optionset {
2728

2829
/// The class template \c OptionSet captures a set of options stored as the
2930
/// bits in an unsigned integral value.
@@ -151,7 +152,7 @@ class OptionSet {
151152
Flags>::value,
152153
"operator| should produce an OptionSet");
153154
};
154-
155+
} // end namespace optionset
155156
} // end namespace swift
156157

157158
#endif // SWIFT_BASIC_OPTIONSET_H

include/swift/Basic/StringExtras.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131
#include <string>
3232

3333
namespace swift {
34+
using namespace swift::optionset;
35+
3436
/// Determine whether the given string can be an argument label.
3537
///
3638
/// \seealso Token::canBeArgumentLabel()
@@ -335,7 +337,7 @@ enum class OmissionTypeFlags {
335337
};
336338

337339
/// Options that described omitted types.
338-
using OmissionTypeOptions = OptionSet<OmissionTypeFlags>;
340+
using OmissionTypeOptions = optionset::OptionSet<OmissionTypeFlags>;
339341

340342
/// Describes the name of a type as is used for omitting needless
341343
/// words.

include/swift/ClangImporter/ClangModule.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ class ClangModuleUnit final : public LoadedFile {
6666
virtual bool isSystemModule() const override;
6767

6868
virtual void lookupValue(DeclName name, NLKind lookupKind,
69-
OptionSet<ModuleLookupFlags> Flags,
69+
optionset::OptionSet<ModuleLookupFlags> Flags,
7070
SmallVectorImpl<ValueDecl*> &results) const override;
7171

7272
virtual TypeDecl *

include/swift/Driver/Driver.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ class OutputInfo {
151151
/// (If empty, this implies no SDK.)
152152
std::string SDKPath;
153153

154-
OptionSet<SanitizerKind> SelectedSanitizers;
154+
optionset::OptionSet<SanitizerKind> SelectedSanitizers;
155155

156156
/// Might this sort of compile have explicit primary inputs?
157157
/// When running a single compile for the whole module (in other words

include/swift/IDE/CodeCompletionResult.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ enum class CodeCompletionFlairBit : uint8_t {
8989
ExpressionAtNonScriptOrMainFileScope = 1 << 6,
9090
};
9191

92-
using CodeCompletionFlair = OptionSet<CodeCompletionFlairBit>;
92+
using CodeCompletionFlair = optionset::OptionSet<CodeCompletionFlairBit>;
9393

9494
/// The declaration kind of a code completion result, if it is a declaration.
9595
enum class CodeCompletionDeclKind : uint8_t {
@@ -327,7 +327,7 @@ enum class CodeCompletionMacroRole : uint8_t {
327327
AttachedContext = 1 << 4,
328328
AttachedDecl = 1 << 5,
329329
};
330-
using CodeCompletionMacroRoles = OptionSet<CodeCompletionMacroRole>;
330+
using CodeCompletionMacroRoles = optionset::OptionSet<CodeCompletionMacroRole>;
331331

332332
enum class CodeCompletionFilterFlag : uint16_t {
333333
Expr = 1 << 0,
@@ -341,12 +341,12 @@ enum class CodeCompletionFilterFlag : uint16_t {
341341
AttachedContextMacro = 1 << 8,
342342
AttachedDeclMacro = 1 << 9,
343343
};
344-
using CodeCompletionFilter = OptionSet<CodeCompletionFilterFlag>;
344+
using CodeCompletionFilter = optionset::OptionSet<CodeCompletionFilterFlag>;
345345

346346
CodeCompletionMacroRoles getCompletionMacroRoles(const Decl *D);
347347

348348
CodeCompletionMacroRoles
349-
getCompletionMacroRoles(OptionSet<CustomAttributeKind> kinds);
349+
getCompletionMacroRoles(optionset::OptionSet<CustomAttributeKind> kinds);
350350

351351
CodeCompletionMacroRoles getCompletionMacroRoles(CodeCompletionFilter filter);
352352

include/swift/IDE/CodeCompletionResultType.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
namespace swift {
2222
namespace ide {
2323

24+
using namespace swift::optionset;
25+
2426
enum class CustomAttributeKind : uint8_t {
2527
/// A type that can be used as a property wrapper.
2628
PropertyWrapper = 1 << 0,

include/swift/IDE/CompletionLookup.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ class CompletionLookup final : public swift::VisibleDeclConsumer {
236236
void setExpectedTypes(
237237
ArrayRef<Type> Types, bool isImplicitSingleExpressionReturn,
238238
bool preferNonVoid = false,
239-
OptionSet<CustomAttributeKind> expectedCustomAttributeKinds = {}) {
239+
optionset::OptionSet<CustomAttributeKind> expectedCustomAttributeKinds = {}) {
240240
expectedTypeContext.setIsImplicitSingleExpressionReturn(
241241
isImplicitSingleExpressionReturn);
242242
expectedTypeContext.setPreferNonVoid(preferNonVoid);

include/swift/IDE/ModuleInterfacePrinting.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ enum class ModuleTraversal : unsigned {
4646
};
4747

4848
/// Options used to describe the traversal of a module for printing.
49-
using ModuleTraversalOptions = OptionSet<ModuleTraversal>;
49+
using ModuleTraversalOptions = optionset::OptionSet<ModuleTraversal>;
5050

5151
void collectModuleGroups(ModuleDecl *M, SmallVectorImpl<StringRef> &Into);
5252

include/swift/Option/SanitizerOptions.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include "llvm/Transforms/Instrumentation.h"
2424

2525
namespace swift {
26+
using namespace swift::optionset;
2627
class DiagnosticEngine;
2728

2829
/// Parses a -sanitize= argument's values.

include/swift/Parse/Parser.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -951,7 +951,7 @@ class Parser {
951951
};
952952

953953
/// Options that control the parsing of declarations.
954-
using ParseDeclOptions = OptionSet<ParseDeclFlags>;
954+
using ParseDeclOptions = optionset::OptionSet<ParseDeclFlags>;
955955

956956
void consumeDecl(ParserPosition BeginParserPosition, ParseDeclOptions Flags,
957957
bool IsTopLevel);
@@ -1804,7 +1804,7 @@ class Parser {
18041804
/// backwards compatibility.
18051805
AllowLowercaseAndUppercaseSelf = 1 << 6,
18061806
};
1807-
using DeclNameOptions = OptionSet<DeclNameFlag>;
1807+
using DeclNameOptions = optionset::OptionSet<DeclNameFlag>;
18081808

18091809
friend DeclNameOptions operator|(DeclNameFlag flag1, DeclNameFlag flag2) {
18101810
return DeclNameOptions(flag1) | flag2;

0 commit comments

Comments
 (0)