X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/1cbe917465857acd366e4058d1f71c5653720b17..8cbb96323335d1a2b42a9daac94a9d538ab93536:/src/order.sml diff --git a/src/order.sml b/src/order.sml index 2923c19..422856d 100644 --- a/src/order.sml +++ b/src/order.sml @@ -111,7 +111,11 @@ fun expNeeded G (e, loc) = | ESkip => empty | ESet (_, e) => expNeeded G e - | EGet (x, _, e) => expNeeded (Env.bindVal G (x, dt, NONE)) e + | EGet (x, topt, _, e) => + (case topt of + NONE => expNeeded (Env.bindVal G (x, dt, NONE)) e + | SOME t => unionCTE ((typNeeded G t, SS.empty), + expNeeded (Env.bindVal G (x, dt, NONE)) e)) | ESeq es => foldl (fn (e, ss) => unionCTE (ss, expNeeded G e)) empty es | ELocal (e1, e2) => unionCTE (expNeeded G e1, expNeeded G e2)