635bf73531
feat(checker): add slice overloads on lists
2026-06-15 00:03:41 +02:00
bd0421b5d8
fix(checker): handle generic overloads
2026-06-15 00:03:40 +02:00
37a464d2bc
feat(checker): type check slice expressions
2026-06-15 00:03:40 +02:00
1eedcff5aa
feat(parser): add slice expression
2026-06-15 00:03:39 +02:00
35798e5752
tests: update with new subscript and call checks
...
invalid function calls now return UnknownType even if the function has a return type
2026-06-15 00:03:39 +02:00
0a35563aaf
feat(checker): resolve overloads with subtypes
...
try to find the most specific overload if multiple matches are found
2026-06-15 00:03:38 +02:00
e1da87eaa0
doc(checker): add docstrings to new call checks
2026-06-15 00:03:38 +02:00
2a579c06b1
refactor(checker): unify call check for subscript
2026-06-15 00:03:37 +02:00
46a22797b6
chore: add examples for functions and overloads
2026-06-15 00:03:37 +02:00
7598681729
feat(checker): handle overloaded function calls
2026-06-15 00:03:36 +02:00
2df0380815
fix(types): remove unused operation structures
2026-06-15 00:03:36 +02:00
178e24cd02
feat(checker): type check subscripts
2026-06-15 00:03:35 +02:00
c92b6b5c18
feat(parser): add subscript expressions
2026-06-15 00:03:35 +02:00
6577241af9
feat(checker): handle unary operations
2026-06-15 00:03:34 +02:00
1c71badf24
fix(checker): report unsupported features
2026-06-15 00:03:34 +02:00
064702fe13
tests: update with newly reported judgements
2026-06-15 00:03:33 +02:00
890e2f035a
refactor(checker): replace all accept calls
...
make visitor accept calls more explicit with type_of(), resolve_type_expr() and process_stmt()
2026-06-15 00:03:33 +02:00
0d0115534b
tests: update tests
2026-06-15 00:03:33 +02:00
221b5ca926
fix(checker): adapt comparison to lookup method
2026-06-15 00:03:32 +02:00
9a227b6d4c
fix(checker): remove in.to_bytes
2026-06-15 00:03:32 +02:00
df2e609c60
fix(checker): handle members on base type
2026-06-15 00:03:31 +02:00
3ee1161680
fix: remove unused op statement
2026-06-15 00:03:31 +02:00
eb223c6cb7
fix(checker): forward parsing errors as diagnostics
2026-06-15 00:03:30 +02:00
6f5d971c66
fix(checker): gravefully handle unknown type
2026-06-15 00:03:30 +02:00
109c8eb35a
fix(parser): make name required for mixed and keyword args
2026-06-15 00:03:29 +02:00
99924ee6c2
feat(parser): add mixed arguments in midas functions
2026-06-15 00:03:29 +02:00
4c9cbd9faa
feat(checker): add top type (Any)
2026-06-15 00:03:28 +02:00
84a5f41e62
fix: extend example of complex types
2026-06-15 00:03:27 +02:00
6d6bb66c54
feat(checker): define members on builtin types
2026-06-15 00:03:27 +02:00
50eaafc388
feat(tests): update serializer
2026-06-15 00:03:27 +02:00
2935c71366
fix(checker): give warning on unknown variable
2026-06-15 00:03:26 +02:00
52981f12f2
fix(checker): minor fix when using base type in generic
2026-06-15 00:03:26 +02:00
2e898ab1e9
fix(checker): update binary operation lookup
2026-06-15 00:03:25 +02:00
01ff5ca8d5
fix(checker): handle nested generic members
2026-06-15 00:03:25 +02:00
b5de28e291
feat(checker): implement lookup_member method
2026-06-15 00:03:24 +02:00
179b88bfed
feat(checker): add members registry
2026-06-15 00:03:24 +02:00
b3665c6462
fix(cli): update highlighter
2026-06-15 00:03:23 +02:00
42284704de
feat(parser): accept props and methods in extend
2026-06-15 00:03:23 +02:00
650f60e70c
feat(cli): add option to show type judgements
2026-06-15 00:03:22 +02:00
efea1b29e7
fix(cli): show diagnostics from different files
2026-06-15 00:03:22 +02:00
ae0bd75f3b
fix(checker): improve error for recursive type ref
2026-06-15 00:03:22 +02:00
d9100d8300
feat(checker): adapt typers to members and extension type
2026-06-15 00:03:21 +02:00
900be47d34
feat(parser): add new ast nodes to parser
2026-06-15 00:03:21 +02:00
3d5f97a0f4
feat(parser): add extension type and rename properties
2026-06-15 00:03:20 +02:00
9fde115016
feat: add function type to midas syntax
2026-06-15 00:03:20 +02:00
f8897dd075
feat(types): add type params to extend statement
2026-06-15 00:03:19 +02:00
380753ca7a
refactor(types): extract TypeParams
...
also rename generic type params to type args (when calling a generic)
2026-06-15 00:03:19 +02:00
4715318913
feat(types): add human-friendly string rep
...
add `__str__` methods on type structures to improve readability of diagnostics
2026-06-15 00:03:18 +02:00
a78aee1639
fix(resolver): define variable on assignment
...
if a variable is not already defined when an assignment is visited, it is then defined in the current scope
2026-06-15 00:03:17 +02:00
3581b7600b
fix(checker): use reduce_types to infer return type
2026-06-15 00:03:17 +02:00
32207c3d6f
refactor(checker): extract reduce_types function
2026-06-15 00:03:16 +02:00
9474a7336a
feat(types): WIP add AppliedType
2026-06-15 00:03:16 +02:00
5a6a279eaf
feat(checker): WIP add lists
2026-06-15 00:03:15 +02:00
c1f95edc96
feat(types): add name to generic type
2026-06-15 00:03:15 +02:00
098bbc35c5
fix: avoid circular import in builtins.py
2026-06-15 00:03:15 +02:00
314d4d344b
refactor(resolver): move resolver to checker module
2026-06-15 00:03:14 +02:00
7236749bd5
refactor(checker): unify builtins definitions
2026-06-15 00:03:14 +02:00
2ff1f27614
refactor(checker): restructure around shared registry
...
restructure the type checker with a shared TypesRegistry used by MidasTyper and PythonTyper
this commit also relocates some methods in more appropriate places, such as is_subtype and apply_generic (now in TypesRegistry)
2026-06-15 00:03:13 +02:00
111afe4dd4
feat(checker): add reporter class
2026-06-15 00:03:13 +02:00
c4c142482a
feat(resolver): handle generic application
2026-06-15 00:03:12 +02:00
f9c15abaf4
refactor(checker): move is_subtype to resolver
2026-06-15 00:03:12 +02:00
d51d24f865
refactor(checker): move unfold_type to types.py
2026-06-15 00:03:11 +02:00
1d00875a8c
feat(resolver): handle generics definition
2026-06-15 00:03:11 +02:00
f89722fad8
feat(checker): add generic type structure
2026-06-15 00:03:10 +02:00