@Override
  public SuggestedNameInfo getSuggestedNames(@NotNull PsiElement element,
                                             @Nullable PsiElement nameSuggestionContext,
                                             @NotNull Set<String> result) {
    if (nameSuggestionContext == null) nameSuggestionContext = element;
    if (element instanceof GrVariable && nameSuggestionContext instanceof GroovyPsiElement) {
      final PsiType type = ((GrVariable)element).getTypeGroovy();
      if (type != null) {
        final String[] names = GroovyNameSuggestionUtil
          .suggestVariableNameByType(type, new DefaultGroovyVariableNameValidator((GroovyPsiElement)nameSuggestionContext));
        result.addAll(Arrays.asList(names));
        final VariableKind kind = JavaCodeStyleManager.getInstance(element.getProject()).getVariableKind((GrVariable)element);
        final String typeText = type.getCanonicalText();
        return new SuggestedNameInfo(names) {
          @Override
          public void nameChosen(String name) {
            JavaStatisticsManager.incVariableNameUseCount(name, kind, ((GrVariable)element).getName(), typeText);
          }
        };
      }
    }
    return null;
  }
@Override
  public SuggestedNameInfo getSuggestedNames(@NotNull PsiElement element,
                                             @Nullable PsiElement nameSuggestionContext,
                                             @NotNull Set<String> result)