code: public void markName(String name, Node templateNode,
        int lineno, int charno) {
      if (currentMarker != null) {
        // Record the name as both a SourcePosition<String> and a
        // SourcePosition<Node>. The <String> form is deprecated,
        // because <Node> is more consistent with how other name
        // references are handled (see #markTypeNode)
        //
        // TODO(nicksantos): Remove all uses of the Name position
        // and replace them with the NameNode position.
        JSDocInfo.TrimmedStringPosition position =
            new JSDocInfo.TrimmedStringPosition();
        position.setItem(name);
        position.setPositionInformation(lineno, charno,
            lineno, charno + name.length());
  
        JSDocInfo.NamePosition nodePos = new JSDocInfo.NamePosition();
        Node node = Node.newString(Token.NAME, name, lineno, charno);
        node.setLength(name.length());
        if (templateNode != null) {
          node.setStaticSourceFileFrom(templateNode);
        }
        nodePos.setItem(node);
        nodePos.setPositionInformation(lineno, charno,
            lineno, charno + name.length());
        currentMarker.setNameNode(nodePos);
      }
    }
docs: Adds a name declaration to the current marker.