1
1
Fork 0
mirror of https://github.com/NixOS/nix.git synced 2025-11-18 16:29:36 +01:00

Merge pull request #13954 from xokdvium/empty-list-elems-fix

libexpr: Fix Value::mkList for empty lists
This commit is contained in:
Eelco Dolstra 2025-09-10 10:23:49 +02:00 committed by GitHub
commit 247d16a530
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -993,12 +993,20 @@ public:
void mkList(const ListBuilder & builder) noexcept
{
if (builder.size == 1)
switch (builder.size) {
case 0:
setStorage(List{.size = 0, .elems = nullptr});
break;
case 1:
setStorage(std::array<Value *, 2>{builder.inlineElems[0], nullptr});
else if (builder.size == 2)
break;
case 2:
setStorage(std::array<Value *, 2>{builder.inlineElems[0], builder.inlineElems[1]});
else
break;
default:
setStorage(List{.size = builder.size, .elems = builder.elems});
break;
}
}
inline void mkThunk(Env * e, Expr * ex) noexcept