Folkert
9c551a0276
use insertion sort
2021-11-24 22:55:45 +01:00
Folkert
3e640f78bf
cleanup
2021-11-24 20:44:51 +01:00
hafiz
b3ecc16b16
Merge pull request #2050 from rtfeldman/empty-tags-and-unions
...
Canonicalize to empty tags and unions
2021-11-22 08:00:07 -06:00
Folkert
7a9f5041b0
clarity return value
2021-11-22 10:27:34 +01:00
ayazhafiz
1135d88dd0
Add support for type inference at _
s in type definitions
...
All we have to do is introduce a new, unconstrained type variable at
underscore sites, and let the type reconstructor work its magic! The
unconstrained type variable will become a `FlexVar` that absorbs
constraints given to it, so it'll behave like a proper inference
variable. That's it!
Part of #1804
2021-11-21 22:54:45 -05:00
Folkert
e4d630108c
canonicalize to empty record or tag union
2021-11-21 22:24:18 +01:00
Richard Feldman
49fd864a2f
Merge pull request #1996 from rtfeldman/add_list_all
...
adding List.all
2021-11-19 17:55:04 -05:00
Folkert de Vries
71233fcfc1
Merge pull request #2012 from rtfeldman/i/1714
...
Take syntactic sugar into account when reporting errors
2021-11-19 10:26:24 +01:00
Folkert de Vries
a58c999d3e
Merge pull request #2008 from rtfeldman/improve-typo-suggestions
...
Minor improvements to "did you mean?" suggestions provided for missing identifiers
2021-11-19 10:24:52 +01:00
ayazhafiz
fe99d20be5
Apply review suggestions
2021-11-18 21:49:37 -05:00
ayazhafiz
5bfc52cd3b
Remove Sugar
enum and inline single variant into CalledVia
2021-11-18 21:23:41 -05:00
ayazhafiz
8b7217847d
Rename additional stale roc_module::operator refs and format
2021-11-18 20:20:33 -05:00
ayazhafiz
8a60162a1e
Rename roc_module::operator -> roc_module::called_via
...
A bit of a nit, but this file is now more general than just keeping
track of operator methods.
2021-11-18 20:20:33 -05:00
ayazhafiz
30955a1eb8
Take syntactic sugar into account when reporting errors
...
Previously, a program like
```roc
word = "word"
if True then 1 else "\(word) is a word"
```
would report an error like
```
── TYPE MISMATCH ───────────────────────────────────────────────────────────────
This `if` has an `else` branch with a different type from its `then` branch:
3│ if True then 1 else "\(word) is a word"
^^^^^^^^^^^^^^^^^^
This concat all produces:
Str
but the `then` branch has the type:
Num a
I need all branches in an `if` to have the same type!
```
but this is a little bit confusing, since the user shouldn't have to
know (or care) that string interpolations are equivalent to
concatenations under the current implementation.
Indeed we should make this fully transparent. We now word the error
message by taking into account the way calls are made. To support the
case shown above, we introduce the `CalledVia::Sugar` variant to
represent the fact that some calls may be the result of desugaring the
surface syntax.
This commit also demonstrates the usage of `CalledVia` to produce better
error messages where we use binary comparison operators like `<`. There
are more improvements we can make here for all `CalledVia` variants, but
this is a good starting point to demonstrate the usage of the new
procedure.
Closes #1714
2021-11-18 20:20:33 -05:00
Michael Downey
d11bb93539
Merge branch 'trunk' into add_list_all
2021-11-18 16:09:24 -05:00
Michael Downey
9d587d37b4
Merge branch 'trunk' into add_list_all
2021-11-18 06:41:08 -05:00
satotake
9aabd08953
fmt
2021-11-18 11:17:05 +00:00
satotake
ce8a88416d
Merge branch 'trunk' into builtins-list-intersperse
2021-11-18 11:16:27 +00:00
satotake
7ce9f1b3bd
refactor after review
2021-11-18 10:15:38 +00:00
ayazhafiz
214b8a30a9
Suggest typo fixes for non-existing module values
2021-11-17 22:40:51 -05:00
Joshua Warner
7f5b873357
Parse _ in type annotations as an 'Inferred' type
2021-11-17 17:59:40 -08:00
Richard Feldman
2bb007e08b
Merge pull request #1987 from rtfeldman/builtins-list-split
...
Add builtin `List.split`
2021-11-17 13:41:58 -05:00
satotake
16fb04b4fa
Add builtin List.intersperse
2021-11-17 15:18:45 +00:00
Michael Downey
d946b84e63
adding initial List.all
2021-11-16 16:34:36 -05:00
satotake
46e6e22776
use closure
2021-11-16 12:58:45 +00:00
satotake
541465bc2e
Use let
2021-11-16 11:13:37 +00:00
satotake
73dda714de
Add builtin List.split
2021-11-15 13:50:11 +00:00
satotake
c253273490
Merge branch 'trunk' into refactor-builtin-list-drop
2021-11-15 11:37:32 +00:00
satotake
5b64eb6983
refacotr List.drop
2021-11-14 13:46:40 +00:00
Folkert de Vries
28eb7a03cc
Merge branch 'trunk' into joshuawarner32/use-collection-4
2021-11-14 13:40:51 +01:00
Joshua Warner
9bf1674946
Shrink Collection to make parse_expr_size test pass
2021-11-13 16:17:44 -08:00
Theo Felippe
8d7c252fce
implemented Str.trimRight
2021-11-13 18:02:58 +00:00
Joshua Warner
1fabc64fdf
Use Collection in Expr::TagUnion
2021-11-13 07:38:39 -08:00
Joshua Warner
d63405d824
Make Expr::List use a Collection
2021-11-13 07:38:11 -08:00
Joshua Warner
a4ca6a31a6
Use Collection in Expr::Record and related places
2021-11-13 07:36:05 -08:00
Folkert de Vries
c9b15766be
Merge branch 'trunk' into builtins-refactor-list-take
2021-11-13 13:29:57 +01:00
Theo Felippe
10eab4b785
implemented Result.isErr
2021-11-13 08:29:40 +00:00
satotake
9ec2bc7946
Remove takeFirst
and takeLast
from backend
2021-11-13 06:03:18 +00:00
satotake
2e073d57ea
destruct record at high level
2021-11-13 05:13:46 +00:00
satotake
98d2c57edf
move List.sublist to backend
2021-11-13 04:57:28 +00:00
satotake
8f8b2463ea
reset
2021-11-13 03:38:58 +00:00
satotake
4359dcff73
Merge branch 'trunk' into builtins-refactor-list-take
2021-11-13 03:38:29 +00:00
satotake
a9216d1149
retry recursion
2021-11-13 02:57:45 +00:00
satotake
d63849c5a3
Add List.takeFisrt2, List.takeLast2 for demo
2021-11-12 13:47:28 +00:00
Theo Felippe
356e36b38a
Merge branch 'trunk' into builtin-result-is-ok
2021-11-12 10:13:43 +00:00
Theo Felippe
cb9ec369fe
working implementation
2021-11-12 10:08:39 +00:00
Joshua Warner
04d4a8ca79
Introduce Collection as a general abstraction in the ast
2021-11-11 14:49:33 -08:00
Theo Felippe
84af26d813
added placeholder implementation
2021-11-11 19:13:42 +00:00
Folkert
33e8f9a6b7
Merge remote-tracking branch 'origin/trunk' into cleanup-im-dependency
2021-11-10 17:19:54 +01:00
Folkert de Vries
b3a663a741
Merge branch 'trunk' into builtins-list-sublist
2021-11-10 16:28:58 +01:00