IDEA-158061 ("variable fileToViewProvider too broad" is wrong)

This commit is contained in:
Bas Leijdekkers
2016-06-30 16:53:23 +02:00
parent 338ceb712c
commit a3596da193
2 changed files with 21 additions and 6 deletions
@@ -26,11 +26,8 @@ import com.intellij.util.Query;
import com.siyeh.InspectionGadgetsBundle;
import com.siyeh.ig.BaseInspection;
import com.siyeh.ig.BaseInspectionVisitor;
import com.siyeh.ig.psiutils.ClassUtils;
import com.siyeh.ig.psiutils.ExpressionUtils;
import com.siyeh.ig.psiutils.*;
import com.intellij.psi.util.FileTypeUtils;
import com.siyeh.ig.psiutils.ParenthesesUtils;
import com.siyeh.ig.psiutils.VariableAccessUtils;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -130,6 +127,9 @@ public class TooBroadScopeInspectionBase extends BaseInspection {
return false;
}
final PsiVariable variable = (PsiVariable)target;
if (!ClassUtils.isImmutable(variable.getType()) && !CollectionUtils.isEmptyArray(variable)) {
return false;
}
if (variable.hasModifierProperty(PsiModifier.FINAL)) {
return true;
}
@@ -1,7 +1,6 @@
package com.siyeh.igtest.dataflow.scope;
import java.util.ArrayList;
import java.util.Collection; import java.util.List;
import java.util.*;
public class TooBroadScope
{
@@ -141,4 +140,20 @@ public class TooBroadScope
System.out.println();
System.out.println(yes);
}
private final Map<String, String> important = new HashMap<>();
public void processImportant() {
final HashMap copy = new HashMap(important);
important.clear();
System.out.println();
System.out.println(copy);
}
private final String[] EMPTY = {};
void abc() {
String[] <warning descr="Scope of variable 'strings' is too broad">strings</warning> = EMPTY;
System.out.println();
System.out.println();
System.out.println(strings);
}
}