diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImplShared.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImplShared.qll index c3dab8f072e..cd7ffec5344 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImplShared.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImplShared.qll @@ -988,4 +988,14 @@ module Consistency { not node instanceof TExitNode and not exists(getASuccessor(node, _)) } + + query predicate nonUniqueSplitKind(SplitImpl split, SplitKind sk) { + sk = split.getKind() and + strictcount(split.getKind()) > 1 + } + + query predicate nonUniqueListOrder(SplitKind sk, int ord) { + ord = sk.getListOrder() and + strictcount(sk.getListOrder()) > 1 + } } diff --git a/ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImplShared.qll b/ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImplShared.qll index c3dab8f072e..cd7ffec5344 100644 --- a/ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImplShared.qll +++ b/ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImplShared.qll @@ -988,4 +988,14 @@ module Consistency { not node instanceof TExitNode and not exists(getASuccessor(node, _)) } + + query predicate nonUniqueSplitKind(SplitImpl split, SplitKind sk) { + sk = split.getKind() and + strictcount(split.getKind()) > 1 + } + + query predicate nonUniqueListOrder(SplitKind sk, int ord) { + ord = sk.getListOrder() and + strictcount(sk.getListOrder()) > 1 + } }