mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[java] introduces PsiType.annotate(); minor optimization
This commit is contained in:
@@ -43,7 +43,7 @@ public class PsiArrayType extends PsiType.Stub {
|
||||
@NotNull
|
||||
@Override
|
||||
public PsiArrayType annotate(@NotNull TypeAnnotationProvider provider) {
|
||||
return new PsiArrayType(myComponentType, provider);
|
||||
return provider == getAnnotationProvider() ? this : new PsiArrayType(myComponentType, provider);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -38,7 +38,7 @@ public class PsiEllipsisType extends PsiArrayType {
|
||||
@NotNull
|
||||
@Override
|
||||
public PsiEllipsisType annotate(@NotNull TypeAnnotationProvider provider) {
|
||||
return new PsiEllipsisType(getComponentType(), provider);
|
||||
return provider == getAnnotationProvider() ? this : new PsiEllipsisType(getComponentType(), provider);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -56,7 +56,7 @@ public class PsiPrimitiveType extends PsiType.Stub {
|
||||
@NotNull
|
||||
@Override
|
||||
public PsiPrimitiveType annotate(@NotNull TypeAnnotationProvider provider) {
|
||||
return new PsiPrimitiveType(myName, provider);
|
||||
return provider == getAnnotationProvider() ? this : new PsiPrimitiveType(myName, provider);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -89,7 +89,7 @@ public class PsiWildcardType extends PsiType.Stub {
|
||||
@NotNull
|
||||
@Override
|
||||
public PsiWildcardType annotate(@NotNull TypeAnnotationProvider provider) {
|
||||
return new PsiWildcardType(this, provider);
|
||||
return provider == getAnnotationProvider() ? this : new PsiWildcardType(this, provider);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -61,7 +61,7 @@ public class PsiClassReferenceType extends PsiClassType.Stub {
|
||||
@NotNull
|
||||
@Override
|
||||
public PsiClassReferenceType annotate(@NotNull TypeAnnotationProvider provider) {
|
||||
return new PsiClassReferenceType(myReference, myLanguageLevel, provider);
|
||||
return provider == getAnnotationProvider() ? this : new PsiClassReferenceType(myReference, myLanguageLevel, provider);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -111,7 +111,7 @@ public class PsiImmediateClassType extends PsiClassType.Stub {
|
||||
@NotNull
|
||||
@Override
|
||||
public PsiImmediateClassType annotate(@NotNull TypeAnnotationProvider provider) {
|
||||
return new PsiImmediateClassType(myClass, mySubstitutor, myLanguageLevel, provider);
|
||||
return provider == getAnnotationProvider() ? this : new PsiImmediateClassType(myClass, mySubstitutor, myLanguageLevel, provider);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -123,6 +123,7 @@ public class PsiImmediateClassType extends PsiClassType.Stub {
|
||||
public String getClassName() {
|
||||
return myClass.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public PsiType[] getParameters() {
|
||||
@@ -134,12 +135,10 @@ public class PsiImmediateClassType extends PsiClassType.Stub {
|
||||
List<PsiType> lst = new ArrayList<PsiType>();
|
||||
for (PsiTypeParameter parameter : parameters) {
|
||||
PsiType substituted = mySubstitutor.substitute(parameter);
|
||||
if (substituted != null) {
|
||||
lst.add(substituted);
|
||||
}
|
||||
else {
|
||||
if (substituted == null) {
|
||||
return PsiType.EMPTY_ARRAY;
|
||||
}
|
||||
lst.add(substituted);
|
||||
}
|
||||
return lst.toArray(createArray(lst.size()));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user