diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnqualifiedFieldAccessInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnqualifiedFieldAccessInspection.java index ea0fc190fa50..9238c91e466a 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnqualifiedFieldAccessInspection.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnqualifiedFieldAccessInspection.java @@ -112,11 +112,9 @@ public class UnqualifiedFieldAccessInspection extends BaseInspection { @Override public void visitReferenceExpression( @NotNull PsiReferenceExpression expression) { super.visitReferenceExpression(expression); - final PsiElement parent = - expression.getParent(); - if (parent instanceof PsiReferenceExpression || - parent instanceof PsiCallExpression) { - // optimization + final PsiExpression qualifierExpression = + expression.getQualifierExpression(); + if (qualifierExpression != null) { return; } final PsiReferenceParameterList parameterList = @@ -129,11 +127,6 @@ public class UnqualifiedFieldAccessInspection extends BaseInspection { // definitely not references to fields. return; } - final PsiExpression qualifierExpression = - expression.getQualifierExpression(); - if (qualifierExpression != null) { - return; - } final PsiElement element = expression.resolve(); if (!(element instanceof PsiField)) { return; diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unqualified_field_access/UnqualifiedFieldAccess.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unqualified_field_access/UnqualifiedFieldAccess.java new file mode 100644 index 000000000000..c74a6852d584 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unqualified_field_access/UnqualifiedFieldAccess.java @@ -0,0 +1,12 @@ +package com.siyeh.igtest.style.unqualified_field_access; + +public class UnqualifiedFieldAccess { + + private String field; + + public void x () { + field = "foofoo"; + final String s = String.valueOf(field.hashCode()); + System.out.println(s); + } +} \ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unqualified_field_access/expected.xml b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unqualified_field_access/expected.xml new file mode 100644 index 000000000000..f13588ab4b92 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unqualified_field_access/expected.xml @@ -0,0 +1,17 @@ + + + + UnqualifiedFieldAccess.java + 8 + Instance field access not qualified with 'this' + Instance field access <code>field</code> is not qualified with 'this' #loc + + + + + UnqualifiedFieldAccess.java + 9 + Instance field access not qualified with 'this' + Instance field access <code>field</code> is not qualified with 'this' #loc + + \ No newline at end of file diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/style/UnqualifiedFieldAccessInspectionTest.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/style/UnqualifiedFieldAccessInspectionTest.java new file mode 100644 index 000000000000..eca7ac72ec5a --- /dev/null +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/style/UnqualifiedFieldAccessInspectionTest.java @@ -0,0 +1,27 @@ +/* + * Copyright 2000-2011 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.siyeh.ig.style; + +import com.IGInspectionTestCase; + +public class UnqualifiedFieldAccessInspectionTest + extends IGInspectionTestCase { + + public void test() throws Exception { + doTest("com/siyeh/igtest/style/unqualified_field_access", + new UnqualifiedFieldAccessInspection()); + } +} \ No newline at end of file