Commit graph

7760 commits

Author SHA1 Message Date
Richard Feldman
62f1cbed59
Merge pull request #2853 from rtfeldman/abilities-typechecking3
Abilities typechecking bug fixes
2022-04-14 13:53:38 -04:00
Richard Feldman
953c7aa9ff
Merge pull request #2855 from rtfeldman/outdented-parse
Make sure outdented records parse
2022-04-14 13:53:11 -04:00
Richard Feldman
b796b2e92d
Merge pull request #2839 from rtfeldman/target-triple
changes to --target
2022-04-14 13:52:27 -04:00
Richard Feldman
629d17c3ae
Restore old IR name for wasm32 2022-04-14 13:21:24 -04:00
Ayaz
5652e72f99
Missing test 2022-04-14 12:50:28 -04:00
Richard Feldman
be725d6421 Revert changes to IR filenames 2022-04-14 10:55:25 -04:00
Ayaz Hafiz
233ea23979
Revert "Detect outdents too far"
This reverts commit 1c2ca2e3f5ae12d114cc72970035caf937d6e413.
2022-04-14 10:47:20 -04:00
Ayaz Hafiz
dc2d9ceeac
Detect outdents too far 2022-04-14 10:47:20 -04:00
Ayaz Hafiz
362ca1d914
Fix parse tests 2022-04-14 10:47:18 -04:00
Ayaz Hafiz
0c21821b04
Make sure outdented records parse 2022-04-14 09:31:55 -04:00
Ayaz Hafiz
3c03b7004c
Test for outdented list parse 2022-04-14 09:31:26 -04:00
Ayaz Hafiz
8f906826fc
Include parent ability in specialization tests 2022-04-14 08:57:32 -04:00
Ayaz
6472e32173
Merge pull request #2842 from rtfeldman/abilities-typechecking2
Additional checking and reporting for abilities, behind #2838
2022-04-14 08:44:57 -04:00
Richard Feldman
4ea4aa4708
Merge pull request #2838 from rtfeldman/abilities-typechecking
Inference and checking for abilities
2022-04-13 22:03:44 -04:00
Richard Feldman
75ed66b4a8
Merge pull request #2843 from rtfeldman/i/2812
Propogate errors in record fields to layout error
2022-04-13 21:56:53 -04:00
Richard Feldman
882107908e
Merge pull request #2849 from rtfeldman/i/2818
Specialize bodies with body var, not function var
2022-04-13 20:28:26 -04:00
Ayaz Hafiz
41dd7d0b4d
Specialize bodies with body var, not function var
I'm surprised code generation worked so well without this, before...

Closes #2818
2022-04-13 18:35:50 -04:00
Ayaz Hafiz
6343382af5
Propogate errors in record fields to layout error
Closes #2812

Unfortunately we don't have a great way to test this without scaffolding
a host since this happens while processing a variable exposed to the
host. In tests the root cause just yields a type error first and codegen
works, just bails during the runtime. But this works.
2022-04-13 16:23:13 -04:00
Ayaz Hafiz
d630562d99
forgive me clippy 2022-04-13 15:30:02 -04:00
Ayaz Hafiz
8eec930260
More and smarter checking and error reporting for abilities 2022-04-13 15:25:19 -04:00
Ayaz Hafiz
0792ccbbe8
Calling ability with non-specialized type is an error 2022-04-13 11:49:33 -04:00
Ayaz Hafiz
d110fbde6c
Annotation specializes ability 2022-04-13 10:44:34 -04:00
Ayaz Hafiz
25b3aa7ca7
Typed body specializations solve 2022-04-13 10:42:46 -04:00
Ayaz Hafiz
389c46edcf
Remove unneeded var 2022-04-13 10:12:45 -04:00
Ayaz Hafiz
5e1ab8225e
Report when ability member binds >1 variable to parent 2022-04-13 10:11:24 -04:00
Ayaz Hafiz
a1c1dc1a9f
Ask rustc to please always inline 2022-04-13 08:49:27 -04:00
Kevin Gillette
2c4a83788c
Rename internal NUM_DIV_INT references to NUM_DIV_FLOOR.
This balances with NUM_DIV_CEIL
(which is another form of integer division).
2022-04-13 02:48:57 -06:00
Richard Feldman
e9d4a4134a
Give more info when copying obj files fails 2022-04-13 01:26:10 -04:00
Richard Feldman
412eb763bb
Add support for x64 linux 2022-04-13 01:21:12 -04:00
Richard Feldman
e1a88f190c
Add a target triple for 32-bit musl linux 2022-04-13 01:21:12 -04:00
Richard Feldman
c7f5beb0ad
Rename generated .bc files to have target triples 2022-04-13 01:21:12 -04:00
Richard Feldman
2e1b384bdc
Drop unused import 2022-04-13 01:21:12 -04:00
Ayaz Hafiz
0336b6ad27
Clippy 2022-04-12 19:02:58 -04:00
Ayaz Hafiz
67b5ab7fe7
Add test for when specialization types conflict 2022-04-12 19:01:36 -04:00
Ayaz Hafiz
cf1a6691dd
Fix solve tests 2022-04-12 18:54:12 -04:00
Ayaz Hafiz
d94556d807
Report overly general specializations 2022-04-12 18:52:49 -04:00
Ayaz Hafiz
16d0060824
Report errors for type errors in specializations outside of ability impl 2022-04-12 18:41:20 -04:00
Ayaz Hafiz
127d435ff2
Report incomplete ability implementations 2022-04-12 18:26:19 -04:00
Ayaz Hafiz
b86bf94d92
Dev, wasm test bugs 2022-04-12 17:35:00 -04:00
Ayaz Hafiz
462f443956
Comment 2022-04-12 17:23:03 -04:00
Ayaz Hafiz
865c1f15d7
Fix test compile errors, and simply load_internal tests 2022-04-12 16:42:51 -04:00
Ayaz Hafiz
cbbbb8c855
Remove stray dbgs 2022-04-12 16:32:50 -04:00
Ayaz Hafiz
64b559073d
Clippy 2022-04-12 16:18:07 -04:00
Ayaz Hafiz
15a040ec87
Basic type inference and solving for abilities
Note that is still pretty limited. We only permit opaque types to
implement abilities, abilities cannot have type arguments, and also no
other functions may depend on abilities
2022-04-12 16:18:07 -04:00
Ayaz Hafiz
913d97cab1
Add needed imports 2022-04-12 16:18:07 -04:00
Ayaz Hafiz
7536d48a22
Remove unused function 2022-04-12 16:18:06 -04:00
Richard Feldman
f39f7eda03
Merge pull request #2832 from rtfeldman/div-no-result
`div`, `divCeil`, `divFloor` panic + add checked versions returning `Result`
2022-04-12 15:10:06 -04:00
Nikita Mounier
c035900d64
Update test_mono test. 2022-04-12 18:15:19 +00:00
Nikita Mounier
dfba77bd04
Explicit i128 in test. 2022-04-12 16:41:29 +00:00
Nikita Mounier
0f0e9bdf14
Fix test in solve_expr.rs 2022-04-12 12:12:29 +00:00