Commit Graph

219 Commits

Author SHA1 Message Date
pca006132 a24e204824 type_inferencer: check defined identifiers during inference 2021-08-27 11:13:43 +08:00
ychenfo 35ef0386db move helper function to another file 2021-08-27 10:21:51 +08:00
ychenfo b9a580d271 handle class method/fields type var 2021-08-27 09:53:09 +08:00
ychenfo 018d6643e1 top level: top level function type var handled
top level: class methods/fields type var handling
2021-08-27 01:41:34 +08:00
ychenfo 935e7410fd check type params in class generic base declaration 2021-08-26 11:54:37 +08:00
ychenfo 1a21fb1072 fix codegen test about top level composer return type change 2021-08-25 18:00:01 +08:00
ychenfo 35a331552b cyclic inheritance check added 2021-08-25 17:47:26 +08:00
ychenfo 0bab477ab0 get rid of nested tuple in type annotation helper function 2021-08-25 17:47:26 +08:00
ychenfo 862d205f67 remove self kind and extra primitive info in the return of top level composer constructor, adding some helper function for type annotation 2021-08-25 17:47:26 +08:00
pca006132 e2b11c3fee codegen: fixed deadlock and added call test 2021-08-25 17:44:01 +08:00
pca006132 0608fd9659 fixed test and nac3standalone 2021-08-25 15:30:36 +08:00
pca006132 173102fc56 codegen/expr: function codegen and refactoring 2021-08-25 15:29:58 +08:00
pca006132 93270d7227 use forked version of rustpython
to implement Clone for AST nodes
2021-08-25 15:28:32 +08:00
pca006132 1ffa1a8bb0 typecheck/typedef: added copy_from
This function would copy concrete type from one unifier to another
unifier, and can handle recursive types. This would be used in code
generation for moving types from one unification table to another one.
2021-08-25 12:02:10 +08:00
ychenfo 01f7a31aae put parse ast into type annotation into one function 2021-08-24 17:44:37 +08:00
ychenfo 32773c14e0 move top level related things to a separate module 2021-08-24 17:19:17 +08:00
pca006132 c356062239 symbol_resolver: handle list and tuples 2021-08-24 14:58:19 +08:00
ychenfo 56f082ca7c handle type var associated with class/function partially, change llvm version of nac3embedded to 11
format
2021-08-23 17:00:32 +08:00
ychenfo 39f300b62a clean up and add duplicate function/parameter/class name test
formatted
2021-08-23 14:22:46 +08:00
ychenfo 7b1fe36e90 formatted 2021-08-23 11:13:45 +08:00
ychenfo fb5b4697a9 fix rebase conflict and some test failure with unifier's error message 2021-08-23 10:34:11 +08:00
ychenfo 364054331c handle class fields and methods 2021-08-23 02:54:45 +08:00
ychenfo 40b062ce0f change the parse type annotation parameter type, refactoring top level 2021-08-23 02:54:45 +08:00
pca006132 f5b8b58826 added tuple assignment check 2021-08-21 15:11:01 +08:00
pca006132 c4d6b3691a codegen/expr: fixed warnings 2021-08-21 15:10:50 +08:00
pca006132 957ceb74e4 nac3core/typecheck: added basic location information 2021-08-21 14:51:46 +08:00
pca006132 e47d063efc codegen: store to list element 2021-08-19 17:14:38 +08:00
pca006132 0e2da0d180 codegen: gep related fixes
we can now compile simple programs that uses tuples and lists
2021-08-19 16:54:15 +08:00
pca006132 39545c0005 nac3standalone usable 2021-08-19 15:30:52 +08:00
pca006132 3279f7a776 codegen for simple function call, and various fixes 2021-08-19 15:30:15 +08:00
sb10q f205a8282a Merge pull request 'hm-inference' (#6) from hm-inference into master
Reviewed-on: M-Labs/nac3#6
2021-08-19 11:46:50 +08:00
pca006132 d1215bf5ac nac3core/codegen/expr: fixed typo 2021-08-19 11:45:33 +08:00
pca006132 6e424a6a3e fixed codegen test 2021-08-19 11:32:22 +08:00
pca006132 9a07ef3301 Merge remote-tracking branch 'origin/hm-inference_anto' into hm-inference 2021-08-19 11:32:04 +08:00
ychenfo c238c264e7 add type vars to the primitive binop function def 2021-08-19 11:18:58 +08:00
Sebastien Bourdeauducq f8a697e3d4 switch to LLVM 11 2021-08-19 11:14:35 +08:00
ychenfo 4b38fe66a2 format 2021-08-18 17:33:48 +08:00
ychenfo 9cb07e6f04 start to handle base inheritance methods, fields 2021-08-18 17:32:55 +08:00
ychenfo 6279dbb589 formating 2021-08-18 16:33:50 +08:00
ychenfo 529442590f some parsing of top level class fields and methods 2021-08-18 16:28:17 +08:00
ychenfo 4fcd48e4c8 try to use def list ast tuple and remove method_to_def_id map 2021-08-18 10:01:11 +08:00
ychenfo 619963dc8c removed locks in toplevelcomposer 2021-08-17 16:36:06 +08:00
ychenfo 276daa03f7 start refactorinng for less redundancy 2021-08-17 14:01:18 +08:00
ychenfo a94145348a fix on comments and redundant code, start handling 'self' things 2021-08-17 11:07:16 +08:00
ychenfo fa40fd73c6 formatted 2021-08-16 20:17:08 +08:00
ychenfo 79ce13722a partially parsed class methods nad fields 2021-08-16 17:40:12 +08:00
ychenfo eb814dd8c3 clean unused use 2021-08-16 13:57:21 +08:00
ychenfo 3734663188 add RefCell to FunSignature in TypeEnum 2021-08-16 13:53:45 +08:00
ychenfo d8c3c063ec split top level handling in several functions 2021-08-16 13:53:39 +08:00
pca006132 d3ad894521 removed code comment 2021-08-13 16:30:33 +08:00