Skip to content

Commit 1b24c79

Browse files
author
Harlan Haskins
committed
[AST] Add attributes for hasMissingDesignatedInitializers and inheritsConvenienceInitializers
We're planning to emit these attributes in module interfaces, but until we land that patch, we want to parse these attributes and ignore them. Part of rdar://51249311
1 parent 4c2254b commit 1b24c79

File tree

4 files changed

+23
-0
lines changed

4 files changed

+23
-0
lines changed

include/swift/AST/Attr.def

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -508,6 +508,16 @@ DECL_ATTR(differentiable, Differentiable,
508508
ABIStableToAdd | ABIBreakingToRemove | APIStableToAdd | APIBreakingToRemove,
509509
91)
510510

511+
SIMPLE_DECL_ATTR(_hasMissingDesignatedInitializers,
512+
HasMissingDesignatedInitializers, OnClass | UserInaccessible | NotSerialized |
513+
APIBreakingToAdd | ABIBreakingToAdd | APIStableToRemove | ABIStableToRemove,
514+
92)
515+
516+
SIMPLE_DECL_ATTR(_inheritsConvenienceInitializers,
517+
InheritsConvenienceInitializers, OnClass | UserInaccessible | NotSerialized |
518+
APIStableToAdd | ABIStableToAdd | APIBreakingToRemove | ABIBreakingToRemove,
519+
93)
520+
511521
SIMPLE_DECL_ATTR(IBSegueAction, IBSegueAction,
512522
OnFunc |
513523
ABIStableToAdd | ABIStableToRemove | APIStableToAdd | APIStableToRemove,

lib/Sema/TypeCheckAttr.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,8 @@ class AttributeChecker : public AttributeVisitor<AttributeChecker> {
9393
IGNORED_ATTR(Exported)
9494
IGNORED_ATTR(ForbidSerializingReference)
9595
IGNORED_ATTR(HasStorage)
96+
IGNORED_ATTR(HasMissingDesignatedInitializers)
97+
IGNORED_ATTR(InheritsConvenienceInitializers)
9698
IGNORED_ATTR(Inline)
9799
IGNORED_ATTR(ObjCBridged)
98100
IGNORED_ATTR(ObjCNonLazyRealization)

lib/Sema/TypeCheckDeclOverride.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1286,12 +1286,14 @@ namespace {
12861286
UNINTERESTING_ATTR(Exported)
12871287
UNINTERESTING_ATTR(ForbidSerializingReference)
12881288
UNINTERESTING_ATTR(GKInspectable)
1289+
UNINTERESTING_ATTR(HasMissingDesignatedInitializers)
12891290
UNINTERESTING_ATTR(IBAction)
12901291
UNINTERESTING_ATTR(IBDesignable)
12911292
UNINTERESTING_ATTR(IBInspectable)
12921293
UNINTERESTING_ATTR(IBOutlet)
12931294
UNINTERESTING_ATTR(IBSegueAction)
12941295
UNINTERESTING_ATTR(Indirect)
1296+
UNINTERESTING_ATTR(InheritsConvenienceInitializers)
12951297
UNINTERESTING_ATTR(Inline)
12961298
UNINTERESTING_ATTR(Optimize)
12971299
UNINTERESTING_ATTR(Inlinable)
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// RUN: %target-swift-frontend -typecheck %s -verify
2+
3+
// This test just makes sure we don't error if we see either of these attributes.
4+
5+
@_hasMissingDesignatedInitializers // no-error
6+
class MyClass {}
7+
8+
@_inheritsConvenienceInitializers // no-error
9+
class MyOtherClass {}

0 commit comments

Comments
 (0)