1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00
Commit Graph

11274 Commits

Author SHA1 Message Date
yuyi
69f7c45bec
builtin: fix array init with array default (#16664) 2022-12-13 18:05:33 +02:00
Felipe Pena
738fe77300
cgen: fix short circuiting behaviour of logical expressions, when several PrefixExpr's are used in if conditions (#16660) 2022-12-13 13:09:03 +02:00
Delyan Angelov
992621bd91
bench: add a small performance comparison script bench_json_vs_json2.v 2022-12-12 10:26:04 +02:00
Hitalo Souza
b682e9ec0b
json2: decode time.Time, supporting unix timestamps (like json), as well as rfc3339 datetimes (#16653) 2022-12-12 10:06:29 +02:00
yuyi
8225622da5
checker: check smartcasting requires either an immutable value, or an explicit mut keyword before the value (#16654) 2022-12-12 09:22:56 +02:00
yuyi
d87e400e77
transformer: clean up expr_stmt_match_expr() (#16655) 2022-12-12 08:41:02 +02:00
Felipe Pena
1e7208d28b
parser: fix initialization for array of Option type - []?Cell{} (#16652) 2022-12-12 08:40:05 +02:00
Hitalo Souza
d7c244e5ec
x.json2: support time.Time values in encode (#16643)
* feat: json2 time.Time encode

* refactor: best var name

* fix: use 'RFC 3339' as pattern in json encode

* fix: unused var for unaliased_typ

* fix: improve test

* use the clearer test after V ad24c22, that made format_rfc3339 more stable

Co-authored-by: Delyan Angelov <delian66@gmail.com>
2022-12-11 16:54:28 +02:00
Delyan Angelov
ad24c22250
time: add more UTC/local time conversion functions, make Time.format_rfc3339 more stable 2022-12-11 13:34:01 +02:00
yuyi
73e886eafe
checker: fix generic fn returning result (#16646) 2022-12-11 12:34:58 +02:00
Delyan Angelov
94098eef79
time: use UTC time in Time.format_rfc3339, make test more robust 2022-12-11 10:36:29 +02:00
Delyan Angelov
2ecb892985
time: add Time.format_rfc3339() method 2022-12-11 10:23:05 +02:00
Hitalo Souza
e8c0b098b0
x.json2: add encode_pretty/1 (#16634) 2022-12-10 20:44:23 +02:00
Delyan Angelov
4b2699fddd
cgen: fix copying of a fixed array parameter to a function (fix #16640) 2022-12-10 20:10:01 +02:00
Hitalo Souza
30b39bebde
x.json2: refactor json tests (#16638) 2022-12-10 18:44:20 +02:00
lemon
799af2adad
native: support simple multi return (#16628) 2022-12-10 16:26:43 +02:00
Alexander Medvednikov
42a9eaac0e regex: make match_string() receiver immutable 2022-12-10 13:03:42 +03:00
Delyan Angelov
7c02274754
v.pkgconfig: support PKG_CONFIG_PATH_DEFAULTS for overriding the default search path list too (enable easier -m32 with a custom tcc cross compiler) 2022-12-10 00:50:24 +02:00
Felipe Pena
1ba1f99b9c
orm: declare missing functions to handle literal types (#16627) 2022-12-09 20:34:34 +02:00
Hitalo Souza
b6c2aab092
json2: support encoding of optional struct fields (#16521) 2022-12-09 18:08:24 +02:00
Felipe Pena
ba8e61ebf3
cgen: fix return typeof[T]() in generic functions (#16626) 2022-12-09 17:24:47 +02:00
yuyi
6c0f22416f
cgen: fix if cond with result or optional in infix expr (#16625) 2022-12-09 12:01:14 +02:00
yuyi
68fb4e9fe5
cgen: fixevaluation order for match expressions inside boolean ones (fix #16554) (#16616) 2022-12-09 11:56:38 +02:00
Carter
eb88f7e255
builtin: fix bug with string.split_into_lines, when lines have extra CR's at their end (#16620) 2022-12-09 09:15:50 +02:00
Delyan Angelov
7091010a53
arrays: add map_of_counts/1, map_of_indexes/1 as well as index_of_first/2, index_of_last/2 utilities (#16618) 2022-12-09 00:37:07 +02:00
Felipe Pena
f365771499
cgen: fix nested struct generation for globals for gcc (#16614) 2022-12-08 21:38:01 +02:00
谢克
32c80c53b3
cgen: fix generic functions returning none or error values with generic result types (#16613) 2022-12-08 11:08:39 +02:00
Felipe Pena
2261606b56
checker: disallow Bar{...foo} when Bar needs more fields, than what foo has (#16609) 2022-12-07 16:56:07 +02:00
Delyan Angelov
458e68e196
orm,sqlite,mysql,pg: cleanup import v.ast, using typeof[Type]() 2022-12-07 13:40:46 +02:00
yuyi
4eb81d2f05
checker: improve error messages of missing generic type names (#16610) 2022-12-07 11:29:18 +02:00
Delyan Angelov
48a7de643e
all: support typeof[ T ]().idx and typeof[ T ]().name, where T can be any type, including ![]&string (#16513) 2022-12-07 11:26:27 +02:00
Swastik Baranwal
bb705c01d2
parser: add proper error msg for := used in const decl (#16607) 2022-12-06 22:44:33 +03:00
yuyi
921416d821
parser: fix parsing generic types using '[]' in anon fn decl (#16605) 2022-12-06 18:15:59 +02:00
Felipe Pena
cf015e5073
checker: add clearer errors for break/continue used within a $for loop (#16600) 2022-12-06 17:27:59 +02:00
Swastik Baranwal
ada8643ac5
checker: disallow using builtin type names for const names (#16599) 2022-12-06 15:44:25 +02:00
yuyi
e35f5f290e
cgen: fix string of map with generic struct value (#16595) 2022-12-06 12:38:05 +02:00
yuyi
a96e2e7093
parser: fix parsing embedded generic interface using '[]' (#16603) 2022-12-06 12:37:36 +02:00
yuyi
46bb62955b
cgen: fix generic array init with fields (#16601) 2022-12-06 09:33:26 +02:00
Felipe Pena
edfaa76b3e
checker: fix panic caused by compile-time code within or block (#16602) 2022-12-06 09:26:04 +02:00
Hitalo Souza
5288c613ef
json2: decode refactor/fix (#16588) 2022-12-05 16:58:44 +02:00
yuyi
50110d4c19
all: replace generic '<>' with '[]' in .vv files (#16593) 2022-12-05 16:32:15 +02:00
yuyi
7e9e2ff459
cgen: fix if expr with multiple array call (fix #16583) (#16589) 2022-12-05 12:07:39 +02:00
yuyi
59c979c8d2
checker: check generic interface type specifing type names (fix #16576) (#16591) 2022-12-05 10:05:32 +02:00
Swastik Baranwal
ce06c2818d
checker: add disallow none operations and range (#16584) 2022-12-05 08:50:36 +02:00
yuyi
ffc73bf643
builder: fix v builder error (#16590) 2022-12-05 08:48:45 +02:00
Delyan Angelov
d8d75ee67e v.builder: fix v -os wasm32_emscripten examples/2048 on windows 2022-12-04 17:49:33 +02:00
RGBCube
5acd855525
term: add format_esc/1 (#16574) 2022-12-03 14:01:39 +02:00
Delyan Angelov
bf0c8a0d96 sync: fix compilation of V on m1 with tcc 2022-12-02 23:17:46 +02:00
Delyan Angelov
d09c8c914b
testing: refactor the v test implementation to make supporting different output modes easier 2022-12-02 18:12:42 +02:00
Delyan Angelov
e419faf746
all: fix dependant->dependent typos, cleanup comments 2022-12-02 12:51:10 +02:00
Delyan Angelov
675c362f57
v.util: cleanup util.path_styled_for_error_messages/1 2022-12-02 11:48:01 +02:00
Delyan Angelov
c77344e0a2
checker: add a return *x suggestion, to the error fn ... expects you to return a non reference type ..., but you are returning ... instead 2022-12-02 10:40:36 +02:00
yuyi
f16722596c
all: replace generic '<>' with '[]' in error messages and comments (#16571) 2022-12-02 09:22:48 +02:00
Tim Marston
cbe64cb543
checker: allow struct updates from struct aliases (#16567) 2022-12-02 00:28:10 +02:00
Larpon
6e24f7e13a
gg: always use 4 channels in init_sokol_image (#16564) 2022-12-01 18:54:37 +03:00
Delyan Angelov
161847ed1a
v.pref: make -b unknown_backend an error, with a more informative diagnostic message 2022-12-01 15:28:51 +02:00
yuyi
c06696bc9a
cgen: fix printing multi-reference struct (#16560) 2022-11-30 21:30:15 +02:00
yuyi
fd04c1a03a
cgen: fix error of match expr (fix #16554) (#16555) 2022-11-30 12:04:20 +02:00
Delyan Angelov
675a1be975
math: remove the deprecated math.mathutil module too 2022-11-29 14:56:40 +02:00
Delyan Angelov
3fff786f36
math: remove the deprecated math.util module 2022-11-29 14:42:46 +02:00
Delyan Angelov
952f4644c5
math.big: remove import math dependency (math.big only uses min/max/abs) 2022-11-29 14:42:46 +02:00
Delyan Angelov
6ef3dfdea9
sokol: fix v -Wimpure-v examples/2048/ 2022-11-29 14:42:45 +02:00
Delyan Angelov
7df8f063ed
builtin: fix typo 2022-11-29 14:42:44 +02:00
yuyi
dff61300fb
table: optimize fn_type_signature() (#16552) 2022-11-29 13:13:58 +02:00
Swastik Baranwal
58e150df12
parser: add a better error msg for using ..., instead of .. in for a in 1...10 { (#16547) 2022-11-28 10:37:12 +02:00
yuyi
d257e43932
checker: fix 'return none' in void optional function (#16545) 2022-11-28 10:29:02 +02:00
yuyi
7d8c386721
datatypes: change optional to result (#16546) 2022-11-28 10:24:47 +02:00
Delyan Angelov
1d24dbe602
builtin: document string.to_wide() and string_from_wide()/1 2022-11-28 09:46:04 +02:00
Delyan Angelov
73675dca87
builtin: move v_segmentation_fault_handler to builtin.c.v, make it more informative 2022-11-27 12:11:06 +02:00
Delyan Angelov
fdbd40d806
scanner: make Scanner.peek_token more robust (p.peek_token(-999999) will return an EOF token, instead of garbage data) 2022-11-27 12:09:43 +02:00
Delyan Angelov
50b73abc62
parser: add p.show() to ease debugging parser problems, that need more context
Using it, produces output like this on stdout:
```
>> vlib/v/tests/typeof_type_test.v:4:        keyword `typeof`  token `(`  token `[`      keyword `fn`                      token `(`  name `s`  name `string`
>> vlib/v/tests/typeof_type_test.v:8:        keyword `typeof`  token `(`  token `[`      name `int`                        token `]`  token `)`  token `.`
>> vlib/v/tests/typeof_type_test.v:9:        keyword `typeof`  token `(`  token `[`      name `int`                        token `]`  token `)`  token `.`
>> vlib/v/tests/typeof_type_test.v:13:       keyword `typeof`  token `(`  token `[`      name `u32`                        token `]`  token `)`  token `.`
>> vlib/v/tests/typeof_type_test.v:14:       keyword `typeof`  token `(`  token `[`      name `u32`                        token `]`  token `)`  token `.`
>> vlib/v/tests/typeof_type_test.v:18:       keyword `typeof`  token `(`  token `[`      name `string`                     token `]`  token `)`  token `.`
```

Note: this tracing output is *deliberately on `stdout`*, instead of `stderr`,
so that you can filter it more easily, without saving it to a file first, i.e.
you can use it while developing/debugging parser issues like this:
`./v -o vnew cmd/v && ./vnew some_file.v | grep some_file.v`

-> this will show only the parsing context for the constructs you are debugging,
for that specific file *only*, instead of for all of `builtin` and the imported files etc.
2022-11-27 11:13:42 +02:00
yuyi
cf3dda2a58
datatypes: fix fsm.set_state() and cleanup fsm module (#16539) 2022-11-27 09:10:08 +02:00
Vincenzo Palazzo
8543d5e055
checker: improve mut arg error msg (#16540) 2022-11-27 07:07:35 +03:00
yuyi
ef5be22f81
all: replace generic <> with [] - part 2 (#16536) 2022-11-26 18:23:26 +02:00
yuyi
b19b97e7b1
generic: replace generic <> with [] part 1 - allow for both (#16532) 2022-11-26 08:59:42 +02:00
Swastik Baranwal
a9b41d2980
all: add support for const ident in match range (#16526) 2022-11-26 08:56:00 +02:00
yuyi
dee75fe970
checker: perfect infer_struct_generic_types() (#16524) 2022-11-24 19:30:02 +02:00
yuyi
f6cc88fa69
tests: add new test for #16519 (#16520) 2022-11-24 15:56:07 +02:00
yuyi
f0a23c8d3c
cgen: fix fn call of sumtype with alias fntype variant (#16519) 2022-11-24 12:05:57 +02:00
yuyi
8b5c75c481
cgen: fix sumtype with alias fntype variant (#16516) 2022-11-23 19:46:58 +03:00
shove
d632e84090
cgen: fix comptime optional methods call and optional field (fix #16499 #16465) (#16503) 2022-11-23 19:08:49 +03:00
Subhomoy Haldar
f7a11b8e50
toml: update value_opt syntax and add missing documentation (#16510) 2022-11-22 19:45:12 +02:00
yuyi
7c7ebd648d
checker: check assigning generic function to a variable (#16507) 2022-11-22 17:56:49 +02:00
yuyi
27cdf5ae0e
checker: minor cleanup in checker module (remove pub from most of checker's methods) (#16505) 2022-11-22 17:50:26 +02:00
Delyan Angelov
7d57559b70
datatypes: make the out of bounds errors for lists APIs more detailed 2022-11-22 13:42:29 +02:00
yuyi
cc7e6006f9
checker: fix generic fn with short generic struct init syntax (#16504) 2022-11-22 13:27:49 +02:00
lemon
00383edd3d
native: add more operator support for floats on amd64 (#16498) 2022-11-21 12:48:24 +02:00
Delyan Angelov
c744030665
tests: add a watchdog thread to live_test.v to prevent it from blocking the whole CI on slow sanitized jobs 2022-11-21 12:24:54 +02:00
Delyan Angelov
c286775d9f
strconv: add test_atof_converter to the tests, as suggested by the code review 2022-11-21 07:41:41 +02:00
Delyan Angelov
6cd1723deb
strconv: fix float_prec := 1.9999999999999999 + 0.0000000000000000005 being 0.5 (fix #16448) (#16495) 2022-11-21 03:57:51 +03:00
Delyan Angelov
0e727ec50a
checker: cleanup obsolete code for compatibility between byteptr and &byte (#16494) 2022-11-20 16:44:58 +02:00
Delyan Angelov
cb336c7dc7
net.http: remove ending \r from response.status_msg, add more tests 2022-11-20 16:22:43 +02:00
Hitalo Souza
45854882b9
builtin, cgen: support FieldData.unaliased_typ, use it for generalising x.json2 (able to encode type aliased struct fields) (#16469) 2022-11-20 11:18:14 +02:00
Swastik Baranwal
06764bc559
checker: disallow taking address of optional fields for now (#16487) 2022-11-19 22:03:39 +02:00
shove
5ef4e0c9be
cgen: fix "fn()?.field?" expr cgen error (fix #16482) (#16488) 2022-11-19 20:30:24 +02:00
Delyan Angelov
6b0743bb07
x.json2: add support for i8, i16, u8, u16, u32 (fix #16484) 2022-11-19 12:03:04 +02:00
shove
79b4cfb42a
all: correct the first letter of error message from uppercase to lowercase (#16481) 2022-11-19 10:43:25 +02:00
shove
092f984708
ast, cgen: fix match struct.field? {...} (#16478) 2022-11-19 10:42:36 +02:00
RGBCube
2d9808b2dc
term: add term.slow_blink/1 and term.rapid_blink/1 (#16470) 2022-11-18 19:03:14 +02:00
Přemek Vyhnal
92be90300c
doc: mention the $embed_file return type, and link to its documentation (#16467) 2022-11-18 12:54:17 +02:00
Hitalo Souza
74613bd636
x.json2: generic-based encoder (finish PR#15137) (#16464) 2022-11-18 11:09:24 +02:00
Swastik Baranwal
44e2149baa
cgen: add escaping for near, far and huge keyword ptrs (#16463) 2022-11-17 23:42:09 +02:00
shove
ae816b1719
parser: fix if-guard for struct optional fields (fix #16460) (#16461) 2022-11-17 15:30:16 +03:00
shove
74efd2621b
checker: fix struct field unsign type check (fix #16457) (#16458) 2022-11-17 09:20:42 +02:00
Swastik Baranwal
360457e021
checker: disable overriding and importing of builtin sym types (#16452) 2022-11-17 09:10:03 +02:00
yuyi
cb9e945aa0
cgen: clean and improve need_tmp_var_in_match() (#16451) 2022-11-17 09:08:45 +02:00
shove
37700502f5
all: implement struct field optional and disallow storing result (#16392) 2022-11-17 07:51:50 +02:00
Spydr
41dd8985fc
native: use enum values instead of strings for identifying builtin functions (#16450) 2022-11-17 07:44:08 +02:00
shove
49277f7aa8
cgen: fix dump(nil), dump(voidptr) (fix #16455) (#16456) 2022-11-17 07:41:07 +02:00
yuyi
523ccbcb70
cgen: fix if expr with sumtype value of map (#16445) 2022-11-16 14:59:34 +02:00
Larpon
b60132d2ac
checker: rename test assing -> assign (#16446) 2022-11-16 14:46:36 +02:00
Delyan Angelov
9bb1867be0
os: refactor err == IError(os.Eof{}) to err is os.Eof 2022-11-16 00:53:45 +02:00
Delyan Angelov
ddc1a1fc08
checker,cgen: support const y = term.yellow, then println(y('abc')) (#16436) 2022-11-15 19:51:57 +02:00
Swastik Baranwal
dc81d755e8
checker: disallow using unsafe { none } (#16431) 2022-11-15 18:55:07 +02:00
Basil
fe2db64384
tests: add unsafe block for the int->enum cast in bench_compare_tokens.v (#16438) 2022-11-15 18:34:44 +02:00
yuyi
017ace6ea7
vfmt: change all '$expr' to '${expr}' (#16428) 2022-11-15 16:53:13 +03:00
Ikko Ashimine
56239b4a23
toml: fix typo in parser.v (#16430) 2022-11-14 21:08:22 +03:00
Swastik Baranwal
58cee6ccc8
checker: disallow none type in struct fields (#16425) 2022-11-14 17:48:00 +03:00
yuyi
91ecfb917c
checker: fix generic fn casting &u8 to &alias to u32 (#16420) 2022-11-14 17:37:53 +03:00
Alexander Medvednikov
37583b04b4 gg: make create_image's receiver immutable 2022-11-14 17:25:42 +03:00
Dominik Pytlewski
f44af02e32
sqlite: affected rows count (#16426) 2022-11-14 17:23:42 +03:00
yuyi
1a4d1aece4
checker: minor cleanup and optimization in method_call() (#16421) 2022-11-13 22:33:36 +02:00
Hitalo Souza
38555a92e1
time: change days_from_civil to days_from_unix_epoch, add date_from_days_after_unix_epoch (#16363) 2022-11-13 14:30:14 +02:00
Hitalo Souza
7cfaacbe7a
doc: add more examples to vlib/time/README.md (#16362) 2022-11-13 13:48:07 +02:00
yuyi
5a28699edb
cgen: minor cleanup in auto_str_methods.v (#16411) 2022-11-13 11:59:32 +03:00
yuyi
f31a3b4250
checker: check sumtype argument mismatch in generic methods (fix #16340 part2) (#16403) 2022-11-13 11:58:53 +03:00
yuyi
e8e75251b4
vweb: change optional to result in vweb_test (#16412) 2022-11-13 11:57:35 +03:00
Taegon Kim
b54f9c2949
parser: fix attributes with optional or result types (#16401) 2022-11-12 18:35:01 +03:00
Junko
5bb058e35b
gg: revamp the Context pipeline for more effects, implement an additive effect (#16394) 2022-11-12 09:39:18 +02:00
Delyan Angelov
12f01318c2
v.live, cgen: enable using [live] in modules too (monitor used .v files for changes, not just the top level one) (#16396) 2022-11-11 22:06:42 +02:00
yuyi
c9ce5f89c7
builtin: fix f32.str() (#16391) 2022-11-11 13:56:45 +02:00
Delyan Angelov
c1a44efc78
tests: ensure that const loading is stressed in live_test.v, to prevent -live regressions for more complex examples like bounce.v 2022-11-11 10:45:54 +02:00
Delyan Angelov
e9fac05775
cgen: fix v -cc tcc -live run examples/hot_reload/graph.v too 2022-11-11 10:20:18 +02:00
Delyan Angelov
202f9574ec
cgen: fix v -live -cc gcc examples/hot_reload/graph.v 2022-11-11 10:20:17 +02:00
shove
3a85955d22
all: rollback to old interpolation (step 4) (#16383) 2022-11-11 11:06:01 +03:00
yuyi
993e21e85b
checker: check fntype mismatch of struct field init (fix #16372) (#16381) 2022-11-10 20:19:19 +02:00
yuyi
196b01aef7
all: minor cleanup of optional and result (#16382) 2022-11-10 20:14:20 +02:00
shove
26d643fc5d
all: rollback to old interpolation (step 3) (#16380) 2022-11-10 15:05:34 +03:00
Delyan Angelov
bbae7a705f
checker: fix incomplete implicit ast.CastExpr{} replacements 2022-11-10 13:59:22 +02:00
Delyan Angelov
7543b769ad
checker: allow for all.children := { "abc": rect, "def": rectangle()}, where children is map[string]Widget, without needing explicit casts for all the map values 2022-11-10 13:59:21 +02:00
yuyi
46921480fc
comptime: fix embed file with variable argument (fix #16360) (#16375) 2022-11-10 04:09:51 +02:00
Swastik Baranwal
bbd0603b41
checker: add check for unknown generic types in type alias decl (#16377) 2022-11-10 04:08:00 +02:00
Dominik Pytlewski
2634b99769
sqlite: expose SQLite's VFS layer (#16359) 2022-11-09 19:57:06 +02:00
yuyi
7e000bb6ae
embed_file: correct test file name (#16376) 2022-11-09 19:55:51 +02:00
shove
a199a9afab
all: rollback to old interpolation (step 2) (#16373) 2022-11-09 17:37:27 +03:00
shove
dd5f6186a1
all: rollback to old interpolation (step 1) (#16370) 2022-11-09 11:57:54 +03:00
Swastik Baranwal
7830597b66
checker: add check for multi level fn aliases (#16361) 2022-11-09 10:36:39 +02:00
Taegon Kim
ce79c9c876
checker: extract valid_comptime_ constants into v.checker.constants (#16371) 2022-11-09 10:07:21 +02:00
yuyi
c7d0f0561e
scanner: fix new string interpolation - nested quotes (#16345) 2022-11-08 17:51:02 +03:00
Taegon Kim
bc30608e92
checker: always trigger error for anon fns without a body block (#16358) 2022-11-08 15:50:59 +02:00