Skip to content

Commit 3ab9ddf

Browse files
committed
TextualInterface: print __conuming before accessors
rdar://80535144
1 parent 8226e54 commit 3ab9ddf

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
@@ -3428,7 +3428,9 @@ void PrintAST::visitAccessorDecl(AccessorDecl *decl) {
34283428
printAttributes(decl);
34293429
// Explicitly print 'mutating' and 'nonmutating' if needed.
34303430
printMutabilityModifiersIfNeeded(decl);
3431-
3431+
if (decl->isConsuming()) {
3432+
Printer.printKeyword("__consuming", Options, " ");
3433+
}
34323434
switch (auto kind = decl->getAccessorKind()) {
34333435
case AccessorKind::Get:
34343436
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)