Skip to content

Commit 8d165df

Browse files
committed
Merge remote-tracking branch 'origin/main' into xcode-15-1-b2-test
2 parents 043f964 + f7f5070 commit 8d165df

Some content is hidden

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

53 files changed

+622
-231
lines changed

include/swift/AST/Attr.def

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ DECL_ATTR(_silgen_name, SILGenName,
108108
OnAbstractFunction | OnVar | LongAttribute | UserInaccessible | ABIStableToAdd | ABIStableToRemove | APIStableToAdd | APIStableToRemove,
109109
0)
110110
DECL_ATTR(available, Available,
111-
OnAbstractFunction | OnGenericType | OnVar | OnSubscript | OnEnumElement | OnMacro | OnExtension | AllowMultipleAttributes | LongAttribute | ABIStableToAdd | ABIStableToRemove | APIStableToAdd | APIStableToRemove,
111+
OnAbstractFunction | OnAssociatedType | OnGenericType | OnVar | OnSubscript | OnEnumElement | OnMacro | OnExtension | AllowMultipleAttributes | LongAttribute | ABIStableToAdd | ABIStableToRemove | APIStableToAdd | APIStableToRemove,
112112
1)
113113
DECL_ATTR(objc, ObjC,
114114
OnAbstractFunction | OnClass | OnProtocol | OnExtension | OnVar | OnSubscript | OnEnum | OnEnumElement | ABIBreakingToAdd | ABIBreakingToRemove | APIStableToAdd | APIStableToRemove,

include/swift/AST/DiagnosticsSema.def

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2851,7 +2851,6 @@ WARNING(assoc_type_default_conformance_failed,none,
28512851
NOTE(assoc_type_default_here,none,
28522852
"associated type %0 has default type %1 written here",
28532853
(const AssociatedTypeDecl *, Type))
2854-
28552854
ERROR(protocol_access,none,
28562855
"%select{protocol must be declared %select{"
28572856
"%select{private|fileprivate|internal|package|%error|%error}1"
@@ -6837,6 +6836,10 @@ ERROR(inlinable_decl_not_public,
68376836
ERROR(inlinable_resilient_deinit,
68386837
none, "deinitializer can only be '@inlinable' if the class is '@_fixed_layout'", ())
68396838

6839+
ERROR(resilient_associated_type_less_available_requires_default,none,
6840+
"associated type %0 that is less available than its protocol must have a "
6841+
"default", (const AssociatedTypeDecl *))
6842+
68406843
//------------------------------------------------------------------------------
68416844
// MARK: @_specialize diagnostics
68426845
//------------------------------------------------------------------------------

include/swift/AST/SourceFile.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -313,9 +313,6 @@ class SourceFile final : public FileUnit {
313313
/// includes the SourceFileSyntax node corresponding to this source file.
314314
void *getExportedSourceFile() const;
315315

316-
/// The list of local type declarations in the source file.
317-
llvm::SetVector<TypeDecl *> LocalTypeDecls;
318-
319316
/// Defer type checking of `AFD` to the end of `Sema`
320317
void addDelayedFunction(AbstractFunctionDecl *AFD);
321318

@@ -762,6 +759,8 @@ class SourceFile final : public FileUnit {
762759
/// Returns true if the source file contains concurrency in the top-level
763760
bool isAsyncTopLevelSourceFile() const;
764761

762+
ArrayRef<TypeDecl *> getLocalTypeDecls() const;
763+
765764
private:
766765

767766
/// If not \c None, the underlying vector contains the parsed tokens of this

include/swift/AST/TypeCheckRequests.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4732,6 +4732,23 @@ class UniqueUnderlyingTypeSubstitutionsRequest
47324732
void cacheResult(llvm::Optional<SubstitutionMap>) const;
47334733
};
47344734

4735+
/// Collect all local type declarations in the SourceFile.
4736+
class LocalTypeDeclsRequest
4737+
: public SimpleRequest<LocalTypeDeclsRequest,
4738+
ArrayRef<TypeDecl *>(SourceFile *),
4739+
RequestFlags::Cached> {
4740+
public:
4741+
using SimpleRequest::SimpleRequest;
4742+
4743+
private:
4744+
friend SimpleRequest;
4745+
4746+
ArrayRef<TypeDecl *> evaluate(Evaluator &evaluator, SourceFile *sf) const;
4747+
4748+
public:
4749+
bool isCached() const { return true; }
4750+
};
4751+
47354752
#define SWIFT_TYPEID_ZONE TypeChecker
47364753
#define SWIFT_TYPEID_HEADER "swift/AST/TypeCheckerTypeIDZone.def"
47374754
#include "swift/Basic/DefineTypeIDZone.h"

include/swift/AST/TypeCheckerTypeIDZone.def

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -542,3 +542,6 @@ SWIFT_REQUEST(TypeChecker, SemanticDeclAttrsRequest,
542542
SWIFT_REQUEST(TypeChecker, UniqueUnderlyingTypeSubstitutionsRequest,
543543
llvm::Optional<SubstitutionMap>(const Decl *),
544544
SeparatelyCached, NoLocationInfo)
545+
SWIFT_REQUEST(TypeChecker, LocalTypeDeclsRequest,
546+
ArrayRef<TypeDecl *>(SourceFile *),
547+
Cached, NoLocationInfo)

include/swift/Basic/BasicBridging.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,7 @@ void BridgedData_free(BridgedData data);
178178
//===----------------------------------------------------------------------===//
179179

180180
enum ENUM_EXTENSIBILITY_ATTR(open) BridgedFeature {
181-
#define LANGUAGE_FEATURE(FeatureName, SENumber, Description, Option) \
182-
FeatureName,
181+
#define LANGUAGE_FEATURE(FeatureName, SENumber, Description) FeatureName,
183182
#include "swift/Basic/Features.def"
184183
};
185184

include/swift/Basic/Feature.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,13 @@ class LangOptions;
2222

2323
/// Enumeration describing all of the named features.
2424
enum class Feature {
25-
#define LANGUAGE_FEATURE(FeatureName, SENumber, Description, Option) \
26-
FeatureName,
25+
#define LANGUAGE_FEATURE(FeatureName, SENumber, Description) FeatureName,
2726
#include "swift/Basic/Features.def"
2827
};
2928

3029
constexpr unsigned numFeatures() {
3130
enum Features {
32-
#define LANGUAGE_FEATURE(FeatureName, SENumber, Description, Option) \
33-
FeatureName,
31+
#define LANGUAGE_FEATURE(FeatureName, SENumber, Description) FeatureName,
3432
#include "swift/Basic/Features.def"
3533
NumFeatures
3634
};

include/swift/Basic/Features.def

Lines changed: 54 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
// features.
1515
//
1616
//
17-
// LANGUAGE_FEATURE(FeatureName, SENumber, Description, Option)
17+
// LANGUAGE_FEATURE(FeatureName, SENumber, Description)
1818
//
1919
// The LANGUAGE_FEATURE macro describes each named feature that is
2020
// introduced in Swift. It allows Swift code to check for a particular
@@ -25,9 +25,6 @@
2525
// SENumber: The number assigned to this feature in the Swift Evolution
2626
// process, or 0 if there isn't one.
2727
// Description: A string literal describing the feature.
28-
// Option: either a reference to a language option in the form
29-
// "langOpts.<option name>" or "true" to indicate that it's always
30-
// enabled.
3128
//
3229
// Suppressible language features can be suppressed when printing
3330
// an interface without having to suppress the entire declaration they're
@@ -44,79 +41,76 @@
4441
#endif
4542

4643
#ifndef SUPPRESSIBLE_LANGUAGE_FEATURE
47-
#define SUPPRESSIBLE_LANGUAGE_FEATURE(FeatureName, SENumber, Description, Option) \
48-
LANGUAGE_FEATURE(FeatureName, SENumber, Description, Option)
44+
#define SUPPRESSIBLE_LANGUAGE_FEATURE(FeatureName, SENumber, Description) \
45+
LANGUAGE_FEATURE(FeatureName, SENumber, Description)
4946
#endif
5047

5148
#ifndef UPCOMING_FEATURE
5249
# define UPCOMING_FEATURE(FeatureName, SENumber, Version) \
53-
LANGUAGE_FEATURE(FeatureName, SENumber, #FeatureName, \
54-
langOpts.hasFeature(#FeatureName))
50+
LANGUAGE_FEATURE(FeatureName, SENumber, #FeatureName)
5551
#endif
5652

5753
#ifndef EXPERIMENTAL_FEATURE
5854
// Warning: setting `AvailableInProd` to `true` on a feature means that the flag
5955
// cannot be dropped in the future.
6056
# define EXPERIMENTAL_FEATURE(FeatureName, AvailableInProd) \
61-
LANGUAGE_FEATURE(FeatureName, 0, #FeatureName, \
62-
langOpts.hasFeature(#FeatureName))
57+
LANGUAGE_FEATURE(FeatureName, 0, #FeatureName)
6358
#endif
6459

6560
#ifndef EXPERIMENTAL_FEATURE_EXCLUDED_FROM_MODULE_INTERFACE
6661
# define EXPERIMENTAL_FEATURE_EXCLUDED_FROM_MODULE_INTERFACE(FeatureName, AvailableInProd) \
6762
EXPERIMENTAL_FEATURE(FeatureName, AvailableInProd)
6863
#endif
6964

70-
LANGUAGE_FEATURE(AsyncAwait, 296, "async/await", true)
71-
LANGUAGE_FEATURE(EffectfulProp, 310, "Effectful properties", true)
72-
LANGUAGE_FEATURE(MarkerProtocol, 0, "@_marker protocol", true)
73-
LANGUAGE_FEATURE(Actors, 0, "actors", true)
74-
LANGUAGE_FEATURE(ConcurrentFunctions, 0, "@concurrent functions", true)
75-
LANGUAGE_FEATURE(RethrowsProtocol, 0, "@rethrows protocol", true)
76-
LANGUAGE_FEATURE(GlobalActors, 316, "Global actors", true)
77-
LANGUAGE_FEATURE(BuiltinJob, 0, "Builtin.Job type", true)
78-
LANGUAGE_FEATURE(Sendable, 0, "Sendable and @Sendable", true)
79-
LANGUAGE_FEATURE(BuiltinExecutor, 0, "Builtin.Executor type", true)
80-
LANGUAGE_FEATURE(BuiltinContinuation, 0, "Continuation builtins", true)
81-
LANGUAGE_FEATURE(BuiltinHopToActor, 0, "Builtin.HopToActor", true)
82-
LANGUAGE_FEATURE(BuiltinTaskGroupWithArgument, 0, "TaskGroup builtins", true)
83-
LANGUAGE_FEATURE(InheritActorContext, 0, "@_inheritActorContext attribute", true)
84-
LANGUAGE_FEATURE(ImplicitSelfCapture, 0, "@_implicitSelfCapture attribute", true)
85-
LANGUAGE_FEATURE(BuiltinBuildTaskExecutor, 0, "TaskExecutor-building builtins", true)
86-
LANGUAGE_FEATURE(BuiltinBuildExecutor, 0, "Executor-building builtins", true)
87-
LANGUAGE_FEATURE(BuiltinBuildComplexEqualityExecutor, 0, "Executor-building for 'complexEquality executor' builtins", true)
88-
LANGUAGE_FEATURE(BuiltinBuildMainExecutor, 0, "MainActor executor building builtin", true)
89-
LANGUAGE_FEATURE(BuiltinCreateAsyncTaskInGroup, 0, "Task create in task group builtin with extra flags", true)
90-
LANGUAGE_FEATURE(BuiltinCreateAsyncTaskInGroupWithExecutor, 0, "Task create in task group builtin with extra flags", true)
91-
LANGUAGE_FEATURE(BuiltinCreateAsyncTaskWithExecutor, 0, "Task create builtin with extra executor preference", true)
92-
LANGUAGE_FEATURE(BuiltinCopy, 0, "Builtin.copy()", true)
93-
LANGUAGE_FEATURE(BuiltinStackAlloc, 0, "Builtin.stackAlloc", true)
94-
LANGUAGE_FEATURE(BuiltinUnprotectedStackAlloc, 0, "Builtin.unprotectedStackAlloc", true)
95-
LANGUAGE_FEATURE(BuiltinAllocVector, 0, "Builtin.allocVector", true)
96-
LANGUAGE_FEATURE(BuiltinTaskRunInline, 0, "Builtin.taskRunInline", true)
97-
LANGUAGE_FEATURE(BuiltinUnprotectedAddressOf, 0, "Builtin.unprotectedAddressOf", true)
98-
LANGUAGE_FEATURE(NewCxxMethodSafetyHeuristics, 0, "Only import C++ methods that return pointers (projections) on owned types as unsafe", true)
99-
SUPPRESSIBLE_LANGUAGE_FEATURE(SpecializeAttributeWithAvailability, 0, "@_specialize attribute with availability", true)
100-
LANGUAGE_FEATURE(BuiltinAssumeAlignment, 0, "Builtin.assumeAlignment", true)
101-
LANGUAGE_FEATURE(BuiltinCreateTaskGroupWithFlags, 0, "Builtin.createTaskGroupWithFlags", true)
102-
SUPPRESSIBLE_LANGUAGE_FEATURE(UnsafeInheritExecutor, 0, "@_unsafeInheritExecutor", true)
103-
SUPPRESSIBLE_LANGUAGE_FEATURE(PrimaryAssociatedTypes2, 346, "Primary associated types", true)
104-
SUPPRESSIBLE_LANGUAGE_FEATURE(UnavailableFromAsync, 0, "@_unavailableFromAsync", true)
105-
SUPPRESSIBLE_LANGUAGE_FEATURE(NoAsyncAvailability, 340, "@available(*, noasync)", true)
106-
LANGUAGE_FEATURE(BuiltinIntLiteralAccessors, 368, "Builtin.IntLiteral accessors", true)
107-
LANGUAGE_FEATURE(Macros, 0, "Macros", hasSwiftSwiftParser)
108-
LANGUAGE_FEATURE(
109-
FreestandingExpressionMacros, 382, "Expression macros",
110-
hasSwiftSwiftParser)
111-
LANGUAGE_FEATURE(AttachedMacros, 389, "Attached macros", hasSwiftSwiftParser)
112-
LANGUAGE_FEATURE(ExtensionMacros, 402, "Extension macros", hasSwiftSwiftParser)
113-
LANGUAGE_FEATURE(MoveOnly, 390, "noncopyable types", true)
114-
LANGUAGE_FEATURE(MoveOnlyResilientTypes, 390, "non-@frozen noncopyable types with library evolution", true)
115-
LANGUAGE_FEATURE(ParameterPacks, 393, "Value and type parameter packs", true)
116-
SUPPRESSIBLE_LANGUAGE_FEATURE(LexicalLifetimes, 0, "@_eagerMove/@_noEagerMove/@_lexicalLifetimes annotations", true)
117-
LANGUAGE_FEATURE(FreestandingMacros, 397, "freestanding declaration macros", true)
118-
SUPPRESSIBLE_LANGUAGE_FEATURE(RetroactiveAttribute, 364, "@retroactive", true)
119-
LANGUAGE_FEATURE(TypedThrows, 413, "Typed throws", true)
65+
LANGUAGE_FEATURE(AsyncAwait, 296, "async/await")
66+
LANGUAGE_FEATURE(EffectfulProp, 310, "Effectful properties")
67+
LANGUAGE_FEATURE(MarkerProtocol, 0, "@_marker protocol")
68+
LANGUAGE_FEATURE(Actors, 0, "actors")
69+
LANGUAGE_FEATURE(ConcurrentFunctions, 0, "@concurrent functions")
70+
LANGUAGE_FEATURE(RethrowsProtocol, 0, "@rethrows protocol")
71+
LANGUAGE_FEATURE(GlobalActors, 316, "Global actors")
72+
LANGUAGE_FEATURE(BuiltinJob, 0, "Builtin.Job type")
73+
LANGUAGE_FEATURE(Sendable, 0, "Sendable and @Sendable")
74+
LANGUAGE_FEATURE(BuiltinExecutor, 0, "Builtin.Executor type")
75+
LANGUAGE_FEATURE(BuiltinContinuation, 0, "Continuation builtins")
76+
LANGUAGE_FEATURE(BuiltinHopToActor, 0, "Builtin.HopToActor")
77+
LANGUAGE_FEATURE(BuiltinTaskGroupWithArgument, 0, "TaskGroup builtins")
78+
LANGUAGE_FEATURE(InheritActorContext, 0, "@_inheritActorContext attribute")
79+
LANGUAGE_FEATURE(ImplicitSelfCapture, 0, "@_implicitSelfCapture attribute")
80+
LANGUAGE_FEATURE(BuiltinBuildTaskExecutor, 0, "TaskExecutor-building builtins")
81+
LANGUAGE_FEATURE(BuiltinBuildExecutor, 0, "Executor-building builtins")
82+
LANGUAGE_FEATURE(BuiltinBuildComplexEqualityExecutor, 0, "Executor-building for 'complexEquality executor' builtins")
83+
LANGUAGE_FEATURE(BuiltinBuildMainExecutor, 0, "MainActor executor building builtin")
84+
LANGUAGE_FEATURE(BuiltinCreateAsyncTaskInGroup, 0, "Task create in task group builtin with extra flags")
85+
LANGUAGE_FEATURE(BuiltinCreateAsyncTaskInGroupWithExecutor, 0, "Task create in task group builtin with extra flags")
86+
LANGUAGE_FEATURE(BuiltinCreateAsyncTaskWithExecutor, 0, "Task create builtin with extra executor preference")
87+
LANGUAGE_FEATURE(BuiltinCopy, 0, "Builtin.copy()")
88+
LANGUAGE_FEATURE(BuiltinStackAlloc, 0, "Builtin.stackAlloc")
89+
LANGUAGE_FEATURE(BuiltinUnprotectedStackAlloc, 0, "Builtin.unprotectedStackAlloc")
90+
LANGUAGE_FEATURE(BuiltinAllocVector, 0, "Builtin.allocVector")
91+
LANGUAGE_FEATURE(BuiltinTaskRunInline, 0, "Builtin.taskRunInline")
92+
LANGUAGE_FEATURE(BuiltinUnprotectedAddressOf, 0, "Builtin.unprotectedAddressOf")
93+
LANGUAGE_FEATURE(NewCxxMethodSafetyHeuristics, 0, "Only import C++ methods that return pointers (projections) on owned types as unsafe")
94+
SUPPRESSIBLE_LANGUAGE_FEATURE(SpecializeAttributeWithAvailability, 0, "@_specialize attribute with availability")
95+
LANGUAGE_FEATURE(BuiltinAssumeAlignment, 0, "Builtin.assumeAlignment")
96+
LANGUAGE_FEATURE(BuiltinCreateTaskGroupWithFlags, 0, "Builtin.createTaskGroupWithFlags")
97+
SUPPRESSIBLE_LANGUAGE_FEATURE(UnsafeInheritExecutor, 0, "@_unsafeInheritExecutor")
98+
SUPPRESSIBLE_LANGUAGE_FEATURE(PrimaryAssociatedTypes2, 346, "Primary associated types")
99+
SUPPRESSIBLE_LANGUAGE_FEATURE(UnavailableFromAsync, 0, "@_unavailableFromAsync")
100+
SUPPRESSIBLE_LANGUAGE_FEATURE(NoAsyncAvailability, 340, "@available(*, noasync)")
101+
LANGUAGE_FEATURE(BuiltinIntLiteralAccessors, 368, "Builtin.IntLiteral accessors")
102+
LANGUAGE_FEATURE(Macros, 0, "Macros")
103+
LANGUAGE_FEATURE(FreestandingExpressionMacros, 382, "Expression macros")
104+
LANGUAGE_FEATURE(AttachedMacros, 389, "Attached macros")
105+
LANGUAGE_FEATURE(ExtensionMacros, 402, "Extension macros")
106+
LANGUAGE_FEATURE(MoveOnly, 390, "noncopyable types")
107+
LANGUAGE_FEATURE(MoveOnlyResilientTypes, 390, "non-@frozen noncopyable types with library evolution")
108+
LANGUAGE_FEATURE(ParameterPacks, 393, "Value and type parameter packs")
109+
SUPPRESSIBLE_LANGUAGE_FEATURE(LexicalLifetimes, 0, "@_eagerMove/@_noEagerMove/@_lexicalLifetimes annotations")
110+
LANGUAGE_FEATURE(FreestandingMacros, 397, "freestanding declaration macros")
111+
SUPPRESSIBLE_LANGUAGE_FEATURE(RetroactiveAttribute, 364, "@retroactive")
112+
SUPPRESSIBLE_LANGUAGE_FEATURE(ExtensionMacroAttr, 0, "@attached(extension)")
113+
LANGUAGE_FEATURE(TypedThrows, 413, "Typed throws")
120114

121115
UPCOMING_FEATURE(ConciseMagicFile, 274, 6)
122116
UPCOMING_FEATURE(ForwardTrailingClosures, 286, 6)
@@ -137,8 +131,6 @@ EXPERIMENTAL_FEATURE(CodeItemMacros, false)
137131
EXPERIMENTAL_FEATURE(BodyMacros, true)
138132
EXPERIMENTAL_FEATURE(TupleConformances, false)
139133

140-
SUPPRESSIBLE_LANGUAGE_FEATURE(ExtensionMacroAttr, 0, "@attached(extension)", true)
141-
142134
// Whether to enable @_used and @_section attributes
143135
EXPERIMENTAL_FEATURE(SymbolLinkageMarkers, true)
144136

include/swift/Basic/LangOptions.h

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -429,12 +429,6 @@ namespace swift {
429429
/// behavior. This is a staging flag, and will be removed in the future.
430430
bool EnableNewOperatorLookup = false;
431431

432-
/// The set of features that have been enabled.
433-
FixedBitSet<numFeatures(), Feature> Features;
434-
435-
/// Temporary flag to support LLDB's transition to using \c Features.
436-
bool EnableBareSlashRegexLiterals = false;
437-
438432
/// Use Clang function types for computing canonical types.
439433
/// If this option is false, the clang function types will still be computed
440434
/// but will not be used for checking type equality.
@@ -690,6 +684,12 @@ namespace swift {
690684
/// by name.
691685
bool hasFeature(llvm::StringRef featureName) const;
692686

687+
/// Enable the given feature.
688+
void enableFeature(Feature feature) { Features.insert(feature); }
689+
690+
/// Disable the given feature.
691+
void disableFeature(Feature feature) { Features.remove(feature); }
692+
693693
/// Sets the "_hasAtomicBitWidth" conditional.
694694
void setHasAtomicBitWidth(llvm::Triple triple);
695695

@@ -762,6 +762,11 @@ namespace swift {
762762
llvm::SmallVector<std::pair<PlatformConditionKind, std::string>, 10>
763763
PlatformConditionValues;
764764
llvm::SmallVector<std::string, 2> CustomConditionalCompilationFlags;
765+
766+
/// The set of features that have been enabled. Doesn't include upcoming
767+
/// features, which are checked against the language version in
768+
/// `hasFeature`.
769+
FixedBitSet<numFeatures(), Feature> Features;
765770
};
766771

767772
class TypeCheckerOptions final {

include/swift/Option/Options.td

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -976,6 +976,11 @@ def EnbaleDefaultCMO : Flag<["-"], "enable-default-cmo">,
976976
Flags<[HelpHidden, FrontendOption]>,
977977
HelpText<"Perform conservative cross-module optimization">;
978978

979+
def EnbaleCMOEverything : Flag<["-"], "enable-cmo-everything">,
980+
Flags<[HelpHidden, FrontendOption]>,
981+
HelpText<"Perform cross-module optimization on everything (all APIs). "
982+
"This is the same level of serialization as Embedded Swift.">;
983+
979984
def CrossModuleOptimization : Flag<["-"], "cross-module-optimization">,
980985
Flags<[HelpHidden, FrontendOption]>,
981986
HelpText<"Perform cross-module optimization">;

include/swift/Parse/Parser.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1015,8 +1015,6 @@ class Parser {
10151015
/// 'isLine = true' indicates parsing #line instead of #sourcelocation
10161016
ParserStatus parseLineDirective(bool isLine = false);
10171017

1018-
void recordLocalType(TypeDecl *TD);
1019-
10201018
/// Skip an `#if` configuration block containing only attributes.
10211019
///
10221020
/// \returns true if the skipping was successful, false otherwise.

include/swift/SwiftRemoteMirror/Platform.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,13 @@ extern "C" {
4141
# endif
4242
#endif
4343

44+
#if defined(__clang__)
45+
#define SWIFT_REMOTE_MIRROR_DEPRECATED(MSG, FIX) \
46+
__attribute__((__deprecated__(MSG, FIX)))
47+
#else
48+
#define SWIFT_REMOTE_MIRROR_DEPRECATED(MSG, FIX) [[deprecated(MSG)]]
49+
#endif
50+
4451
#if defined(__cplusplus)
4552
}
4653
#endif

include/swift/SwiftRemoteMirror/SwiftRemoteMirror.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,9 @@ swift_reflection_typeRefForMangledTypeName(SwiftReflectionContextRef ContextRef,
188188
///
189189
/// The returned string is heap allocated and the caller must free() it when
190190
/// done.
191-
[[deprecated("Please use swift_reflection_copyNameForTypeRef()")]]
191+
SWIFT_REMOTE_MIRROR_DEPRECATED(
192+
"Please use swift_reflection_copyNameForTypeRef()",
193+
"swift_reflection_copyNameForTypeRef")
192194
SWIFT_REMOTE_MIRROR_LINKAGE
193195
char *
194196
swift_reflection_copyDemangledNameForTypeRef(

0 commit comments

Comments
 (0)