45 lines
888 B
Typst
45 lines
888 B
Typst
#import "template.typ": week, day
|
|
|
|
#show: week.with(num: 5)
|
|
|
|
#day(1)
|
|
|
|
- Implement generics
|
|
- Refactor type checker
|
|
- Create demo program
|
|
|
|
#day(2)
|
|
|
|
- Define formal calculus rules
|
|
- Add type params to extend block
|
|
|
|
#day(3)
|
|
|
|
- Rework extend block for methods
|
|
- Goal: allow defining any method on types
|
|
- Issues:
|
|
- `GetExpr` can reference either a property on a `ComplexType` or a method.
|
|
- A method (or function) can be overloaded, for example ```py list[T].__getitem__(int) -> T``` and ```py list[T].__getitem__(slice) -> list[T]```
|
|
|
|
#day(4)
|
|
|
|
- Rework complex types: extension type, combine properties and methods as members
|
|
|
|
#day(5)
|
|
|
|
- Implement member lookup
|
|
- Adapt operations
|
|
- Handle generic members
|
|
|
|
#day(6)
|
|
|
|
- Redefine builtins with members
|
|
- Tidy up
|
|
- Add unary operations and subscripts
|
|
|
|
#day(7)
|
|
|
|
- Resolve overloaded functions
|
|
- Add slices
|
|
- Add simple code generator
|