import python import semmle.python.pointsto.PointsTo import semmle.python.pointsto.PointsToContext import Util from ControlFlowNode test, ControlFlowNode use, ObjectInternal val, boolean eval, PointsToContext ctx, ControlFlowNode origin, string what where not use instanceof NameConstantNode and not use.getNode() instanceof ImmutableLiteral and eval = Conditionals::testEvaluates(test, use, ctx, val, origin) and ( what = val.getSource().(Object).toString() or not exists(val.getSource()) and what = origin.getNode().toString() ) select locate(test.getLocation(), "bc"), test.getNode().toString(), eval.toString(), use.getNode().toString(), what