Guard (@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) ); }