gen.addUses(this, gen.getUses(m_condition));
    void frame(Generator gen) {        m_left.frame(gen);        QFrame left = gen.getFrame(m_left);        m_right.frame(gen);        QFrame right = gen.getFrame(m_right);        QFrame frame = gen.frame            (this, join(left.getType(), right.getType()));        frame.addChild(left);        frame.addChild(right);        List values = new ArrayList();        values.addAll(left.getValues());        values.addAll(right.getValues());        frame.setValues(values);        if (m_condition != null) {            gen.push(frame);            try {                m_condition.frame(gen);            } finally {                gen.pop();            }            frame.setCondition(m_condition);        }    }