PsiType (@NotNull TypeAnnotationProvider provider) { if (provider == myAnnotationProvider) return this; try { PsiType copy = (PsiType)clone(); copy.myAnnotationProvider = provider; return copy; } catch (CloneNotSupportedException e) { throw new RuntimeException(e); } }