Commit graph

5994 commits

Author SHA1 Message Date
Folkert
891c879439 most of the conversion 2021-11-25 23:27:59 +01:00
Folkert
b8eed51611 first attempt at layout soa 2021-11-25 22:09:20 +01:00
Folkert
b4f21930bb cleanup 2021-11-25 20:49:44 +01:00
Folkert
612f868652 make VariableSubsSlice an alias 2021-11-25 20:29:34 +01:00
Folkert
69a80872e1 rename start -> index 2021-11-25 19:46:05 +01:00
ayazhafiz
d352d2cdf8 Revert "Include annotation type signatures in Expected struct"
This reverts commit 6e4fd5f06a1ae6138659b0073b4e2b375a499588.

This idea didn't work out because cloning the type and storing it on a
variable still resulted in the solver trying to uify the variable with
the type. When there were errors, which there certainly would be if we
tried to unify the variable with a structure that had nested flex/rigid
vars, the nested flex/rigid vars would inherit those errors, and the
program wouldn't typecheck.

Since the motivation here was to expose the signature type to
`reporting` so that we could modify it with suggestions, we should
instead pass that information along in something analogous to the
`Expected` struct.
2021-11-25 13:24:42 -05:00
ayazhafiz
a8e38172ac Remove redundant refs 2021-11-25 11:22:19 -05:00
Joshua Warner
f25323e8a7 Implement platform header formatting 2021-11-25 08:19:31 -08:00
ayazhafiz
ba678d924d Remove unused variables 2021-11-25 11:16:18 -05:00
ayazhafiz
31d4536449 Remove variable that no longer exists 2021-11-25 11:16:18 -05:00
ayazhafiz
fe85af8d03 Fix failing compilation in Expr2 2021-11-25 11:16:18 -05:00
ayazhafiz
3f3a34382c Suggest non-conflicting type variable name for wildcard renaming
There is still a potential for conflicts here, because we don't look at
type variables introduced _prior_ to this annotation. However, this
should be okay in most cases.
2021-11-25 11:16:18 -05:00
ayazhafiz
ee34e79790 Include annotation type signatures in Expected struct
To provide better error messages and suggestions related to changing
type annotations, we now pass annotation type signatures all the way
down through the constraint solver. At constraint generation we
associate the type signature with a unique variable, and during error
reporting, we pull out an `ErrorType` corresponding to the original type
signature, by looking up the unique variable. This gives us two nice
things:

1. It means we don't have to pass the original, AST-like type
   annotation, which can be quite large, to everyone who looks at an
   expectation.
2. It gives us a translation from a `Type` to an `ErrorType` for free
   using the existing translation procedure in `roc_types::subs`,
   without having to create a new translation function.
2021-11-25 11:16:17 -05:00
ayazhafiz
817bb22f9e Improve error message when we try to unify two wildcards
Closes #1931
2021-11-25 11:15:31 -05:00
ayazhafiz
62873fed81 Propogate original annotation region down in AnnotationSource
This makes it easier for error reporting to find the relevant
annotations that were part of a type error, and display that in the
error message presented to a user.
2021-11-25 11:15:31 -05:00
Joshua Warner
f4e29bd267
Merge pull request #2069 from rtfeldman/joshuawarner32/impl-app-header-formatting
Implement [more] app header formatting
2021-11-25 07:24:06 -08:00
Richard Feldman
e63727fee4
Merge pull request #2059 from rtfeldman/readme-code-starting-points
Add a list of starting points to get familiar with compiler code
2021-11-25 00:12:46 -05:00
Richard Feldman
618925fe27
Fix typo in comment 2021-11-24 23:17:24 -05:00
Folkert
093b733a2c add tag name dedup 2021-11-25 00:11:11 +01:00
Folkert
3139e73cf9 optimize non-capturing closure type 2021-11-24 23:14:53 +01:00
Folkert
7c2e8cd812 optimize NAT 2021-11-24 23:00:03 +01:00
Folkert
9c551a0276 use insertion sort 2021-11-24 22:55:45 +01:00
Folkert
51c61ea449 fix number hierarchy 2021-11-24 22:39:58 +01:00
Folkert
e0d7c54906 simplify alias insertion 2021-11-24 22:39:42 +01:00
Folkert
4e4f827bb0 simplify function-or-tag-union insertion 2021-11-24 22:11:05 +01:00
Folkert
379abeed26 refactor tag insertion 2021-11-24 21:57:19 +01:00
Folkert
340055fca5 point to empty VariableSubsSlice 2021-11-24 21:57:00 +01:00
Folkert
3abdfce735 sort tags in builtin aliases 2021-11-24 21:16:04 +01:00
Folkert
cb8e9acb92 special-case the closure tags 2021-11-24 21:14:58 +01:00
Folkert
3e640f78bf cleanup 2021-11-24 20:44:51 +01:00
Folkert
308b91153e add faster insertion path for tag unions 2021-11-24 20:38:52 +01:00
Folkert
541dd9777a thread_local experiment 2021-11-24 19:59:53 +01:00
Folkert
f1541d56bd use Entry in some places 2021-11-24 19:45:30 +01:00
Folkert
5e76e3a97e more reserving into subs 2021-11-24 19:14:37 +01:00
Folkert
5663248a41 docs 2021-11-24 18:59:49 +01:00
Folkert
739ae60b1e clean up usage of reserve_into_subs 2021-11-24 18:52:22 +01:00
Folkert
61f6687dea fix using the wrong length 2021-11-24 18:50:47 +01:00
Folkert
1fbd2a7e7b reserve variable slices 2021-11-24 16:02:55 +01:00
Folkert
a0c9270124 keep track of visited variables in deep_copy_var 2021-11-24 15:14:17 +01:00
satotake
10afadd810 Merge branch 'trunk' into dev-backend-num-is-zero 2021-11-24 10:59:42 +00:00
satotake
7429b09af3 free symbol
rename function
2021-11-24 10:58:51 +00:00
Joshua Warner
24f7692a73 Implement [more] app header formatting
Also, refactor out a utility method to format a Collection. This method can currently
replace some of the formatting done in module headers - but the goal is eventually
to be able to replace the code in fmt_list as well, such that there is 'one true way'
to format collections.
2021-11-23 12:19:43 -08:00
Lucas
f02ed47f31
Merge pull request #2016 from rtfeldman/aarch64_packed_structs
Packed Structs
2021-11-23 14:39:02 -05:00
rvcas
8ee01d6ce8 fix: add some checks due to potential truncation issues 2021-11-23 14:03:56 -05:00
Richard Feldman
651cb222a7
Drop mention of Interpreted Mode 2021-11-23 13:13:17 -05:00
Brian Carroll
44cf238a67
Merge pull request #2056 from rtfeldman/wasm-dec-add
Wasm dec add
2021-11-23 13:37:04 +00:00
Folkert
4e6568016d fix comment: rust thought it was code it should execute 2021-11-23 11:56:33 +01:00
satotake
fa2ebe3d81 remove unused codes 2021-11-23 10:12:34 +00:00
satotake
4376db6c17 use load_literal 2021-11-23 10:09:53 +00:00
Brian Carroll
858e1b5ff5 Merge branch 'trunk' of github.com:rtfeldman/roc into wasm-reduce-recursion 2021-11-23 09:36:28 +00:00