# File lib/parser/source/rewriter.rb, line 185
      def transaction
        unless block_given?
          raise "#{self.class}##{__method__} requires block"
        end

        if in_transaction?
          raise 'Nested transaction is not supported'
        end

        @pending_queue = @queue.dup
        @pending_clobber = @clobber
        @pending_insertions = @insertions

        yield

        @queue = @pending_queue
        @clobber = @pending_clobber
        @insertions = @pending_insertions

        self
      ensure
        @pending_queue = nil
        @pending_clobber = nil
        @pending_insertions = nil
      end