diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/j2me/VariableAccessVisitor.java b/plugins/InspectionGadgets/src/com/siyeh/ig/j2me/VariableAccessVisitor.java index cde48d586c32..c660e142eb35 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/j2me/VariableAccessVisitor.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/j2me/VariableAccessVisitor.java @@ -1,5 +1,5 @@ /* - * Copyright 2003-2010 Dave Griffith, Bas Leijdekkers + * Copyright 2003-2011 Dave Griffith, Bas Leijdekkers * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,13 +29,14 @@ class VariableAccessVisitor extends JavaRecursiveElementVisitor { new HashSet(2); @Override public void visitReferenceExpression( - @NotNull PsiReferenceExpression ref) { - super.visitReferenceExpression(ref); - final PsiExpression qualifier = ref.getQualifierExpression(); + @NotNull PsiReferenceExpression referenceExpression) { + super.visitReferenceExpression(referenceExpression); + final PsiExpression qualifier = + referenceExpression.getQualifierExpression(); if (qualifier != null && !(qualifier instanceof PsiThisExpression)) { return; } - final PsiElement element = ref.resolve(); + final PsiElement element = referenceExpression.resolve(); if (!(element instanceof PsiField)) { return; } @@ -44,15 +45,15 @@ class VariableAccessVisitor extends JavaRecursiveElementVisitor { if (overAccessedFields.contains(field)) { return; } - if (ControlFlowUtils.isInLoop(field)) { + if (ControlFlowUtils.isInLoop(referenceExpression)) { overAccessedFields.add(field); } final Map accessCounts = m_accessCounts; final Integer count = accessCounts.get(field); if (count == null) { - accessCounts.put(field, 1); + accessCounts.put(field, Integer.valueOf(1)); } else if (count.intValue() == 1) { - accessCounts.put(field, 2); + accessCounts.put(field, Integer.valueOf(2)); } else { overAccessedFields.add(field); } diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/j2me/field_repeatedly_accessed/FieldRepeatedlyAccessed.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/j2me/field_repeatedly_accessed/FieldRepeatedlyAccessed.java new file mode 100644 index 000000000000..c4803cac0697 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/j2me/field_repeatedly_accessed/FieldRepeatedlyAccessed.java @@ -0,0 +1,12 @@ +package com.siyeh.igtest.j2me.field_repeatedly_accessed; + +public class FieldRepeatedlyAccessed { + + String s = ""; + + void foo() { + while(true) { + System.out.println(s); + } + } +} diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/j2me/field_repeatedly_accessed/expected.xml b/plugins/InspectionGadgets/test/com/siyeh/igtest/j2me/field_repeatedly_accessed/expected.xml new file mode 100644 index 000000000000..c933cf4f6c96 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/j2me/field_repeatedly_accessed/expected.xml @@ -0,0 +1,10 @@ + + + + + FieldRepeatedlyAccessed.java + 7 + Field repeatedly accessed in method + Field 's' accessed repeatedly in method <code>foo(0</code> #loc + + \ No newline at end of file diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/j2me/FieldRepeatedlyAccessedInspectionTest.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/j2me/FieldRepeatedlyAccessedInspectionTest.java new file mode 100644 index 000000000000..05292f5c7f75 --- /dev/null +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/j2me/FieldRepeatedlyAccessedInspectionTest.java @@ -0,0 +1,11 @@ +package com.siyeh.ig.j2me; + +import com.siyeh.ig.IGInspectionTestCase; + +public class FieldRepeatedlyAccessedInspectionTest extends IGInspectionTestCase { + + public void test() throws Exception { + doTest("com/siyeh/igtest/j2me/field_repeatedly_accessed", + new FieldRepeatedlyAccessedInspection()); + } +}