yuyi
8764a3a973
checker: check errors of cast to byte ( #12961 )
2021-12-25 11:34:15 +02:00
yuyi
a83786d867
checker: minor cleanup in cast_expr() ( #12954 )
2021-12-24 11:38:27 +02:00
Delyan Angelov
db1175e455
parser: handle `[noreturn]` on methods too
2021-12-22 19:58:37 +02:00
yuyi
cd0b581445
ast: rename 'table.get_type_symbol()' to 'table.sym()' and more related calls ( #12898 )
2021-12-19 18:25:18 +02:00
spaceface
65f12f3217
checker: fix invalid cast warning for flag enums ( #12848 )
2021-12-15 16:58:25 +02:00
yuyi
36fbd3c4fa
checker: check sumtype as mismatched type ( #12743 )
2021-12-07 01:31:47 +03:00
Leo Developer
ace63594bf
all: support `$embed_file('embed.vv', .zlib)` ( #12654 )
2021-12-04 19:43:19 +02:00
Alexander Medvednikov
be5446bfa4
checker: update enum test
2021-12-03 09:07:33 +03:00
Alexander Medvednikov
209747d03e
checker: update enum test
2021-12-03 08:43:03 +03:00
Delyan Angelov
f5d283721e
checker: add more `string(x)` checks, with more detailed replacement suggestions
2021-12-01 11:28:00 +02:00
Delyan Angelov
47aa2b1f93
all: fix casting of `string(MyString('abc'))` and `byte(MyByte(123))`; improve TypeSymbol handling ( #12617 )
2021-12-01 09:50:53 +02:00
pancake
8ac7739db8
parser: forbid empty match statements 'match cond.op {else {}}' ( #12618 )
2021-11-30 09:32:48 +02:00
Delyan Angelov
6d97b0a407
checker: improve checking of a << b, when a and b are numbers ( #12589 )
2021-11-29 03:48:49 +03:00
Leo Developer
9c88317ca6
checker: add a warning if start value is higher than end value ( #12602 )
2021-11-28 18:46:52 +02:00
Delyan Angelov
deaeffc4db
checker: add a check for unused `x << y` expressions (where x != array) ( #12586 )
2021-11-27 07:38:35 +02:00
yuyi
fbe2b5cb58
checker: check argument type error of the generics fn declaration ( #12539 )
2021-11-22 22:39:20 +02:00
yuyi
f37eb6a932
checker: check invalid fn parameter name ( #12540 )
2021-11-22 16:51:58 +02:00
Delyan Angelov
fa995ca537
checker: add an error for `x.method({})` calls, when method expects a struct
2021-11-19 13:30:45 +02:00
zakuro
26fbf1885d
checker: report error for test functions that have parameters ( #12500 )
2021-11-18 08:33:28 +03:00
yuyi
1370516f53
checker: check struct field using 'any' type ( #12489 )
2021-11-17 11:42:05 +02:00
yuyi
2984751a57
checker: fix the argument mismatch of fn call ( #12479 )
2021-11-16 17:19:02 +02:00
yuyi
9565adf597
checker: check invalid map variable name ( #12474 )
2021-11-16 08:42:49 +02:00
yuyi
460f4523aa
checker: check array pop immutable ( #12458 )
2021-11-14 21:00:22 +02:00
yuyi
73e25ccb3c
checker: check generic struct field fn args type mismatch ( #12379 )
2021-11-04 10:18:36 +02:00
yuyi
4bafc5042b
checker: check generic struct field fn args error ( #12373 )
2021-11-03 10:20:39 +02:00
Lucas Jenß
51f5841b6e
checker: do not deref non-pointer types in `fn_signature_using_aliases` ( #12340 )
2021-11-01 02:26:15 +03:00
Lucas Jenß
f801ef5e17
checker: disallow `mut` keyword in right-hand side of assignment ( #12318 )
2021-10-29 12:03:05 +03:00
Delyan Angelov
0ff23eeb74
ci: fix failing assign_expr_channel_push.out
2021-10-27 22:54:41 +03:00
Lucas Jenß
43fbc68f1e
checker: disallow `<-` (channel push) on right-hand side of assignment ( fix #12309 ) ( #12321 )
2021-10-27 17:53:50 +03:00
Delyan Angelov
45c1c1ab41
ci: fix import_symbol_private_err.vv and its .out file (time.since is no longer private)
2021-10-24 22:06:32 +03:00
yuyi
6aca360507
parser: fix checking unexpected name ( #12233 )
2021-10-19 12:27:59 +03:00
05st
fd3a10ab43
checker: fix mut check bypass with for in loops ( #12208 )
2021-10-17 06:41:39 +03:00
yuyi
c9b2f878b3
parser, checker: optimize checking generic struct type mismatch ( #12179 )
2021-10-15 00:11:31 +03:00
Delyan Angelov
9fabf9f20c
checker: check for `x := Abc { f: fn () ? {} }` mismatch, when `f` is `fn ()`
2021-10-11 19:20:41 +03:00
Alexander Ivanov
0386f2bbea
checker: add an interface check for mutability, fixes #1081 , fixes #7038 ( #11963 )
2021-10-11 15:41:31 +03:00
yuyi
1831eccd5e
checker: check generic struct using in non-generic fn ( #12136 )
2021-10-11 02:46:44 +03:00
yuyi
83bc9b35b1
ast: fix checking generic fn call with fntype arg mismatch ( #12132 )
2021-10-10 11:14:19 +03:00
yuyi
093cab6f56
checker: check generics struct init that types mismatch ( fix #12115 ) ( #12120 )
2021-10-09 15:03:37 +03:00
yuyi
0d53705776
v.checker: check fn returning void type ( fix #12076 ) ( #12078 )
2021-10-06 21:04:33 +03:00
05st
86a5e72c74
v.checker: fix return type checking being skipped for mutable method receivers ( #12043 )
2021-10-02 23:26:46 +03:00
Alexander Ivanov
cb149bfa00
checker: show errors for index calls to values which are not functions, fixes #11539 ( #12024 )
2021-10-01 15:17:02 +03:00
Louis Schmieder
f9ceb12e22
checker: fix orm cast check ( #12018 )
2021-09-30 00:43:08 +03:00
Alexander Ivanov
4d0f835548
checker: fix detection of invalid insertions, fixes #3600 ( #11945 )
2021-09-23 11:59:43 +03:00
Rémi
e76be4ba37
checker: temporary error for optional struct fields ( #11293 ) ( #11534 )
2021-09-18 23:22:24 +03:00
Delyan Angelov
5bc6cc9512
v.checker: fix spurious warning for `if x := map_of_sumtypes[k] {}`
2021-09-15 15:42:28 +03:00
Daniel Däschle
be0c54caf9
checker: require or block for sumtype map ( #11089 )
2021-09-10 16:07:39 +03:00
Delyan Angelov
4faa0f8487
v.checker: add checks for `.free()` methods
2021-09-09 09:54:06 +03:00
yuyi
3fd2dd45a4
checker: do now allow type name shadowing ( #11401 )
2021-09-05 18:34:21 +03:00
yuyi
48e65a7bb2
checker: check type in match range ( fix #11337 ) ( #11389 )
2021-09-05 04:50:43 +03:00
yuyi
5181031480
builtin: check array.sort_with_compare() arg mismatch ( #11385 )
2021-09-04 15:02:05 +03:00
yuyi
923ef733c0
checker: disallow array sort with fancy args for now ( #11388 )
2021-09-04 14:34:29 +03:00
yuyi
67ab5b858b
checker: fix checking fn prototype mismatch ( #11369 )
2021-09-03 12:26:46 +03:00
Delyan Angelov
f41939f005
ci: fix deprecations.out (time is now > 2021/08/28 00:00:00)
2021-08-28 13:02:59 +03:00
yuyi
e90a624738
checker: fix generic fn infer variadic parameter with arrays ( #11324 )
2021-08-28 10:32:51 +03:00
yuyi
f257a23313
checker: check non-generic struct init ( #11300 )
2021-08-25 14:40:40 +03:00
yuyi
96398efd2b
checker: check array insert/prepend arguments ( #11295 )
2021-08-24 20:28:05 +03:00
yuyi
0d81d0c0c6
table, checker: fix sumtype array appending aggregate type values ( fix #11197 ) ( #11258 )
2021-08-21 17:18:01 +03:00
yuyi
3d22dc1608
all: fix formating Foo<A,B> to Foo<A, B> ( #11225 )
2021-08-18 17:17:21 +03:00
yuyi
e07678d6f3
checker: check using redundant parentheses ( #11228 )
2021-08-18 13:49:50 +03:00
yuyi
c51f83efba
checker: fix match expr type mismatch ( #11220 )
2021-08-18 08:52:01 +03:00
yuyi
579aa7b1b5
v.checker: fix multi insts of generics fn with generic struct ( #11161 )
2021-08-12 22:58:02 +03:00
Delyan Angelov
a64a4d932c
v.checker: turn `interface field ... must be initialized` to a notice temporarily
2021-08-11 16:39:41 +03:00
Enzo
da53f818df
all: initial support for closures (x64 / linux-only) ( #11114 )
2021-08-10 21:27:15 +03:00
Daniel Däschle
a64b191ce5
checker: forbid multiple pointer yields ( #11105 )
2021-08-09 02:11:53 +03:00
Daniel Däschle
9af65d8830
checker: protect against assigning to a typeless variable ( #11094 )
2021-08-07 18:09:07 +03:00
yuyi
11784279ba
checker: check fn_call().sort() ( fix #11040 ) ( #11056 )
2021-08-04 21:23:22 +03:00
Delyan Angelov
f9c279d11d
v.checker: make calling a deprecated fn an error, 180 days (6 months) after its deprecation date ( #10682 )
2021-08-04 17:41:00 +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
Alexander Medvednikov
80976e640c
vweb: remove init_server() from all examples, tutorials, and tests
2021-08-03 16:03:16 +03:00
Florian Blasius
69f31d8d5c
checker: check int literal to enum cast ( fix #10125 ) ( #10348 )
2021-08-02 07:12:29 +03:00
Uwe Krüger
6068777e03
parser/checker: deduce type of global from initialization expression ( #11005 )
2021-07-31 16:35:19 +03:00
Louis Schmieder
0bb587c8c2
checker: fix defer ident handling & fix defer optional error message ( #10975 )
2021-07-30 20:29:06 +03:00
Delyan Angelov
c31397e17d
tests: fix `v test-self` running locally
2021-07-30 09:26:05 +03:00
Alexander Medvednikov
ec92964bb0
checker: make interface init check a warning for now
2021-07-30 03:32:02 +03:00
Louis Schmieder
7c504920e1
checker: fix negative values for unsigned integers ( #10976 )
2021-07-30 03:27:59 +03:00
Daniel Däschle
6fa8e4269e
checker: force interface init ( #10910 )
2021-07-30 03:18:20 +03:00
yuyi
57f30668e3
v.checker: fix `a.map(voidfn(it))` ( #10985 )
2021-07-29 11:43:56 +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
zakuro
3979e5c5ff
v.parser: show better position for sort struct init warning ( #10939 )
2021-07-24 20:41:59 +03:00
Daniel Däschle
3be8ef3b5a
checker: check duplicated field and method (only for fields that are anon-fns for now) ( #10927 )
2021-07-24 16:06:09 +03:00
Louis Schmieder
1999850f88
checker: disallow labels in defer statements ( #10901 )
2021-07-23 22:35:05 +03:00
Daniel Däschle
a2de3ffcdb
checker: check if condition optional ( #10921 )
2021-07-23 08:52:51 +03:00
Daniel Däschle
f40090e8ff
checker: fix break inside anon fn ( #10914 )
2021-07-23 01:13:36 +03:00
Daniel Däschle
12884e9eb7
checker: disallow invalid pointer arithmetic ( #10888 )
2021-07-21 23:39:49 +03:00
shadow
591af866ba
checker: prohibit returning a fixed array ( #10882 )
2021-07-21 11:39:22 +03:00
Daniel Däschle
f6402eae10
checker: check `match` with type alias ( #10863 )
2021-07-20 15:06:36 +03:00
Daniel Däschle
ad3835b598
parser: deprecate short struct init ( #10842 )
2021-07-20 11:17:08 +03:00
yuyi
cf82bd3407
checker: fix fixed array with const unint type size ( fix #10826 ) ( #10853 )
2021-07-19 12:44:03 +03:00
shadowninja55
eb65ad078d
checker: prohibit passing non-lvalue as `voidptr` ( #10838 )
2021-07-18 15:04:16 +03:00
yuyi
8b8f496762
checker: fix generics fn return generic interface ( fix #10818 ) ( #10831 )
2021-07-18 08:55:19 +03:00
shadowninja55
0d587d3580
checker: prohibit using non-lvalue as mut receiver ( #10790 )
2021-07-16 13:03:40 +03:00
shadowninja55
7c0be629ab
checker: prohibit fixed array to fixed array assignment where elem_typ is a pointer ( #10775 )
2021-07-15 08:38:03 +03:00
spaceface
6e942bf4c2
v: initial support for generic interfaces and sumtypes ( #10795 )
2021-07-15 08:29:13 +03:00
shadowninja55
de6918b8c9
checker: fix hex literal overflow check ( #10782 )
2021-07-14 22:33:02 +03:00
crthpl
5089eb4a84
parser: fix pointer cast expressions hack ( #10777 )
2021-07-13 12:01:24 +03:00
shadowninja55
7694afa44c
checker: check that `mut` args are lvalues ( #10779 )
2021-07-13 08:06:39 +03:00
shadowninja55
02f0a30555
checker: ensure hex character literals don't overflow in strings ( #10725 )
2021-07-12 22:37:31 +03:00
yuyi
938e9b61b5
parser: check undefined variables in assign_stmt ( #10755 )
2021-07-11 19:09:35 +03:00
yuyi
c65bfc122d
checker: check assigning array_init with no type ( #10757 )
2021-07-11 18:52:01 +03:00
yuyi
71e8237483
parser: check undefined variables in array inits ( #10746 )
2021-07-11 03:49:07 +03:00
shadowninja55
a1088275b9
checker: prohibit illegal types in string interpolation literals ( #10705 )
2021-07-10 00:00:12 +03:00
shadowninja55
aa5b609d95
checker: check integer literals ( #10706 )
2021-07-09 14:02:10 +03:00
Alexander Medvednikov
9ba6c23d5c
checker: casted => cast
2021-07-08 05:11:12 +03:00
shadowninja55
806d6172cb
checker: prohibit casting `void` ( #10690 )
2021-07-07 21:59:58 +03:00
shadowninja55
f070222124
checker: prohibit option and `IError` in multi-return ( #10689 )
2021-07-07 11:57:10 +03:00
yuyi
c4b5805890
checker: check generic method call args mismatch ( #10669 )
2021-07-05 10:14:00 +03:00
Delyan Angelov
972542d6ee
checker: `[noreturn]` part 2 (cleanup) ( #10667 )
2021-07-05 05:05:37 +03:00
shadowninja55
da9c75f2ca
checker: string != IError ( #10665 )
2021-07-05 05:05:08 +03:00
Delyan Angelov
6aecda3be8
all: support `[noreturn] fn abc() { for{} }`, mark panic/1 and exit/1with it too. ( #10654 )
2021-07-04 20:24:19 +03:00
yuyi
b0b4b8e65b
checker: fix missing check generic fn call args ( fix #10649 ) ( #10657 )
2021-07-04 19:15:15 +03:00
shadowninja55
8c43d2450f
vweb: prohibit invalid parameter types in vweb app methods ( #10631 )
2021-07-04 18:37:09 +03:00
Delyan Angelov
a33a2ba095
checker: check for `x := []Interface{len: 9}` without `init:`
2021-07-02 08:37:49 +03:00
yuyi
1e896c7020
checker: check optional interface type mismatch ( #10617 )
2021-06-30 08:54:28 +03:00
shadowninja55
f029f7e897
checker: prohibit `char.str()`, add tests ( #10615 )
2021-06-30 08:16:31 +03:00
shadowninja55
06a6a8e199
checker: check for empty branches in match expressions ( #10593 )
2021-06-28 19:32:28 +03:00
shadowninja55
ea3983a91b
checker: require .sort() body for some types ( #10550 )
2021-06-27 17:17:03 +03:00
shadowninja55
eb5afb7403
checker: prohibit selective const imports ( #10574 )
2021-06-26 18:09:52 +03:00
Delyan Angelov
19dca026a9
checker: bugfix for `__global ( cpu_get_id fn () u64 ) ... cpu_get_id()`
...
Support new vlib/v/checker/tests/globals_run/ folder, for .vv files
that will be run with `-enable-globals run`, and the results will be
compared with their matching `.run.out` files.
Add regression tests.
2021-06-26 01:23:50 +03:00
yuyi
4bfe76123a
generics: fix generic fn type mismatch of returning a generic struct ( #10553 )
2021-06-24 12:47:36 +03:00
Delyan Angelov
dd6591b2f5
ci: fix `[if xyz ?]` usages
2021-06-22 10:46:43 +03:00
yuyi
da4b6b934d
checker: fix map assign array of interface values ( #10532 )
2021-06-21 19:24:42 +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
c58b04bcbf
checker: implement if smartcast multi conds (part 2) ( #10487 )
2021-06-17 12:27:31 +03:00
yuyi
1dca06495d
checker: implement if smartcast multi conds (part 1) ( #10477 )
2021-06-16 19:16:15 +03:00
yuyi
ffcc6cf6d2
checker: fix `for in mut val` for floats ( #10470 )
2021-06-16 04:04:31 +03:00
yuyi
bdc8586ddd
checker, cgen: fix `for in mut val` ( #10444 )
2021-06-15 04:43:10 +03:00
pancake
3b6045865b
checker: improve error message when using fields as methods ( #10367 )
2021-06-12 15:15:25 +03:00
Alexander Medvednikov
6761697088
checker: do not allow dereferencing function calls on the left side of an =
2021-06-11 16:07:41 +03:00
yuyi
7878bad95e
checker: check array type mismatch of array append ( #10405 )
2021-06-10 21:34:36 +03:00
shadowninja55
10b9ea3258
checker: add an error for assigning to array slices `a[..2] = [0, 0]` ( #10412 )
2021-06-10 19:18:14 +03:00
Delyan Angelov
115edff7e9
v.checker: restrict `x T` in `fn test<T>(x T){ unsafe{ println(x[0]) }`, but allow `x &T`
2021-06-09 12:07:08 +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
0615f2e236
checker: check generic method receivers with no type parameter ( #10374 )
2021-06-07 12:11:29 +03:00
Lukas Neubert
3f00ff465b
checker: check or block inside println calls ( #10354 )
2021-06-05 23:01:58 +03:00
Lukas Neubert
dc431a3c47
checker: prevent enum value duplication check bypass ( #10287 )
2021-06-05 12:28:17 +03:00
Ehsan Afzali
672bb6ca7f
parser: fix required function members in struct ( #10299 )
2021-06-03 02:55:58 +03:00
yuyi
1747e546bf
parser, checker: check assert optional ( #10319 )
2021-06-02 20:38:26 +03:00
Lukas Neubert
09e3099580
checker: error on direct map alias init ( #10282 )
2021-05-31 12:14:37 +03:00
Delyan Angelov
b29bc9cdce
checker: fix panic on `fn abc()?{ return error() }`
2021-05-29 23:46:56 +03:00
yuyi
6e493ca8ca
checker: check index_expr or_expr types mismatch ( #10224 )
2021-05-28 11:40:59 +03:00
yuyi
0e6f0c1de0
checker: check generic struct init without type parameter ( #10193 )
2021-05-25 06:15:05 +03:00
yuyi
eb5ac23988
checker: fix match expr with if expr ( fix #10177 #10178 ) ( #10179 )
2021-05-23 17:59:57 +03:00
Lukas Neubert
f7cd95472a
checker: clarify duplicate import error ( #10150 )
2021-05-21 06:12:38 +03:00
yuyi
492d264d08
checker: fix generic structs init ( #10134 )
2021-05-20 09:18:51 +03:00
crthpl
0d44c8857e
checker: fix position of unknown type errors ( #10110 )
2021-05-16 04:51:23 +03:00
Uwe Krüger
7bfd89567b
shared: support `lock` on SelectorExpression ( #10105 )
2021-05-15 04:34:27 +03:00
Alexander Medvednikov
0f28ff4c8d
tests: a minor grammar fix
2021-05-11 09:47:09 +03:00
Alexander Medvednikov
dc034d9b16
vweb: make thread safe; checker: `$if T is Interface {`
2021-05-11 09:30:18 +03:00
Delyan Angelov
21f207e781
v.checker: use more concise error messages (remove please)
2021-05-08 22:32:18 +03:00