Commit graph

302 commits

Author SHA1 Message Date
1b918dcaf0 Add support for AssignStatement in lexical analysis and CST 2023-03-19 17:02:59 +01:00
af996c13fe Fix wrong refactor of error messages containing 'this' 2023-03-19 16:37:40 +01:00
947b6d8740 Manually filter out type variables in type scheme that do nothing 2023-03-19 15:04:47 +01:00
d5e85869fb Add util.inspect methods to types and constraints 2023-03-19 15:02:19 +01:00
a02ee1db0f tsc: Only compile what is in src/ 2023-03-19 13:02:43 +01:00
c559d13df9 Minor improvements, add some experimental type class logic and refactor diagnostics 2023-03-16 21:50:15 +01:00
df5f857905 Add extensible records and add foundations for typeclasses 2023-03-14 13:15:33 +01:00
f995d887e7 Add Syntax.clone() method and '\\' token 2023-02-06 11:52:20 +01:00
80e907d3e2 Fix accidental removal of a contribution
Co-authored-by: Erik van Zijst <erikvanzijst@users.noreply.github.com>
2023-02-03 18:13:53 +01:00
3e14538d15 [WIP] Add support for typeclasses 2023-02-03 17:52:34 +01:00
036ccedea3 Rephrase paragraph in README.md 2022-10-01 13:58:23 +02:00
2c9ab75a94 Switch to commander instead of yargs for argument parsing 2022-09-19 16:17:20 +02:00
4fed500ea3 Fix assignment of type to a type expression in checker.ts 2022-09-19 14:06:12 +02:00
6af1fabb88 Refactor codegen into interchangeable passes 2022-09-18 21:37:24 +02:00
404ac83101 Add a test for module references inside type expressions 2022-09-18 21:36:41 +02:00
0d5c791a70 Refactor and improve module references in kind inference 2022-09-18 19:33:34 +02:00
3e169e9ab9 Add experimental support for referencing module elements 2022-09-18 14:33:49 +02:00
9dc62d0836 Fix module paths not being parsed in type reference expressions 2022-09-17 16:31:05 +02:00
cea177e4a6 Add support for parsing module declarations 2022-09-17 13:20:49 +02:00
117f49f343 Add support for parsing the 'foreign' keyword in let-declarations 2022-09-16 19:50:18 +02:00
f43a66f453 Add some codegen infrastructure 2022-09-16 19:44:13 +02:00
8200a0095f Format records in type inference tests a bit 2022-09-16 19:43:21 +02:00
2dae494fc2 Fix error when parsing empty tuple 2022-09-16 12:54:13 +02:00
368d2243f1 Add a test for tuple unification 2022-09-16 12:48:41 +02:00
cd357e03f5 Add support for tuples 2022-09-16 12:43:06 +02:00
1ea65236a5 Add support for currying 2022-09-16 12:00:00 +02:00
a94b05df61 Fix lambdas not being correctly generated for match-expressions 2022-09-16 11:57:45 +02:00
14c7ce6db5 Fix typo in preview image 2022-09-16 11:39:26 +02:00
1a4a07bdd1 Clean up unused nodes in cst.ts 2022-09-16 11:35:18 +02:00
6c29d49ac6 Add experimental support for match-expressions and some new patterns 2022-09-16 11:31:34 +02:00
bf6302b173 Fix remaining TypeScript type error 2022-09-16 10:53:36 +02:00
a378f8276d Enable parsing of tuple expressions 2022-09-16 10:25:24 +02:00
f11ad9028e Fix wrong node being printed when diagnosing the origin of a type 2022-09-15 23:05:34 +02:00
9bf81c56db Allow record expressions to cover multiple lines 2022-09-15 22:49:20 +02:00
9221441aa4 Multiple updates to the kind inferencer
- Clean up some code
 - Ensure more syntax is covered during kind inference
 - Make wrongly kinded types not trigger another typing error in the
   next layer
2022-09-15 22:39:20 +02:00
4939ee5e08 Remove dangling debug statement in checker.ts 2022-09-15 20:50:02 +02:00
31e99fd8ba Clean up some code and fix all TypeScript type errors 2022-09-15 20:49:11 +02:00
21a05cf62d Add missing analysis.ts 2022-09-15 20:49:11 +02:00
c1e17955cd Revert commit e3d00f6 and really fix kind unification
Fixes #37.
2022-09-15 20:49:01 +02:00
2d10ceedc9 Multiple enhancements
- Make record expressions anonymous
 - Introduce `TNominal`
 - Add experimental support for type declarations (fixes #32)
 - Fix inference of StructDeclaration
2022-09-15 20:36:15 +02:00
3152db9d32 Update type-checker tests 2022-09-15 19:35:02 +02:00
fe4cc61819 Fix all TypeScript type errors 2022-09-15 16:56:02 +02:00
9d28d47d6f Add an analysis module and integrate with type checker
Fixes #34.
2022-09-15 16:06:04 +02:00
83226621e3 Add support for inferring kinds from ArrowTypeExpression 2022-09-15 16:04:02 +02:00
6110509c41 Make kind inferencer support structs inside let-declarations 2022-09-15 13:56:58 +02:00
487e6d4994 Organize imports in checker.ts 2022-09-15 13:49:45 +02:00
685ff3cf2d Fix kind inference not detecting when too many arguments are applied 2022-09-15 13:49:07 +02:00
e3d00f6146 Add a Bool type to the initial type checking environment 2022-09-15 13:48:08 +02:00
175cdbd394 Prefix kind variables with 'k' instead of 'a' 2022-09-15 13:47:41 +02:00
2f359107c4 Multiple fixes related to the type-checker
- Add more tests
 - Make struct-declarations type-check
 - Split environment into type bindings and variable bindings
 - Fix kind inference adding the wrong element to the env
2022-09-15 11:49:53 +02:00