more accurate eq_content;
authorwenzelm
Wed, 12 Feb 2014 11:05:48 +0100
changeset 55434 aa2918d967f0
parent 55433 d2960d67f163
child 55435 662e0fd39823
more accurate eq_content;
src/Pure/PIDE/command.scala
src/Pure/PIDE/document.scala
--- a/src/Pure/PIDE/command.scala	Wed Feb 12 10:50:49 2014 +0100
+++ b/src/Pure/PIDE/command.scala	Wed Feb 12 11:05:48 2014 +0100
@@ -77,7 +77,7 @@
       command.source == other.command.source &&
       status == other.status &&
       results == other.results &&
-      markup == other.markup
+      markups == other.markups
 
     private def add_status(st: Markup): State = copy(status = st :: status)
 
--- a/src/Pure/PIDE/document.scala	Wed Feb 12 10:50:49 2014 +0100
+++ b/src/Pure/PIDE/document.scala	Wed Feb 12 11:05:48 2014 +0100
@@ -614,13 +614,17 @@
           else version.nodes.thy_load_commands(node_name)
 
         def eq_content(other: Snapshot): Boolean =
+        {
+          def eq_commands(commands: (Command, Command)): Boolean =
+            state.command_state(version, commands._1) eq_content
+              other.state.command_state(other.version, commands._2)
+
           !is_outdated && !other.is_outdated &&
-            node.commands.size == other.node.commands.size &&
-            ((node.commands.iterator zip other.node.commands.iterator) forall {
-              case (cmd1, cmd2) =>
-                state.command_state(version, cmd1) eq_content
-                  other.state.command_state(other.version, cmd2)
-            })
+          node.commands.size == other.node.commands.size &&
+          (node.commands.iterator zip other.node.commands.iterator).forall(eq_commands) &&
+          thy_load_commands.length == other.thy_load_commands.length &&
+          (thy_load_commands zip other.thy_load_commands).forall(eq_commands)
+        }
 
         def cumulate_markup[A](range: Text.Range, info: A, elements: Option[Set[String]],
           result: Command.State => (A, Text.Markup) => Option[A]): List[Text.Info[A]] =