From 7ef01d2fe619dec8d6aa94141cdd575fb837c05d Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Tue, 6 Oct 2009 16:23:40 +0400 Subject: [PATCH] cleanup --- .../psi/impl/compiled/ClsStubBuilder.java | 4 +-- .../stubs/impl/PsiModifierListStubImpl.java | 8 +---- .../impl/source/resolve/JavaResolveCache.java | 2 +- .../tree/java/PsiBinaryExpressionImpl.java | 6 ++-- .../java/PsiMethodCallExpressionImpl.java | 9 ++--- .../tree/java/PsiReferenceExpressionImpl.java | 26 ++++++-------- .../intellij/psi/util/TypeConversionUtil.java | 34 ++++++++++--------- 7 files changed, 40 insertions(+), 49 deletions(-) diff --git a/java/java-impl/src/com/intellij/psi/impl/compiled/ClsStubBuilder.java b/java/java-impl/src/com/intellij/psi/impl/compiled/ClsStubBuilder.java index c7fd75d74173..da49ef672752 100644 --- a/java/java-impl/src/com/intellij/psi/impl/compiled/ClsStubBuilder.java +++ b/java/java-impl/src/com/intellij/psi/impl/compiled/ClsStubBuilder.java @@ -356,8 +356,8 @@ public class ClsStubBuilder { @Override protected TypeInfo createReturnType() { modlist[0] = new PsiModifierListStubImpl(this, packMethodFlags(access)); - String returnType; parsedViaGenericSignature[0] = false; + String returnType; if (signature == null) { returnType = parseMethodViaDescription(desc, this, args); } @@ -370,7 +370,7 @@ public class ClsStubBuilder { returnType = parseMethodViaDescription(desc, this, args); } } - return (TypeInfo.fromString(returnType)); + return TypeInfo.fromString(returnType); } }; diff --git a/java/java-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiModifierListStubImpl.java b/java/java-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiModifierListStubImpl.java index e63f70c7cf2e..bfa0ee97a5ad 100644 --- a/java/java-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiModifierListStubImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiModifierListStubImpl.java @@ -23,12 +23,6 @@ public class PsiModifierListStubImpl extends StubBase implement @SuppressWarnings({"HardCodedStringLiteral"}) public String toString() { - StringBuilder builder = new StringBuilder(); - builder. - append("PsiModifierListStub["). - append("mask=").append(getModifiersMask()). - append("]"); - return builder.toString(); - + return "PsiModifierListStub[" + "mask=" + getModifiersMask() + "]"; } } \ No newline at end of file diff --git a/java/java-impl/src/com/intellij/psi/impl/source/resolve/JavaResolveCache.java b/java/java-impl/src/com/intellij/psi/impl/source/resolve/JavaResolveCache.java index 91f890968f45..e2628a56687d 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/resolve/JavaResolveCache.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/resolve/JavaResolveCache.java @@ -65,7 +65,7 @@ public class JavaResolveCache { } @Nullable - public PsiType getType(@NotNull PsiExpression expr, @NotNull Function f) { + public PsiType getType(@NotNull T expr, @NotNull Function f) { PsiType type = myCalculatedTypes.get(expr); if (type == null) { type = f.fun(expr); diff --git a/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiBinaryExpressionImpl.java b/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiBinaryExpressionImpl.java index e82452815e0e..8e3e38743ef7 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiBinaryExpressionImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiBinaryExpressionImpl.java @@ -56,9 +56,9 @@ public class PsiBinaryExpressionImpl extends ExpressionPsiElement implements Psi return result; } - private static final Function MY_TYPE_EVALUATOR = new Function() { - public PsiType fun(PsiExpression expression) { - return doGetType((PsiBinaryExpressionImpl)expression); + private static final Function MY_TYPE_EVALUATOR = new Function() { + public PsiType fun(PsiBinaryExpressionImpl expression) { + return doGetType(expression); } }; public PsiType getType() { diff --git a/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiMethodCallExpressionImpl.java b/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiMethodCallExpressionImpl.java index f55827a1a0d3..7ce77634a966 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiMethodCallExpressionImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiMethodCallExpressionImpl.java @@ -121,10 +121,10 @@ public class PsiMethodCallExpressionImpl extends ExpressionPsiElement implements private static final TypeEvaluator ourTypeEvaluator = new TypeEvaluator(); - private static class TypeEvaluator implements Function { + private static class TypeEvaluator implements Function { @Nullable - public PsiType fun(final PsiExpression call) { - PsiReferenceExpression methodExpression = ((PsiMethodCallExpression)call).getMethodExpression(); + public PsiType fun(final PsiMethodCallExpression call) { + PsiReferenceExpression methodExpression = call.getMethodExpression(); PsiType theOnly = null; final JavaResolveResult[] results = methodExpression.multiResolve(false); for (int i = 0; i < results.length; i++) { @@ -135,7 +135,8 @@ public class PsiMethodCallExpressionImpl extends ExpressionPsiElement implements if (i == 0) { theOnly = type; - } else if (!theOnly.equals(type)) { + } + else if (!theOnly.equals(type)) { return null; } } diff --git a/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java b/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java index 67b17612cd66..08e4b60288ed 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java @@ -252,8 +252,7 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements final ClassResolverProcessor processor = new ClassResolverProcessor(className, this); PsiScopesUtil.resolveAndWalk(processor, this, null); - JavaResolveResult[] result = processor.getResult(); - return result; + return processor.getResult(); } private JavaResolveResult[] resolveToVariable() { @@ -293,15 +292,14 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements private final TypeEvaluator ourTypeEvaluator = new TypeEvaluator(); - private static class TypeEvaluator implements Function { - public PsiType fun(final PsiExpression expr) { - final PsiReferenceExpressionImpl refExpr = (PsiReferenceExpressionImpl)expr; - JavaResolveResult result = refExpr.advancedResolve(false); + private static class TypeEvaluator implements Function { + public PsiType fun(final PsiReferenceExpressionImpl expr) { + JavaResolveResult result = expr.advancedResolve(false); PsiElement resolve = result.getElement(); if (resolve == null) { - ASTNode refName = refExpr.findChildByRole(ChildRole.REFERENCE_NAME); + ASTNode refName = expr.findChildByRole(ChildRole.REFERENCE_NAME); if (refName != null && refName.getText().equals(LENGTH)) { - ASTNode qualifier = refExpr.findChildByRole(ChildRole.QUALIFIER); + ASTNode qualifier = expr.findChildByRole(ChildRole.QUALIFIER); if (qualifier != null && ElementType.EXPRESSION_BIT_SET.contains(qualifier.getElementType())) { PsiType type = ((PsiExpression)SourceTreeToPsiMap.treeElementToPsi(qualifier)).getType(); if (type instanceof PsiArrayType) { @@ -328,7 +326,7 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements return null; } if (ret == null) return null; - final LanguageLevel languageLevel = PsiUtil.getLanguageLevel(refExpr); + final LanguageLevel languageLevel = PsiUtil.getLanguageLevel(expr); if (ret instanceof PsiClassType) { ret = ((PsiClassType)ret).setLanguageLevel(languageLevel); } @@ -336,7 +334,7 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements if (languageLevel.compareTo(LanguageLevel.JDK_1_5) >= 0) { if (owner != null && PsiUtil.isRawSubstitutor(owner, result.getSubstitutor())) return TypeConversionUtil.erasure(ret); PsiType substitutedType = result.getSubstitutor().substitute(ret); - return PsiImplUtil.normalizeWildcardTypeByPosition(substitutedType, refExpr); + return PsiImplUtil.normalizeWildcardTypeByPosition(substitutedType, expr); } return TypeConversionUtil.erasure(ret); @@ -366,6 +364,7 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements } + @NotNull public Object[] getVariants() { //this reference's variants are rather obtained with processVariants() return ArrayUtil.EMPTY_OBJECT_ARRAY; @@ -418,12 +417,7 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements public int getTextOffset() { ASTNode refName = findChildByRole(ChildRole.REFERENCE_NAME); - if (refName != null) { - return refName.getStartOffset(); - } - else { - return super.getTextOffset(); - } + return refName == null ? super.getTextOffset() : refName.getStartOffset(); } public PsiElement handleElementRename(String newElementName) throws IncorrectOperationException { diff --git a/java/openapi/src/com/intellij/psi/util/TypeConversionUtil.java b/java/openapi/src/com/intellij/psi/util/TypeConversionUtil.java index 5b688f6cc643..c784cb82453d 100644 --- a/java/openapi/src/com/intellij/psi/util/TypeConversionUtil.java +++ b/java/openapi/src/com/intellij/psi/util/TypeConversionUtil.java @@ -200,10 +200,7 @@ public class TypeConversionUtil { if (!fromClass.isInterface()) { if (toClass.isInterface()) { return !fromClass.hasModifierProperty(PsiModifier.FINAL) && - checkSuperTypesWithDifferentTypeArguments(toResult, fromClass, manager, - fromResult.getSubstitutor(), - new THashSet(), - languageLevel); + checkSuperTypesWithDifferentTypeArguments(toResult, fromClass, manager, fromResult.getSubstitutor(), null, languageLevel); } else { if (manager.areElementsEquivalent(fromClass, toClass)) { @@ -211,12 +208,10 @@ public class TypeConversionUtil { } if (toClass.isInheritor(fromClass, true)) { - return checkSuperTypesWithDifferentTypeArguments(fromResult, toClass, manager, toResult.getSubstitutor(), new THashSet(), - languageLevel); + return checkSuperTypesWithDifferentTypeArguments(fromResult, toClass, manager, toResult.getSubstitutor(), null, languageLevel); } else if (fromClass.isInheritor(toClass, true)) { - return checkSuperTypesWithDifferentTypeArguments(toResult, fromClass, manager, fromResult.getSubstitutor(), new THashSet(), - languageLevel); + return checkSuperTypesWithDifferentTypeArguments(toResult, fromClass, manager, fromResult.getSubstitutor(), null, languageLevel); } return false; @@ -225,8 +220,7 @@ public class TypeConversionUtil { else { if (!toClass.isInterface()) { if (!toClass.hasModifierProperty(PsiModifier.FINAL)) { - return checkSuperTypesWithDifferentTypeArguments(fromResult, toClass, manager, toResult.getSubstitutor(), new THashSet(), - languageLevel); + return checkSuperTypesWithDifferentTypeArguments(fromResult, toClass, manager, toResult.getSubstitutor(), null, languageLevel); } else { if (!toClass.isInheritor(fromClass, true)) return false; @@ -257,14 +251,20 @@ public class TypeConversionUtil { } else { //In jls3 check for super interface with distinct type arguments + PsiClassType.ClassResolveResult baseResult; + PsiClass derived; + PsiSubstitutor derivedSubstitutor; if (toClass.isInheritor(fromClass, true)) { - return checkSuperTypesWithDifferentTypeArguments(fromResult, toClass, manager, toResult.getSubstitutor(), new THashSet(), - languageLevel); + baseResult = fromResult; + derived = toClass; + derivedSubstitutor = toResult.getSubstitutor(); } else { - return checkSuperTypesWithDifferentTypeArguments(toResult, fromClass, manager, fromResult.getSubstitutor(), new THashSet(), - languageLevel); + baseResult = toResult; + derived = fromClass; + derivedSubstitutor = fromResult.getSubstitutor(); } + return checkSuperTypesWithDifferentTypeArguments(baseResult, derived, manager, derivedSubstitutor, null, languageLevel); } } } @@ -285,9 +285,9 @@ public class TypeConversionUtil { PsiClass derived, PsiManager manager, PsiSubstitutor derivedSubstitutor, - final Set visited, + Set visited, final LanguageLevel languageLevel) { - if (!visited.add(derived)) return true; + if (visited != null && visited.contains(derived)) return true; if (languageLevel.compareTo(LanguageLevel.JDK_1_5) < 0) return true; PsiClass base = baseResult.getElement(); @@ -302,6 +302,8 @@ public class TypeConversionUtil { if (!areSameArgumentTypes(derived, baseSubstitutor, derivedSubstitutor)) return false; } + if (visited == null) visited = new THashSet(); + visited.add(derived); for (PsiClass aSuper : supers) { PsiSubstitutor s = getSuperClassSubstitutor(aSuper, derived, derivedSubstitutor); if (!checkSuperTypesWithDifferentTypeArguments(baseResult, aSuper, manager, s, visited, languageLevel)) return false;