mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[java-dfa] SpecialField moved to jvm package
GitOrigin-RevId: 046f41e3984ea4d17c2c32398e83ff60985bd9d7
This commit is contained in:
committed by
intellij-monorepo-bot
parent
5c5a4649a9
commit
48dbe8fad4
@@ -2,6 +2,7 @@
|
||||
package com.intellij.debugger.engine.dfaassist;
|
||||
|
||||
import com.intellij.codeInspection.dataFlow.*;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.descriptors.ArrayElementDescriptor;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.descriptors.AssertionDisabledDescriptor;
|
||||
import com.intellij.codeInspection.dataFlow.lang.ir.ControlFlow;
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
package com.intellij.codeInspection.dataFlow;
|
||||
|
||||
import com.intellij.codeInspection.dataFlow.java.JavaDfaInstructionVisitor;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.lang.DfaInterceptor;
|
||||
import com.intellij.codeInspection.dataFlow.rangeSet.LongRangeSet;
|
||||
import com.intellij.codeInspection.dataFlow.types.*;
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.intellij.codeInspection.dataFlow;
|
||||
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfPrimitiveType;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfReferenceType;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfType;
|
||||
@@ -38,12 +39,12 @@ public abstract class ContractValue {
|
||||
}
|
||||
|
||||
abstract DfaValue makeDfaValue(DfaValueFactory factory, DfaCallArguments arguments);
|
||||
|
||||
|
||||
@NotNull
|
||||
DfaCondition makeCondition(DfaValueFactory factory, DfaCallArguments arguments) {
|
||||
return DfaCondition.getUnknown();
|
||||
}
|
||||
|
||||
|
||||
public DfaCondition fromCall(DfaValueFactory factory, PsiCallExpression call) {
|
||||
DfaCallArguments arguments = DfaCallArguments.fromCall(factory, call);
|
||||
if (arguments == null) return DfaCondition.getUnknown();
|
||||
@@ -61,7 +62,7 @@ public abstract class ContractValue {
|
||||
public ContractValue invert() {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return true if this contract value represents a bounds-checking condition
|
||||
*/
|
||||
|
||||
+2
-1
@@ -2,6 +2,7 @@
|
||||
package com.intellij.codeInspection.dataFlow;
|
||||
|
||||
import com.intellij.codeInsight.Nullability;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.rangeSet.LongRangeSet;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfIntType;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfLongType;
|
||||
@@ -29,7 +30,7 @@ import java.util.Calendar;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import static com.intellij.codeInspection.dataFlow.SpecialField.*;
|
||||
import static com.intellij.codeInspection.dataFlow.jvm.SpecialField.*;
|
||||
import static com.intellij.codeInspection.dataFlow.types.DfTypes.*;
|
||||
import static com.intellij.psi.CommonClassNames.*;
|
||||
import static com.siyeh.ig.callMatcher.CallMatcher.*;
|
||||
|
||||
+1
@@ -4,6 +4,7 @@ package com.intellij.codeInspection.dataFlow;
|
||||
import com.intellij.codeInspection.dataFlow.DataFlowInspectionBase.ConstantResult;
|
||||
import com.intellij.codeInspection.dataFlow.java.DfaExpressionFactory;
|
||||
import com.intellij.codeInspection.dataFlow.java.JavaDfaInstructionVisitor;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.descriptors.ThisDescriptor;
|
||||
import com.intellij.codeInspection.dataFlow.lang.DfaInterceptor;
|
||||
import com.intellij.codeInspection.dataFlow.lang.ir.inst.*;
|
||||
|
||||
+1
@@ -3,6 +3,7 @@
|
||||
package com.intellij.codeInspection.dataFlow;
|
||||
|
||||
import com.intellij.codeInsight.Nullability;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.lang.ir.ControlFlow;
|
||||
import com.intellij.codeInspection.dataFlow.rangeSet.LongRangeBinOp;
|
||||
import com.intellij.codeInspection.dataFlow.rangeSet.LongRangeSet;
|
||||
|
||||
+1
@@ -4,6 +4,7 @@ package com.intellij.codeInspection.dataFlow;
|
||||
import com.intellij.codeInspection.CommonQuickFixBundle;
|
||||
import com.intellij.codeInspection.LocalQuickFix;
|
||||
import com.intellij.codeInspection.ProblemDescriptor;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfType;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfTypes;
|
||||
import com.intellij.codeInspection.util.OptionalUtil;
|
||||
|
||||
@@ -4,6 +4,7 @@ package com.intellij.codeInspection.dataFlow;
|
||||
import com.intellij.codeInsight.ExpressionUtil;
|
||||
import com.intellij.codeInsight.Nullability;
|
||||
import com.intellij.codeInspection.dataFlow.java.JavaDfaInstructionVisitor;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.descriptors.ThisDescriptor;
|
||||
import com.intellij.codeInspection.dataFlow.lang.DfaInterceptor;
|
||||
import com.intellij.codeInspection.dataFlow.rangeSet.LongRangeSet;
|
||||
|
||||
+1
@@ -2,6 +2,7 @@
|
||||
package com.intellij.codeInspection.dataFlow;
|
||||
|
||||
import com.intellij.codeInspection.dataFlow.StandardMethodContract.ValueConstraint;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.value.RelationType;
|
||||
import com.intellij.codeInspection.util.OptionalUtil;
|
||||
import com.intellij.lang.injection.InjectedLanguageManager;
|
||||
|
||||
+1
@@ -18,6 +18,7 @@ package com.intellij.codeInspection.dataFlow;
|
||||
import com.intellij.codeInsight.Nullability;
|
||||
import com.intellij.codeInspection.dataFlow.java.DfaExpressionFactory;
|
||||
import com.intellij.codeInspection.dataFlow.java.JavaDfaInstructionVisitor;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.descriptors.ArrayElementDescriptor;
|
||||
import com.intellij.codeInspection.dataFlow.lang.DfaInterceptor;
|
||||
import com.intellij.codeInspection.dataFlow.lang.DfaLanguageSupport;
|
||||
|
||||
+1
@@ -1,6 +1,7 @@
|
||||
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.codeInspection.dataFlow;
|
||||
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.util.InspectionMessage;
|
||||
import com.intellij.java.analysis.JavaAnalysisBundle;
|
||||
import com.intellij.psi.*;
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.intellij.codeInsight.Nullability;
|
||||
import com.intellij.codeInsight.daemon.ImplicitUsageProvider;
|
||||
import com.intellij.codeInsight.daemon.impl.analysis.HighlightControlFlowUtil;
|
||||
import com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.descriptors.ThisDescriptor;
|
||||
import com.intellij.codeInspection.dataFlow.value.DfaVariableValue;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
|
||||
+5
-4
@@ -1,6 +1,7 @@
|
||||
// Copyright 2000-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.codeInspection.dataFlow;
|
||||
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.rangeSet.LongRangeBinOp;
|
||||
import com.intellij.codeInspection.dataFlow.rangeSet.LongRangeSet;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfIntType;
|
||||
@@ -26,12 +27,12 @@ import static com.siyeh.ig.callMatcher.CallMatcher.instanceCall;
|
||||
* Possible side effects for the methods usually are handled via purity or mutability annotations
|
||||
* (see {@link DfaCallArguments#flush(DfaMemoryState, DfaValueFactory, PsiMethod)}): for pure method,
|
||||
* nothing is done. For impure methods, some or all qualified mutable variables are flushed.
|
||||
* This class allows custom handling (for example, updating the size of the collection on the
|
||||
* This class allows custom handling (for example, updating the size of the collection on the
|
||||
* {@link java.util.List#add(Object)} call).
|
||||
*/
|
||||
class SideEffectHandlers {
|
||||
private static final CallMapper<SideEffectHandler> HANDLERS = new CallMapper<SideEffectHandler>()
|
||||
// While list.set() produces a side effect (changes element), we don't track anything except size,
|
||||
// While list.set() produces a side effect (changes element), we don't track anything except size,
|
||||
// so we don't need to flush anything
|
||||
.register(anyOf(instanceCall(JAVA_UTIL_LIST, "set").parameterTypes("int", "E")),
|
||||
(factory, state, arguments) -> { })
|
||||
@@ -153,14 +154,14 @@ class SideEffectHandlers {
|
||||
/**
|
||||
* Apply side effects of the call to the supplied memory state. If handler is executed, default
|
||||
* processing (based on purity or mutation signature) is not executed.
|
||||
*
|
||||
*
|
||||
* @param factory value factory to use if necessary
|
||||
* @param state memory state to update
|
||||
* @param arguments call arguments
|
||||
*/
|
||||
void handleSideEffect(DfaValueFactory factory, DfaMemoryState state, DfaCallArguments arguments);
|
||||
}
|
||||
|
||||
|
||||
private static void updateSize(DfaMemoryState state, DfaVariableValue var, DfType type) {
|
||||
// Dependent states may appear which we are not tracking (e.g. one visible list is sublist of another list)
|
||||
// so let's conservatively flush everything that could be affected
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.intellij.codeInspection.dataFlow.TrackingDfaMemoryState.FactExtractor
|
||||
import com.intellij.codeInspection.dataFlow.TrackingDfaMemoryState.MemoryStateChange;
|
||||
import com.intellij.codeInspection.dataFlow.TrackingDfaMemoryState.Relation;
|
||||
import com.intellij.codeInspection.dataFlow.java.JavaDfaInstructionVisitor;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.lang.DfaInterceptor;
|
||||
import com.intellij.codeInspection.dataFlow.lang.ir.inst.*;
|
||||
import com.intellij.codeInspection.dataFlow.rangeSet.LongRangeBinOp;
|
||||
|
||||
+1
-1
@@ -4,9 +4,9 @@ package com.intellij.codeInspection.dataFlow.java;
|
||||
import com.intellij.codeInsight.Nullability;
|
||||
import com.intellij.codeInspection.dataFlow.DfaPsiUtil;
|
||||
import com.intellij.codeInspection.dataFlow.NullabilityProblemKind;
|
||||
import com.intellij.codeInspection.dataFlow.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.Trap;
|
||||
import com.intellij.codeInspection.dataFlow.java.inliner.CallInliner;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.descriptors.PlainDescriptor;
|
||||
import com.intellij.codeInspection.dataFlow.lang.ir.ControlFlow;
|
||||
import com.intellij.codeInspection.dataFlow.lang.ir.inst.*;
|
||||
|
||||
+1
@@ -11,6 +11,7 @@ import com.intellij.codeInspection.dataFlow.Trap.TryCatch;
|
||||
import com.intellij.codeInspection.dataFlow.Trap.TryFinally;
|
||||
import com.intellij.codeInspection.dataFlow.Trap.TwrFinally;
|
||||
import com.intellij.codeInspection.dataFlow.java.inliner.*;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.descriptors.ArrayElementDescriptor;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.descriptors.AssertionDisabledDescriptor;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.descriptors.PlainDescriptor;
|
||||
|
||||
+1
@@ -5,6 +5,7 @@ import com.intellij.codeInsight.AnnotationUtil;
|
||||
import com.intellij.codeInsight.ConcurrencyAnnotationsManager;
|
||||
import com.intellij.codeInsight.Nullability;
|
||||
import com.intellij.codeInspection.dataFlow.*;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.descriptors.ArrayElementDescriptor;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.descriptors.GetterDescriptor;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.descriptors.PlainDescriptor;
|
||||
|
||||
+1
-1
@@ -4,8 +4,8 @@
|
||||
package com.intellij.codeInspection.dataFlow.java.inliner;
|
||||
|
||||
import com.intellij.codeInsight.Nullability;
|
||||
import com.intellij.codeInspection.dataFlow.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.java.CFGBuilder;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfTypes;
|
||||
import com.intellij.psi.CommonClassNames;
|
||||
import com.intellij.psi.PsiExpression;
|
||||
|
||||
+1
-1
@@ -18,8 +18,8 @@ package com.intellij.codeInspection.dataFlow.java.inliner;
|
||||
import com.intellij.codeInsight.Nullability;
|
||||
import com.intellij.codeInspection.dataFlow.DfaOptionalSupport;
|
||||
import com.intellij.codeInspection.dataFlow.NullabilityProblemKind;
|
||||
import com.intellij.codeInspection.dataFlow.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.java.CFGBuilder;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.descriptors.PlainDescriptor;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfTypes;
|
||||
import com.intellij.codeInspection.dataFlow.value.DfaVariableValue;
|
||||
|
||||
+1
-1
@@ -20,8 +20,8 @@ import com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil;
|
||||
import com.intellij.codeInspection.dataFlow.DfaOptionalSupport;
|
||||
import com.intellij.codeInspection.dataFlow.DfaPsiUtil;
|
||||
import com.intellij.codeInspection.dataFlow.Mutability;
|
||||
import com.intellij.codeInspection.dataFlow.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.java.CFGBuilder;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.rangeSet.LongRangeSet;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfType;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfTypes;
|
||||
|
||||
+3
-2
@@ -1,7 +1,8 @@
|
||||
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.codeInspection.dataFlow;
|
||||
// Copyright 2000-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.codeInspection.dataFlow.jvm;
|
||||
|
||||
import com.intellij.codeInsight.Nullability;
|
||||
import com.intellij.codeInspection.dataFlow.*;
|
||||
import com.intellij.codeInspection.dataFlow.rangeSet.LongRangeSet;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfReferenceType;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfType;
|
||||
+1
-1
@@ -4,8 +4,8 @@ package com.intellij.codeInspection.dataFlow.jvm.descriptors;
|
||||
import com.intellij.codeInsight.Nullability;
|
||||
import com.intellij.codeInspection.dataFlow.DfaUtil;
|
||||
import com.intellij.codeInspection.dataFlow.NullabilityUtil;
|
||||
import com.intellij.codeInspection.dataFlow.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.java.DfaExpressionFactory;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.rangeSet.LongRangeSet;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfLongType;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfType;
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
package com.intellij.codeInspection.dataFlow.lang.ir.inst;
|
||||
|
||||
import com.intellij.codeInspection.dataFlow.DfaMemoryState;
|
||||
import com.intellij.codeInspection.dataFlow.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.value.DfaValue;
|
||||
import com.intellij.codeInspection.dataFlow.value.DfaValueFactory;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
package com.intellij.codeInspection.dataFlow.lang.ir.inst;
|
||||
|
||||
import com.intellij.codeInspection.dataFlow.DfaMemoryState;
|
||||
import com.intellij.codeInspection.dataFlow.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfType;
|
||||
import com.intellij.codeInspection.dataFlow.value.DfaBinOpValue;
|
||||
import com.intellij.codeInspection.dataFlow.value.DfaValue;
|
||||
|
||||
+5
-1
@@ -1,7 +1,11 @@
|
||||
// Copyright 2000-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.codeInspection.dataFlow.types;
|
||||
|
||||
import com.intellij.codeInspection.dataFlow.*;
|
||||
import com.intellij.codeInspection.dataFlow.DfaNullability;
|
||||
import com.intellij.codeInspection.dataFlow.Mutability;
|
||||
import com.intellij.codeInspection.dataFlow.TypeConstraint;
|
||||
import com.intellij.codeInspection.dataFlow.TypeConstraints;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.java.JavaBundle;
|
||||
import com.intellij.psi.JavaPsiFacade;
|
||||
import com.intellij.psi.PsiClass;
|
||||
|
||||
+7
-3
@@ -1,7 +1,11 @@
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.codeInspection.dataFlow.types;
|
||||
|
||||
import com.intellij.codeInspection.dataFlow.*;
|
||||
import com.intellij.codeInspection.dataFlow.DfaNullability;
|
||||
import com.intellij.codeInspection.dataFlow.Mutability;
|
||||
import com.intellij.codeInspection.dataFlow.TypeConstraint;
|
||||
import com.intellij.codeInspection.dataFlow.TypeConstraints;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.psi.PsiModifierListOwner;
|
||||
import com.intellij.psi.PsiType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -20,7 +24,7 @@ public class DfReferenceConstantType extends DfConstantType<Object> implements D
|
||||
private final @Nullable SpecialField mySpecialField;
|
||||
private final @NotNull DfType mySpecialFieldType;
|
||||
private final boolean myDropConstantOnWiden;
|
||||
|
||||
|
||||
DfReferenceConstantType(@NotNull Object constant, @NotNull PsiType psiType, @NotNull TypeConstraint type, boolean dropConstantOnWiden) {
|
||||
super(constant);
|
||||
myPsiType = psiType;
|
||||
@@ -34,7 +38,7 @@ public class DfReferenceConstantType extends DfConstantType<Object> implements D
|
||||
@Override
|
||||
public DfType widen() {
|
||||
if (myDropConstantOnWiden) {
|
||||
return new DfGenericObjectType(Set.of(), myConstraint, DfaNullability.NOT_NULL, myMutability,
|
||||
return new DfGenericObjectType(Set.of(), myConstraint, DfaNullability.NOT_NULL, myMutability,
|
||||
mySpecialField, mySpecialFieldType.widen(), false);
|
||||
}
|
||||
return this;
|
||||
|
||||
+6
-2
@@ -1,7 +1,11 @@
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.codeInspection.dataFlow.types;
|
||||
|
||||
import com.intellij.codeInspection.dataFlow.*;
|
||||
import com.intellij.codeInspection.dataFlow.DfaNullability;
|
||||
import com.intellij.codeInspection.dataFlow.Mutability;
|
||||
import com.intellij.codeInspection.dataFlow.TypeConstraint;
|
||||
import com.intellij.codeInspection.dataFlow.TypeConstraints;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.openapi.util.NlsSafe;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -94,7 +98,7 @@ public interface DfReferenceType extends DfType {
|
||||
|
||||
/**
|
||||
* @param type type to check
|
||||
* @return true if the supplied type is a reference type that contains references only
|
||||
* @return true if the supplied type is a reference type that contains references only
|
||||
* to local objects (not leaked from the current context to unknown methods)
|
||||
*/
|
||||
static boolean isLocal(DfType type) {
|
||||
|
||||
@@ -2,7 +2,11 @@
|
||||
package com.intellij.codeInspection.dataFlow.types;
|
||||
|
||||
import com.intellij.codeInsight.Nullability;
|
||||
import com.intellij.codeInspection.dataFlow.*;
|
||||
import com.intellij.codeInspection.dataFlow.DfaNullability;
|
||||
import com.intellij.codeInspection.dataFlow.Mutability;
|
||||
import com.intellij.codeInspection.dataFlow.TypeConstraint;
|
||||
import com.intellij.codeInspection.dataFlow.TypeConstraints;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.rangeSet.LongRangeSet;
|
||||
import com.intellij.psi.PsiKeyword;
|
||||
import com.intellij.psi.PsiPrimitiveType;
|
||||
|
||||
+1
@@ -5,6 +5,7 @@ package com.intellij.codeInspection.dataFlow.value;
|
||||
import com.intellij.codeInsight.Nullability;
|
||||
import com.intellij.codeInspection.dataFlow.*;
|
||||
import com.intellij.codeInspection.dataFlow.java.DfaExpressionFactory;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.descriptors.PlainDescriptor;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfType;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfTypes;
|
||||
|
||||
+1
-1
@@ -20,7 +20,7 @@ import com.intellij.codeInsight.Nullability;
|
||||
import com.intellij.codeInspection.dataFlow.DfaNullability;
|
||||
import com.intellij.codeInspection.dataFlow.Mutability;
|
||||
import com.intellij.codeInspection.dataFlow.NullabilityUtil;
|
||||
import com.intellij.codeInspection.dataFlow.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.descriptors.AssertionDisabledDescriptor;
|
||||
import com.intellij.codeInspection.dataFlow.rangeSet.LongRangeSet;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfReferenceType;
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.codeInspection.dataFlow.value;
|
||||
|
||||
import com.intellij.codeInspection.dataFlow.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfType;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfTypes;
|
||||
import com.intellij.psi.JavaPsiFacade;
|
||||
|
||||
@@ -19,7 +19,7 @@ import com.intellij.codeInsight.CodeInsightBundle;
|
||||
import com.intellij.codeInsight.documentation.DocumentationComponent;
|
||||
import com.intellij.codeInspection.dataFlow.CommonDataflow;
|
||||
import com.intellij.codeInspection.dataFlow.Mutability;
|
||||
import com.intellij.codeInspection.dataFlow.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.types.*;
|
||||
import com.intellij.ide.nls.NlsMessages;
|
||||
import com.intellij.java.JavaBundle;
|
||||
@@ -129,7 +129,7 @@ public class JavaTypeProvider extends ExpressionTypeProvider<PsiExpression> {
|
||||
if (refType.getMutability() != Mutability.UNKNOWN) {
|
||||
infoLines.add(Pair.create(JavaBundle.message("type.information.mutability"), refType.getMutability().getPresentationName()));
|
||||
}
|
||||
infoLines.add(Pair.create(JavaBundle.message("type.information.locality"),
|
||||
infoLines.add(Pair.create(JavaBundle.message("type.information.locality"),
|
||||
refType.isLocal() ? JavaBundle.message("type.information.local.object") : ""));
|
||||
SpecialField field = refType.getSpecialField();
|
||||
if (field != null) {
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.intellij.codeInsight.intention.impl;
|
||||
|
||||
import com.intellij.codeInsight.intention.PsiElementBaseIntentionAction;
|
||||
import com.intellij.codeInspection.dataFlow.CommonDataflow;
|
||||
import com.intellij.codeInspection.dataFlow.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfType;
|
||||
import com.intellij.java.JavaBundle;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
@@ -166,7 +166,7 @@ public class UnrollLoopAction extends PsiElementBaseIntentionAction {
|
||||
}
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
|
||||
private static List<PsiExpression> generatedList(PsiElement context, int size, IntFunction<String> generator) {
|
||||
PsiElementFactory factory = JavaPsiFacade.getElementFactory(context.getProject());
|
||||
return new AbstractList<>() {
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
package com.intellij.codeInspection;
|
||||
|
||||
import com.intellij.codeInspection.dataFlow.CommonDataflow;
|
||||
import com.intellij.codeInspection.dataFlow.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfType;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfTypes;
|
||||
import com.intellij.codeInspection.util.*;
|
||||
|
||||
+1
-1
@@ -2,8 +2,8 @@
|
||||
package com.intellij.codeInspection;
|
||||
|
||||
import com.intellij.codeInspection.dataFlow.CommonDataflow;
|
||||
import com.intellij.codeInspection.dataFlow.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.TypeConstraint;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.rangeSet.LongRangeSet;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfIntegralType;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfType;
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ import com.intellij.codeInsight.PsiEquivalenceUtil;
|
||||
import com.intellij.codeInspection.*;
|
||||
import com.intellij.codeInspection.dataFlow.CommonDataflow;
|
||||
import com.intellij.codeInspection.dataFlow.DfaNullability;
|
||||
import com.intellij.codeInspection.dataFlow.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfReferenceType;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfType;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfTypes;
|
||||
|
||||
@@ -4,8 +4,8 @@ package com.intellij.slicer;
|
||||
import com.intellij.codeInsight.Nullability;
|
||||
import com.intellij.codeInspection.dataFlow.CommonDataflow;
|
||||
import com.intellij.codeInspection.dataFlow.DfaNullability;
|
||||
import com.intellij.codeInspection.dataFlow.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.TypeConstraint;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.rangeSet.LongRangeSet;
|
||||
import com.intellij.codeInspection.dataFlow.types.*;
|
||||
import com.intellij.java.JavaBundle;
|
||||
@@ -37,11 +37,11 @@ final class DfaBasedFilter {
|
||||
@NotNull DfType getDfType() {
|
||||
return myDfType;
|
||||
}
|
||||
|
||||
|
||||
DfaBasedFilter wrap() {
|
||||
return new DfaBasedFilter(this, DfTypes.TOP);
|
||||
}
|
||||
|
||||
|
||||
DfaBasedFilter unwrap() {
|
||||
return myNextFilter;
|
||||
}
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ package com.siyeh.ig.bugs;
|
||||
|
||||
import com.intellij.codeInsight.PsiEquivalenceUtil;
|
||||
import com.intellij.codeInspection.dataFlow.CommonDataflow;
|
||||
import com.intellij.codeInspection.dataFlow.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.rangeSet.LongRangeSet;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfIntType;
|
||||
import com.intellij.psi.*;
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
package com.siyeh.ig.controlflow;
|
||||
|
||||
import com.intellij.codeInspection.*;
|
||||
import com.intellij.codeInspection.dataFlow.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.rangeSet.LongRangeSet;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfLongType;
|
||||
import com.intellij.codeInspection.dataFlow.value.RelationType;
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ import com.intellij.codeInspection.AbstractBaseJavaLocalInspectionTool;
|
||||
import com.intellij.codeInspection.LocalQuickFix;
|
||||
import com.intellij.codeInspection.ProblemsHolder;
|
||||
import com.intellij.codeInspection.dataFlow.CommonDataflow;
|
||||
import com.intellij.codeInspection.dataFlow.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.jvm.SpecialField;
|
||||
import com.intellij.codeInspection.dataFlow.types.DfType;
|
||||
import com.intellij.codeInspection.util.InspectionMessage;
|
||||
import com.intellij.java.JavaBundle;
|
||||
|
||||
Reference in New Issue
Block a user