Commit Graph

666 Commits (4923048d9556868c7ac4377a353c4e1618142c04)

Author SHA1 Message Date
spaceface777 52fb7033c3
gen: fix evaluating the receiver of array methods (.map(), .filter(), etc) more than once (#7130) 2020-12-04 20:29:34 +02:00
Delyan Angelov 52ccdd747f
cgen: allow for `const ( x = opt() ? )` 2020-12-04 13:11:12 +02:00
Alexander Medvednikov b64945a6c0 autofree: lots of fixes in `return_statement()` 2020-12-04 10:10:40 +01:00
joe-conigliaro b578e60dd5
tests: add test for fix #cf7b45b 2020-12-04 15:43:28 +11:00
yuyi 06eaded6ea
string: change `tos_lit` to `_SLIT` (#7079) 2020-12-03 16:02:48 +01:00
Swastik Baranwal c5a7c51dfd
parser: add a check for known vars in or block (#7094) 2020-12-03 04:46:04 +01:00
Uwe Krüger c1b25dd61d
cgen: fix map value op-assign modification (#7101) 2020-12-03 00:40:11 +01:00
Alexander Medvednikov 0ff541375d autofree: fix a bug with $if and add a test 2020-12-01 18:58:16 +01:00
yuyi d3deaa1f59
cgen: fix typeof variadic type (#7063) 2020-12-01 16:11:37 +01:00
Daniel Däschle 5b6eb7b2c9
cgen: simplify .str() generation (#7038) 2020-12-01 16:09:03 +01:00
yuyi 6a1e0322bd
gen: fix interpolation variadic (#7059) 2020-12-01 12:40:38 +02:00
joe-conigliaro 34e124d5f7
cgen: auto cast sum type in array init. fixes #6907 2020-12-01 20:03:45 +11:00
Delyan Angelov fe0ded9a91
tests: add a regression test for the inter module generics inference 2020-12-01 08:07:07 +02:00
Daniel Däschle 879d238887
cgen: initial option auto str support (#7004) 2020-12-01 04:00:23 +01:00
Delyan Angelov b11d285680
v: support multiple paths in VMODULES env variable (#7048) 2020-11-30 18:31:37 +01:00
Uwe Krüger a128ab4313
cgen: add support for shared maps (#7042) 2020-11-30 13:25:14 +01:00
Alexander Medvednikov cb3367d734 autofree: free_before_break() test 2020-11-28 20:23:54 +01:00
Swastik Baranwal aadeb62bbf
cgen: add a _T_ prefix in the C names for generic fn instances; fixes #6927 (#6999) 2020-11-28 17:07:07 +02:00
Alexander Medvednikov ea04d23e1d tests: valgrind: use -autofree without -experimental 2020-11-28 15:53:08 +01:00
Alexander Medvednikov 57ad943b92 autofree: free arrays on re-assignment 2020-11-28 15:21:53 +01:00
Alexander Medvednikov ed39d151b7 V 0.1.30 2020-11-28 04:43:11 +01:00
Delyan Angelov ac27a3ccee parser,cgen: improve `[flag]enum Abc{ a b }`, allow `x := Abc.a | Abc.b` 2020-11-27 23:09:14 +02:00
yuyi 636efb3c20
cgen: fix windows escape errors for comptime @ pseudo vars (#6977) 2020-11-27 11:16:57 +02:00
Daniel Däschle ee2a5727fb
gen: fix assigning an anon fn to a struct field (#6965) 2020-11-27 11:15:48 +02:00
Daniel Däschle d71d9ad7c0
сgen: print generic structs (#6967) 2020-11-26 23:57:03 +01:00
Nick Treleaven ea8adfdbf9
gen: more efficient `for in` with a map (#6961) 2020-11-26 23:22:14 +01:00
Alexander Medvednikov 5e59718970 fmt: handle $tmpl 2020-11-26 18:53:38 +01:00
Alexander Medvednikov 5efd393af2 all: make comptime templates usable outside of vweb via $tmpl 2020-11-26 18:40:35 +01:00
Ruofan XU c6a8c3cad5
cgen: remove unneeded sumtype logic and add more tests (#6959) 2020-11-26 15:29:23 +01:00
Daniel Däschle 8e2b7fe3d6
tests: cleanup sum type tests (#6950) 2020-11-25 20:40:29 +01:00
Delyan Angelov 35a0fe79f9 cgen: generate an unique sort comparator function for each .sort() call 2020-11-25 13:48:42 +02:00
Daniel Däschle 7d6f97259f
all: refactor UnionSumType to SumType (#6944) 2020-11-25 13:09:40 +02:00
Daniel Däschle a042966082
all: remove old sumtype code (#6937) 2020-11-24 17:55:24 +01:00
Daniel Däschle 9fbf38c798
parser: fix generic structs from other modules (#6921) 2020-11-23 23:21:11 +01:00
Daniel Däschle 96539e43b5
all: nested sum types (#6913) 2020-11-23 16:16:13 +01:00
Alexander Medvednikov a1827d7f98 autofree: handle array set/get 2020-11-22 20:48:23 +01:00
Alexander Medvednikov ff1752dfff gg: vfmt gg.v 2020-11-21 00:04:29 +01:00
Alexander Medvednikov c1486925d5 autofree: enable free_before_return test 2020-11-21 00:00:27 +01:00
Delyan Angelov 9673d40bb9 ci: fix failing windows test run_v_code_from_stdin_test.v (2) 2020-11-20 16:57:44 +02:00
Delyan Angelov 93d460f8fc ci: fix failing windows tests for `v run -` 2020-11-20 16:14:04 +02:00
Delyan Angelov 3c4b87bfec checker: add check against `fn test_opt() ?{}` 2020-11-20 15:12:53 +02:00
Nick Treleaven d5242e0bf5
gen: implement labelled break and continue (retry) (#6887) 2020-11-20 12:23:48 +01:00
Nicolas Sauzede 159932d59b
v: run code from stdin `echo println(2+2) | v run -`, with no repl limits (#6884) 2020-11-20 10:25:59 +02:00
Alexander Medvednikov 4328233504 Revert "gen: implement labelled break and continue (#6880)"
This reverts commit e798326a1a.
2020-11-20 02:51:35 +01:00
Nick Treleaven e798326a1a
gen: implement labelled break and continue (#6880) 2020-11-19 21:13:15 +01:00
Daniel Däschle 41ba942369
parser: smartcast mutable selector (#6881) 2020-11-19 21:05:10 +01:00
Daniel Däschle 9feb010355
all: mutable smartcasts (#6878) 2020-11-19 17:28:46 +01:00
Daniel Däschle e06756ef58
all: match multi aggregate for union sum types (#6868) 2020-11-18 20:52:00 +01:00
Daniel Däschle 20bec81678
checker: smartcast only if type is not mut (#6841) 2020-11-15 16:53:51 +02:00
Alexander Medvednikov 26785668c0 autofree: more tests; gg: fix draw_circle with hidpi 2020-11-15 15:09:44 +01:00
Nick Treleaven 50163508f8
gen: implement type_name method for sum type instances (#6802) 2020-11-14 13:59:03 +02:00
Delyan Angelov ba8cdb2977 vfmt: fix `$for method in App.methods {}` turning to App(methods) 2020-11-14 12:24:46 +02:00
Delyan Angelov 023cddb160 cgen: remove .replace('T', ...) 2020-11-14 10:36:59 +02:00
Daniel Däschle 9c569246ef
cgen: fix typeof union sum type (#6794) 2020-11-12 12:27:54 +01:00
Daniel Däschle 43ce098043
cgen: fix default value init for union sum types (#6795) 2020-11-11 19:56:13 +02:00
Daniel Däschle 6271798ce3
cgen: union sum types implementation (#6745) 2020-11-11 09:18:15 +01:00
spaceface777 bb91dc90a5
checker: fix `&` on pointers (#6787) 2020-11-10 13:12:21 +02:00
Nick Treleaven c76e486765
parser: implement `T.name` for generic types (#6783) 2020-11-09 14:35:26 +01:00
Alexander Medvednikov 1c257abc23 autofree: simplify: merge tmp arg logic with scope vars 2020-11-09 14:24:46 +01:00
Alexander Medvednikov 507d724ee6 autofree: free before return tests 2020-11-09 11:54:45 +01:00
Nick Treleaven 931882d720
checker: support ?T, &T generic return types (#6772) 2020-11-07 18:27:10 +02:00
Nick Treleaven 125650c986
cgen: fix using brackets for match expression (#6768) 2020-11-07 14:47:27 +01:00
Alexander Medvednikov 0e8c7ca2e3 autofree: fix string reassignment 2020-11-07 04:00:45 +01:00
Nick Treleaven 62cae1ba00
parser: parse func<T>() when T is a map or array type (#6765) 2020-11-07 02:55:28 +01:00
Ned Palacios 6d8a7ced24
cgen: fix setting nested map elements fields (#6744) 2020-11-06 16:32:44 +02:00
Alexander Medvednikov 3e5871ffb3 autofree: disable optional_return test for now 2020-11-06 10:30:27 +01:00
Alexander Medvednikov 212e6fe52c autofree: do not run in `builtin` 2020-11-06 10:13:05 +01:00
Nick Treleaven ca8d23acab
table: make Table.type_to_str generate proper function type, not fn name (#6716) 2020-11-05 06:34:56 +01:00
Daniel Däschle 9d5be12517
gen: add prefix when printing type aliases (#6701) 2020-11-03 14:13:35 +01:00
Nick Treleaven 788de9938a
cgen: fix typeof(expr).name for generic type, pointers, etc (#6712) 2020-11-02 22:59:48 +01:00
Delyan Angelov 2202ee5d66 tests: add tests for continue/break in last statement of an `or{}` 2020-11-02 12:54:45 +02:00
Alexander Medvednikov 06e4c45350 tests: re-enable valgrind tests 2020-11-02 01:25:16 +01:00
Delyan Angelov e2505479ee cgen: encode newlines as \n in the assert meta information 2020-11-01 17:01:45 +02:00
Daniel Däschle 9fdf04b7ff
cgen: make generics printable (#6700) 2020-10-31 19:43:06 +02:00
Alexander Medvednikov 791fda16d3 fmt: handle "it" in lambdas 2020-10-30 07:35:44 +01:00
Alexander Medvednikov 2c75b1397c all: struct embedding 2020-10-30 07:09:26 +01:00
Alexander Medvednikov 423044d4d6 autofree: skip lambda for now 2020-10-29 08:59:13 +01:00
Alexander Medvednikov 71dfec3c4d autofree: generate unique names for each arg 2020-10-29 08:26:45 +01:00
Alexander Medvednikov 21002bf2de autofree: fix re-assigning an optional 2020-10-29 07:06:58 +01:00
Alexander Medvednikov f19ca6b411 autofree: simplify, use more scoping, fix expressions inside or blocks 2020-10-29 01:09:38 +01:00
Delyan Angelov 0c192cfd64 tests: fix warnings when doing `./v -W -progress -check-syntax test-fixed` 2020-10-26 14:41:57 +02:00
Alexander Medvednikov 42da37e900 autofree: fix if expressions 2020-10-24 19:06:31 +02:00
Alexander Medvednikov 3b3501cf09 autofree: if expression fixes 2020-10-23 22:50:22 +02:00
Alexander Medvednikov 66b8462d7a autofree: handle method chains 2020-10-22 03:51:28 +02:00
Alexander Medvednikov 6d11caf784 autofree: string.replace() test 2020-10-21 19:44:31 +02:00
Delyan Angelov 5c93f942be docs,tests: add project_with_c_code_2 (passing structs from C to V to C) 2020-10-20 17:59:48 +03:00
Delyan Angelov 2440413310 tests: turn off live_test.v on macos for now (due to frequent false positives) 2020-10-18 19:45:49 +03:00
Alexander Medvednikov 55536bb364 autofree: handle more statements 2020-10-18 00:48:06 +02:00
Lukas Neubert dea8662d6b
cli: show help for empty root command (#6636) 2020-10-17 19:06:27 +03:00
Delyan Angelov 140166e1cd interpolation: support '' (rounding like in C) 2020-10-16 17:28:11 +03:00
Delyan Angelov 6cea20e427 tests: fix warnings in live_test.v 2020-10-15 23:15:00 +03:00
Alexander Medvednikov 3d4ab7de1e checker: update tests 2020-10-15 12:39:32 +02:00
Delyan Angelov 3795aaab5c v test-fmt: reformat some skipped files, comment on the remaining ones 2020-10-15 00:39:09 +03:00
Alexander Medvednikov 9355c60b4d cgen: fix for mut val and enable the test 2020-10-14 13:34:49 +02:00
Alexander Medvednikov 25947a7b23 autofree: handle args in optional returns 2020-10-14 13:23:58 +02:00
Alexander Medvednikov ea09bd5e45 checker/fmt: `for mut val` fixes 2020-10-14 12:50:19 +02:00
Alexander Medvednikov a07f31feae all: `for mut val in vals {` (part 1) 2020-10-13 16:27:30 +02:00
Nick Treleaven 78bcda14c4
checker: infer T from parameter of type `[]T` (#6611) 2020-10-13 15:15:25 +03:00
Delyan Angelov 62f6e65509 repl: fix `reset`; make `echo "print(2.0 * 3.14159)" | ./v` print only the result 2020-10-11 10:50:24 +03:00
Delyan Angelov 604b28b1c5 cgen: fix for `type FdfFn = fn(...) (x,y)` 2020-10-11 09:53:35 +03:00
Enzo 6038264a4c
gen: fix slicing mutable arguments (#6596) 2020-10-10 12:03:23 +02:00
Alexander Medvednikov 1332bba7af autofree: wrap up optionals 2020-10-10 10:34:51 +02:00
Alexander Medvednikov c463c26983 autofree: optionals fix 2020-10-09 01:13:31 +02:00
Alexander Medvednikov 7d65e4cb10 autofree: fix and test var declarations 2020-10-08 17:10:20 +02:00
Swastik Baranwal aea52af9ae
checker: add is_mut check for disallowing taking address of map's key and array's element outside unsafe (#6573) 2020-10-08 09:37:18 +03:00
shnorbluk b940dc4f8a
cli: help displayed when a Command has no execute function (fix #6530) (#6567) 2020-10-07 05:39:13 +02:00
Nick Treleaven f7decfe399
checker: infer generic type T from matching fn call argument (#6298) 2020-10-06 15:34:02 +02:00
Delyan Angelov 06a02c41c3 tests: reduce probability of locks during macos runs of live_test.v 2020-10-05 21:20:42 +03:00
Swastik Baranwal d77669da80
test: add tests for disallowing map/array get element/key address (#6568) 2020-10-05 18:40:51 +03:00
Swastik Baranwal 5f07b255bd
checker: disallow address of array and map index outside unsafe (#6557) 2020-10-05 13:08:30 +02:00
Enzo 35a83464d0
gen: separate sumtype from classic match (#6547) 2020-10-04 19:50:23 +02:00
Delyan Angelov 0c174104fc checker: allow &=,|=,^=,%= on an integer number type aliases 2020-10-04 15:29:09 +03:00
Swastik Baranwal 7e13518cc2
parser: disallow match expr at certain places (#6490) 2020-10-03 16:30:58 +03:00
Enzo 677b0ba2d2
gen: access fields in multi-type sumtype match (#6541) 2020-10-03 11:19:43 +02:00
kalapalo eefe067c27
cgen: fix `as` cast when sumtype is the result of a function call (#6537) 2020-10-03 05:04:15 +02:00
Daniel Däschle 2204bad7cf
gen: removes space on struct printing (#6535) 2020-10-02 13:06:02 +02:00
Delyan Angelov 70c87137a9 live_test.v: wait 5 times more on macos 2020-10-02 11:38:49 +03:00
Daniel Däschle 8e8e808fc9
gen: fix sumtype custom str (#6534) 2020-10-02 09:32:07 +02:00
Enzo 324d547cdb
parser: allow multiple types in match branch (#6505) 2020-10-01 01:07:36 +02:00
Alexander Medvednikov ae7689f739 autofree: simplify, clean up, and fix complex arg exprs 2020-09-30 07:27:24 +02:00
Daniel Däschle c38a050125
cgen: fix array and map printing (#6508) 2020-09-30 01:26:27 +02:00
Ned Palacios 1aec041371
json: fix encode/decode support for generic structs (#6489) 2020-09-29 03:15:00 +02:00
Daniel Däschle 06cade6c31
all: change .ReturnType and .Type to .return_type and .typ (#6494) 2020-09-28 06:13:38 +02:00
Alexander Medvednikov 3d5292b63f tcp/udp: fix mutability 2020-09-27 03:40:59 +02:00
Alexander Medvednikov e2c7126d11 checker: verify mutability of method args 2020-09-27 03:14:24 +02:00
Daniel Däschle d782de5b00
gen: struct str fixes (#6483) 2020-09-25 23:12:33 +02:00
Daniel Däschle abc98c273c
parser: require assign on type alias (#6477) 2020-09-25 12:02:32 +02:00
Daniel Däschle 90d1a689db
gen: fix str gen for pointers in structs (#6462) 2020-09-24 21:14:16 +02:00
Alexander Medvednikov 47a62b12d4 autofree: advanced expr test 2020-09-24 19:22:16 +02:00
Daniel Däschle 4f09ddccb4
cgen: implement sum type str gen (#6454) 2020-09-23 20:51:51 +02:00
Uwe Krüger 9c0758639b
cgen: fix `for match {...} {` and `for select {...} {` (#6441) 2020-09-23 06:05:12 +02:00
Henrixounez e429a77de2
gen: named imported structs operator overloading and str methods (#6433) 2020-09-20 19:51:14 +02:00
Nick Treleaven 9958881cbe
parser: support parsing unsafe (as first token) as UnsafeExpr (#6032) 2020-09-19 19:18:36 +03:00
Delyan Angelov 78e6ddee75 tests: enable running `v test .` inside vlib/v/ too 2020-09-18 19:20:01 +03:00
Henrixounez 4038ac463c
gen: bytes array print not ending prematurely when null byte (#6401) 2020-09-18 01:12:32 +02:00
Delyan Angelov bbf4983524 autofree: add option_reassigned.v and option_simple.v tests. 2020-09-14 13:04:24 +03:00
Alexander Medvednikov bffa100aa6 autofree: optional fix 2020-09-13 21:36:33 +02:00
Alexander Medvednikov fc88f43e50 autofree: make optional methods work 2020-09-13 03:20:34 +02:00
Alexander Medvednikov f074d766e5 ci: disable gitly autofree build for now 2020-09-13 03:06:16 +02:00
Alexander Medvednikov b74c1805d7 cgen/autofree: fix and simplify optionals 2020-09-12 16:40:52 +02:00
Delyan Angelov 96c22a26b9 tests: cleanup if_smartcast_test.v 2020-09-11 22:00:13 +03:00
Delyan Angelov d46c1f0f20 tests: fix sporadic waitgroup failure on slow windows VMs in anon_fn_test.v 2020-09-11 16:00:24 +03:00
Alexander Medvednikov e0d20eadff autofree: free strings on re-assignments 2020-09-11 13:55:20 +02:00
Alexander Medvednikov 17882db635 autofree: disable ?string test for now 2020-09-10 22:19:18 +02:00
Alexander Medvednikov 67cc515e74 autofree: ?string test 2020-09-10 13:41:30 +02:00
Alexander Medvednikov 03327e5161 time: minor fixes + vfmt 2020-09-10 13:26:01 +02:00
Alexander Medvednikov 925f1781b3 checker: default field fixes 2020-09-09 14:05:56 +02:00
Ruofan XU 90128ed4ee
cc: add support for tcc backend on windows-i386 (#6297) 2020-09-08 15:15:35 +02:00
Enzo 18034bb95c
gen: fix multiple call of expression in match (#6324) 2020-09-08 00:38:24 +02:00
Nick Treleaven 497bf226e2
add TESTS.md file to explain different tests (#6318) 2020-09-07 13:48:15 +02:00