private static Guard getRootGuard(@NotNull CompileContext context, @NotNull Path rootPath) {
      Map<Object, Guard> map = context.getUserData(CONTEXT_KEY);
      assert map != null;
      return map.computeIfAbsent(rootPath, (ignored) ->
        new Guard(false) // root can be processed more than once (similar dependency root can be used in multiple libraries)
      );
    }
private static Guard getRootGuard(@NotNull CompileContext context, @NotNull Path rootPath)