Commit Graph

853 Commits (7333b1706c40e3e70d4af8e24aca4b9d838d6715)

Author SHA1 Message Date
Uwe Krüger 44ec9e3ebc
checker/cgen: put `shared` struct always on heap (#8492) 2021-02-01 14:39:36 +01:00
Enzo 778b83a132
gen: fix multiple blank param with interface (#8480) 2021-01-31 19:44:55 +02:00
spaceface effa3188dd
cgen: fix type casts to interfaces (#8476) 2021-01-31 19:24:33 +02:00
Enzo 2945040a67
gen: fix function with multiple blank params (#8475) 2021-01-31 16:37:26 +02:00
Nick Treleaven f992099726
checker: check s.$method(arg) argument is []string (#8455) 2021-01-31 15:28:23 +01:00
Ruofan XU ae60ea4ed5
tests: add regression tests for typeof map and array of fns (#8458) 2021-01-31 12:20:15 +02:00
Delyan Angelov 978359a6fc
tests: fix some warnings in preparation for `-W test-self` 2021-01-31 11:05:17 +02:00
yuyi 2963425995
cgen: fix fn_with_mut_args (fix #7139) (#8446) 2021-01-31 02:45:45 +01:00
Nick Treleaven 9c2bd24b4f
tests: add test for s.$method() with T.methods (#8451) 2021-01-30 18:35:41 +01:00
Daniel Däschle 2cadb3e4d8
gen: panic with correct type names (#8355) 2021-01-30 18:54:05 +02:00
Uwe Krüger 9c82eec529
checker: support nested propagation cases `f(g() ?)` (#8447) 2021-01-30 16:53:31 +01:00
Nick Treleaven 43c3a3b080
checker: fix compile-time call with string identifier expression (#8415) 2021-01-30 15:24:16 +01:00
div72 8c70920695
all: add offsetof (#8380) 2021-01-30 12:57:09 +01:00
Nick Treleaven c0685eeefc
parser: add warning for s.$field.name without brackets (#8411) 2021-01-30 12:56:10 +01:00
Enzo ced7649bf8
gen: fix `for ... in array` (#8428) 2021-01-30 12:27:11 +01:00
Uwe Krüger 5e9b528a9d
checker/cgen: support `return` from nested `or` (#8430) 2021-01-30 12:46:36 +02:00
Delyan Angelov 5564a2c1da
tests: fix filter_in_map_test.v (it did not have a `test_` function in it) 2021-01-30 10:29:48 +02:00
Uwe Krüger 4a955d9c54
sync: don't force `Mutex` and `Semaphore` to be reference (#8331) 2021-01-29 20:52:14 +02:00
yuyi 26c06a56b7
checker: fix array_insert_or_prepend_short_struct_init (#8397) 2021-01-29 14:53:14 +01:00
yuyi 56c4a36cd4
cgen: fix match_in_if_expression (#8407) 2021-01-29 14:51:17 +01:00
yuyi ddcbc4440b
cgen: fix array_sort_by_references (fix #8390) (#8403) 2021-01-29 12:20:28 +02:00
Tim Basel 5fc7eadd8b
cgen: fix short struct init with `mut` (#8384) 2021-01-28 10:05:09 +02:00
Delyan Angelov dceb63b9df
cgen: fix implicit the optional return value to have .ok = true, in anon `fn()?{}` 2021-01-28 02:26:02 +02:00
yuyi d1ab22d45f
checker: fix array append short struct init (#8362) 2021-01-27 13:55:53 +01:00
Delyan Angelov e5a84719ca
all: require calling `optfn() ?` / `optfn() or {...}` for `fn optfn() ? {}` 2021-01-26 16:43:17 +02:00
spaceface 5f2b2df546
checker: don't disallow defining methods on interfaces (#8335) 2021-01-26 11:56:17 +01:00
Daniel Däschle 7bb9c0e7b3
checker: fix multi generic args (#8347) 2021-01-26 09:37:48 +02:00
spaceface daff085033
checker: fix treating C structs with capitalized fields as embeds (#8343) 2021-01-25 18:47:14 +02:00
Daniel Däschle 006a11454f
cgen: fix generic type $else $if (#8339) 2021-01-25 17:08:02 +01:00
Nick Treleaven 02d8ede94d
cgen: fix `$if T !is` (#8311) 2021-01-25 14:25:52 +01:00
yuyi 1c9950c84a
cgen: fix map_complex_high_order_fixed_array (#8329) 2021-01-25 14:40:53 +02:00
yuyi d3327ba50f
cgen: fix for_mut_val_in_map_fixed_array (#8314) 2021-01-24 23:18:11 +01:00
spaceface 4be45e8d02
checker: add mutability checks for interface fields; add tests (#8312) 2021-01-24 22:11:17 +01:00
Uwe Krüger 815104e5d0
parser: parse `-1` and `-13.3` as number literals (#8321) 2021-01-24 22:09:51 +01:00
Daniel Däschle 750738aa12
cgen: fix optional sum types (#8319) 2021-01-24 20:56:44 +01:00
Uwe Krüger 1ea5cedd03
parser/cgen: fix explicit array/map shared/reference initializers (#8307) 2021-01-23 23:54:57 +02:00
Daniel Däschle 35432c5e92
gen: fix generic multi return (#8303) 2021-01-23 23:41:32 +02:00
Swastik Baranwal 8a59ffb4b7
cgen: allow `==` to be user defined if `!=` is auto generated and vice versa (#8286) 2021-01-23 16:59:39 +01:00
Delyan Angelov 4065a0327a
gen: fix autogeneration of .str() methods for sumtypes that have child types with custom .str() methods 2021-01-23 17:22:19 +02:00
Uwe Krüger 74115fe70a
parser: auto-import `sync` when `shared` objects are used (#8294) 2021-01-23 16:03:21 +01:00
Uwe Krüger 38880b23eb
checker: allow `a[i]` for `shared` arrays outside `unsafe` (#8292) 2021-01-23 13:33:32 +01:00
Alexander Medvednikov d991712b3c gg: native rendering mode on macOS 2021-01-23 10:25:43 +01:00
Daniel Däschle c5c7addb88
checker: improve infer generic (#8281) 2021-01-23 10:19:08 +02:00
spaceface c2d501e8a9
all: implement interface fields (#8259) 2021-01-23 08:57:17 +02:00
Daniel Däschle dbf84520f1
all: update assoc syntax (#8274) 2021-01-22 23:24:48 +01:00
Daniel Däschle 500ebf77e4
all: implement multiple generics (#8231) 2021-01-22 13:49:56 +01:00
Alexander Medvednikov 46cdf4f1ff 0.2.2 2021-01-22 10:39:44 +01:00
Nick Treleaven 72168cd6bc
parser: support `mut:` section in the interface methods, and a mut interface fn modifier (#8092) 2021-01-22 10:02:28 +02:00
yuyi d44c632d11
cgen: fix innermost value of map fixed array (fix #8214) (#8247) 2021-01-22 09:32:56 +02:00
Daniel Däschle 3ee7bc960f
checker/gen: fix smartcast pointer sumtype (#8260) 2021-01-21 22:31:25 +02:00
Louis Schmieder 0d204603d1
gen: fix generic comp time if (#8254) 2021-01-21 21:17:44 +02:00
yuyi 59c3e98c16
cgen: fix complex map_fixed_array (#8209) 2021-01-21 12:45:37 +01:00
yuyi f13ba3a9a8
cgen: fix for_in_mut_val for maps (#8221) 2021-01-21 12:44:22 +01:00
Uwe Krüger 3ecbf78707
cgen: support explicit array handling even in [direct_array_access] functions (#8241) 2021-01-21 12:43:54 +01:00
Daniel Däschle c6d6690064
checker: fix if expr infix (#8215)
* checker: fix if expr infix

* remove debugger code

* fmt

* remove debug

* add test cases
2021-01-21 12:42:24 +01:00
Enzo 55efd8309a
parser: fix parsing interface methods with varargs (#8229) 2021-01-20 23:15:02 +02:00
Alexander Medvednikov 57af8570fe tests: another pointer struct test 2021-01-20 09:24:12 +01:00
joe-conigliaro 97ebecc5f4
usecache: get all tests running with -usecache enabled by default (p.1) (#7699) 2021-01-20 06:04:59 +01:00
yuyi 985ef52872
cgen: fix child struct's default values not assigned (#8202) 2021-01-19 17:10:22 +01:00
Ruofan XU 103901a5cb
example/test: add a binary search tree example and test (#8145) 2021-01-19 15:18:38 +02:00
Uwe Krüger 5067046538
parser: support `x = a[k] ?` propagation for arrays and maps (#8199) 2021-01-19 14:46:47 +02:00
yuyi 15cc1cd884
cgen: fix high order map assignment (#8198) 2021-01-19 14:31:24 +02:00
Delyan Angelov 85bcfdd636
checker: handle `a[i] or { statements expr }` the same as the other or blocks 2021-01-19 09:28:34 +02:00
Uwe Krüger b74690cbec
builtin, checker, cgen: implement `x = a[k] or { ... }` for maps and arrays (#8193) 2021-01-19 06:06:57 +01:00
yuyi a65b73d3e4
cgen: fix for_in_fixed_array (fix #8186) (#8195) 2021-01-19 05:50:23 +01:00
Uwe Krüger 5cc591b2b6
all: support generic `chan` (#8188) 2021-01-18 18:37:45 +01:00
yuyi 5ddb70940e
cgen: fix map_fixed_arrays str error (fix #8170) (#8178) 2021-01-18 10:34:29 +01:00
yuyi 6c87c25ef1
cgen: fix `for _,mut j in arr` for fixed arrays (fix #8163) (#8167) 2021-01-18 06:05:38 +01:00
yuyi 73fd4396c3
parser: fix fixed array using const size (fix #8144) (#8161) 2021-01-18 06:03:03 +01:00
Delyan Angelov 75af639721
checker: allow ptr++/ptr-- in unsafe{}, for any kind of pointer, except voidptr 2021-01-17 18:09:25 +02:00
BigBlack 28ed4da1ce
cgen: fix `array_slice(*a, 0, a.len)` C error, generated for `a[..a.len]`, for a `mut a []int` (#8168) 2021-01-17 17:22:23 +02:00
Uwe Krüger e4850cd6dd
cgen: fix `for` iteration over fixed array literal (#8159) 2021-01-17 10:44:15 +01:00
yuyi 9376c57a51
cgen: fix for_in_mut_val (fix #8087) (#8129) 2021-01-17 05:32:34 +01:00
Delyan Angelov 5ae55731b9
embed: move to `v.embed_file`, fix CI failing test 2021-01-16 20:03:07 +02:00
Delyan Angelov 5c3ef588c3
live: move to vlib/v/live 2021-01-16 15:05:01 +02:00
Delyan Angelov 263fb7d7a8
checker: fix `instance.cb_field(mut arg)` 2021-01-15 20:28:42 +02:00
Uwe Krüger 1c6fe83408
parser: fix parsing of `go` call expression (#8138) 2021-01-15 19:47:49 +02:00
Ruofan XU 5de287a6e7
tests: add test of sumtype-based binary tree (#8121) 2021-01-15 15:10:30 +02:00
Uwe Krüger 8d014d4646
sync: allow `go` routine join with return value (#8125) 2021-01-15 13:45:26 +01:00
BigBlack 80008a40e2
fix fixed_array slice ommit high_value (#8025) 2021-01-15 10:28:20 +01:00
yuyi 0945efebf1
cgen: fix anon_fn_call (#8120) 2021-01-15 10:25:30 +01:00
Larpon f73500f2fe
all: add support for the `x := $embed_file('v.png')` compile time call (#8048) 2021-01-14 16:20:11 +02:00
yuyi a2efb5319d
all: change `[1,2,3]!!` to `[1,2,3]!` (#8101) 2021-01-14 03:51:13 +01:00
zakuro 47536df2d0
table: remove nr_dims from Array (#8053) 2021-01-13 23:43:19 +01:00
Delyan Angelov 0d25091afd
tests: fix random color mismatches in the CI 2021-01-13 21:27:30 +02:00
Daniel Däschle 2030875c0a
gen: fix go call with generic function (#8093) 2021-01-13 17:35:50 +02:00
Nick Treleaven a1245de25b
gen: fix interface method call name that is a C reserved word (#8091) 2021-01-13 16:37:47 +02:00
Ruofan XU 245ed9160a
gen: fix `mut arr [3]int` as a fn argument (#8085) 2021-01-13 15:52:46 +02:00
Nick Treleaven ac85257ea0
parser: fix sizeof(mod.Type), fix checking sizeof expression (#8065) 2021-01-13 06:13:39 +01:00
yuyi dd6febf6fa
cgen: fix gen_array_sort() (#8077) 2021-01-13 06:12:22 +01:00
Swastik Baranwal 1e853b0efc
cgen: implement argument operator overloading (#8067) 2021-01-13 03:31:14 +01:00
Daniel Däschle 3289dff7ff
checker: require explicit return none (#8060) 2021-01-12 11:43:55 +01:00
Swastik Baranwal 82a5300044
cgen: allow sort with`<` and `>` op overloading (#8042) 2021-01-12 04:38:12 +01:00
Uwe Krüger 5f95dd54bd
builtin: rename `any_*` -> `*_literal` - 2. part (#8032) 2021-01-11 22:58:15 +01:00
Swastik Baranwal 0081e5740d
checker: only allow `!=` and `==` for enum (#7985) 2021-01-10 12:26:31 +02:00
Swastik Baranwal 1f5255c2bb
cgen: implement `>=` and `<=` (#7991) 2021-01-10 12:24:46 +02:00
Daniel Däschle a8dd13f086
parser: change array decompose syntax (#7965) 2021-01-09 22:48:23 +01:00
Delyan Angelov 561d4f84b3
tests: remove tmp files on OK live_test.v run 2021-01-09 20:56:02 +02:00
Daniel Däschle 687b152318
gen: fix generation of comptime if T is (#7971) 2021-01-08 19:39:58 +02:00
Swastik Baranwal 9291fb5e0c
checker: disallow comparison between enum and int (#7886) 2021-01-08 17:41:52 +01:00
Daniel Däschle 88d18f3303
checker: smartcast in for loops (#7942) 2021-01-07 21:35:32 +01:00
Nick Treleaven cbefe6c32f
parser: warn about old use of `typeof` (#7923) 2021-01-07 20:32:02 +01:00
Daniel Däschle 085085a2b9
parser: fix sumtype match with array type (#7939) 2021-01-07 20:12:35 +01:00
Daniel Däschle a8e4d1df40
cgen: fix match comparing with ident of type string (#7921) 2021-01-06 20:03:50 +02:00
Daniel Däschle 9025c3528f
all: implement comptime if for generic type `$if T is string {` (#7901) 2021-01-06 19:58:53 +02:00
Nick Treleaven 7a6b160d63
checker: fix indexing a type alias instance (#7889) 2021-01-05 19:17:18 +01:00
yuyi 10e7045bee
cgen: fix array/fixed_array_rune_str (#7881) 2021-01-05 18:16:55 +02:00
Daniel Däschle 5841d5d8e1
all: implement basic comptime field selector (#7888) 2021-01-05 16:11:43 +02:00
zakuro 5c1981379e
parser: fix a bug when using some types like map in generic methods (#7872) 2021-01-05 02:59:36 +01:00
spaceface efb80bdffd
all: implement iterators in for loops (#7867) 2021-01-05 01:06:44 +01:00
Ned Palacios 82162b8ff8
cgen: interface fix + add more interface tests (#7776) 2021-01-04 21:54:13 +02:00
Uwe Krüger bf904c2f82
checker, cgen: allow using literals as `int` and `f64` for sum types (#7864) 2021-01-04 20:48:13 +02:00
Daniel Däschle 164d7bf5fb
parser: struct updating syntax with `Abc{...oldabc newfield: val}` (#7865) 2021-01-04 20:19:03 +02:00
yuyi 46d311dcc4
generic: fix return multi array generic (fix #7727 #7753) (#7855) 2021-01-04 18:40:53 +02:00
Nick Treleaven b9c6011602
parser: support casting to a pointer to array (#7861) 2021-01-04 18:22:04 +02:00
Daniel Däschle 43adbf4b66
cgen: fix filter in map (#7844) 2021-01-04 01:04:53 +01:00
Enzo 9332f7cac2
checker: allow `map` method name (#7834) 2021-01-03 16:57:29 +01:00
Swastik Baranwal 9033099676
cgen: implement overriding of `!=` and `==` (#7837) 2021-01-03 16:19:02 +01:00
yuyi 60b3658e6f
gen: fix str_gen_test.v (#7826) 2021-01-03 15:40:47 +01:00
zakuro 6bd35505a2
parser: fix error when using imported types in short fn signature (#7795) 2021-01-02 15:09:54 +02:00
Ned Palacios 40b8d9ca3d
checker: fix infer_fn_type for generic methods (#7767) 2021-01-01 17:33:23 +01:00
Swastik Baranwal 24b18f05c4
cgen: implement > and < for structs (#7774) 2021-01-01 14:54:32 +01:00
Nick Treleaven d15d13674c
parser: parse non-identifier expressions for sizeof too (#7781) 2021-01-01 15:38:11 +02:00
clubby789 9ac237d9c0
match: implement exhaustive match for bool values (#7761) 2021-01-01 13:28:23 +02:00
yuyi c3dafad7ef
generics: implement method generics (fix #7638) (#7732) 2020-12-31 18:00:22 +01:00
Uwe Krüger 74ea5ac99f
checker: check reference return to be really reference (#7739) 2020-12-31 12:42:22 +01:00
Joe Conigliaro b2bd2c9337
cgen: make multi return decl order consistant & use typedefs. closes #7728 2020-12-31 21:55:21 +11:00
Joe Conigliaro 3e655d6bf6
cgen: fix multi return auto str methods. closes #7726 2020-12-31 10:21:02 +11:00
Daniel Däschle 9a31744255
cgen: fix embed generic field access & method call (#7725) 2020-12-30 23:49:02 +01:00
Daniel Däschle b4c5fa8ca0
cgen: fix embed field access from reference (#7724) 2020-12-30 21:50:58 +01:00
Daniel Däschle e4edc5925a
parser: embed always public and mutable (#7722) 2020-12-30 21:17:48 +02:00
Daniel Däschle b8af81240a
cgen: fix struct embedding method when receiver is ptr (#7710) 2020-12-30 20:44:01 +02:00
Alexander Medvednikov ad78875a8c parser: allow `const x = 0` consts outside of const blocks 2020-12-30 02:15:44 +01:00
Alexander Medvednikov e26a690975 0.2.1 2020-12-29 21:24:33 +01:00
joe-conigliaro 02965e753e
all: re-implement variadics using arrays & implement array decomposition to varg (#7689) 2020-12-29 16:14:08 +01:00
yuyi 32091dd90e
cgen: fix struct equality (#7649) 2020-12-28 18:22:47 +02:00
Delyan Angelov 3f3ae67b55
Revert "cgen: fix struct_eq (#7639)"
This reverts commit 164dd3000b.
2020-12-28 13:16:00 +02:00
yuyi 164dd3000b
cgen: fix struct_eq (#7639) 2020-12-28 12:25:22 +02:00
Delyan Angelov df61cf246b
cgen: fix `x.interface_field = value_implementing_interface` (closes #7620) 2020-12-27 19:12:39 +02:00
zakuro 21805ea2a5
all: make eprint[ln] behave same as print[ln] (#7595) 2020-12-27 11:22:16 +01:00
Daniel Däschle 7507403118
cgen: fix zero init bug of embedded structs (#7567) 2020-12-25 22:46:42 +02:00
Delyan Angelov c6b0ce2a07 ci: disable socket error assertion in profile_test.v 2020-12-25 16:10:18 +02:00
Delyan Angelov a631078d8a tests: add vlib/v/tests/profile/profile_test.v regression test 2020-12-25 14:30:22 +02:00
Delyan Angelov 36dcace0a7 cgen: fix compiling call expressions with no varargs (tcc bug) 2020-12-23 21:15:00 +02:00
Daniel Däschle b27f5c378c
all: reimplement struct embedding with methods (#7506) 2020-12-23 19:12:49 +01:00
Alexander Medvednikov e4f94b6ad5 V 0.2 2020-12-22 20:48:45 +01:00
Delyan Angelov 5f5c53348b ci: fix vlib/v/tests/project_with_c_code_2/modc/wrapper.v 2020-12-20 18:33:31 +02:00
Alexander Medvednikov 50a6976b5e all: minor array fixes 2020-12-20 16:08:56 +01:00
Alexander Medvednikov 6bf21c300a checker: do not allow arr1=arr2 without cloning 2020-12-20 15:33:55 +01:00
Alexander Medvednikov 60c936a688 tests: remove map reference test 2020-12-20 07:59:39 +01:00