Generate slightly smaller code for switch and let

This commit is contained in:
Emi Simpson 2024-03-15 19:54:48 -04:00
parent cd87c0fc08
commit 2238d363e5
Signed by: Emi
GPG Key ID: A12F2C2FFDC3D847
1 changed files with 2 additions and 2 deletions

4
ir.py
View File

@ -162,7 +162,7 @@ class LetBinding:
def codegen(self) -> str:
rhs_cg = self.rhs.codegen_named(self.lhs) if isinstance(self.rhs, Function) else self.rhs.codegen()
return f'(({self.lhs}) => {self.body.codegen()})({rhs_cg})'
return f'({self.lhs}={rhs_cg},{self.body.codegen()})'
@dataclass
class Application:
@ -288,7 +288,7 @@ class Switch:
def codegen(self) -> str:
switching_on_code = self.switching_on.codegen()
return ':'.join(
f'{switching_on_code}==={val}?({branch.codegen()})'
f'{switching_on_code}=={val}?({branch.codegen()})'
for val, branch in self.branches.items()
) + f':{self.fallback.codegen()}'