Commit Graph

948 Commits

Author SHA1 Message Date
Kasey White
60736b4a54 chore: Add error when type casting without annotation
Also implement and test most of assert. Finishing last few cases.
2023-01-28 02:40:53 -05:00
Kasey White
fc88028034 some refactoring and adding assert on lists 2023-01-27 05:02:19 -05:00
Kasey White
d4eec1fe79 chore: Add scaffolding for assert 2023-01-27 05:02:19 -05:00
Kasey White
38c24cca01 single clause when not yet implemented 2023-01-27 05:02:19 -05:00
Kasey White
1af1b6d898 finalize aiken ir with typing 2023-01-27 05:02:19 -05:00
rvcas
4976ea4164 chore: add test for the new token captures 2023-01-26 10:16:29 -05:00
rvcas
703fcb451d fix(parser,windows): capture carriage return properly 2023-01-26 10:16:29 -05:00
rvcas
3c97f057cc chore: fix clippy 2023-01-24 12:07:06 -05:00
rvcas
ba05f1f070 feat: add label to span 2023-01-24 12:07:06 -05:00
rvcas
a485406e3d fix: use the location of the pattern not the entire clause 2023-01-24 12:07:06 -05:00
rvcas
7206360baa feat(when): single when clause now emits warning 2023-01-24 12:07:06 -05:00
Micah
ad7a62d2bf Merge pull request #306 from aiken-lang/micah/acceptance-test-048
Added 048 acceptance test
2023-01-23 12:46:42 +11:00
Micah Kendall
d608c50130 Added 048 acceptance test 2023-01-23 01:12:29 +11:00
Kasey White
e36f91c39c fix: multiple list cases of the same length weren't being handled 2023-01-21 19:42:17 -05:00
KtorZ
a178cee7bf Add new acceptance test scenario: 046 2023-01-21 19:42:17 -05:00
Kasey White
e8fb386bdc chore: Switch from hashmap and hashset to indexmap and indexset 2023-01-21 18:10:15 -05:00
KtorZ
91bd0d1d77 Display warning help + minor error improvements. 2023-01-21 17:42:58 +01:00
KtorZ
83fd910604 Update artifacts from acceptance tests 036 2023-01-21 12:46:22 +01:00
KtorZ
333a990249 Fix parsing of subtractions and negations in the absence of space. 2023-01-21 12:43:11 +01:00
KtorZ
bb360cd7c8 Fix display of 'UnknownLabels'
This is a bit annoying as we are forced to use #[related] here which isn't quite what we want.
  Ideally, this would use #[diagnostic_source] but, there's a bug upstream. See: zkat/miette#172.
2023-01-21 11:37:19 +01:00
KtorZ
d905f24e7f Forbid solo-assignment as the only function body
In the similar spirit to what we did for sequences. Yet, we need to handle the case of body being just an assignment -- or a trace of an assignment which is basically the same thing.
2023-01-21 10:32:06 +01:00
KtorZ
2101bb924d Fix tuple-pattern parser
This case was originally left out but, tuple parsers are almost always exclusively starting with a NewLineLeftParen token.
2023-01-21 10:04:11 +01:00
KtorZ
d321b85df2 Refactor type errors back into macro annotations
Far less verbose than defining classes by hand, plus, it allows to have everything about a single error be co-located. And finally, it allows to use 'related', 'label' and so on more easily.
2023-01-20 20:11:44 +01:00
KtorZ
4459fdb360 Fix error reporting on cyclic definitions.
Fixes #292
2023-01-20 20:09:00 +01:00
KtorZ
ce65236514 Parse tests as private functions.
They actually are private; we can't export / import tests. Fixes #284.
2023-01-20 12:50:07 +01:00
KtorZ
61be8ca73e Add diagnostic codes to type-check warnings. 2023-01-20 12:27:48 +01:00
Lucas
e0046eea2b Merge pull request #299 from aiken-lang/forbid-assignment-as-last-expression 2023-01-19 19:49:14 -05:00
KtorZ
10fb7455f3 Forbid let-binding as last expression of a sequence
Fixes #283
2023-01-19 18:05:57 +01:00
KtorZ
c5e876e817 Fix typo in variant name: Implicity -> Implicitly 2023-01-19 17:26:33 +01:00
KtorZ
bb82b1bc1e slightly rework hint for 'ImpliclyDiscardedExpression' 2023-01-19 17:25:18 +01:00
KtorZ
092151d6a0 Remove dead-code and fix comment about discarded expressions
While Gleam originally allowed various kinds of expressions to be discarded in a sequence, we simply do not allow expressions to be discarded implicitly. So any non-final expression in a sequence must be a let-binding. This prevents silly mistakes.
2023-01-19 16:35:39 +01:00
Matthias Benkort
dcfa730de9 Merge pull request #296 from aiken-lang/zero-arg-anon-funcs
feat: handle anon zero arg functions
2023-01-19 11:23:21 +01:00
Kasey White
52724ea0e0 feat: handle anon zero arg functions.
Test 045
2023-01-19 01:34:27 -05:00
Kasey White
7215bf33e9 fix: get_variant_name was not properly traversing type args on map and data types 2023-01-18 16:06:44 -05:00
rvcas
2f6c794cdf fix: ci... :facepalm 2023-01-18 15:29:51 -05:00
rvcas
479d49bdfc fix: ci... again 2023-01-18 15:29:51 -05:00
rvcas
086de8cbc0 chore: switch things back 2023-01-18 15:29:51 -05:00
rvcas
be6327cf59 fix: ci 2023-01-18 15:29:51 -05:00
rvcas
f975c345c9 fix: ci 2023-01-18 15:29:51 -05:00
Kasey White
71ae85a720 missing a condition check on when 2023-01-18 15:29:51 -05:00
KtorZ
439a54d9f1 Fix CI workflow not erroring on acceptance test failure. 2023-01-18 15:29:51 -05:00
Kasey White
d7e4aef4c5 feat: Add boolean conditions to when statements 2023-01-18 15:29:51 -05:00
KtorZ
75808cc046 Add new acceptance scenario: 044
 044
  Error:
    × Main thread panicked.
    ├─▶ at crates/aiken-lang/src/uplc.rs:846:89
    ╰─▶ called `Option::unwrap()` on a `None` value
2023-01-18 15:29:51 -05:00
KtorZ
c440026e36 Fix generated projects' README + rename 'certify' -> 'publish'
This hints to how this particular purpose is about publishing
  certificate (either delegation or key de-registration).
2023-01-18 16:48:42 +01:00
KtorZ
20ac9c20a2 Remove some dead-code. 2023-01-18 16:43:40 +01:00
KtorZ
b475d6a6a4 Provide better errors when packages aren't found. 2023-01-18 16:34:26 +01:00
KtorZ
6e64bb72e6 Add new acceptance test scenario 045
Error:
    × Main thread panicked.
    ├─▶ at crates/aiken-lang/src/uplc.rs:3435:48
    ╰─▶ called `Option::unwrap()` on a `None` value
2023-01-18 16:28:44 +01:00
KtorZ
071dc00624 Implement various visual improvements for the doc generator
- Display function's signature next to the function name
    (instead of being repeated below the function documentation).

  - Same for module constants

  - Display record constructors in a more concise manner, with
    constructors fields next to constructors.

  - Display generic parameters, if any, next to the type

  - Plus some minor color and icon rework.
2023-01-18 15:12:15 +01:00
Kasey White
33d902ba2a feat: Now opaque types with one constr and one field are converted to inner field type 2023-01-17 08:44:28 -05:00
Kasey White
98d2cb5afc in progress: working on taking special opaque types and converting them to their inner type 2023-01-17 08:44:28 -05:00