clangd broke because it can't look through symlinks. compile_commands manipulation does not fix it, clangd configuration does not fix it, a vfs overlay does not fix it, and while a combination of those can fix it with a bind mount in place that's just too cursed to even consider clangd bug: https://github.com/llvm/llvm-project/issues/116877 Change-Id: I8e3e8489548eb3a7aa65ac9d12a5ec8abf814aec
970 B
970 B
name, args
| name | args | |
|---|---|---|
| genericClosure |
|
Take an attrset with values named startSet and operator in order to
return a list of attrsets by starting with the startSet and recursively
applying the operator function to each item. The attrsets in the
startSet and the attrsets produced by operator must contain a value
named key which is comparable. The result is produced by calling operator
for each item with a value for key that has not been called yet including
newly produced items. The function terminates when no new items are
produced. The resulting list of attrsets contains only attrsets with a
unique key. For example,
builtins.genericClosure {
startSet = [ {key = 5;} ];
operator = item: [{
key = if (item.key / 2 ) * 2 == item.key
then item.key / 2
else 3 * item.key + 1;
}];
}
evaluates to
[ { key = 5; } { key = 16; } { key = 8; } { key = 4; } { key = 2; } { key = 1; } ]