code: private static void useSourceInfoForNewQName(Node newQName, Node basisNode) {
      if (newQName.getStaticSourceFile() == null) {
        newQName.setStaticSourceFileFrom(basisNode);
        newQName.setSourceEncodedPosition(basisNode.getSourcePosition());
      }
  
      if (newQName.getOriginalName() == null) {
        newQName.putProp(Node.ORIGINALNAME_PROP, basisNode.getOriginalName());
      }
  
      for (Node child = newQName.getFirstChild(); child != null; child = child.getNext()) {
        useSourceInfoForNewQName(child, basisNode);
      }
    }
docs: Custom update new QName node with source info from another node.
  
  <p>This is very similar to {@link Node#useSourceInfoIfMissingFromForTree(Node)}, but it avoids
  overwriting the length field of the nodes.
  TODO(bradfordcsmith): Eliminate the need for this custom method.