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
730 B
730 B
name, args
| name | args | |
|---|---|---|
| tryEval |
|
Try to shallowly evaluate e. Return a set containing the
attributes success (true if e evaluated successfully,
false if an error was thrown) and value, equalling e if
successful and false otherwise. tryEval will only prevent
errors created by throw or assert from being thrown.
Errors tryEval will not catch are for example those created
by abort and type errors generated by builtins. Also note that
this doesn't evaluate e deeply, so let e = { x = throw ""; }; in (builtins.tryEval e).success will be true. Using
builtins.deepSeq one can get the expected result:
let e = { x = throw ""; }; in (builtins.tryEval (builtins.deepSeq e e)).success will be
false.