Memoize 'JavaTypeClassifierImpl.isRaw' result

This commit is contained in:
Denis Zharkov
2016-02-12 15:29:06 +03:00
parent d4d289c881
commit 1b4b8ab5db
@@ -27,10 +27,12 @@ public class JavaClassifierTypeImpl extends JavaTypeImpl<PsiClassType> implement
private static class ResolutionResult { private static class ResolutionResult {
private final JavaClassifier classifier; private final JavaClassifier classifier;
private final JavaTypeSubstitutor substitutor; private final JavaTypeSubstitutor substitutor;
private final boolean isRaw;
private ResolutionResult(@Nullable JavaClassifier classifier, @NotNull JavaTypeSubstitutor substitutor) { private ResolutionResult(@Nullable JavaClassifier classifier, @NotNull JavaTypeSubstitutor substitutor, boolean isRaw) {
this.classifier = classifier; this.classifier = classifier;
this.substitutor = substitutor; this.substitutor = substitutor;
this.isRaw = isRaw;
} }
} }
@@ -61,8 +63,8 @@ public class JavaClassifierTypeImpl extends JavaTypeImpl<PsiClassType> implement
PsiSubstitutor substitutor = result.getSubstitutor(); PsiSubstitutor substitutor = result.getSubstitutor();
resolutionResult = new ResolutionResult( resolutionResult = new ResolutionResult(
psiClass == null ? null : JavaClassifierImpl.create(psiClass), psiClass == null ? null : JavaClassifierImpl.create(psiClass),
new JavaTypeSubstitutorImpl(convertSubstitutionMap(substitutor.getSubstitutionMap())) new JavaTypeSubstitutorImpl(convertSubstitutionMap(substitutor.getSubstitutionMap())),
); PsiClassType.isRaw(result));
} }
} }
@@ -102,7 +104,8 @@ public class JavaClassifierTypeImpl extends JavaTypeImpl<PsiClassType> implement
@Override @Override
public boolean isRaw() { public boolean isRaw() {
return getPsi().isRaw(); resolve();
return resolutionResult.isRaw;
} }
@Override @Override