more defensive order of Markup.failed vs. Markup.finished -- more informative status in Isabelle/Scala, although it is not rendered in Isabelle/jEdit;
authorwenzelm
Mon, 25 Nov 2013 21:17:18 +0100
changeset 54647 7a8512d6206d
parent 54646 2b38549374ba
child 54648 f38b113697a2
more defensive order of Markup.failed vs. Markup.finished -- more informative status in Isabelle/Scala, although it is not rendered in Isabelle/jEdit;
src/Pure/PIDE/command.ML
--- a/src/Pure/PIDE/command.ML	Mon Nov 25 20:49:20 2013 +0100
+++ b/src/Pure/PIDE/command.ML	Mon Nov 25 21:17:18 2013 +0100
@@ -165,18 +165,19 @@
       val (errs1, result) = run (is_init orelse is_proof) (Toplevel.set_print false tr) st;
       val errs2 = (case result of NONE => [] | SOME st' => check_cmts span tr st');
       val errs = errs1 @ errs2;
-      val _ = Toplevel.status tr Markup.finished;
       val _ = List.app (Future.error_msg (Toplevel.pos_of tr)) errs;
     in
       (case result of
         NONE =>
           let
+            val _ = Toplevel.status tr Markup.failed;
+            val _ = Toplevel.status tr Markup.finished;
             val _ = if null errs then Exn.interrupt () else ();
-            val _ = Toplevel.status tr Markup.failed;
           in {failed = true, malformed = malformed', command = tr, state = st} end
       | SOME st' =>
           let
             val _ = proof_status tr st';
+            val _ = Toplevel.status tr Markup.finished;
           in {failed = false, malformed = malformed', command = tr, state = st'} end)
     end;