def with_tags(self, *new_tags: Hashable) -> cirq.TaggedOperation:
        """Creates a new TaggedOperation with combined tags.

        Overloads Operation.with_tags to create a new TaggedOperation
        that has the tags of this operation combined with the new_tags
        specified as the parameter.

        Please note that tags should be instantiated if classes are
        used.  Raw types are not allowed.
        """
        if not new_tags:
            return self
        return TaggedOperation(self.sub_operation, *self._tags, *new_tags)
Creates a new TaggedOperation with combined tags.

        Overloads Operation.with_tags to create a new TaggedOperation
        that has the tags of this operation combined with the new_tags
        specified as the parameter.

        Please note that tags should be instantiated if classes are
        used.  Raw types are not allowed.
        
cirq-core/cirq/ops/raw_types.py