# File lib/yard/handlers/base.rb, line 239
      def push_state(opts = {}, &block)
        opts = {
          :namespace => nil,
          :scope => :instance,
          :owner => nil
        }.update(opts)

        if opts[:namespace]
          ns, vis, sc = namespace, visibility, scope
          self.namespace = opts[:namespace]
          self.visibility = :public
          self.scope = opts[:scope]
        end

        oldowner, self.owner = self.owner, opts[:owner] ? opts[:owner] : namespace
        yield
        self.owner = oldowner

        if opts[:namespace]
          self.namespace = ns
          self.owner = namespace
          self.visibility = vis
          self.scope = sc
        end
      end