(no message)

This commit is contained in:
Dave Griffith
2005-02-02 00:02:49 +03:00
parent 2b48f61017
commit 1ae9fa197a
4 changed files with 37 additions and 4 deletions
@@ -3,11 +3,13 @@ package com.siyeh.ig.confusing;
import com.intellij.codeInspection.InspectionManager;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiSwitchStatement;
import com.intellij.psi.PsiMethod;
import com.intellij.psi.util.PsiTreeUtil;
import com.siyeh.ig.BaseInspection;
import com.siyeh.ig.BaseInspectionVisitor;
import com.siyeh.ig.GroupNames;
import com.siyeh.ig.StatementInspection;
import com.siyeh.ig.psiutils.ClassUtils;
public class NestedSwitchStatementInspection extends StatementInspection {
@@ -34,12 +36,20 @@ public class NestedSwitchStatementInspection extends StatementInspection {
public void visitSwitchStatement(PsiSwitchStatement statement) {
super.visitSwitchStatement(statement);
if (PsiTreeUtil.getParentOfType(statement, PsiSwitchStatement.class) == null) {
final PsiElement containingSwitchStatement =
PsiTreeUtil.getParentOfType(statement, PsiSwitchStatement.class);
if (containingSwitchStatement == null) {
return;
}
final PsiMethod containingMethod = ClassUtils.getContainingMethod(statement);
final PsiMethod containingContainingMethod = ClassUtils.getContainingMethod(
containingSwitchStatement);
if(!containingMethod.equals(containingContainingMethod))
{
return;
}
registerStatementError(statement);
}
}
}
@@ -39,6 +39,16 @@ class InnerClassReferenceVisitor extends PsiRecursiveElementVisitor {
return true;
}
public void visitThisExpression(PsiThisExpression expression){
super.visitThisExpression(expression);
final PsiJavaCodeReferenceElement qualifier = expression.getQualifier();
if(qualifier == null)
{
return;
}
m_referencesStaticallyAccessible = false;
}
public void visitReferenceElement(PsiJavaCodeReferenceElement referenceElement) {
super.visitReferenceElement(referenceElement);
final PsiElement element = referenceElement.resolve();
@@ -87,7 +87,7 @@ public class ClassUtils {
}
public static boolean isIntegral(PsiType type) {
return (type != null) && (
return (type != null) && (
type.equals(PsiType.LONG) ||
type.equals(PsiType.INT) ||
type.equals(PsiType.SHORT) ||
@@ -174,4 +174,8 @@ public class ClassUtils {
}
return outerClass;
}
public static PsiMethod getContainingMethod(PsiElement element){
return (PsiMethod) PsiTreeUtil.getParentOfType(element, PsiMethod.class);
}
}
@@ -2,12 +2,14 @@ package com.siyeh.ig.threading;
import com.intellij.codeInspection.InspectionManager;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiMethod;
import com.intellij.psi.PsiSynchronizedStatement;
import com.intellij.psi.util.PsiTreeUtil;
import com.siyeh.ig.BaseInspection;
import com.siyeh.ig.BaseInspectionVisitor;
import com.siyeh.ig.GroupNames;
import com.siyeh.ig.StatementInspection;
import com.siyeh.ig.psiutils.ClassUtils;
public class NestedSynchronizedStatementInspection extends StatementInspection {
@@ -34,7 +36,14 @@ public class NestedSynchronizedStatementInspection extends StatementInspection {
public void visitSynchronizedStatement(PsiSynchronizedStatement statement) {
super.visitSynchronizedStatement(statement);
if (PsiTreeUtil.getParentOfType(statement, PsiSynchronizedStatement.class) == null) {
final PsiElement containingSynchronizedStatement =
PsiTreeUtil.getParentOfType(statement, PsiSynchronizedStatement.class);
if(containingSynchronizedStatement == null){
return;
}
final PsiMethod containingMethod = ClassUtils.getContainingMethod(statement);
final PsiMethod containingContainingMethod = ClassUtils.getContainingMethod(containingSynchronizedStatement);
if(!containingMethod.equals(containingContainingMethod)){
return;
}
registerStatementError(statement);