Equations
- Lean.Compiler.LCNF.Code.containsConst.goLetValue constName (Lean.Compiler.LCNF.LetValue.value value) = false
- Lean.Compiler.LCNF.Code.containsConst.goLetValue constName Lean.Compiler.LCNF.LetValue.erased = false
- Lean.Compiler.LCNF.Code.containsConst.goLetValue constName (Lean.Compiler.LCNF.LetValue.proj typeName idx struct) = false
- Lean.Compiler.LCNF.Code.containsConst.goLetValue constName (Lean.Compiler.LCNF.LetValue.fvar fvarId args) = false
- Lean.Compiler.LCNF.Code.containsConst.goLetValue constName (Lean.Compiler.LCNF.LetValue.const name us args) = (name == constName)
Instances For
Instances For
- passUnderTest : Lean.Compiler.LCNF.Pass
- testName : Lean.Name
Instances For
- decls : Array Lean.Compiler.LCNF.Decl
Instances For
- input : Array Lean.Compiler.LCNF.Decl
- output : Array Lean.Compiler.LCNF.Decl
Instances For
Instances For
Equations
Instances For
Equations
Instances For
Equations
- x.install passUnderTestName testName = x { passUnderTestName := passUnderTestName, testName := testName }
Instances For
Instances For
Equations
- x.run decls passUnderTest testName = x { decls := decls } { passUnderTest := passUnderTest, testName := testName }
Instances For
Instances For
Equations
- Lean.Compiler.LCNF.Testing.getDecls = do let __do_lift ← read pure __do_lift.decls
Instances For
Equations
- Lean.Compiler.LCNF.Testing.getInputDecls = do let __do_lift ← read pure __do_lift.input
Instances For
If property
is false
throw an exception with msg
.
Equations
- Lean.Compiler.LCNF.Testing.assert property msg = if property = true then pure PUnit.unit else Lean.throwError ((Lean.MessageData.ofFormat ∘ Lean.format) msg)
Instances For
Install an assertion pass right after a specific occurrence of a pass, default is first.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Install an assertion pass right after each occurrence of a pass.
Instances For
Install an assertion pass right after a specific occurrence of a pass, default is first. The assertion operates on a per declaration basis.
Instances For
Install an assertion pass right after the each occurrence of a pass. The assertion operates on a per declaration basis.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Replace a specific occurrence, default is first, of a pass with a wrapper one that allows the user to provide an assertion which takes into account both the declarations that were sent to and produced by the pass under test.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Replace all occurrences of a pass with a wrapper one that allows the user to provide an assertion which takes into account both the declarations that were sent to and produced by the pass under test.
Instances For
Insert a pass after passUnderTestName
, that ensures, that if
passUnderTestName
is executed twice in a row, no change in the resulting
expression will occur, i.e. the pass is at a fix point.
Instances For
Compare the overall sizes of the input and output of passUnderTest
with assertion
.
If assertion inputSize outputSize
is false
throw an exception with msg
.
Instances For
Assert that the overall size of the Decl
s in the compilation pipeline does not change
after passUnderTestName
.
Instances For
Assert that the overall size of the Decl
s in the compilation pipeline gets reduced by passUnderTestName
.
Instances For
Assert that the overall size of the Decl
s in the compilation pipeline gets reduced or stays unchanged
by passUnderTestName
.
Equations
- Lean.Compiler.LCNF.Testing.assertReducesOrPreservesSize msg = Lean.Compiler.LCNF.Testing.assertSize (fun (x1 x2 : Nat) => decide (x1 ≥ x2)) msg
Instances For
Assert that the pass under test produces Decl
s that do not contain
Expr.const constName
in their Code.let
values anymore.
Instances For
Equations
- One or more equations did not get rendered due to their size.