1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2024-09-20 11:11:03 -04:00

printValue: Show assertion errors inline

This commit is contained in:
Eelco Dolstra 2013-09-09 11:34:54 +02:00
parent e587aec123
commit 8e765b8876

View file

@ -390,13 +390,20 @@ std::ostream & NixRepl::printValue(std::ostream & str, Value & v, unsigned int m
} }
} }
foreach (Sorted::iterator, i, sorted) foreach (Sorted::iterator, i, sorted) {
str << i->first << " = ";
if (hidden.find(i->first) != hidden.end()) if (hidden.find(i->first) != hidden.end())
str << i->first << " = «...»; "; str << "«...»";
else if (seen.find(i->second) != seen.end()) else if (seen.find(i->second) != seen.end())
str << i->first << " = «repeated»; "; str << "«repeated»";
else else
printValue(str << i->first << " = ", *i->second, maxDepth - 1, seen) << "; "; try {
printValue(str, *i->second, maxDepth - 1, seen);
} catch (AssertionError & e) {
str << "«error: " << e.msg() << "»";
}
str << "; ";
}
} else } else
str << "... "; str << "... ";
@ -413,9 +420,14 @@ std::ostream & NixRepl::printValue(std::ostream & str, Value & v, unsigned int m
if (maxDepth > 0) if (maxDepth > 0)
for (unsigned int n = 0; n < v.list.length; ++n) { for (unsigned int n = 0; n < v.list.length; ++n) {
if (seen.find(v.list.elems[n]) != seen.end()) if (seen.find(v.list.elems[n]) != seen.end())
str << "«repeated» "; str << "«repeated»";
else else
printValue(str, *v.list.elems[n], maxDepth - 1, seen) << " "; try {
printValue(str, *v.list.elems[n], maxDepth - 1, seen);
} catch (AssertionError & e) {
str << "«error: " << e.msg() << "»";
}
str << " ";
} }
else else
str << "... "; str << "... ";