From 50db6916c824741542e7f4ef496358120540121a Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 31 Aug 2023 13:17:05 +0200 Subject: [PATCH] Ruby: Get rid of unused `EmptinessSuccessor` --- .../ruby/controlflow/ControlFlowGraph.qll | 41 +------------------ .../internal/ControlFlowGraphImpl.qll | 1 - 2 files changed, 2 insertions(+), 40 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/controlflow/ControlFlowGraph.qll b/ruby/ql/lib/codeql/ruby/controlflow/ControlFlowGraph.qll index 9a386369e91..3ff85f5553d 100644 --- a/ruby/ql/lib/codeql/ruby/controlflow/ControlFlowGraph.qll +++ b/ruby/ql/lib/codeql/ruby/controlflow/ControlFlowGraph.qll @@ -73,16 +73,14 @@ module SuccessorTypes { } /** - * A conditional control flow successor. Either a Boolean successor (`BooleanSuccessor`), - * an emptiness successor (`EmptinessSuccessor`), or a matching successor - * (`MatchingSuccessor`) + * A conditional control flow successor. Either a Boolean successor (`BooleanSuccessor`) + * or a matching successor (`MatchingSuccessor`) */ class ConditionalSuccessor extends SuccessorType { boolean value; ConditionalSuccessor() { this = CfgImpl::TBooleanSuccessor(value) or - this = CfgImpl::TEmptinessSuccessor(value) or this = CfgImpl::TMatchingSuccessor(value) } @@ -109,41 +107,6 @@ module SuccessorTypes { */ class BooleanSuccessor extends ConditionalSuccessor, CfgImpl::TBooleanSuccessor { } - /** - * An emptiness control flow successor. - * - * For example, this program fragment: - * - * ```rb - * for arg in args do - * puts arg - * end - * puts "done"; - * ``` - * - * has a control flow graph containing emptiness successors: - * - * ``` - * args - * | - * for------<----- - * / \ \ - * / \ | - * / \ | - * / \ | - * empty non-empty | - * | \ | - * puts "done" \ | - * arg | - * | | - * puts arg | - * \___/ - * ``` - */ - class EmptinessSuccessor extends ConditionalSuccessor, CfgImpl::TEmptinessSuccessor { - override string toString() { if value = true then result = "empty" else result = "non-empty" } - } - /** * A matching control flow successor. * diff --git a/ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImpl.qll b/ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImpl.qll index c7a3b27afc8..0aa93e573eb 100644 --- a/ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImpl.qll +++ b/ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImpl.qll @@ -1513,7 +1513,6 @@ private module Cached { newtype TSuccessorType = TSuccessorSuccessor() or TBooleanSuccessor(boolean b) { b in [false, true] } or - TEmptinessSuccessor(boolean isEmpty) { isEmpty in [false, true] } or TMatchingSuccessor(boolean isMatch) { isMatch in [false, true] } or TReturnSuccessor() or TBreakSuccessor() or