lean4-htt/src/Lean/Compiler/LCNF
Cameron Zwarich 6300329057
perf: consider functions with ordinary implicit arguments of instance type to be template-like (#9536)
This extends the specialization behavior of functions taking instance
implicits to ordinary implicit arguments that are of instance type. The
choice between the two is often made for subtle inference-related
reasons. It also affects visibility of these functions, because the
module system makes template-like decls visible to the compiler in other
modules.
2025-07-25 16:03:30 +00:00
..
Simp perf: consider functions with ordinary implicit arguments of instance type to be template-like (#9536) 2025-07-25 16:03:30 +00:00
AlphaEqv.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
AuxDeclCache.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
BaseTypes.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Basic.lean perf: consider functions with ordinary implicit arguments of instance type to be template-like (#9536) 2025-07-25 16:03:30 +00:00
Bind.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Check.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Closure.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
CompatibleTypes.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
CompilerM.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
ConfigOptions.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
CSE.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
DeclHash.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
DependsOn.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
ElimDead.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
ElimDeadBranches.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
ExtractClosed.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
FixedParams.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
FloatLetIn.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
FVarUtil.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
InferType.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Internalize.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
JoinPoints.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
LambdaLifting.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
LCtx.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Level.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Main.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
MonadScope.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
MonoTypes.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
OtherDecl.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Passes.lean fix: run inferVisibility after saveMono (#9545) 2025-07-25 15:36:52 +00:00
PassManager.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
PhaseExt.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
PrettyPrinter.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Probing.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
PullFunDecls.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
PullLetDecls.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
ReduceArity.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
ReduceJpArity.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Renaming.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
ScopeM.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Simp.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Specialize.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
SpecInfo.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
StructProjCases.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Testing.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
ToDecl.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
ToExpr.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
ToLCNF.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
ToMono.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Types.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Util.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Visibility.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00