ayazhafiz
34900c1f55
Address @rtfeldman review
2022-02-27 00:11:11 -05:00
ayazhafiz
059c324268
Error reporting for type mismatches involving opaques
2022-02-27 00:10:12 -05:00
ayazhafiz
822e38d026
Fix opaque reporting tests
2022-02-27 00:10:12 -05:00
ayazhafiz
ccd4963e0f
Fix clippy warnings
2022-02-27 00:10:12 -05:00
ayazhafiz
86aa0df661
Add constraint generation for opaque types
2022-02-27 00:10:11 -05:00
Brendan Hansknecht
f7c0e2ef19
Merge remote-tracking branch 'origin/trunk' into single-quote-literal
2022-02-24 10:13:39 -08:00
ayazhafiz
90de82e295
Validation of opaques during canonicalization
2022-02-21 18:25:19 -05:00
ayazhafiz
6b53692aac
Canonicalize opaque types
2022-02-20 13:47:01 -05:00
ayazhafiz
6104a27b45
Parse opaque references
2022-02-19 21:30:42 -05:00
ayazhafiz
5e0d90ac53
First pass
2022-02-06 15:04:12 -05:00
ayazhafiz
097c5afc73
Check lower bounds for numeric literals, and permit 128-bit literals
2022-02-02 23:35:57 -05:00
ayazhafiz
e7dcc2daa5
Move NumWidth to roc_can
2022-02-02 00:23:43 -05:00
ayazhafiz
a6f7579c07
Parse and expand numeric bounds in canonicalization pass
2022-02-01 22:50:46 -05:00
ayazhafiz
e03592930f
Typecheck numeric literals with suffixes in expressions
...
Part of #2350
2022-02-01 22:49:50 -05:00
ayazhafiz
320827167f
Parse number literal width suffixes
...
Supports [u,i][8,16,32,64,128] and [nat,dec]
Part of #2350
2022-02-01 22:48:48 -05:00
Joshua Warner
70156b0a90
Simplify advancing
2022-01-01 18:20:05 -08:00
Joshua Warner
bd7b1e5013
Make Loc::new take Positions
2022-01-01 18:20:05 -08:00
Joshua Warner
4d7070ce3b
Always combine line,column into Position
2021-12-22 20:32:46 -08:00
Joshua Warner
f19220473a
Rename Located -> Loc
2021-12-22 19:18:22 -08:00
Chelsea Troy
b65a69f07e
Appeasing the clippy
2021-12-01 18:56:15 -06:00
Chelsea Troy
f680ee3c24
Fix a spelling mistake; how was this ever passing?
2021-12-01 18:41:37 -06:00
Chelsea Troy
6cf755ad8d
Resolve a bunnnch of merge conflicts
2021-11-29 23:14:29 -06: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
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
5632e3159d
remove im dependency where not needed
2021-11-10 16:00:22 +01:00
Kevin Sjöberg
f6d055dc62
Correct minor spelling mistakes
2021-11-06 15:29:08 +01:00
Folkert
a15183a7d1
refactor
2021-11-03 14:09:04 +01:00
Eric Correia
8272ea876f
Get it all to compile!
2021-10-02 13:48:07 -04:00
Jared Ramirez
d69b9173fc
Also store f64 for things like pattern comparisons, etc
2021-08-18 17:18:13 -07:00
Jared Ramirez
adabf70132
[WIP] Update can & pattern to store numbers as validated strs
2021-08-16 16:16:10 -07:00
Richard Feldman
267836226c
s/CodePoint/CodePt/g
2021-08-07 21:46:20 -04:00
Folkert
d4896d3ed2
remove inlinable_string dependency
2021-08-03 21:24:19 +02:00
Folkert
899cbeabd7
fix extra ampersands
2021-07-29 17:32:08 +02:00
Folkert
ab7f4a70a1
remove list_var
2021-06-13 16:56:59 +02:00
Anton-4
314503cf7f
fixed typos, added typos checking to CI
2021-06-05 20:02:54 +02:00
Folkert
e81087f913
Merge remote-tracking branch 'origin/trunk' into specialize-lowlevel
2021-05-24 15:17:28 +02:00
Folkert
ffa680ddbc
in apply, zeroargumenttag becomes normal tag again
2021-05-24 14:33:32 +02:00
tarjei
0ee15f15ee
Unify FunctionOrTagUnion with regular tags and functions
2021-05-23 23:14:17 +02:00
Eric Henry
d34f984169
Starting to add no arg tag union
2021-05-17 17:07:19 -04:00
Folkert
a055fa3626
fix record accessors
2021-05-14 13:07:35 +02:00
Folkert
ed7906ccbb
fix canonicalization
2021-04-23 09:24:11 +02:00
Folkert
700e7d9686
parse expect
2021-04-22 23:00:44 +02:00
Folkert
46ab922dd1
throw error in canonicalization
2021-04-11 22:19:00 +02:00
Folkert
28ba645121
parse underscores in expressions
2021-04-11 21:02:31 +02:00
Folkert
0bd05f3ecf
remove second macro def
2021-03-30 21:23:06 +02:00
Folkert
197835b6ed
remove nested in expr
2021-03-21 20:56:18 +01:00