Merge pull request #9926 from 9999years/fix-cycle-detection-in-nix-repl

Fix cycle detection in `nix repl`
This commit is contained in:
Eelco Dolstra 2024-02-05 14:24:28 +01:00 committed by GitHub
commit e190c20c33
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 4 additions and 4 deletions

View file

@ -152,7 +152,7 @@ struct ImportantFirstAttrNameCmp
}
};
typedef std::set<Value *> ValuesSeen;
typedef std::set<const void *> ValuesSeen;
class Printer
{
@ -262,7 +262,7 @@ private:
void printAttrs(Value & v, size_t depth)
{
if (seen && !seen->insert(&v).second) {
if (seen && !seen->insert(v.attrs).second) {
printRepeated();
return;
}

View file

@ -156,7 +156,7 @@ testReplResponseNoRegex '
# Same for let expressions
testReplResponseNoRegex '
let x = { y = { a = 1; }; inherit x; }; in x
' '{ x = { ... }; y = { ... }; }'
' '{ x = «repeated»; y = { ... }; }'
# The :p command should recursively print sets, but prevent infinite recursion
testReplResponseNoRegex '
@ -171,4 +171,4 @@ testReplResponseNoRegex '
# Same for let expressions
testReplResponseNoRegex '
:p let x = { y = { a = 1; }; inherit x; }; in x
' '{ x = { x = «repeated»; y = { a = 1; }; }; y = «repeated»; }'
' '{ x = «repeated»; y = { a = 1; }; }'