more general notion of "user error" including empty message -- NB: Output.error_message needs non-empty string to emit anything;
authorwenzelm
Thu, 31 Jul 2014 20:09:30 +0200
changeset 57831 885888a880fb
parent 57830 2d0f0d6fdf3e
child 57832 5b48f2047c24
more general notion of "user error" including empty message -- NB: Output.error_message needs non-empty string to emit anything;
src/Pure/General/exn.scala
src/Pure/Isar/runtime.ML
src/Pure/library.ML
src/Pure/library.scala
--- a/src/Pure/General/exn.scala	Wed Jul 30 09:40:28 2014 +0200
+++ b/src/Pure/General/exn.scala	Thu Jul 31 20:09:30 2014 +0200
@@ -82,7 +82,7 @@
     }
     else if (exn.getClass == runtime_exception) {
       val msg = exn.getMessage
-      Some(if (msg == null) "Error" else msg)
+      Some(if (msg == null || msg == "") "Error" else msg)
     }
     else if (exn.isInstanceOf[RuntimeException]) Some(exn.toString)
     else None
--- a/src/Pure/Isar/runtime.ML	Wed Jul 30 09:40:28 2014 +0200
+++ b/src/Pure/Isar/runtime.ML	Thu Jul 31 20:09:30 2014 +0200
@@ -99,6 +99,7 @@
               TERMINATE => "Exit"
             | TimeLimit.TimeOut => "Timeout"
             | TOPLEVEL_ERROR => "Error"
+            | ERROR "" => "Error"
             | ERROR msg => msg
             | Fail msg => raised exn "Fail" [msg]
             | THEORY (msg, thys) =>
--- a/src/Pure/library.ML	Wed Jul 30 09:40:28 2014 +0200
+++ b/src/Pure/library.ML	Thu Jul 31 20:09:30 2014 +0200
@@ -266,6 +266,7 @@
 fun error msg = raise ERROR msg;
 
 fun cat_error "" msg = error msg
+  | cat_error msg "" = error msg
   | cat_error msg1 msg2 = error (msg1 ^ "\n" ^ msg2);
 
 fun assert_all pred list msg =
--- a/src/Pure/library.scala	Wed Jul 30 09:40:28 2014 +0200
+++ b/src/Pure/library.scala	Thu Jul 31 20:09:30 2014 +0200
@@ -25,6 +25,7 @@
 
   def cat_message(msg1: String, msg2: String): String =
     if (msg1 == "") msg2
+    else if (msg2 == "") msg1
     else msg1 + "\n" + msg2
 
   def cat_error(msg1: String, msg2: String): Nothing =