mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
fix tests
This commit is contained in:
+6
-2
@@ -126,7 +126,7 @@ class CanBeFinalAnnotator extends RefGraphAnnotatorEx {
|
||||
Set<PsiVariable> allFields = new HashSet<PsiVariable>();
|
||||
ContainerUtil.addAll(allFields, psiFields);
|
||||
List<PsiVariable> instanceInitializerInitializedFields = new ArrayList<PsiVariable>();
|
||||
Set<PsiField> fieldsInitializedInInitializers = new HashSet<>();
|
||||
Set<PsiField> fieldsInitializedInInitializers = null;
|
||||
|
||||
for (PsiClassInitializer initializer : psiClass.getInitializers()) {
|
||||
PsiCodeBlock body = initializer.getBody();
|
||||
@@ -140,6 +140,9 @@ class CanBeFinalAnnotator extends RefGraphAnnotatorEx {
|
||||
}
|
||||
Collection<PsiVariable> writtenVariables = new ArrayList<PsiVariable>();
|
||||
ControlFlowUtil.getWrittenVariables(flow, 0, flow.getSize(), false, writtenVariables);
|
||||
if (fieldsInitializedInInitializers == null) {
|
||||
fieldsInitializedInInitializers = new HashSet<>();
|
||||
}
|
||||
for (PsiVariable psiVariable : writtenVariables) {
|
||||
if (allFields.contains(psiVariable)) {
|
||||
if (instanceInitializerInitializedFields.contains(psiVariable)) {
|
||||
@@ -194,7 +197,8 @@ class CanBeFinalAnnotator extends RefGraphAnnotatorEx {
|
||||
}
|
||||
|
||||
for (PsiField psiField : psiFields) {
|
||||
if ((!fieldsInitializedInInitializers.contains(psiField) || !allFields.contains(psiField)) && psiField.getInitializer() == null) {
|
||||
if ((fieldsInitializedInInitializers != null && !fieldsInitializedInInitializers.contains(psiField) ||
|
||||
!allFields.contains(psiField)) && psiField.getInitializer() == null) {
|
||||
final RefFieldImpl refField = (RefFieldImpl)myManager.getReference(psiField);
|
||||
if (refField != null) {
|
||||
refField.setFlag(false, CAN_BE_FINAL_MASK);
|
||||
|
||||
@@ -103,6 +103,15 @@ public class CanBeFinalTest extends InspectionTestCase {
|
||||
doTest(tool);
|
||||
}
|
||||
|
||||
public void testFieldNonInitializedUsedInClassInitializer() throws Exception {
|
||||
CanBeFinalInspection tool = new CanBeFinalInspection();
|
||||
tool.REPORT_CLASSES = false;
|
||||
tool.REPORT_FIELDS = true;
|
||||
tool.REPORT_METHODS = false;
|
||||
doTest(tool);
|
||||
}
|
||||
|
||||
|
||||
public void testInterfaceMethodInHierarchy() throws Exception {
|
||||
CanBeFinalInspection tool = new CanBeFinalInspection();
|
||||
tool.REPORT_CLASSES = false;
|
||||
|
||||
@@ -41,7 +41,6 @@ public class FieldCanBeLocalTest extends InspectionTestCase {
|
||||
public void testFieldUsedForWritingInLambda() throws Exception {doTest();}
|
||||
public void testStaticQualifiedFieldAccessForWriting() throws Exception {doTest();}
|
||||
public void testFieldReferencedFromAnotherObject() throws Exception {doTest();}
|
||||
public void testFieldNonInitializedUsedInClassInitializer() throws Exception {doTest();}
|
||||
public void testIgnoreAnnotated() throws Exception {
|
||||
final FieldCanBeLocalInspection inspection = new FieldCanBeLocalInspection();
|
||||
doTestConfigured(inspection);
|
||||
|
||||
Reference in New Issue
Block a user