merged CVS and Subversion versions

This commit is contained in:
Eugene Zhuravlev
2005-01-13 15:53:35 +03:00
parent 2ed3d1c6aa
commit 502ee8d8d1
3 changed files with 21 additions and 6 deletions
@@ -39,8 +39,12 @@ class ClassAccessVisitor extends PsiRecursiveElementVisitor {
if (currentClass.equals(calledClass)) {
return;
}
if (currentClass.isInheritor(calledClass, true)) {
PsiClass lexicallyEnclosingClass = currentClass;
while (lexicallyEnclosingClass != null) {
if (lexicallyEnclosingClass.isInheritor(calledClass, true)) {
return;
}
lexicallyEnclosingClass = (PsiClass)PsiTreeUtil.getParentOfType(lexicallyEnclosingClass, PsiClass.class);
}
if (PsiTreeUtil.isAncestor(currentClass, calledClass, true)) {
return;
@@ -19,9 +19,9 @@ public class ClassReferencesSubclassInspection extends ClassInspection {
return GroupNames.ABSTRACTION_GROUP_NAME;
}
public String buildErrorString(PsiElement classRef) {
public String buildErrorString(PsiElement location) {
final PsiClass containingClass =
ClassUtils.getContainingClass(classRef);
ClassUtils.getContainingClass(location);
final String containingClassName = containingClass.getName();
return "Class " + containingClassName + " references subclass #ref #loc";
}
@@ -10,7 +10,8 @@ import com.siyeh.ig.psiutils.ClassUtils;
import com.siyeh.ig.psiutils.ExpectedTypeUtils;
public class OverlyStrongTypeCastInspection extends ExpressionInspection {
private final OverlyStringCastFix fix = new OverlyStringCastFix();
private final OverlyStrongCastFix fix = new OverlyStrongCastFix();
public String getDisplayName() {
return "Overly-strong type cast";
@@ -28,7 +29,7 @@ public class OverlyStrongTypeCastInspection extends ExpressionInspection {
return fix;
}
private static class OverlyStringCastFix extends InspectionGadgetsFix {
private static class OverlyStrongCastFix extends InspectionGadgetsFix {
public String getName() {
return "Weaken overly-strong cast";
}
@@ -79,10 +80,20 @@ public class OverlyStrongTypeCastInspection extends ExpressionInspection {
if (expectedType.equals(type)) {
return;
}
if (expectedType.getCanonicalText().equals("_Dummy_.__Array__")) {
return;
}
if (expectedType.isAssignableFrom(operandType)) {
return; //then it's redundant, and caught by the built-in exception
}
if(expectedType instanceof PsiClassType)
{
final PsiClass aClass = ((PsiClassType) expectedType).resolve();
if(aClass.getContext() instanceof PsiTypeParameterList)
{
return;
}
}
if (ClassUtils.isPrimitiveNumericType(type) ||
ClassUtils.isPrimitiveNumericType(expectedType)) {
return;