Skip to content

Commit 303d03b

Browse files
authored
Merge pull request #38409 from nkcsgexi/80535144
TextualInterface: print __conuming before accessors
2 parents 25a1552 + 3ab9ddf commit 303d03b

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

lib/AST/ASTPrinter.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3432,7 +3432,9 @@ void PrintAST::visitAccessorDecl(AccessorDecl *decl) {
34323432
printAttributes(decl);
34333433
// Explicitly print 'mutating' and 'nonmutating' if needed.
34343434
printMutabilityModifiersIfNeeded(decl);
3435-
3435+
if (decl->isConsuming()) {
3436+
Printer.printKeyword("__consuming", Options, " ");
3437+
}
34363438
switch (auto kind = decl->getAccessorKind()) {
34373439
case AccessorKind::Get:
34383440
case AccessorKind::Address:

test/ModuleInterface/consuming.swift

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// RUN: %empty-directory(%t)
2+
// RUN: %empty-directory(%t/missing)
3+
// RUN: %empty-directory(%t/inputs)
4+
// RUN: %target-swift-frontend -emit-module-path %t/missing/Foo.swiftmodule -enable-library-evolution -emit-module-interface-path %t/inputs/Foo.swiftinterface -enable-objc-interop -disable-objc-attr-requires-foundation-module -module-name Foo %s
5+
// RUN: %FileCheck --input-file %t/inputs/Foo.swiftinterface %s
6+
7+
// RUN: touch %t/Bar.swift
8+
// RUN: echo "import Foo" > %t/Bar.swift
9+
// RUN: echo "let f = Field()" >> %t/Bar.swift
10+
11+
// RUN: %target-swift-frontend -emit-module-path %t/Bar.swiftmodule -enable-library-evolution -enable-objc-interop -disable-objc-attr-requires-foundation-module -module-name Bar %t/Bar.swift -I %t/inputs
12+
13+
14+
import Swift
15+
16+
public struct Field {
17+
public init() {}
18+
public var area: Int {
19+
__consuming get { return 1 }
20+
_modify {
21+
var a = 1
22+
yield &a
23+
}
24+
}
25+
}
26+
27+
// CHECK: __consuming get

0 commit comments

Comments
 (0)