1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-25 10:41:16 +02:00

remove Symbol::empty

the only use of this function is to determine whether a lambda has a non-set
formal, but this use is arguably better served by Symbol::set and using a
non-Symbol instead of an empty symbol in the parser when no such formal is present.
This commit is contained in:
pennae 2022-03-05 14:20:25 +01:00
parent 90b5c0a1a6
commit ff0fd91ed2
5 changed files with 8 additions and 13 deletions

View file

@ -144,9 +144,9 @@ void ExprLambda::show(std::ostream & str) const
str << "...";
}
str << " }";
if (!arg.empty()) str << " @ ";
if (arg.set()) str << " @ ";
}
if (!arg.empty()) str << arg;
if (arg.set()) str << arg;
str << ": " << *body << ")";
}
@ -364,11 +364,11 @@ void ExprLambda::bindVars(const StaticEnv & env)
StaticEnv newEnv(
false, &env,
(hasFormals() ? formals->formals.size() : 0) +
(arg.empty() ? 0 : 1));
(!arg.set() ? 0 : 1));
Displacement displ = 0;
if (!arg.empty()) newEnv.vars.emplace_back(arg, displ++);
if (arg.set()) newEnv.vars.emplace_back(arg, displ++);
if (hasFormals()) {
for (auto & i : formals->formals)