From cfd3a7dfdbbc9cb165532bed154da17ad5cc0437 Mon Sep 17 00:00:00 2001 From: Ilya Klyuchnikov Date: Thu, 14 Aug 2014 11:52:42 +0400 Subject: [PATCH] move constant --- .../intellij/codeInspection/bytecodeAnalysis/Analysis.java | 2 -- .../intellij/codeInspection/bytecodeAnalysis/Contracts.java | 3 ++- .../intellij/codeInspection/bytecodeAnalysis/Parameters.java | 3 ++- .../codeInspection/bytecodeAnalysis/asm/ASMUtils.java | 4 ++++ 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/bytecodeAnalysis/Analysis.java b/java/java-analysis-impl/src/com/intellij/codeInspection/bytecodeAnalysis/Analysis.java index 330a31518537..3f45faf8a345 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/bytecodeAnalysis/Analysis.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/bytecodeAnalysis/Analysis.java @@ -224,8 +224,6 @@ abstract class Analysis { } }; - protected static final BasicValue THROWABLE_VALUE = new BasicValue(Type.getType("java/lang/Throwable")); - public static final int STEPS_LIMIT = 30000; public static final int EQUATION_SIZE_LIMIT = 30; public static final int MERGE_LIMIT = 100000; diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/bytecodeAnalysis/Contracts.java b/java/java-analysis-impl/src/com/intellij/codeInspection/bytecodeAnalysis/Contracts.java index c34e37dd0772..0615ec8d9162 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/bytecodeAnalysis/Contracts.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/bytecodeAnalysis/Contracts.java @@ -15,6 +15,7 @@ */ package com.intellij.codeInspection.bytecodeAnalysis; +import com.intellij.codeInspection.bytecodeAnalysis.asm.ASMUtils; import com.intellij.codeInspection.bytecodeAnalysis.asm.ControlFlowGraph.Edge; import com.intellij.codeInspection.bytecodeAnalysis.asm.RichControlFlow; import org.jetbrains.annotations.NotNull; @@ -214,7 +215,7 @@ class InOutAnalysis extends Analysis> { if (controlFlow.errors[nextInsnIndex] && controlFlow.errorTransitions.contains(new Edge(insnIndex, nextInsnIndex))) { nextFrame1 = new Frame(frame); nextFrame1.clearStack(); - nextFrame1.push(THROWABLE_VALUE); + nextFrame1.push(ASMUtils.THROWABLE_VALUE); } pendingPush(new ProceedState>( new State(subIndices[i], new Conf(nextInsnIndex, nextFrame1), nextHistory, taken, false))); diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/bytecodeAnalysis/Parameters.java b/java/java-analysis-impl/src/com/intellij/codeInspection/bytecodeAnalysis/Parameters.java index bc5ee4ebb201..66d84907fd72 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/bytecodeAnalysis/Parameters.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/bytecodeAnalysis/Parameters.java @@ -15,6 +15,7 @@ */ package com.intellij.codeInspection.bytecodeAnalysis; +import com.intellij.codeInspection.bytecodeAnalysis.asm.ASMUtils; import com.intellij.codeInspection.bytecodeAnalysis.asm.ControlFlowGraph.Edge; import com.intellij.codeInspection.bytecodeAnalysis.asm.RichControlFlow; import org.jetbrains.annotations.NotNull; @@ -283,7 +284,7 @@ class NonNullInAnalysis extends Analysis { if (controlFlow.errors[nextInsnIndex] && controlFlow.errorTransitions.contains(new Edge(insnIndex, nextInsnIndex))) { nextFrame1 = new Frame(frame); nextFrame1.clearStack(); - nextFrame1.push(THROWABLE_VALUE); + nextFrame1.push(ASMUtils.THROWABLE_VALUE); } pendingPush(new ProceedState(new State(subIndices[i], new Conf(nextInsnIndex, nextFrame1), nextHistory, taken, hasCompanions || notEmptySubResult))); } diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/bytecodeAnalysis/asm/ASMUtils.java b/java/java-analysis-impl/src/com/intellij/codeInspection/bytecodeAnalysis/asm/ASMUtils.java index 2080ba81982c..a6bfdc38732e 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/bytecodeAnalysis/asm/ASMUtils.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/bytecodeAnalysis/asm/ASMUtils.java @@ -16,11 +16,15 @@ package com.intellij.codeInspection.bytecodeAnalysis.asm; import org.jetbrains.org.objectweb.asm.Type; +import org.jetbrains.org.objectweb.asm.tree.analysis.BasicValue; /** * @author lambdamix */ public class ASMUtils { + public static final Type THROWABLE_TYPE = Type.getType("java/lang/Throwable"); + public static final BasicValue THROWABLE_VALUE = new BasicValue(THROWABLE_TYPE); + public static boolean isReferenceType(Type tp) { int sort = tp.getSort(); return sort == Type.OBJECT || sort == Type.ARRAY;