Skip to content

Commit 470b552

Browse files
gh-action-runnergh-action-runner
authored andcommitted
Squashed 'apollo-ios-codegen/' changes from 8cf081a6..a549da35
a549da35 fix: Deferred fragment accessor with nested fragment (#709) git-subtree-dir: apollo-ios-codegen git-subtree-split: a549da354fbdcdd224ebefcf33d2d977517bacf4
1 parent c984e2f commit 470b552

File tree

1 file changed

+21
-11
lines changed

1 file changed

+21
-11
lines changed

Sources/ApolloCodegenLib/Templates/SelectionSetTemplate.swift

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -526,12 +526,18 @@ struct SelectionSetTemplate {
526526
private func FragmentInitializerTemplate(
527527
_ selectionSet: ComputedSelectionSet
528528
) -> String {
529-
if let directSelections = selectionSet.direct,
530-
(directSelections.inlineFragments.containsDeferredFragment
531-
|| directSelections.namedFragments.containsDeferredFragment)
532-
{
533-
return DesignatedInitializerTemplate(
534-
"""
529+
guard
530+
selectionSet.direct?.inlineFragments.containsDeferredFragment ?? false ||
531+
selectionSet.direct?.namedFragments.containsDeferredFragment ?? false ||
532+
selectionSet.merged.inlineFragments.containsDeferredFragment ||
533+
selectionSet.merged.namedFragments.containsDeferredFragment
534+
else {
535+
return DesignatedInitializerTemplate()
536+
}
537+
538+
return DesignatedInitializerTemplate(
539+
"""
540+
\(ifLet: selectionSet.direct, { directSelections in """
535541
\(forEachIn: directSelections.inlineFragments.values, separator: "\n", {
536542
if let deferCondition = $0.typeInfo.deferCondition {
537543
return DeferredPropertyInitializationStatement(deferCondition.label)
@@ -546,12 +552,16 @@ struct SelectionSetTemplate {
546552

547553
return ""
548554
})
549-
"""
550-
)
555+
"""})
556+
\(forEachIn: selectionSet.merged.namedFragments.values, separator: "\n", {
557+
if let _ = $0.typeInfo.deferCondition {
558+
return DeferredPropertyInitializationStatement($0.definition.name.firstLowercased)
559+
}
551560

552-
} else {
553-
return DesignatedInitializerTemplate()
554-
}
561+
return ""
562+
})
563+
"""
564+
)
555565
}
556566

557567
private func DeferredPropertyInitializationStatement(_ propertyName: String) -> TemplateString {

0 commit comments

Comments
 (0)