docs: public static ClassStub parseClass(URL url) throws IOException {
          URI uri;
          try {
              uri = url.toURI();
          } catch (URISyntaxException e) {
              throw new GroovyRuntimeException(e);
          }
  
          SoftReference<ClassStub> ref = StubCache.map.get(uri);
          ClassStub stub = ref == null ? null : ref.get();
          if (stub == null) {
              DecompilingVisitor visitor = new DecompilingVisitor();
  
              try (InputStream stream = new BufferedInputStream(URLStreams.openUncachedStream(url))) {
                  new ClassReader(stream).accept(visitor, ClassReader.SKIP_FRAMES);
              }
              stub = visitor.result;
              StubCache.map.put(uri, new SoftReference<ClassStub>(stub));
          }
          return stub;
      }