File tree Expand file tree Collapse file tree 3 files changed +15
-6
lines changed
Inputs/objc_implementation Expand file tree Collapse file tree 3 files changed +15
-6
lines changed Original file line number Diff line number Diff line change @@ -3508,12 +3508,14 @@ void PrintAST::visitPatternBindingDecl(PatternBindingDecl *decl) {
3508
3508
if (decl->isStatic ())
3509
3509
printStaticKeyword (decl->getCorrectStaticSpelling ());
3510
3510
3511
+ bool printAsVar = false ;
3511
3512
if (anyVar) {
3512
- Printer << (anyVar->isSettable (anyVar->getDeclContext ()) ? " var " : " let " );
3513
- } else {
3514
- Printer << " let " ;
3513
+ printAsVar = (anyVar->isSettable (anyVar->getDeclContext ()) ||
3514
+ isInObjCImpl (anyVar));
3515
3515
}
3516
3516
3517
+ Printer << (printAsVar ? " var " : " let " );
3518
+
3517
3519
bool isFirst = true ;
3518
3520
for (auto idx : range (decl->getNumPatternEntries ())) {
3519
3521
auto *pattern = decl->getPattern (idx);
@@ -3958,9 +3960,9 @@ void PrintAST::visitVarDecl(VarDecl *decl) {
3958
3960
// Map all non-let specifiers to 'var'. This is not correct, but
3959
3961
// SourceKit relies on this for info about parameter decls.
3960
3962
3961
- Printer. printIntroducerKeyword (
3962
- introducer == VarDecl::Introducer::Let ? " let " : " var " ,
3963
- Options, " " );
3963
+ bool printAsVar = (introducer != VarDecl::Introducer::Let ||
3964
+ isInObjCImpl (decl));
3965
+ Printer. printIntroducerKeyword (printAsVar ? " var " : " let " , Options, " " );
3964
3966
}
3965
3967
printContextIfNeeded (decl);
3966
3968
recordDeclLoc (decl,
Original file line number Diff line number Diff line change 4
4
5
5
- (nonnull instancetype )init ;
6
6
7
+ @property (readonly ) int letProperty1;
7
8
@property (assign ) int implProperty;
8
9
9
10
- (void )mainMethod : (int )param ;
Original file line number Diff line number Diff line change @@ -42,6 +42,12 @@ import Foundation
42
42
didSet { print ( implProperty) }
43
43
}
44
44
45
+ // CHECK-NOT: var letProperty1:
46
+ @objc public let letProperty1 : Int32
47
+
48
+ // CHECK-DAG: @nonobjc public var letProperty2: Swift.Int32 { get }
49
+ @nonobjc public let letProperty2 : Int32
50
+
45
51
// CHECK-DAG: final public var implProperty2: ObjectiveC.NSObject? { get set }
46
52
public final var implProperty2 : NSObject ?
47
53
You can’t perform that action at this time.
0 commit comments