@@ -579,48 +579,32 @@ fragment conflictingDifferingResponses on Pet {
579579
580580Fragment spread arguments can also cause fields to fail to merge.
581581
582- While the following is valid:
583-
584582``` graphql example
585583fragment commandFragment ($command : DogCommand ! ) on Dog {
586584 doesKnowCommand (dogCommand : $command )
587585}
588586
589587fragment potentiallyConflictingArguments (
590588 $commandOne : DogCommand !
591- $commandTwo : DogCommand !
592589) on Dog {
593590 ... commandFragment (command : $commandOne )
594591 ... commandFragment (command : $commandTwo )
595592}
596593
597594fragment safeFragmentArguments on Dog {
598- ... potentiallyConflictingArguments (commandOne : SIT , commandTwo : SIT )
599- }
600- ```
601-
602- it is only valid because ` safeFragmentArguments ` uses
603- ` potentiallyConflictingArguments ` with the same value for the fragment-defined
604- variables ` commandOne ` and ` commandTwo ` . Therefore ` commandFragment ` resolves
605- ` doesKnowCommand ` 's ` dogCommand ` argument value to ` SIT ` in both cases.
606-
607- However, by changing the fragment spread argument values:
608-
609- ``` graphql counter-example
610- fragment conflictingFragmentArguments on Dog {
611595 ... potentiallyConflictingArguments (commandOne : SIT , commandTwo : DOWN )
612596}
613597```
614598
615- the response will have two conflicting versions of the ` doesKnowCommand `
616- fragment that cannot merge.
617-
618599If two fragment spreads with the same name supply different argument values,
619600their fields will not be able to merge. In this case, validation fails because
620601the fragment spread ` ...commandFragment(command: SIT) ` and
621602` ...commandFragment(command: DOWN) ` are part of the visited selections that will
622603be merged.
623604
605+ If both of these spreads would have ` $commandOne ` or ` $commandTwo ` as the argument-value,
606+ it would be allowed as we can be sure that we'd resolve identical fields.
607+
624608### Leaf Field Selections
625609
626610** Formal Specification**
0 commit comments