def annotate_op(self, op):
        """
        Takes a bytecode operation (:class:`Op`) and annotates it using the
        data contained in this code object.

        Arguments:
            op(Op): An :class:`Op` instance.

        Returns:
            AnnotatedOp: An annotated bytecode operation.
        """

        if isinstance(op, Label):
            return op
        else:
            return AnnotatedOp(self, op.name, op.arg)