lean4-htt/src/Lean/Compiler/LCNF
Leonardo de Moura 0684c95d35
fix: do not lift (<- ...) over pure if-then-else (#3820)
Now, only `(<- ...)`s occurring in the condition of a pure if-then-else
are lifted.
That is, `if (<- foo) then ... else ...` is ok, but `if ... then (<-
foo) else ...` is not. See #3713

closes #3713 

This PR also adjusts this repo. Note that some of the `(<- ...)` were
harmless since they were just accessing some
read-only state.
2024-04-01 21:33:59 +00:00
..
Simp perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
AlphaEqv.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
AuxDeclCache.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
BaseTypes.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
Basic.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
Bind.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
Check.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
Closure.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
CompatibleTypes.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
CompilerM.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
ConfigOptions.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
CSE.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
DeclHash.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
DependsOn.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
ElimDead.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
ElimDeadBranches.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
FixedParams.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
FloatLetIn.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
ForEachExpr.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
FVarUtil.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
InferType.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
Internalize.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
JoinPoints.lean perf: rewrite UnusedVariables lint (#3186) 2024-03-21 12:28:57 +00:00
LambdaLifting.lean fix: do not lift (<- ...) over pure if-then-else (#3820) 2024-04-01 21:33:59 +00:00
LCtx.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
Level.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
Main.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
MonadScope.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
MonoTypes.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
OtherDecl.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
Passes.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
PassManager.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
PhaseExt.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
PrettyPrinter.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
Probing.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
PullFunDecls.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
PullLetDecls.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
ReduceArity.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
ReduceJpArity.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
Renaming.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
ScopeM.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
Simp.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
Specialize.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
SpecInfo.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
Testing.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
ToDecl.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
ToExpr.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
ToLCNF.lean fix: regression on match expressions with builtin literals (#3521) 2024-02-27 18:49:44 +00:00
ToMono.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
Types.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
Util.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00