Enzo
da53f818df
all: initial support for closures (x64 / linux-only) ( #11114 )
2021-08-10 21:27:15 +03:00
Daniel Däschle
2ae77c1998
v.scanner: fix escaped backslash after string interpolation ( #11118 )
2021-08-10 17:04:42 +03:00
yuyi
11794039e2
v.gen.c: fix fn variadic of reference param ( #11115 )
2021-08-10 10:36:11 +03:00
yuyi
eed8c4671f
cgen: fix fn mut arg of array ( #11104 )
2021-08-09 01:49:30 +03:00
yuyi
1f3f7705a2
cgen: fix struct_init with fixed array field ( #11099 )
2021-08-08 10:54:52 +03:00
yuyi
1d3786ff1e
v.parser: fix `if a == Abc{} {` ( #11092 )
2021-08-07 18:05:22 +03:00
Uwe Krüger
c560d58f1e
cgen: use heuristic to detect circular reference in auto str ( #11090 )
2021-08-07 14:56:09 +03:00
yuyi
ec39e38e14
cgen: fix generic method on alias struct receiver ( #11080 )
2021-08-06 21:26:54 +03:00
Daniel Däschle
3b116d2455
cgen: support embedded struct fields on sumtype common fields ( #11084 )
2021-08-06 21:26:19 +03:00
Uwe Krüger
e89bed3e25
ci: temporarily deactivate test case for #11061 (fixes CI timeouts) ( #11079 )
2021-08-06 12:46:56 +03:00
Daniel Däschle
91ade5bf8c
cgen: fix shared field init ( #11061 )
2021-08-06 05:11:03 +03:00
Enzo
44bacfc931
cgen: fix optional generation order ( #11070 )
2021-08-06 03:57:34 +03:00
Daniel Däschle
8d2567740b
parser: make [..] work ( #11064 )
2021-08-06 03:54:24 +03:00
yuyi
c30cda3daf
v.gen.c: fix error of `println(alias of struct)` ( #11062 )
2021-08-05 20:20:10 +03:00
Daniel Däschle
800c0e5092
vlib: remove deprecated map{} usages as well as deprecated functions ( #11035 )
2021-08-04 12:44:41 +03:00
yuyi
2eb11110d6
cgen: fix autofree error of array init with string variable ( fix #10427 ) ( #11041 )
2021-08-04 03:39:20 +03:00
yuyi
fd58e9f819
cgen: fix auto str for map of reference struct ( fix #11024 ) ( #11028 )
2021-08-03 08:03:00 +03:00
Uwe Krüger
6068777e03
parser/checker: deduce type of global from initialization expression ( #11005 )
2021-07-31 16:35:19 +03:00
Delyan Angelov
08016ab374
v.gen.c: add vlib/v/gen/c/coutput_test.v, to ease testing of produced C output
2021-07-31 12:14:56 +03:00
Delyan Angelov
26b7712bbe
tests: add a regression test for the comptime evaluated consts, using a _constructor function
2021-07-30 20:33:08 +03:00
Louis Schmieder
0bb587c8c2
checker: fix defer ident handling & fix defer optional error message ( #10975 )
2021-07-30 20:29:06 +03:00
Uwe Krüger
a7c2aaf35b
cgen: initialize globals directly for simple cases ( #11002 )
2021-07-30 19:20:45 +03:00
Daniel Däschle
6fa8e4269e
checker: force interface init ( #10910 )
2021-07-30 03:18:20 +03:00
Uwe Krüger
44d8dcc418
ci,globals: hot fix for hanging test case ( #10997 )
2021-07-29 22:06:08 +03:00
Uwe Krüger
08aa6c08f6
all: more improvements for global variables ( #10986 )
2021-07-29 10:57:31 +03:00
Uwe Krüger
abd17ddb6a
cgen: initialize globals with default initializer when none is given. ( #10979 )
2021-07-27 20:14:30 +03:00
Delyan Angelov
6134c4870b
v.util: extract v.util.version, use it to speed up building `v repl`, `v up` and `v doctor`
2021-07-27 12:59:56 +03:00
yuyi
cb7be87d4e
parser: fix struct init and assign using `sql` variable ( #10968 )
2021-07-26 21:14:31 +03:00
yuyi
4cf91a28f6
checker: fix generics interface with multi generic types ( #10964 )
2021-07-26 08:54:57 +03:00
Delyan Angelov
b44f81528f
v.gen.c: fix codegen for `const a = u64(5) + 5`
2021-07-26 08:06:59 +03:00
Delyan Angelov
db5e0f2117
v.gen.c: fix cgen regression after f457b94
(prevented vinix builds), add tests
2021-07-25 23:31:23 +03:00
yuyi
ab20b8c53a
cgen: fix generics interface with multi generic structs ( #10950 )
2021-07-25 15:54:22 +03:00
Delyan Angelov
0bcb955258
checker: fix regression of anon fns that have loops with break/continue
2021-07-25 10:46:31 +03:00
Daniel Däschle
a09324faa9
scanner: remove pos 0 hack which is no longer needed ( #10935 )
2021-07-25 01:13:07 +03:00
yuyi
29cda252f1
builtin: fix multiple array init ( #10929 )
2021-07-23 23:25:12 +03:00
Louis Schmieder
3d907caa3f
gen: fix comptime attrs stmts ( #10925 )
2021-07-23 23:24:56 +03:00
Delyan Angelov
6313ed6a79
checker,cgen: fix `-os cross` support for `$if !solaris { #include <sys/ptrace.h> }`
2021-07-23 16:24:42 +03:00
yuyi
f5776eb259
cgen: fix multiple assign array index ( #10926 )
2021-07-23 15:46:18 +03:00
Louis Schmieder
26db3b0995
orm: redesign orm (re-write it in V) ( #10353 )
2021-07-23 12:33:55 +03:00
Delyan Angelov
ad41cd5c6f
cgen: fix `dump(fn_name)` ( closes #10912 )
2021-07-23 12:24:12 +03:00
Daniel Däschle
2c0c211c79
all: implement accessing embedded field and method of aggregate ( #10907 )
2021-07-23 01:14:39 +03:00
Daniel Däschle
ed234188b7
scanner: fix single backslash in raw string ( #10890 )
2021-07-22 17:02:11 +03:00
Daniel Däschle
054bd67490
cgen: don't change field name of c structs ( #10894 )
2021-07-22 01:37:49 +03:00
Delyan Angelov
06de9c799c
Revert "gen: add type name to comp for ( #10881 )"
...
Reason: 713a079
is more general and provides the same information.
This reverts commit dd3ee20566
.
2021-07-21 23:56:00 +03:00
Louis Schmieder
dd3ee20566
gen: add type name to comp for ( #10881 )
2021-07-21 23:45:08 +03:00
Uwe Krüger
713a079684
cgen: properly support `typeof()`, sizeof(), ... in compile time `for` ( #10896 )
2021-07-21 23:43:30 +03:00
Daniel Däschle
12884e9eb7
checker: disallow invalid pointer arithmetic ( #10888 )
2021-07-21 23:39:49 +03:00
yuyi
ec87f4ee99
table: fix error of generics interface declaration ( #10883 )
2021-07-21 15:24:52 +03:00
Daniel Däschle
aebb028349
gen: fix C keyword escape to _v_ instead of just v_ ( #10876 )
2021-07-21 11:46:04 +03:00
Delyan Angelov
d41a4ec662
v test-self: check unsafe_test.v, match_test.v, match_in_fn_call_test.v with -cstrict
2021-07-20 19:34:16 +03:00
Delyan Angelov
5098334e65
os: add execute_or_exit(cmd), use it consistently instead of execute_or_panic(cmd)
2021-07-20 15:22:04 +03:00
Daniel Däschle
60b705b4c4
checker, gen: implement basic struct embed direct field init support ( #10871 )
2021-07-20 15:06:06 +03:00
Daniel Däschle
ad3835b598
parser: deprecate short struct init ( #10842 )
2021-07-20 11:17:08 +03:00
Enzo
1db354c360
v.gen.c: fix codegen ordering problem with interfaces with interface fields ( #10862 )
2021-07-19 19:57:12 +03:00
yuyi
8e99a018df
checker, cgen: fix generics interface method ( #10858 )
2021-07-19 13:29:46 +03:00
yuyi
cf82bd3407
checker: fix fixed array with const unint type size ( fix #10826 ) ( #10853 )
2021-07-19 12:44:03 +03:00
yuyi
fdba3607af
checker: fix generics fn selector expr with unexpected symbol ( #10851 )
2021-07-19 09:16:15 +03:00
Delyan Angelov
8ea576783b
tests: fix failed consts test (it now works properly)
2021-07-19 01:18:39 +03:00
yuyi
8b8f496762
checker: fix generics fn return generic interface ( fix #10818 ) ( #10831 )
2021-07-18 08:55:19 +03:00
Delyan Angelov
6edfb2c7fe
v.parser: eliminate PrefixExpr from `&Type(x).name` and `&Type(x)[idx]` too (fix vinix build)
2021-07-17 20:20:20 +03:00
yuyi
3a0fa550b6
checker: fix generics fn inferring map type ( fix #10835 ) ( #10839 )
2021-07-17 17:49:21 +03:00
spaceface
22fcbe70a2
checker: allow omitting `{}` in trailing struct args ( #10832 )
2021-07-17 15:44:44 +03:00
crthpl
ec47cda386
cgen: fix other generic pointer cases ( #10834 )
2021-07-17 11:51:42 +03:00
shadowninja55
355f46f475
gen: implement `thread.str()` ( #10820 )
2021-07-17 11:19:28 +03:00
shadowninja55
0d587d3580
checker: prohibit using non-lvalue as mut receiver ( #10790 )
2021-07-16 13:03:40 +03:00
spaceface
ebc34c237b
cgen: fix generating invalid Option decls for generic interfaces ( #10817 )
2021-07-15 22:15:25 +03:00
yuyi
ddaac5af92
checker: fix generics with multi generic struct types ( #10808 )
2021-07-15 17:39:55 +03:00
spaceface
6e942bf4c2
v: initial support for generic interfaces and sumtypes ( #10795 )
2021-07-15 08:29:13 +03:00
yuyi
fe1cf2ea26
cgen: fix error of the map literals method call ( #10791 )
2021-07-14 22:03:47 +03:00
yuyi
ed78e638b3
cgen: fix if_expr with array methods cond ( #10786 )
2021-07-13 19:51:49 +03:00
Delyan Angelov
d444dbd4d9
tests: add a multilevel pointer cast test too
2021-07-13 14:08:50 +03:00
yuyi
2a9d6fef9f
cgen: fix initialization errors with fixed array aliases ( #10784 )
2021-07-13 10:51:54 +03:00
shadowninja55
7694afa44c
checker: check that `mut` args are lvalues ( #10779 )
2021-07-13 08:06:39 +03:00
yuyi
1b26ce1f7a
cgen: fix array of alias's slice() ( #10772 )
2021-07-12 15:59:01 +03:00
yuyi
5c7881feb7
checker: fix error of for_in alias ( #10770 )
2021-07-12 09:17:00 +03:00
yuyi
719bf63f16
scanner: fix nested multiline comments ( #10760 )
2021-07-12 07:17:38 +03:00
zakuro
ba9b53cc4d
cgen: fix error when using anon generics fn that have generics struct arg ( #10751 )
2021-07-11 19:30:41 +03:00
yuyi
a3ed9c1bbd
cgen: fix fixed array of function str() ( fix #10744 ) ( #10753 )
2021-07-11 19:24:33 +03:00
Louis Schmieder
eb96ad11d9
checker: add pkgconfig to comptime if ( #10692 )
2021-07-09 18:17:04 +03:00
yuyi
310bb1a8a6
cgen: fix generics with variadic generic args ( #10700 )
2021-07-09 12:09:30 +03:00
yuyi
fb9b2e873c
checker: fix generic fn with assign reference generic struct ( fix #10681 ) ( #10695 )
2021-07-08 16:50:25 +03:00
yuyi
6436d9a827
cgen: fix error of generic array typedef ( #10679 )
2021-07-07 12:42:53 +03:00
crthpl
d14de5fdaf
all: fix generic functions with pointer args ( #10686 )
2021-07-07 11:51:05 +03:00
yuyi
9f8c3cc159
cgen: fix fn return array of interface ( #10677 )
2021-07-06 16:33:26 +03:00
yuyi
59d80e2758
cgen: fix interface fn return with struct_init ( #10675 )
2021-07-06 10:14:13 +03:00
El Koulali András
dacfb71820
cgen: fix string interpolation where the expression generates multiple C statements ( #10674 )
2021-07-06 09:04:29 +03:00
yuyi
1857874d1a
tests: rename anon_fn_with_array_arguments.v to anon_fn_with_array_arguments_test.v ( #10650 )
2021-07-05 21:08:31 +03:00
Uwe Krüger
a1f123bd42
cgen: enable string index error handling `s[i] or {...}` ( #10670 )
2021-07-05 21:00:30 +03:00
Lukas Neubert
9e61321d4c
cgen: fix VUNREACHABLE inside ternary ( #10672 )
2021-07-05 18:26:01 +03:00
shadowninja55
da9c75f2ca
checker: string != IError ( #10665 )
2021-07-05 05:05:08 +03:00
yuyi
665279938e
checker: fix nested generic struct init ( fix #10652 ) ( #10659 )
2021-07-04 18:37:31 +03:00
yuyi
f246d73d6e
cgen: fix generic fn return mut parameter ( #10662 )
2021-07-04 18:36:37 +03:00
yuyi
5a4a1997e7
cgen: fix empty struct initilization ( #10651 )
2021-07-03 20:11:56 +03:00
yuyi
21512d1491
checker: fix generic fn inferring multi paras type ( fix #10623 ) ( #10626 )
2021-07-02 17:38:57 +03:00
yuyi
c0f855ace7
cgen: fix anon optional fn ( fix #10640 ) ( #10644 )
2021-07-02 17:07:05 +03:00
Daniel Däschle
3881e97a40
vlib: remove ustring usage ( #10618 )
2021-06-30 22:30:28 +03:00
shadowninja55
f45f30a9c2
checker, cgen: fix aliased array methods ( #10603 )
2021-06-29 12:14:37 +03:00
yuyi
04221475d1
cgen: fix go call interface method ( fix #10520 ) ( #10602 )
2021-06-29 11:16:15 +03:00
yuyi
4af4f2b5a5
cgen: fix `go fn(mut x Interface){ println(x) }(x)` ( #10585 )
2021-06-28 16:31:11 +03:00
yuyi
0ac0ab6b4b
cgen: fix auto str for sumtype with alias ( #10599 )
2021-06-28 14:17:00 +03:00
shadowninja55
2e5ed08558
v.parser: allow anonymous function to return a function ( #10592 )
2021-06-28 11:51:24 +03:00
yuyi
67d1b72e36
cgen: fix interface with nested fields ( fix #10077 ) ( #10589 )
2021-06-28 10:24:05 +03:00
Delyan Angelov
c3b9eaf146
v.c.gen: fix codegen of auto str methods for structs having &voidptr fields
2021-06-28 10:05:42 +03:00
spaceface
4bed4afef7
cgen: fix clash in generated variant and method names ( #10581 )
2021-06-27 19:05:32 +03:00
shadowninja55
ea3983a91b
checker: require .sort() body for some types ( #10550 )
2021-06-27 17:17:03 +03:00
yuyi
51075ffa15
cgen: fix fn mut val of interface type ( #10568 )
2021-06-26 18:13:48 +03:00
shadowninja55
eb5afb7403
checker: prohibit selective const imports ( #10574 )
2021-06-26 18:09:52 +03:00
yuyi
e9de30373f
table: fix interface embedding with interface parameter ( #10567 )
2021-06-25 12:52:25 +03:00
yuyi
4bfe76123a
generics: fix generic fn type mismatch of returning a generic struct ( #10553 )
2021-06-24 12:47:36 +03:00
BigBlack
8324a766e8
checker: allow for `unsafe {*(p+1) = 22}` ( #10557 )
2021-06-24 12:39:42 +03:00
yuyi
e8a1e9d88f
cgen: fix interface only declare with optional method ( #10546 )
2021-06-23 15:14:08 +03:00
Delyan Angelov
69227b8be7
tests: bump up sleep times in break_in_lock_test.v, so that its results are stabler
2021-06-23 14:14:53 +03:00
Delyan Angelov
b6bd6d1d35
tests: add cmd/tools/vdoc/tests/vdoc_file_test.v, extract a `v.util.diff` module, cleanup
2021-06-22 18:52:34 +03:00
yuyi
6dbe8a8a2c
cgen: fix for in mut reference selector val ( fix #10524 ) ( #10536 )
2021-06-21 19:25:18 +03:00
yuyi
da4b6b934d
checker: fix map assign array of interface values ( #10532 )
2021-06-21 19:24:42 +03:00
Uwe Krüger
8f2f377cb1
v.checker,v.gen.c: extend auto heap mechanism to objects used as interfaces ( #10529 )
2021-06-21 07:10:10 +03:00
Uwe Krüger
f32a76b268
all: promote value type function arguments to heap if necessary ( #10528 )
2021-06-20 18:40:24 +03:00
yuyi
6c8182cc25
cgen: fix assigning literal fixed arrays to map values ( #10525 )
2021-06-20 13:36:01 +03:00
yuyi
1a52da9f62
tests: add as_cast_already_smartcast_sumtype_test.v ( #10517 )
2021-06-19 18:50:09 +03:00
Delyan Angelov
d56ae2d508
v.fmt: keep comments after struct embeds
2021-06-18 18:42:05 +03:00
yuyi
2298063129
checker: fix nested if smartcast selector exprs ( fix #10372 #10379 ) ( #10502 )
2021-06-18 14:49:15 +03:00
crthpl
4abb1a8b7b
cgen: fix unknown labels in addressing ( #10503 )
2021-06-18 13:03:38 +03:00
Uwe Krüger
3f5aa5e634
sync: make `Semaphore.*wait()` robust against interrupts by signals ( #10491 )
2021-06-18 12:44:18 +03:00
yuyi
a98d644637
cgen: fix fn mut args of array ( #10493 )
2021-06-18 02:51:55 +03:00
zakuro
751f2950ea
checker: skip checking `[required]` fields for struct update syntax ( #10500 )
2021-06-18 02:51:33 +03:00
crthpl
4688c75389
cgen, parser: fix several assembly bugs ( #10498 )
2021-06-18 01:20:46 +03:00
yuyi
e31be9f5c4
checker: fix generic fn assign ( #10479 )
2021-06-16 19:17:07 +03:00
yuyi
1dca06495d
checker: implement if smartcast multi conds (part 1) ( #10477 )
2021-06-16 19:16:15 +03:00
Delyan Angelov
2f35aad8ce
ci: fix tests-sanitize-memory-clang too
2021-06-16 13:32:37 +03:00
Delyan Angelov
9dff3c36a6
ci: fix failing `Self tests` task on the `windows-msvc` job 2
2021-06-16 12:44:55 +03:00
Delyan Angelov
ed0af3fd88
ci: fix failing `Self tests` task on the `windows-msvc` job
2021-06-16 12:44:00 +03:00
Delyan Angelov
69ce8baefd
v.ast: allow for `fn f()&IAbc{return voidptr(0)}` with no additional voidptr implicit conversions to compile
2021-06-16 11:07:04 +03:00
Delyan Angelov
862c4cf371
v.checker,v.gen: allow for `&IAbc(voidptr(0))` where IAbc contains fields
2021-06-16 10:48:50 +03:00
Delyan Angelov
e7cc93a120
v.checker: allow for a `f(unsafe{voidptr(0)})` call of `fn f(x &Interface){}`
2021-06-16 09:20:01 +03:00
yuyi
ffcc6cf6d2
checker: fix `for in mut val` for floats ( #10470 )
2021-06-16 04:04:31 +03:00
yuyi
c3b9336f21
cgen: fix generic method receiver typeof name error ( #10469 )
2021-06-16 04:03:50 +03:00
yuyi
bdc8586ddd
checker, cgen: fix `for in mut val` ( #10444 )
2021-06-15 04:43:10 +03:00
Uwe Krüger
98a496d70c
tests: remove white space from file name ( #10462 )
2021-06-15 04:42:15 +03:00
Uwe Krüger
2ac39d9112
all: new function `isreftype(T)` to know if `T` contains pointers ( #10438 )
2021-06-13 06:26:13 +03:00
Delyan Angelov
e70bde54dc
ast: improve Expr.str() for `sizeof(Type)` and `__offsetof(StructName, fieldname)`, for more informative asserts/dumps
2021-06-12 16:49:14 +03:00
Alexander Medvednikov
635f045b14
ast: make is_int() work with aliases
2021-06-12 14:35:38 +03:00
yuyi
f26626117d
cgen: fix match struct type cond ( #10421 )
2021-06-11 11:58:25 +03:00
crthpl
6576d876fc
cgen: support a `[_naked]` fn attribute ( #10418 )
2021-06-11 11:03:39 +03:00
yuyi
9d852e22b2
cgen: fix match array or map cond ( #10411 )
2021-06-10 21:33:35 +03:00
Delyan Angelov
f351ff037e
Revert "checker: check generic type indexing error ( #10345 )"
...
This reverts commit 103c777ad6
.
Passing references to values should be allowed, and is already used in vinix:
`pub fn cas<T>(_here &T, _ifthis T, writethis T) bool {`
2021-06-09 11:46:17 +03:00
yuyi
103c777ad6
checker: check generic type indexing error ( #10345 )
2021-06-08 17:23:44 +03:00
yuyi
cd464010d4
cgen: fix match with multi sumtype exprs ( #10377 )
2021-06-07 14:16:30 +03:00
crthpl
8a497080b3
cgen: fix assembly in generic fns ( #10370 )
2021-06-07 10:53:33 +03:00
yuyi
114c382c46
parser: fix generic fn typeof name ( #10363 )
2021-06-06 17:40:13 +03:00
Lukas Neubert
c14b357fec
checker: fix enums in builtin ( #10366 )
2021-06-06 16:27:46 +03:00