Skip to content

Commit 4e70627

Browse files
committed
Guards: Use shared SuccessorType.
1 parent 0d9b8d0 commit 4e70627

File tree

2 files changed

+4
-22
lines changed

2 files changed

+4
-22
lines changed

java/ql/lib/semmle/code/java/controlflow/Guards.qll

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -139,10 +139,6 @@ private predicate isNonFallThroughPredecessor(SwitchCase sc, ControlFlowNode pre
139139
)
140140
}
141141

142-
private module SuccessorTypes implements SharedGuards::SuccessorTypesSig {
143-
import codeql.controlflow.SuccessorType
144-
}
145-
146142
private module GuardsInput implements SharedGuards::InputSig<Location, ControlFlowNode, BasicBlock> {
147143
private import java as J
148144
private import semmle.code.java.dataflow.internal.BaseSSA
@@ -379,7 +375,7 @@ private module GuardsInput implements SharedGuards::InputSig<Location, ControlFl
379375
}
380376
}
381377

382-
private module GuardsImpl = SharedGuards::Make<Location, Cfg, SuccessorTypes, GuardsInput>;
378+
private module GuardsImpl = SharedGuards::Make<Location, Cfg, GuardsInput>;
383379

384380
private module LogicInputCommon {
385381
private import semmle.code.java.dataflow.NullGuards as NullGuards

shared/controlflow/codeql/controlflow/Guards.qll

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -51,26 +51,13 @@ overlay[local?]
5151
module;
5252

5353
private import codeql.controlflow.BasicBlock as BB
54-
private import codeql.controlflow.SuccessorType as ST
54+
private import codeql.controlflow.SuccessorType
5555
private import codeql.util.Boolean
5656
private import codeql.util.Location
5757
private import codeql.util.Unit
5858

5959
signature class TypSig;
6060

61-
signature module SuccessorTypesSig {
62-
class ExceptionSuccessor extends ST::SuccessorType;
63-
64-
class ConditionalSuccessor extends ST::SuccessorType {
65-
/** Gets the Boolean value of this successor. */
66-
boolean getValue();
67-
}
68-
69-
class BooleanSuccessor extends ConditionalSuccessor;
70-
71-
class NullnessSuccessor extends ConditionalSuccessor;
72-
}
73-
7461
signature module InputSig<LocationSig Location, TypSig ControlFlowNode, TypSig BasicBlock> {
7562
/** A control flow node indicating normal termination of a callable. */
7663
class NormalExitNode extends ControlFlowNode;
@@ -205,13 +192,12 @@ signature module InputSig<LocationSig Location, TypSig ControlFlowNode, TypSig B
205192

206193
/** Provides guards-related predicates and classes. */
207194
module Make<
208-
LocationSig Location, BB::CfgSig<Location> Cfg, SuccessorTypesSig SuccessorTypes,
195+
LocationSig Location, BB::CfgSig<Location> Cfg,
209196
InputSig<Location, Cfg::ControlFlowNode, Cfg::BasicBlock> Input>
210197
{
211198
private module Cfg_ = Cfg;
212199

213200
private import Cfg_
214-
private import SuccessorTypes
215201
private import Input
216202

217203
private newtype TAbstractSingleValue =
@@ -320,7 +306,7 @@ module Make<
320306
}
321307

322308
private predicate exceptionBranchPoint(BasicBlock bb1, BasicBlock normalSucc, BasicBlock excSucc) {
323-
exists(ST::SuccessorType norm, ExceptionSuccessor exc |
309+
exists(SuccessorType norm, ExceptionSuccessor exc |
324310
bb1.getASuccessor(norm) = normalSucc and
325311
bb1.getASuccessor(exc) = excSucc and
326312
normalSucc != excSucc and

0 commit comments

Comments
 (0)