@Override
  public PsiClassType @NotNull [] getReferencedTypes() {
    PsiClassType[] types = myTypes;
    if (types == null) {
      myTypes = types = createTypes();
    }
    return types.length == 0 ? PsiClassType.EMPTY_ARRAY : types.clone();
  }
@Override
  public PsiClassType @NotNull [] getReferencedTypes()