File tree Expand file tree Collapse file tree 2 files changed +26
-6
lines changed Expand file tree Collapse file tree 2 files changed +26
-6
lines changed Original file line number Diff line number Diff line change @@ -6484,9 +6484,13 @@ ParamDecl::getDefaultValueStringRepresentation(
6484
6484
return getASTContext ().SourceMgr .extractText (charRange);
6485
6485
}
6486
6486
6487
- // If there is no parent initializer, we used the default initializer.
6488
- auto parentInit = original->getParentInitializer ();
6489
- if (!parentInit) {
6487
+ // If there is no initial wrapped value, we used the default initializer.
6488
+ Expr *wrappedValue = nullptr ;
6489
+ if (auto *parentInit = original->getParentInitializer ())
6490
+ if (auto *placeholder = findWrappedValuePlaceholder (parentInit))
6491
+ wrappedValue = placeholder->getOriginalWrappedValue ();
6492
+
6493
+ if (!wrappedValue) {
6490
6494
if (auto type = original->getPropertyWrapperBackingPropertyType ()) {
6491
6495
if (auto nominal = type->getAnyNominal ()) {
6492
6496
scratch.clear ();
@@ -6501,9 +6505,8 @@ ParamDecl::getDefaultValueStringRepresentation(
6501
6505
return " .init()" ;
6502
6506
}
6503
6507
6504
- auto init =
6505
- findWrappedValuePlaceholder (parentInit)->getOriginalWrappedValue ();
6506
- return extractInlinableText (getASTContext ().SourceMgr , init, scratch);
6508
+ auto &sourceMgr = getASTContext ().SourceMgr ;
6509
+ return extractInlinableText (sourceMgr, wrappedValue, scratch);
6507
6510
}
6508
6511
}
6509
6512
Original file line number Diff line number Diff line change
1
+ // RUN: %target-swift-frontend -print-ast %s | %FileCheck %s
2
+
3
+ @propertyWrapper
4
+ struct Wrapper {
5
+ init ( ) { }
6
+
7
+ var wrappedValue : Int = 0
8
+ }
9
+
10
+ // CHECK-LABEL: internal struct UseWrapperDefaultInit
11
+ struct UseWrapperDefaultInit {
12
+ @Wrapper var value
13
+ // CHECK: internal init(value: Wrapper = Wrapper())
14
+ }
15
+
16
+ let _ = UseWrapperDefaultInit ( )
17
+
You can’t perform that action at this time.
0 commit comments