Hi
Sorry for not following your recommendation about avoiding Reflaxe — the selling points were too compelling, so I decided I'd just have to live with (and fix) its issues.
I've been struggling with expressions being incorrectly discriminated and swept out of the generated C++. After a while a pattern emerged, and with some AI assistance I believe I've tracked down the root cause.
I'm posting the diff below. Since I can't quickly figure out how to re-fork after I inadvertently tangled things on my GitHub account with one Reflaxe implementation, I'm hoping this is still useful to the community as an early share.
I think that looking at your excellent code function doc blocks, the thesis is right.
Author: pinchasn-on-pc <pinchasn@ctop.group> 2026-06-08 11:03:47
Committer: pinchasn-on-pc <pinchasn@ctop.group> 2026-06-08 11:03:47
Parent: 73a983112e039daad46b37912ab238df6bf0cf53 (Make `RemovePureExpressionsImpl`'s style more consistent with the rest of Reflaxe)
Branch: main
Follows: v3.0.0
Precedes:
inverse logic that removed inPure ifs only
inverse logic that remove everything from and after continue statements without mercy
---- src/reflaxe/preprocessors/implementations/RemovePureExpressionsImpl.hx ----
index ee39c97..f8276e1 100644
@@ -216,5 +216,5 @@ private class OptimizerTexpr {
}
});
- return isPure;
+ return !isPure;
}
case _: {
@@ -311,5 +311,5 @@ private class OptimizerTexpr {
}
case TContinue: {
- return blockElement([], tail);
+ return [head].concat(acc);
}
case _: {
Hi
Sorry for not following your recommendation about avoiding Reflaxe — the selling points were too compelling, so I decided I'd just have to live with (and fix) its issues.
I've been struggling with expressions being incorrectly discriminated and swept out of the generated C++. After a while a pattern emerged, and with some AI assistance I believe I've tracked down the root cause.
I'm posting the diff below. Since I can't quickly figure out how to re-fork after I inadvertently tangled things on my GitHub account with one Reflaxe implementation, I'm hoping this is still useful to the community as an early share.
I think that looking at your excellent code function doc blocks, the thesis is right.