Module[] (final Module module) { return ReadAction.compute(() -> { ArrayList<Module> result = new ArrayList<>(); final Module[] projectModules = ModuleManager.getInstance(module.getProject()).getModules(); for (Module projectModule : projectModules) { if (ArrayUtil.find(ModuleRootManager.getInstance(projectModule).getDependencies(), module) > -1) { result.add(projectModule); } } return result.toArray(Module.EMPTY_ARRAY); }); }