Skip to content

Commit 6f34903

Browse files
author
Harlan Haskins
authored
Merge pull request #28425 from harlanhaskins/an-inconenient-init-parsing
[AST] Add attributes for hasMissingDesignatedInitializers and inheritsConvenienceInitializers
2 parents 0cae658 + 1b24c79 commit 6f34903

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)