mirror of
https://github.com/idris-lang/Idris2.git
synced 2024-12-16 15:52:43 +03:00
170af1e87a
* Skip forced arguments in conversion check This isn't always safe - we have to have also checked the type of the things we're converting - but in the place where it is safe it can be a pretty significant saving. * Use Closures, not NF, in Binders for normal forms This means we don't need to reduce argument types during unification if we don't need to. Also, we now try to avoid reducing closures during unification if they are unified with a metavariable. Together, this saves a huge amount of unnecessary evaluation in programs that do a lot of compile time evaluation. * Didn't mean to update idris2api.ipkg * Fix dodgy merge
90 lines
2.0 KiB
Plaintext
90 lines
2.0 KiB
Plaintext
1/1: Building Issue1771-1 (Issue1771-1.idr)
|
|
Error: Fix is not total, not strictly positive
|
|
|
|
Issue1771-1:3:1--4:29
|
|
3 | data Fix : (Type -> Type) -> Type where
|
|
4 | MkFix : f (Fix f) -> Fix f
|
|
|
|
Error: MkFix is not total, not strictly positive
|
|
|
|
Issue1771-1:4:3--4:8
|
|
1 | %default total
|
|
2 |
|
|
3 | data Fix : (Type -> Type) -> Type where
|
|
4 | MkFix : f (Fix f) -> Fix f
|
|
^^^^^
|
|
|
|
Error: yesF is not total, possibly not terminating due to call to Main.MkFix
|
|
|
|
Issue1771-1:9:1--9:18
|
|
5 |
|
|
6 | F : Type
|
|
7 | F = Fix Not
|
|
8 |
|
|
9 | yesF : Not F -> F
|
|
^^^^^^^^^^^^^^^^^
|
|
|
|
1/1: Building Issue1771-2 (Issue1771-2.idr)
|
|
Error: F is not total, not strictly positive
|
|
|
|
Issue1771-2:3:1--4:58
|
|
3 | data F : Type where
|
|
4 | MkFix : ((0 g : Type -> Type) -> g === Not -> g F) -> F
|
|
|
|
Error: MkFix is not total, not strictly positive
|
|
|
|
Issue1771-2:4:3--4:8
|
|
1 | %default total
|
|
2 |
|
|
3 | data F : Type where
|
|
4 | MkFix : ((0 g : Type -> Type) -> g === Not -> g F) -> F
|
|
^^^^^
|
|
|
|
Error: yesF is not total, possibly not terminating due to call to Main.MkFix
|
|
|
|
Issue1771-2:6:1--6:18
|
|
2 |
|
|
3 | data F : Type where
|
|
4 | MkFix : ((0 g : Type -> Type) -> g === Not -> g F) -> F
|
|
5 |
|
|
6 | yesF : Not F -> F
|
|
^^^^^^^^^^^^^^^^^
|
|
|
|
1/1: Building Issue1771-3 (Issue1771-3.idr)
|
|
Error: F is not total, not strictly positive
|
|
|
|
Issue1771-3:9:1--10:26
|
|
09 | data F : Type where
|
|
10 | MkF : Wrap (Not F) -> F
|
|
|
|
Error: MkF is not total, not strictly positive
|
|
|
|
Issue1771-3:10:3--10:6
|
|
06 | unwrap : Wrap a -> a
|
|
07 | unwrap (MkWrap v) = v
|
|
08 |
|
|
09 | data F : Type where
|
|
10 | MkF : Wrap (Not F) -> F
|
|
^^^
|
|
|
|
Error: notF is not total, possibly not terminating due to call to Main.F
|
|
|
|
Issue1771-3:15:1--15:13
|
|
11 |
|
|
12 | yesF : Not F -> F
|
|
13 | yesF = MkF . MkWrap
|
|
14 |
|
|
15 | notF : Not F
|
|
^^^^^^^^^^^^
|
|
|
|
Error: yesF is not total, possibly not terminating due to calls to Main.F, Main.MkF
|
|
|
|
Issue1771-3:12:1--12:18
|
|
08 |
|
|
09 | data F : Type where
|
|
10 | MkF : Wrap (Not F) -> F
|
|
11 |
|
|
12 | yesF : Not F -> F
|
|
^^^^^^^^^^^^^^^^^
|
|
|