import csharp

query predicate edges(ControlFlow::Node n1, ControlFlow::Node n2, string attr, string val) {
  exists(SwitchStmt switch, ControlFlow::SuccessorType t |
    switch.getAControlFlowNode().getASuccessor*()=n1 |
    n2 = n1.getASuccessorByType(t) and
    attr = "semmle.label" and
    val = t.toString()
  )
}
