Retain original location of variable on value node rewrite
This is a follow-up of #8677 Summary of the changes (Less than 80 chars)
- Retain location of the original VariableNode during rewrite
- Detail 2
Closes #bugnumber (in this specific format)
This is a follow-up of #8677 and resolves the issue discussed during review with @tobias-tengler that for variables, the location always points to the outermost argument.
For example in
query($v: String!) { fieldWithNestedObjectInput(arg: { inner: { id: $v } } } the location points to arg: { inner: { id: $v } }.
With this PR, the location of the original VariableNode is retained when rewriting it to the corresponding ValueNode, solving the issue so that the example above will correctly point to $v.
I am not sure whether it is acceptable to introduce a new method into such a central interface like IValueNode; alternatively, it could be extracted into a separate interface (e.g., ILocationAdjustable).