]> hydra-www.ietfng.org Git - dyna2/commitdiff
stabilize error dump.
authorTim Vieira <tim.f.vieira@gmail.com>
Thu, 11 Jul 2013 16:08:17 +0000 (12:08 -0400)
committerTim Vieira <tim.f.vieira@gmail.com>
Thu, 11 Jul 2013 16:08:17 +0000 (12:08 -0400)
src/Dyna/Backend/Python/interpreter.py
test/repl/error.dynadoc

index 2a3da45a683cf44cbdf18c17d5dd3c31e8610b95..ffaedfca29cde240c1e1de30a48a4210759c61c6 100644 (file)
@@ -217,16 +217,16 @@ class Interpreter(object):
         for item, (val, es) in self.error.items():
             for e, h in es:
                 if h is None:
-                    I[item.fn][type(e)].append((e, item, val))
+                    I[item.fn][type(e)].append((item, val, e))
                 else:
-                    E[h.rule][type(e)].append((e, item, val))
+                    E[h.rule][type(e)].append((item, val, e))
 
         # aggregation errors
         for r in sorted(I, key=lambda r: r.index):
             print >> out, 'Error(s) aggregating %s:' % r
             for etype in I[r]:
                 print >> out, '  %s:' % etype.__name__
-                for i, (e, item, value) in enumerate(sorted(I[r][etype])):                       # todo: probably don't want to show ten million errors
+                for i, (item, value, e) in enumerate(sorted(I[r][etype])):
                     if i >= 5:
                         print >> out, '    %s more ...' % (len(I[r][etype]) - i)
                         break
@@ -242,7 +242,7 @@ class Interpreter(object):
             print >> out
             for etype in E[r]:
                 print >> out, '  %s:' % etype.__name__
-                for i, (e, item, value) in enumerate(sorted(E[r][etype])):                       # todo: probably don't want to show ten million errors
+                for i, (item, value, e) in enumerate(sorted(E[r][etype])):
                     if i >= 5:
                         print >> out, '    %s more ...' % (len(E[r][etype]) - i)
                         break
index 09e3e534af116623e5d9000c542776ae87543a2a..e86fb247b4e999f75b27a2b20e84b8f5af99b443 100644 (file)
@@ -56,8 +56,8 @@ Errors
 ======
 Error(s) aggregating a/1:
   AggregatorError:
-    `a(2)`: `:=` got conflicting values [1, 2] for rule index 8
     `a(1)`: `:=` got conflicting values [1, 2] for rule index 8
+    `a(2)`: `:=` got conflicting values [1, 2] for rule index 8
 Error(s) aggregating d/0:
   TypeError:
     `d`: unsupported operand type(s) for *: 'NoneType' and 'int'