import csharp query predicate edges(ControlFlowNode a, ControlFlowNode b, string label, string value) { exists(ControlFlow::SuccessorType t | a.getEnclosingCallable().hasName("SwitchStatements") and b = a.getASuccessor(t) and label = "semmle.label" and value = t.toString() ) }