@Nullable
  static List<DefinitionMap> getDefUseMaps(@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);
  }
@Nullable
  static List<DefinitionMap> getDefUseMaps(@NotNull GroovyControlFlow flow)