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 @@ -6494,9 +6494,13 @@ ParamDecl::getDefaultValueStringRepresentation(
6494
6494
return getASTContext ().SourceMgr .extractText (charRange);
6495
6495
}
6496
6496
6497
- // If there is no parent initializer, we used the default initializer.
6498
- auto parentInit = original->getParentInitializer ();
6499
- if (!parentInit) {
6497
+ // If there is no initial wrapped value, we used the default initializer.
6498
+ Expr *wrappedValue = nullptr ;
6499
+ if (auto *parentInit = original->getParentInitializer ())
6500
+ if (auto *placeholder = findWrappedValuePlaceholder (parentInit))
6501
+ wrappedValue = placeholder->getOriginalWrappedValue ();
6502
+
6503
+ if (!wrappedValue) {
6500
6504
if (auto type = original->getPropertyWrapperBackingPropertyType ()) {
6501
6505
if (auto nominal = type->getAnyNominal ()) {
6502
6506
scratch.clear ();
@@ -6511,9 +6515,8 @@ ParamDecl::getDefaultValueStringRepresentation(
6511
6515
return " .init()" ;
6512
6516
}
6513
6517
6514
- auto init =
6515
- findWrappedValuePlaceholder (parentInit)->getOriginalWrappedValue ();
6516
- return extractInlinableText (getASTContext ().SourceMgr , init, scratch);
6518
+ auto &sourceMgr = getASTContext ().SourceMgr ;
6519
+ return extractInlinableText (sourceMgr, wrappedValue, scratch);
6517
6520
}
6518
6521
}
6519
6522
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