Commit graph

21 commits

Author SHA1 Message Date
Myriad-Dreamin
1d49e110e2
dev: cache expression information correctly (#736)
* dev: cache expression information correctly

* rev
2024-10-27 20:20:59 +08:00
Myriad-Dreamin
81ebc8a635
feat: implement expression checker (#714)
* feat: implements expression checker

* dev: resolve information

* dev: delete def_use

* stage

* stage

* stage

* stage concurrent

* stage concurrent

* dev: better concurrency

* dev: final constant evaluation improvement

* dev: change reference site

* dev: handle comments

* dev: remove indirect import structure

* dev: adjust linked_def impl

* dev: finalize goto definition impl

* dev: replace all old import and def_use analyses with expr analysis

* dev: update expr_of snapshots

* dev: split def/expr, refactor definition

* dev: more consistent definition solver

* dev: rename definition crate

* dev: references work again

* dev: resolve root decl

* dev: resolve root decl

* dev: resolve global definitions

* dev: resolve tokens with world

* feat: render semantic tokens with expression information

* dev: loop detection

* dev: recover type checking

* dev: recover more type checking

* dev: refactor analysis context

* fix: process case of spread left

* dev: label inference

* dev: recover more signature checking

* dev: recover more ident reference checking

* dev: pass all tests

* Revert "dev: dirty changes"

This reverts commit 9ae2dacd0c96851e088feea76c61c184a1cf9722.

* test: update snapshot

* fix: bad cached signatures

* fix: slash problem
2024-10-25 23:52:11 +08:00
Myriad-Dreamin
6d62bffdeb
feat: type induction on builtin values (#694) 2024-10-17 01:02:00 +08:00
Myriad-Dreamin
02bbdbf8d9
feat: incorporated with static function signature analysis (#688)
* feat: finished function signature analysis

* dev: update snapshot

* dev: broken snapshot
2024-10-16 15:53:43 +08:00
Myriad-Dreamin
a3f100e7cb
refactor: change PrimarySignature structure to merge type checking info (#687)
* dev: support spread left params

* dev: stage merge

* dev: remove ParamSpecShort

* chore: remove useless code

* dev: merge all things back

* fix: testing

* fix: testing

* remove: useless method
2024-10-16 14:35:24 +08:00
Myriad-Dreamin
1f5be314a7
dev: shrink size of tag types (#686)
* dev: shrink size of tag types

* update: testing
2024-10-16 14:32:17 +08:00
Myriad-Dreamin
b9da92175e
dev: merge signature docs and rest docs (#685)
* dev: deduplicate code

* dev: merge signature docs and rest docs

* dev: change struct of the `DocString`

* dev: improve structure of SymbolDocs
2024-10-16 11:16:16 +08:00
Myriad-Dreamin
c17e0c787e
feat: check variable type annotations in docstring (#681)
* feat: check variable type annotations in docstring

* dev: rollback playground changes

* dev: refactor a bit
2024-10-15 21:04:35 +08:00
Myriad-Dreamin
4aeb3747bc
feat: cache docstring building (Part. 2) (#680)
* feat: cache docstring building (Part. 2)

* dev: fix import

* dev: change some variable names
2024-10-15 18:50:43 +08:00
Myriad-Dreamin
3ed401740e
feat: read and check type annotations in docstring (Part. 1) (#679)
* feat: read and check type annotations in docstring

* fix: remove test.snap in playground

* chore: refactor and remove some dirty changes
2024-10-15 14:52:50 +08:00
Myriad-Dreamin
e9ec60d2b5
feat: introduce type context trait TyCtx (#670)
* feat: introduce `TyCtx`

* core: simplify import

* feat: implement local bind apis

* build: update cargo.lock

* dev: rename `LocalTyCtx` back to `TyCtxMut`
2024-10-14 12:31:07 +08:00
Myriad-Dreamin
5898c60de1
feat: elementary tuple method checker (#669)
* feat: elementary tuple method checker

* dev: remove println!
2024-10-14 11:34:03 +08:00
Myriad-Dreamin
191c943936
feat: elementary select checker (#668)
* feat: elementary select checker

* dev: remove println!
2024-10-13 15:14:24 +08:00
Myriad-Dreamin
cc29728fc9
feat: implements ord for Ty (#667)
* feat: implements partial ord for `Ty`

* feat: implements ord for `Ty`

* test: update snapshot
2024-10-13 14:37:03 +08:00
Myriad-Dreamin
9835ffe6ab
docs: add documents to type system (#295)
* docs: simplify a bit

* docs: add documents to type system code

* docs: update

* refactor: rename
2024-05-16 11:52:41 +08:00
Myriad-Dreamin
c182c5fadc
chore: move typst-specific types (#294)
* chore: move typst-specific types

* QAQ
2024-05-16 00:30:32 +08:00
Myriad-Dreamin
d995ded9b2
feat: implement naive substitution (β-reduction) (#292)
* feat: implement naive substitution (β-reduction)

* fix: order

* dev: harder tests
2024-05-15 18:42:06 +08:00
Myriad-Dreamin
8cbd32c724
fix: make snapshot stable (#283)
* fix: make snapshot stable

* >_<
2024-05-14 18:38:02 +08:00
Myriad-Dreamin
66e6aff2b4
dev: don't use bug prone ever_be (#280) 2024-05-13 21:29:59 +08:00
Myriad-Dreamin
f66d50c51f
dev: remove some interned uses (#279) 2024-05-13 21:04:10 +08:00
Myriad-Dreamin
fff227f3ae
dev: interning types (#271)
* refactor: a bit

* fix: named completion

* dev: replace complete_literal by complete_type

* dev: remove unused code

* dev: basic interner

* dev: basic types

* dev: type operations

* dev: migrate all type definitions

* dev: check syntax and builtin types

* dev: make TypeSimplifier simply work

* dev: make TypeDescriber simply work

* dev: make TypeChecker simply work

* dev: recover type check

* fix: context check

* fix: use after free in seen fields

* fix: typed with

* fix: record type on field

* dev: check type of constructors and element containing

* dev: show sig by type

* fix: mixed context checking

* QAQ

* >_<

* dev: fix documents
2024-05-11 21:12:49 +08:00