Commit graph

36 commits

Author SHA1 Message Date
Richard Feldman
52dfb75dc0 Fix some Int8s that should have been Int1s 2020-06-21 16:52:22 -04:00
Richard Feldman
ddf980e475 Use RunLowLevel over calling Bool.and 2020-06-21 15:25:03 -04:00
Richard Feldman
dec5c3a062 Get low-level ops compiling 2020-06-19 20:07:04 -04:00
Richard Feldman
c49abfe2de Add layout to CallByName 2020-05-09 22:41:59 -04:00
Richard Feldman
2904f29c36 Have mono::expr::Env use IdentIds::gen_unique 2020-05-04 20:29:36 -04:00
Folkert
4530aa8c07 handle Unboxed 2020-04-23 21:55:21 +02:00
Folkert
848764cb25 improve formatting of records in pattern exhaustiveness errors 2020-04-23 21:49:24 +02:00
Folkert
b2a713915b fix ordering bug in pattern exhaustiveness 2020-04-23 20:12:40 +02:00
Folkert
f0aa598ff9 use tag id instead of name in exhaustiveness checking 2020-04-21 16:24:43 +02:00
Folkert
c69b0d69e5 fix enum and bool pattern match suggestions 2020-04-12 21:47:15 +02:00
Folkert
39fb78b2d5 remove Jump/Label from mono::Expr 2020-03-24 00:11:02 +01:00
Folkert
958f3f9ad4 change pattern destructuring stores
they are now tracked in the Cond/Switch variants, rather than merged into the branch constructors. Required for 'beans'
2020-03-23 23:35:45 +01:00
Folkert
2bb69f333f always Cond on a symbol
this will make 'beans' easier
2020-03-23 20:00:15 +01:00
Folkert
46062439b5 remove label from Struct layout 2020-03-23 17:55:02 +01:00
Folkert
9a0234e5dd make bound variables available in guards 2020-03-22 01:11:19 +01:00
Folkert
1f3b8f7d68 guard exhaustiveness 2020-03-21 23:33:37 +01:00
Folkert
a16d48a6a9 code gen for simple guards
Guards cannot use variables bound in the pattern yet
2020-03-21 22:27:36 +01:00
Folkert
0f22cbbf7d fix incorrect layout for Switch 2020-03-20 19:56:50 +01:00
Folkert
d0da300042 fix equality/hash issue
lead to tests not being merged/shared
2020-03-20 16:23:56 +01:00
Folkert
e062404a63 support more complex nested patterns 2020-03-20 14:27:07 +01:00
Folkert
f44fea42bb Boolean and/or in cranelift 2020-03-20 00:59:26 +01:00
Folkert
82655556ab exhaustiveness for record guards 2020-03-19 22:34:08 +01:00
Folkert
9745d86efb add tests 2020-03-19 14:59:05 +01:00
Folkert
b93fe4e341 make arbitrary AccessAtIndex work
it now uses that actual layout, not a hardcoded one
2020-03-19 00:25:16 +01:00
Folkert
0996f264e7 simplify Byte layout 2020-03-18 22:22:32 +01:00
Folkert
c11f374eb0 simplify Bool layout 2020-03-18 22:15:03 +01:00
Folkert
99db336033 Working pattern match on Result Int Int 2020-03-18 21:35:10 +01:00
Folkert
53bd47221c WIP things seem to work in theory 2020-03-18 16:44:53 +01:00
Folkert
845e30658e WIP 2020-03-18 02:20:21 +01:00
Folkert
b5abed5f54 variables in pattern matches on single tags 2020-03-17 16:27:09 +01:00
Folkert
c20f777dba comment tests that fail for llvm 2020-03-17 00:36:58 +01:00
Folkert
72ca6d675c further tag support in Cranelift 2020-03-17 00:36:58 +01:00
Folkert
c9a90c32e3 prepare for Tag code gen 2020-03-17 00:36:58 +01:00
Folkert
e742b77e0b parity with old implementation 2020-03-17 00:36:58 +01:00
Folkert
d875f8bfce implement layout for Tag 2020-03-17 00:36:58 +01:00
Folkert
8c7124aba6 first pass 2020-03-17 00:36:58 +01:00