class RubyLsp::Document

def cache_fetch(request_name, &block)

: [T] (String request_name) { (Document[ParseResultType] document) -> T } -> T
def cache_fetch(request_name, &block)
  cached = @cache[request_name]
  return cached if cached != EMPTY_CACHE
  result = block.call(self)
  @cache[request_name] = result
  result
end