1
1
mirror of https://github.com/anoma/juvix.git synced 2024-12-14 08:27:03 +03:00
juvix/test
Paul Cadman ff748b988e
Do not filter implicit args in internal to core translation (#1728)
The internal to core translation was removing implicit arguments from
function definitions and applications. This is incorrect as the implicit
bindings are required when translating the following (in `csuc`, the
binding of the implicit argument is required in an application on the
rhs):

```
Num : Type;
Num := {A : Type} → (A → A) → A → A;

csuc : Num → Num;
csuc n {_} f := f ∘ n {_} f;
```

Apart from removing this filter from function and application
translation, this required the following changes:

ConstructorInfo:
The _constructorArgsNum field must include the number of type parameters
of its inductive type.

PatternConstructorApp:
The pattern arguments must include wildcards for the implicit type
parameters passed to the constructor.

BuiltinIf:
The BuiltinIf expression is passed an implicit type argument that must
be removed when translating to Core if.

LitString:
A literal string is a function with an implcit type argument. So this
must be a translated to a lambda where the type argument is ignored.

Fixes https://github.com/anoma/juvix/issues/1714
2023-01-16 14:13:17 +00:00
..
Arity Support basic dependencies (#1622) 2022-12-20 13:05:40 +01:00
Asm JuvixCore to JuvixAsm translation (#1665) 2023-01-09 18:21:30 +01:00
BackendC Automatized benchmarks (#1673) 2023-01-05 17:48:26 +01:00
Compilation Tests for the new compilation pipeline (#1703) 2023-01-12 11:22:32 +01:00
Core Tests for the new compilation pipeline (#1703) 2023-01-12 11:22:32 +01:00
Internal Do not filter implicit args in internal to core translation (#1728) 2023-01-16 14:13:17 +00:00
Parsing Support basic dependencies (#1622) 2022-12-20 13:05:40 +01:00
Reachability Support basic dependencies (#1622) 2022-12-20 13:05:40 +01:00
Runtime Automatized benchmarks (#1673) 2023-01-05 17:48:26 +01:00
Scope Compiler output (#1705) 2023-01-06 17:54:13 +01:00
Termination Change syntax for ind. data types and forbid the empty data type (#1684) 2023-01-03 13:49:04 +01:00
Typecheck Fix #1704 (#1711) 2023-01-10 17:31:15 +01:00
Arity.hs Support implicit arguments (#144) 2022-06-13 14:25:22 +02:00
Asm.hs Translation from JuvixAsm to C (#1619) 2022-12-06 11:33:20 +01:00
BackendC.hs Support partial application and closure passing in C backend (#190) 2022-06-28 10:25:43 +02:00
Base.hs Automatized benchmarks (#1673) 2023-01-05 17:48:26 +01:00
Compilation.hs Tests for the new compilation pipeline (#1703) 2023-01-12 11:22:32 +01:00
Core.hs JuvixCore to JuvixAsm translation (#1665) 2023-01-09 18:21:30 +01:00
Internal.hs Add translation from Internal to Core (#1567) 2022-11-07 14:47:56 +01:00
Main.hs Tests for the new compilation pipeline (#1703) 2023-01-12 11:22:32 +01:00
Parsing.hs Disallow tab characters as spaces (#1523) 2022-09-07 13:59:41 +02:00
Reachability.hs Compute name dependency graph and filter unreachable definitions (#1408) 2022-07-25 18:38:44 +02:00
Runtime.hs Juvix C runtime (#1580) 2022-11-03 09:38:09 +01:00
Scope.hs [ CI ] New jobs: ormolu and hlint 2022-04-05 19:57:21 +02:00
Termination.hs Add the termination checker to the pipeline (#111) 2022-05-30 13:40:52 +02:00
Typecheck.hs Add lambda expressions to internal and add typechecking support (#1538) 2022-09-23 15:43:18 +02:00