Supponendo che le dichiarazioni siano espressioni considera tale codice:
if ((var x = foo()) and (var y = x)) or (var z = bar()) then
println(z);
end
Il riferimento a x
è OK, perché a questo punto% deve essere impostato% co_de, ma il riferimento a x
(in z
) non lo è. Può essere valido o meno.
Vorrei calcolare questi due "stati" di variabili - se è corretto fare riferimento a variabili (è garantito che sia impostato) o no (non è impostato con certezza, o è forse impostato).
Come si fa?
Aggiornamento : ho trovato questa pagina wiki link e penso che il mio caso sia molto più semplice . Devo tenere traccia di 4 tipi di flusso - e, o, xor, successivo (operatore virgola, da predicato a corpo). Spero di avere ragione: -)