private static VariableData @NotNull [] unmapVariableData(VariableData @NotNull [] variableDatum,
                                                            @NotNull Map<PsiVariable, PsiVariable> variablesMapping) {
    Map<PsiVariable, PsiVariable> reverseMapping = ContainerUtil.reverseMap(variablesMapping);
    return StreamEx.of(variableDatum)
                   .map(data -> data.substitute(reverseMapping.get(data.variable)))
                   .toArray(VariableData[]::new);
  }
private static VariableData @NotNull [] unmapVariableData(VariableData @NotNull [] variableDatum,
                                                            @NotNull Map<PsiVariable, PsiVariable> variablesMapping)