List<DefinitionMap> (@NotNull GroovyControlFlow flow) { final ReachingDefinitionsDfaInstance dfaInstance = new TypesReachingDefinitionsInstance(); final ReachingDefinitionsSemilattice lattice = new ReachingDefinitionsSemilattice(); final DFAEngine<DefinitionMap> engine = new DFAEngine<>(flow.getFlow(), dfaInstance, lattice); List<@Nullable DefinitionMap> maps = engine.performDFAWithTimeout(); if (maps == null) { return null; } return ContainerUtil.map(maps, it -> it == null ? DefinitionMap.NEUTRAL : it); }