Ayaz Hafiz
54cc5e4c29
Unify let-introduction in a single path
...
Remove branches on determining how let-bindings are introduced to the
scope. This is maybe a little more inefficient, but I think it is a huge
simplification.
One additional change this required was changing how fx suffixes are
checked. The current implementation would add additional constraints for
patterns in let bindings conditionally. However, this is unnecessary. I
believe it is sufficient to check the fx suffix by running the checks on
all introduced symbols after the type is well known (i.e. the body is
checked).
2025-01-05 23:54:37 -05:00
Ayaz Hafiz
bd2dd66c96
Store rigid vars with location during constraining
2025-01-05 23:54:36 -05:00
Sam Mohr
de626102c8
Use new try impl for ? operator
2024-12-05 02:13:13 -08:00
Sam Mohr
eedade8e81
Initial working version of proper try
keyword
2024-12-04 02:31:59 -08:00
Agus Zubiaga
6ffc8a507b
Allow suffixed pure functions that are exposed to the host
2024-11-27 14:06:37 -03:00
Agus Zubiaga
c9f001b041
Allow ignored defs with an effectful RHS
2024-11-07 18:54:22 -03:00
Agus Zubiaga
cfc4be5254
Treat untyped suffixed functions as effectful
2024-11-07 18:54:21 -03:00
Agus Zubiaga
af6fc6306f
Treat untyped unsuffixed functions as pure
2024-11-07 18:54:21 -03:00
Agus Zubiaga
e75b1cf7a0
Check suffixes of all pattern identifiers
2024-11-07 18:54:20 -03:00
Agus Zubiaga
215de707fa
Report unsuffixed record literal field with effectful function
2024-11-07 18:54:20 -03:00
Agus Zubiaga
ea35094b28
Remove flex var case when checking symbol suffix
2024-11-07 18:54:20 -03:00
Agus Zubiaga
2859829ea8
Mark flex fx vars as pure after solving body
2024-11-07 18:54:19 -03:00
Agus Zubiaga
89a918cebe
Fix unifying pure with flex vars
2024-11-07 18:54:19 -03:00
Agus Zubiaga
31bc3670df
Ignore errors in statement checks
2024-11-07 18:54:18 -03:00
Agus Zubiaga
d22b2a79f5
Suffixed pure function warning
2024-11-07 18:54:17 -03:00
Agus Zubiaga
1da8af390b
Unsuffixed effectul function warning
2024-11-07 18:54:16 -03:00
Agus Zubiaga
69e026f8bb
Leftover statement warning for pure statements
2024-11-07 18:54:16 -03:00
Agus Zubiaga
7af05cc6c9
Constrain function annotation fx to body
2024-11-07 18:54:13 -03:00
Agus Zubiaga
7776883262
Unify functions fx vars
2024-11-07 18:54:13 -03:00
Agus Zubiaga
5a5abe3bc5
Unify call's fx var with that of the enclosing function
2024-11-07 18:54:12 -03:00
Agus Zubiaga
625a5425f4
Unify import params on copied variable
2024-11-05 18:10:01 -03:00
JRI98
edd0bb553d
Remove unused EmptyTuple variant from FlatType enum
2024-10-22 16:29:53 +01:00
Agus Zubiaga
519ff56a85
Create can::module::ModuleParams for convenience
2024-08-17 13:10:37 -03:00
Agus Zubiaga
26fe91b02f
Always use "MODULE PARAMS" term in errors
...
The theory is that this will be more searchable
2024-07-06 22:07:29 -03:00
Agus Zubiaga
0cbb352a89
Move unexpected params warning to solve
2024-07-06 21:36:26 -03:00
Agus Zubiaga
d23a8dc618
Fix importing of module params vars
2024-07-02 22:48:47 -03:00
Agus Zubiaga
89fc1104f0
Report import params mismatch
2024-07-02 11:10:00 -03:00
Agus Zubiaga
d2c9953429
Handle import params lambda sets and abilities in solve
2024-07-02 11:10:00 -03:00
Agus Zubiaga
922b1c44ef
Report missing params
2024-07-02 11:10:00 -03:00
Agus Zubiaga
bc6a84a215
Report unexpected params
2024-07-02 11:09:59 -03:00
Agus Zubiaga
f0fe0a3ea6
Module params are not extensible
2024-07-02 04:10:47 -03:00
Agus Zubiaga
5ec4b042bb
Constrain and solve import params
...
No reporting yet
2024-07-02 04:10:46 -03:00
Agus Zubiaga
dcb2767b6e
Do not create unnecessary scope in solve run_help
2024-07-02 04:10:45 -03:00
Agus Zubiaga
dd0e28240a
Add module param identifiers to solve's scope
2024-07-02 04:10:45 -03:00
Ayaz Hafiz
6e89821233
Update language server to support apps
2023-10-25 17:14:33 -05:00
Ayaz Hafiz
b706a57e16
Update LSP
2023-10-25 17:14:33 -05:00
Ayaz Hafiz
9d365a8a57
Support basic diagnostic reporting
2023-10-25 17:14:32 -05:00
Ayaz Hafiz
1282110ef5
Push checkmate through load
2023-07-17 09:51:00 -05:00
Ayaz Hafiz
18e9f8f034
Move unify::Mode to roc_solve_schema
2023-07-17 09:50:36 -05:00
Ayaz Hafiz
558d7459b4
Fix merge conflicts
2023-07-12 14:14:25 -05:00
Ayaz Hafiz
6e5a308557
Content variant ErasedLambda
2023-07-12 13:57:17 -05:00
Ayaz Hafiz
33b1b8236a
Break up SolveEnv
2023-07-12 13:53:51 -05:00
Ayaz Hafiz
15eef74a83
Shove more into a common env
2023-07-12 13:53:51 -05:00
Folkert
ef39bad7c6
auto clippy fixes
2023-07-10 18:27:08 +02:00
Ayaz Hafiz
adf961ba0b
Use UEnv where possible
2023-06-22 14:31:49 -05:00
Ayaz Hafiz
ad20a2ee41
Shove more into a common env
2023-06-22 14:31:48 -05:00
Ayaz Hafiz
b5ea2c2c99
s/SolveCtx/SolveConfig/g
2023-06-22 14:31:36 -05:00
Ayaz Hafiz
8314d44650
Break up solve/solve into smaller modules
2023-06-22 14:31:14 -05:00
Ayaz Hafiz
d1dad56331
Rename env to scope
2023-06-22 14:31:03 -05:00
Ayaz Hafiz
683b586f60
Use more structs instead of tuples
2023-06-22 14:31:02 -05:00