El Koulali András
262ef7598d
checker: fix unchecked optional in match condition ( #10041 )
2021-05-08 13:33:13 +03:00
Uwe Krüger
d26ac5692e
all: various fixes for [heap]/auto-heap handling ( #10033 )
2021-05-07 15:58:48 +03:00
yuyi
7c58dfb88b
checker: fix for_in mut var unused warning ( #10008 )
2021-05-05 14:11:32 +03:00
zakuro
92a22e9ec5
ast: fix bug where fn_signature return wrong str for variadic arg ( #9993 )
2021-05-04 12:33:24 +03:00
yuyi
1d045e5496
checker: check generics fn called outside of generic fn ( #9984 )
2021-05-03 19:50:08 +03:00
yuyi
ddc003380c
checker: check generics fn that return generic struct ( #9979 )
2021-05-03 19:48:54 +03:00
yuyi
035fd052d1
checker: check generic struct declaration ( fix #9974 ) ( #9978 )
2021-05-03 19:47:02 +03:00
Enzo
fb7ddcd4c9
checker: fix looking for unprefixed `os` functions ( #9968 )
2021-05-02 21:46:12 +03:00
yuyi
ae22967d1d
parser: ensure generic function declaration specifies type names ( fix #9959 ) ( #9967 )
2021-05-02 19:30:39 +03:00
Delyan Angelov
4b818fa2be
v: implement interface embedding ( #9935 )
2021-05-02 03:00:47 +03:00
crthpl
6945f987cf
checker: fix sumtype comparison and sumtype in itself ( #9917 )
2021-04-29 09:04:02 +03:00
Enzo
4f246222b0
v: replace `--enable-globals` with `-enable-globals` ( #9898 )
2021-04-28 07:44:28 +03:00
Delyan Angelov
cafe382424
vweb: update references to old .init_once() and .init() methods to .init_server() and .before_request()
2021-04-26 19:38:13 +03:00
Uwe Krüger
3c0a368af3
all: automatically move (some) referenced objects to heap ( #9873 )
2021-04-25 21:40:38 +03:00
Delyan Angelov
44902b5aba
ci: fix tests output files after 7f5c3cc
2021-04-25 09:31:12 +03:00
Alexander Medvednikov
7f5c3cc1f8
checker: do not allow modifying consts via mutable refs
2021-04-24 14:08:50 +03:00
Enzo
b4e4d48bbd
checker: make sure negation is only used with numeric types ( #9854 )
2021-04-23 15:18:56 +03:00
Alexander Medvednikov
c7a6d28e13
all: improve unused variable warning (fix `x = 1`, `x += 1` etc)
2021-04-23 13:33:48 +03:00
Lukas Neubert
aa40dfc1de
checker: check __global type ( #9804 )
2021-04-23 12:28:08 +03:00
zakuro
7443179cc8
checker: make use of private enum from outside module an error. ( #9821 )
2021-04-22 07:07:56 +03:00
yuyi
7abf59710b
checker: check generic fn called no arg without generic names ( #9825 )
2021-04-20 21:36:21 +03:00
Delyan Angelov
9d8bda9eaf
v.ast, v.checker: fix absent 'missing return' warning, when a function ended with a t.panic() call
2021-04-20 11:49:06 +03:00
Lukas Neubert
70c651ff17
all: make __global behave consistent with const ( #9711 )
2021-04-19 17:07:47 +03:00
Uwe Krüger
8ab0d42b5f
checker: check argument for `chan.try_push/pop()` ( #9798 )
2021-04-19 11:41:21 +03:00
Alexander Medvednikov
7df996e5e5
checker: fix fn_args test
2021-04-15 06:51:48 +03:00
Alexander Medvednikov
a18f85c8cd
vweb: init_once() => init_server(); init() => before_request()
2021-04-15 06:27:24 +03:00
Delyan Angelov
345868853e
checker: change wording of the error message for complex boolean expressions
2021-04-14 19:55:52 +03:00
crthpl
14434cc86a
all: bare metal support (fix `-freestanding`) ( #9624 )
2021-04-14 07:50:50 +02:00
Enzo
66294e359a
checker: add immutable_builtin_modify.vv test ( #9702 )
2021-04-13 06:55:41 +03:00
yuyi
c3ccb58450
checker: check generics variadic arg mismatch ( #9700 )
2021-04-13 02:06:24 +02:00
ka-weihe
491fe49af6
map: rename methods (part 2) ( #9698 )
2021-04-12 16:22:02 +02:00
Ned Palacios
6948419595
parser: fix InterfaceDecl's position ( #9649 )
2021-04-09 17:18:22 +02:00
Caian R. Ertl
ddb2e72301
checker: do not allow module aliases started with '_' (underscore) ( #9588 )
2021-04-09 13:14:27 +03:00
spaceface
4feb09fa5b
checker, cgen: add sumtype-like smartcasting capabilites to interfaces ( #9256 )
2021-04-09 11:00:05 +03:00
ka-weihe
bca9409192
map: wrap up delete fix ( #9626 )
2021-04-07 14:12:12 +02:00
Alexander Medvednikov
ff9837386a
Revert "map: wrap up delete fix ( #9601 )"
...
This reverts commit cbcc0d34b5
.
2021-04-07 03:40:43 +03:00
ka-weihe
cbcc0d34b5
map: wrap up delete fix ( #9601 )
2021-04-06 15:57:08 +02:00
Conner
ab77453f5f
checker: fix spelling in 'inferred generic type is ambiguous:' check ( #9593 )
2021-04-05 18:21:09 +03:00
Ned Palacios
07b1dc66dd
ast, parser: add additional pos info for FnDecl and InterfaceDecl nodes ( #9603 )
2021-04-05 18:14:21 +03:00
Alexander Medvednikov
57e6138a61
all: remove byteptr and charptr; replace them with &byte and &char
2021-04-04 17:43:32 +03:00
Conner
9ba8d02a5a
generics: add more checks ( #9539 )
2021-04-02 16:27:54 +02:00
Ned Palacios
1bb48c3577
ast, parser: patches for VLS ( #9562 )
2021-04-02 16:26:37 +02:00
Daniel Däschle
d8efe249ce
checker: add check for call expr in map/filter ( #9559 )
2021-04-02 01:56:51 +02:00
Alexander Medvednikov
7385f8e56b
all: a massive merge of ast and table modules
2021-04-02 01:57:09 +03:00
zakuro
0d1714cb0d
checker: check opt call in more places ( #9538 )
2021-04-01 11:49:13 +02:00
Alexander Medvednikov
6f318be96c
checker: do not allow nil sum types init
2021-03-31 11:13:52 +03:00
Swastik Baranwal
b40d06ec1e
cgen: fix operator overloading for array/map aliases ( #9529 )
2021-03-30 11:39:54 +02:00
yuyi
6143bd6232
generics: check generic_fn called arg mismatch ( #9510 )
2021-03-30 09:36:45 +02:00
Delyan Angelov
a38fc89150
ci: fix the content of function_arg_mutable_err.out
2021-03-26 15:06:29 +02:00
Delyan Angelov
7e6c511e06
ci: fix the content of mut_int.out
2021-03-26 15:02:30 +02:00
Alexander Medvednikov
6463dfca29
Revert "Revert "builder: create the binary in the current directory if -o is not provided""
...
This reverts commit f2b73fe3ca
.
2021-03-23 14:49:09 +03:00
Delyan Angelov
f2b73fe3ca
Revert "builder: create the binary in the current directory if -o is not provided"
...
This reverts commit 9ae64e7fce
.
2021-03-23 13:27:26 +02:00
Alexander Medvednikov
9ae64e7fce
builder: create the binary in the current directory if -o is not provided
2021-03-23 12:31:02 +03:00
Delyan Angelov
a00c80b98f
v: support compiler notices. Use them for `[deprecated_after: '2021-05-01']` tags
...
Compiler notices are like warnings, with these differences:
a) notices use a different color.
b) notices use a different label.
c) notices do not prevent compilation with -prod.
(warnings are converted to errors with -prod)
2021-03-22 19:59:00 +02:00
zakuro
0258482caf
cgen: auto eq method for sumtype ( #9408 )
2021-03-22 06:39:07 +01:00
zakuro
f9bbc119aa
checker: make optional arguments in func call an error ( #9362 )
2021-03-20 17:27:16 +01:00
zakuro
4ae2c22c18
checker: make optional array element an error ( #9343 )
2021-03-18 15:11:51 +02:00
Alexander Medvednikov
88097125f7
checker: remove "use `++` instead of `+= 1`"
2021-03-18 01:37:36 +03:00
zakuro
6cfc2c217b
checker: fix #9330 ( #9342 )
2021-03-17 20:57:14 +02:00
crthpl
fafb035fb5
all: reimplement inline assembly ( #8645 )
2021-03-17 01:43:17 +01:00
yuyi
dd9f9c2718
checker: check array.sort(a < b) ( #9321 )
2021-03-17 01:42:51 +01:00
Nick Treleaven
446631ceb5
checker: fixed array cannot implicitly convert to fooptr (again) ( #9302 )
2021-03-15 15:55:07 +02:00
Uwe Krüger
9d168895ed
checker: check write access to shared elements of `struct` and `array` ( #9314 )
2021-03-15 15:54:06 +02:00
Alexander Medvednikov
167dcc415d
tests: fix a generic init test
2021-03-13 18:46:02 +03:00
Alexander Medvednikov
2f1810634e
checker: do not allow direct initialization of builtin types (s := string{})
2021-03-13 18:20:46 +03:00
Nick Treleaven
9db8a61b92
checker: disallow array append in an expression ( #9265 )
2021-03-12 16:09:01 +01:00
Uwe Krüger
dbbf96702b
checker: require `shared a` to be `rlocked` to read `a[i]` or `a.e` ( #9266 )
2021-03-12 16:08:39 +01:00
Nick Treleaven
e229d0c1c3
checker: improve error message for invalid property ( #9263 )
2021-03-12 14:18:52 +02:00
yuyi
9fbb139e29
checker: check map copy error in fn_mut_arg ( #9242 )
2021-03-11 15:19:36 +01:00
Miccah
f26d2f02b7
ast, cgen, checker, parser: support method arguments in comptime $for ( #9208 )
2021-03-11 15:04:34 +02:00
yuyi
a547e889af
checker: check array literal modify error ( #9243 )
2021-03-11 14:57:04 +02:00
Delyan Angelov
5a231326d7
parser: improve syntax errors in module declarations
2021-03-11 10:42:36 +02:00
StunxFS
6a7ef4f5b2
v.scanner: fix position of hash statements ( #9222 )
2021-03-10 20:23:17 +02:00
yuyi
a187a4abb3
checker: check non-optional fn return or_block ( #9227 )
2021-03-10 12:53:23 +01:00
Delyan Angelov
0d2bb714bc
checker: disallow `x := [13]SumType{}` too
2021-03-10 11:07:36 +02:00
spaceface
f1469a8761
checker: allow accessing fields common to all sumtype members ( #9201 )
2021-03-09 19:16:18 +02:00
yuyi
10c9f61d61
checker: check empty map invalid syntax ( fix #9162 ) ( #9186 )
2021-03-08 19:48:17 +02:00
yuyi
1b47e2953d
checker: check undefined ident of struct ( #9164 )
2021-03-07 14:09:38 +01:00
Delyan Angelov
f1c4e962f4
tests: add tests for `-d debug`, `-cg`, `-g` in combination for `[if debug]fn` etc
2021-03-07 12:42:30 +02:00
Delyan Angelov
849cde245c
v: support dump(expr) ( #9160 )
2021-03-06 18:09:28 +01:00
joe-conigliaro
2d73411396
checker: define missing C fn args & check C & JS args ( #8770 )
2021-03-05 17:41:11 +03:00
Delyan Angelov
0f042124cb
tests: support `fn test_fn() ? { opt()? }`
2021-03-05 14:18:21 +02:00
zakuro
4f02da00ba
checker: check arguments count of sort ( #9105 )
2021-03-04 15:22:47 +02:00
zakuro
9bb073580e
checker: replace checking type exists with c.ensure_type_exists ( #9100 )
2021-03-04 12:28:48 +02:00
Nick Treleaven
412c17ccda
checker: check private built-in methods are not accessible ( #9062 )
2021-03-03 11:12:50 +02:00
zakuro
c74fa9e471
checker: correct pos for type error of `if v is interface` ( #9080 )
2021-03-03 09:23:39 +02:00
Joe Conigliaro
a50f2ca5e8
interfaces: error on implemention of own interface method & on duplicate normal methods
2021-03-03 15:02:10 +11:00
Delyan Angelov
d0e8e8f178
checker: add error for `print( voidfn() )`
2021-03-02 17:54:38 +02:00
Nick Treleaven
dc04c3196b
builder: fix detecting duplicate functions ( #9033 )
2021-03-01 21:38:31 +01:00
zakuro
ce115dcbe0
builtin: correct error underline for unicode wide chars ( #9010 )
2021-03-01 00:18:02 +01:00
Uwe Krüger
e937d6249c
cgen: fix various issues concerning optionals ( #9021 )
2021-02-28 23:21:03 +01:00
spaceface
d63b7bc35a
all: update repo to use the new error handling syntax ( #8950 )
2021-02-28 23:20:21 +03:00
Delyan Angelov
e354dcefc2
fmt: fix support for `mut static x := 42`
2021-02-28 19:40:21 +02:00
Delyan Angelov
4076e8eaa0
tmpl: add a tmpl_all_in_one_folder.vv test; fix for static_vars_in_translated_mode.vv
2021-02-28 19:14:19 +02:00
Delyan Angelov
e564269477
ci: fix static_vars_in_translated_mode.vv
2021-02-28 18:55:25 +02:00
Nick Treleaven
a1244a9f5f
checker: check that the module `init` fn, should have no params, and no return type ( #8988 )
2021-02-27 11:11:20 +02:00
Uwe Krüger
f67bff1696
all: support `thread` handles and `wait()` for functions returning optionals ( #8990 )
2021-02-27 10:16:55 +02:00
Nick Treleaven
8874379c48
checker: check left selector expression in `$if left is right` ( #8987 )
2021-02-26 21:51:35 +01:00
Nick Treleaven
4ad95cfeaf
checker: check types with $for/$if introspection ( #8984 )
2021-02-26 15:26:50 +01:00
Nick Treleaven
59d4d0ef1d
checker: detect unknown type to iterate with $for ( #8971 )
2021-02-26 08:28:19 +02:00
Nick Treleaven
3a082621c9
checker: add a check for casting to an unknown type ( #8968 )
2021-02-26 08:26:36 +02:00
Nick Treleaven
c03798e390
checker: disallow implicit conversion from fixed array to fooptr ( #8823 )
2021-02-26 00:28:47 +01:00
Nick Treleaven
57d1b5b74d
checker: show position for variadic/shared/method argument errors ( #8939 )
2021-02-24 19:35:32 +01:00
yuyi
7a6fd359d0
checker: check fn_variadic with array_decompose ( #8894 )
2021-02-22 14:26:54 +01:00
Nicolas Sauzede
f67a4c3ee0
checker, cgen: allow | between bitfield enum values, autogenerate a more specific .str method for them too ( #8856 )
2021-02-20 21:51:54 +02:00
Nick Treleaven
28088cc494
checker: check fixed array index when it's a literal ( #8831 )
2021-02-20 20:18:47 +02:00
Nick Treleaven
1e71c0eaca
checker: warn for deprecated methods too ( #8861 )
2021-02-20 19:25:54 +02:00
Delyan Angelov
8327c9afc1
checker: support a custom `[deprecated: 'message']`
2021-02-20 17:35:44 +02:00
yuyi
5e1159e4c3
checker: change non-const size of fixed array error message ( #8850 )
2021-02-20 12:14:44 +01:00
Nick Treleaven
bcb35e15f9
checker: only allow passing integer *literal* to non-integer pointer method parameter ( #8825 )
2021-02-19 14:14:40 +02:00
zakuro
6e262b5d84
checker: improve error position of infix expr ( #8828 )
2021-02-19 12:38:41 +02:00
Swastik Baranwal
ad162cd6fc
checker: stricter `unknown type` checks, show better suggestions ( #8816 )
2021-02-19 11:23:13 +02:00
zakuro
1891ebf22d
scanner: print multibyte char for invalid char error ( #8804 )
2021-02-18 15:43:39 +02:00
yuyi
a119affeba
cgen: check unknown sizeof type ( #8815 )
2021-02-18 09:38:57 +02:00
Nick Treleaven
0f8edd918a
checker: disallow `unsafe` map copy ( #8720 )
2021-02-17 05:19:25 +01:00
Uwe Krüger
0520b755f4
checker/cgen: support `print*()`, `.str()` and '$x' for `shared` ( #8771 )
2021-02-16 12:40:13 +01:00
Nick Treleaven
c057b45bb1
checker: check argument count for C fn with attribute ( #8728 )
2021-02-15 18:56:26 +02:00
zakuro
2911f03627
checker: reject method that have multi-value type receiver ( #8696 )
2021-02-15 17:55:54 +02:00
Nick Treleaven
629d43caf5
checker: warn when using `goto` outside of `unsafe` ( #8741 )
2021-02-15 15:48:24 +02:00
zakuro
e534b4397d
checker: report correct position for non-bool cond error ( #8735 )
2021-02-14 19:19:41 +01:00
zakuro
e4f15605c0
checker: reject void type condition ( #8737 )
2021-02-14 07:33:24 +01:00
Uwe Krüger
374739b804
all: rename `[ref_only]` -> `[heap]` ( #8718 )
2021-02-13 16:52:01 +02:00
Uwe Krüger
40066a5daa
checker: obey [ref_only] tag, allow embedding in other ref struct ( #8707 )
2021-02-13 00:47:37 +01:00
glebbash
aa548f45ea
docs: fix functions in array/map example ( #8695 )
2021-02-12 21:10:54 +02:00
Joe Conigliaro
c904c9178d
checker: support ParExpr for trying to take address errors & simplify messages
2021-02-13 02:49:22 +11:00
Nick Treleaven
84a16d8684
map: add `move` method ( #8660 )
2021-02-12 02:02:33 +02:00
Nick Treleaven
375efb0953
checker: improve errors for `return` count mismatch ( #8686 )
2021-02-12 01:47:11 +02:00
Nick Treleaven
d37fb5641f
parser: improve printing of unexpected tokens ( #8654 )
2021-02-09 17:07:30 +02:00
zakuro
8ae23cd89e
parser: make `v := f(v)' an undefined variable error ( #8634 )
2021-02-08 16:55:01 +02:00
Uwe Krüger
cf230644b6
fmt: enable shared return types ( #8614 )
2021-02-06 21:25:06 +01:00
yuyi
1b6efebac7
all: fix map = map2 assignment ( #8581 )
2021-02-06 03:06:34 +01:00
zakuro
6b776e686e
parser: display correct position on boolean expression error ( #8563 )
2021-02-05 16:52:35 +01:00
zakuro
a94228bb16
checker: make `[] == ArrayAlias([])` an error ( #8562 )
2021-02-05 16:49:40 +01:00
pancake
27239db427
builder: show file:line when import fails ( #8537 )
2021-02-04 09:09:54 +02:00
Nick Treleaven
de37b52d4b
checker: check goto label exists ( #8523 )
2021-02-03 15:20:10 +01:00
Swastik Baranwal
7ec116d588
all: only allow defining `==` and `<` and auto generate `!=`, `>`, `>=` and `<=` ( #8520 )
2021-02-03 15:18:38 +01:00
Uwe Krüger
9dcf673216
all: make `lock` and `rlock` dead lock free :-) ( #8534 )
2021-02-03 15:16:52 +01:00
yuyi
b40252bd97
checker: merge array_filter_fn_err tests ( #8506 )
2021-02-03 11:27:11 +02:00
yuyi
9bcb57eb1f
checker: merge array_map_fn_err tests ( #8507 )
2021-02-03 11:26:26 +02:00
zakuro
e30e794884
checker: add check for using a private const in another module ( #8501 )
2021-02-03 10:17:13 +02:00
Uwe Krüger
df0520b43a
checker,cgen: make `shared` behave like `mut` inside `lock` - and like non-mut inside `rlock` ( #8526 )
2021-02-03 01:20:19 +02:00
Daniel Däschle
d477e525bb
checker/gen: fix generic struct init ( #8322 )
2021-02-03 00:42:00 +11:00
Nick Treleaven
79e9084f7b
checker: allow `Struct{...expr}` where `expr` is another struct type ( #8495 )
2021-02-01 20:08:25 +01:00
Nick Treleaven
c537578481
checker: ensure `expr` is an lvalue with `Struct{...expr` ( #8489 )
2021-02-01 15:18:03 +01:00
Larpon
d25825df57
all: support compile time `$env('ENV_VAR')` ( #8456 )
2021-01-31 19:22:42 +02:00
Nick Treleaven
f992099726
checker: check s.$method(arg) argument is []string ( #8455 )
2021-01-31 15:28:23 +01:00
Nick Treleaven
64d12cdc8d
checker: check number of C function arguments for some cases ( #8444 )
2021-01-30 18:33:36 +01:00
Nick Treleaven
849bc6c3d8
tests: fix weird CI failure with error details ( #8449 )
2021-01-30 18:53:39 +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
Nick Treleaven
c0685eeefc
parser: add warning for s.$field.name without brackets ( #8411 )
2021-01-30 12:56:10 +01:00
Delyan Angelov
760b4c37b9
all: support _test.vv files (to test _test.v errors/checks too)
2021-01-30 10:42:18 +02:00
Delyan Angelov
948f63b507
checker,builder: rename `details:` to `Details:`
2021-01-30 10:20:09 +02:00
Swastik Baranwal
e03ece2a4b
checker: check the fn decl for anon fns too ( #7529 )
2021-01-29 23:11:05 +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
zakuro
2a32dac40d
checker: fix panic when calling generic function with too few args ( #8416 )
2021-01-29 20:14:22 +02:00
Nick Treleaven
d012f2713b
checker: improve errors with compile-time field access ( #8373 )
2021-01-29 00:45:00 +01:00
spaceface
4aee997689
checker: make implementing an interface with another interface an error ( #8398 )
2021-01-29 00:41:59 +01:00
yuyi
1be7cc14d3
checker: check duplicate of a const name ( #8396 )
2021-01-28 18:34:55 +01:00
yuyi
684d2e6dbf
checker: merge ambiguous_function_call tests ( #8388 )
2021-01-28 15:53:54 +02:00
Uwe Krüger
0afe36e153
checker: fix receiver pos for single letter type error message ( #8393 )
2021-01-28 15:20:07 +02:00
Alexander Medvednikov
d86cb67eda
checker: add a test for the single letter receiver
2021-01-28 11:13:51 +01:00
Alexander Medvednikov
36e75e5208
Revert "parser: fix panic when single letter receiver parsed ( #8381 )"
...
This reverts commit 93b0d8ca64
.
2021-01-28 10:59:04 +01:00
Daniel Däschle
93b0d8ca64
parser: fix panic when single letter receiver parsed ( #8381 )
2021-01-28 10:56:43 +01:00
zakuro
8162396783
checker: deny multi-value in a singe-value context ( #8328 )
2021-01-27 23:10:51 +02:00
Enzo
2b30c48770
checker: fix ctdefine check in non-main modules ( #8332 )
2021-01-27 13:54:33 +01:00
Swastik Baranwal
17921f4171
checker: add checks for optional selector_expr ( #8330 )
2021-01-27 13:53:20 +01:00
yuyi
7a5722c885
parser: check assign_stmt of undefined variable ( #8366 )
2021-01-27 13:52:10 +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
zakuro
3959ba5751
checker: make a calling no-body function a checker error ( #8265 )
2021-01-26 11:19:48 +01:00
Delyan Angelov
a5b10b5539
parser: improve the error message for unexpected keywords
2021-01-25 15:29:07 +02:00
Delyan Angelov
94fd3ff431
checker: remove the 'in module main cannot be declared public' error/warning
2021-01-25 12:55:00 +02: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
Alexander Medvednikov
12ff1c2702
doc: document the new const rule
2021-01-24 10:23:52 +01:00
Alexander Medvednikov
80e6b090ea
checker: remove an obsolete const test
2021-01-24 10:17:36 +01:00
yuyi
b8857baa98
parser: fix map_init position ( #8293 )
2021-01-23 13:33:19 +01:00
yuyi
5ee3fecf60
checker: check for mut val in immutable obj ( #8285 )
2021-01-23 10:40:17 +01:00
zakuro
9812230847
checker: make the no-body main function a checker error ( #8211 )
2021-01-23 10:30:26 +02:00
Louis Schmieder
e06e8b10cd
orm: fix empty struct and simplify ( #8246 )
2021-01-22 23:28:26 +01:00
Delyan Angelov
b10b76bb0d
parser: remove the 'non-string keys are work in progress' warning
2021-01-22 12:25:17 +02: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
zakuro
1b09954622
parser: improve the position of mut receiver warning / error ( #8240 )
2021-01-22 09:38:37 +02:00
zakuro
522d875489
checker: make it an error, to use ident outside of anon fn ( #8232 )
2021-01-22 09:24:49 +02:00
Louis Schmieder
6b1956fb60
checker: fix warning at comptime call ( #8248 )
2021-01-21 21:36:11 +02:00
zakuro
29b3077ea1
checker: make negative literal index a checker error ( #8242 )
2021-01-21 13:27:16 +02:00
Louis Schmieder
4045ec1ca8
checker: remove vweb unused vars ( #8180 )
2021-01-21 11:09:19 +01:00
zakuro
0c249fa040
parser: improve anon fn pos ( #8210 )
2021-01-21 11:01:40 +01:00
yuyi
190bb38087
checker: check fixed array size ( #8224 )
2021-01-20 23:17:49 +02:00
Delyan Angelov
d9532eda30
checker: error on a.slice(x,y) outside `builtin`
2021-01-19 15:55:52 +02:00
Tim Basel
129eee346b
fmt: keep single empty lines ( #8189 )
2021-01-19 14:49:40 +01:00
Swastik Baranwal
6f1ae65811
parser: add a warning for only else branch in match ( #8185 )
2021-01-18 18:31:36 +02:00
Swastik Baranwal
334b66b311
checker/cgen: add checks and fix cgen for [typedef] for C structs ( #8169 )
2021-01-17 17:18:07 +02:00
Swastik Baranwal
ef627c9d21
checker: improve message and positioning for operator overloading ( #8133 )
2021-01-17 03:37:44 +01:00
Swastik Baranwal
0ca36aafe2
cgen: allow assignment operators for type aliases ( #8086 )
2021-01-15 02:27:19 +01:00
Nick Treleaven
c80cc917c7
checker: check casting struct -> interface; disallow casting struct -> interface pointer ( #8110 )
2021-01-15 01:20:58 +01:00
Nick Treleaven
127503c77d
checker: disallow indexing a voidptr ( #8109 )
2021-01-14 20:51:43 +02:00
Nick Treleaven
890fb2d09d
checker: show signature for interface method on error ( #8111 )
2021-01-14 20:50:06 +02:00
Nick Treleaven
0f2a770b9c
checker: improve errors for interface method compatibility ( #8097 )
2021-01-13 23:44:29 +01:00
Swastik Baranwal
1e853b0efc
cgen: implement argument operator overloading ( #8067 )
2021-01-13 03:31:14 +01:00
yuyi
03a0534483
all: change fixed array init from `[1,2,3]!!` to `[1,2,3]!` ( #8068 )
2021-01-13 03:28:53 +01:00
Daniel Däschle
3289dff7ff
checker: require explicit return none ( #8060 )
2021-01-12 11:43:55 +01:00
Swastik Baranwal
5a1699dec2
checker: add more checks for operator overloading ( #8030 )
2021-01-12 04:37:20 +01:00
Uwe Krüger
5f95dd54bd
builtin: rename `any_*` -> `*_literal` - 2. part ( #8032 )
2021-01-11 22:58:15 +01:00
yuyi
a1c67232d0
checker: fix duplicate variable name ( fix #265 ) ( #7982 )
2021-01-10 21:41:29 +01:00
yuyi
a97ed55a09
checker: check for an unknown struct name ( fix #8007 ) ( #8010 )
2021-01-10 21:16:53 +02: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
Nick Treleaven
141b0cb882
checker: fix warning & allow assigning to a union field without unsafe ( #7970 )
2021-01-09 01:32:33 +01:00
Swastik Baranwal
9291fb5e0c
checker: disallow comparison between enum and int ( #7886 )
2021-01-08 17:41:52 +01:00
yuyi
828120a918
checker: check unknown generic type ( #7954 )
2021-01-08 07:04:06 +01:00
Alexander Medvednikov
0998cbaaba
vweb: fix routing test
2021-01-08 05:59:23 +01:00
Alexander Medvednikov
352cf91ba2
vweb: remove `return vweb.Result{}` everywhere
2021-01-08 04:57:02 +01:00
Daniel Däschle
1ce93536d0
checker: fix panic in generic methods ( #7944 )
2021-01-08 00:50:59 +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
5841d5d8e1
all: implement basic comptime field selector ( #7888 )
2021-01-05 16:11:43 +02:00
zakuro
3dae44db73
checker: do not allow empty enums ( #7848 )
2021-01-05 01:46:32 +01: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
Uwe Krüger
4a25c2bb6f
types: rename `any_*`, `untyped *` -> `* literal` ( #7845 )
2021-01-04 00:11:09 +02:00
Delyan Angelov
d86304b7d0
v.table: use the user readable names inside type_to_str_using_aliases for `any_int` and `any_float`
2021-01-03 22:15:18 +02:00
Delyan Angelov
ff1156cddd
ci: run `VAUTOFIX=1 ./v vlib/v/compiler_errors_test.v` to fix ci failures
2021-01-03 19:03:20 +02:00
Joe Conigliaro
70b921c49d
all: change any_int & any_flt display name
2021-01-04 03:20:52 +11:00
Enzo
9332f7cac2
checker: allow `map` method name ( #7834 )
2021-01-03 16:57:29 +01:00
StunxFS
b7f83e2f50
checker: more errors for illegal referencing ( #7755 )
2021-01-03 15:56:15 +01:00
Enzo
529f46d808
checker: don't panic on non-array decomposition ( #7836 )
2021-01-03 15:45:39 +01:00
Nick Treleaven
9243e06dba
parser: allow integer and rune keys for map literal ( #7756 )
2021-01-01 17:23:32 +01:00
Swastik Baranwal
24b18f05c4
cgen: implement > and < for structs ( #7774 )
2021-01-01 14:54:32 +01:00
Joe Conigliaro
e9f9f27e49
checker: fix formatting in tests/web_routing_checks.out
2021-01-01 08:01:00 +11:00
Alexander Medvednikov
2bc9ee4d88
vweb: more updates
2020-12-31 17:47:20 +01:00
Alexander Medvednikov
2533c706ae
vweb: migrate all tests and examples to the new syntax
2020-12-31 17:22:47 +01:00
Uwe Krüger
74ea5ac99f
checker: check reference return to be really reference ( #7739 )
2020-12-31 12:42:22 +01:00
Swastik Baranwal
a9ab79d301
checker: ban any_int/any_float outside buitlin ( #7675 )
2020-12-31 12:41:30 +01:00
Swastik Baranwal
a834f33661
checker: add checks for operator overloading ( #7737 )
2020-12-31 12:38:10 +01:00
StunxFS
13cd7e88ef
checker: error taking the address of a boolean literal ( #7716 )
2020-12-30 17:21:15 +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
Delyan Angelov
6cf3b96a37
ci: fix .out files after 40ce18f
2020-12-29 16:10:55 +02:00
Alexander Medvednikov
40ce18fa3c
checker: handle unwrapped optionals in infix exprs
2020-12-29 13:49:43 +01:00
Delyan Angelov
df61cf246b
cgen: fix `x.interface_field = value_implementing_interface` ( closes #7620 )
2020-12-27 19:12:39 +02:00
Nick Treleaven
e813583bc1
checker: support integer and voidptr key types for maps ( #7503 )
2020-12-27 14:18:46 +01:00
Daniel Däschle
b27f5c378c
all: reimplement struct embedding with methods ( #7506 )
2020-12-23 19:12:49 +01:00
yuyi
8f4281b790
checker: merge minus_op_wrong_type_err tests to just one ( #7489 )
2020-12-23 10:16:04 +02:00
yuyi
b08fe73614
checker: merge mod_op_wrong_type_err tests to just one ( #7490 )
2020-12-23 10:15:25 +02:00
yuyi
0dd385d480
checker: merge mul_op_wrong_type_err tests to just one ( #7491 )
2020-12-23 10:14:32 +02:00
yuyi
36cc70983e
checker: merge div_op_wrong_type_err tests to just one ( #7493 )
2020-12-23 10:14:08 +02:00
yuyi
5283811055
checker: merge add_op_wrong_type_err tests to just one ( #7488 )
2020-12-23 10:13:46 +02:00
yuyi
1c64635d61
checker: fix multi_array type mismatch check ( #7486 )
2020-12-23 08:05:44 +02:00
Ned Palacios
06369a27c2
parser: return incomplete selector expr stmt ( #7465 )
2020-12-22 13:00:23 +01:00
Lukas Neubert
5cd2dffafb
checker: error, when same type is used multiple times in a sum type ( #7432 )
2020-12-21 22:05:50 +02:00
Lukas Neubert
304aafdc50
fmt: add a space after + operator/method overload ( #7453 )
2020-12-21 21:20:00 +02:00
Alexander Medvednikov
4fc5e83771
checker: never allow taking the address of map values
2020-12-20 07:55:23 +01:00
Swastik Baranwal
1a2c7cd336
checker: add more casts checks ( #7355 )
2020-12-16 17:50:39 +01:00
Swastik Baranwal
da9588c1a5
checker: fix struct cast ( #7308 )
2020-12-15 04:30:51 +01:00
LilEnvy
0aacc9a80a
array: [].map(fn...) return type can be different than original type ( #7300 )
2020-12-13 03:29:48 +01:00
Nick Treleaven
d785e22a6e
checker: disallow assigning number to pointer ( #7267 )
2020-12-12 10:42:07 +01:00
joe-conigliaro
90b5f6f4e0
checker: add tests for assign sum type to non sum type error
2020-12-11 21:52:25 +11:00
Enzo
04346e7ba5
checker: allow void,char,byteptr to be mut args ( #7239 )
2020-12-11 04:47:10 +01:00
spaceface777
ca2c082a5e
checker: initial support for evaluating expressions at compile time ( #7248 )
2020-12-11 04:46:06 +01:00
yuyi
c4e76e6a59
checker: check div/mod by zero ( #7256 )
2020-12-11 04:44:07 +01:00
Daniel Däschle
916a64935a
checker: fix sumtype matching test ( #7235 )
2020-12-10 17:22:54 +02:00
Daniel Däschle
f6a2dba7ff
parser: refactor args count error ( #7238 )
2020-12-10 16:42:30 +02:00
Daniel Däschle
1f952330c4
parser: fix fn args eol errors ( #7222 )
2020-12-10 11:56:08 +02:00
Daniel Däschle
a38fe4fca9
checker: fix smartcast inside smartcast ( #7215 )
2020-12-10 00:59:39 +01:00
Nick Treleaven
92a8db5b2b
checker: remove duplicated unsafe tests ( #7216 )
2020-12-09 19:57:15 +01:00
Nick Treleaven
63557d0d02
checker: disallow op= and infix on a voidptr ( #7175 )
2020-12-07 22:43:38 +02:00
Nick Treleaven
a100b05647
checker: improve 'operator not defined on right operand type' error ( #7185 )
2020-12-07 18:37:17 +01:00
Delyan Angelov
d38bca5958
checker: tweak the import private function message a little
2020-12-07 19:22:37 +02:00
joe-conigliaro
78a6795319
all: change the way import symbols work & support consts ( #7182 )
2020-12-07 19:13:03 +02:00
joe-conigliaro
a05408b49a
all: make type system use source name & cleanup storing name in fields
2020-12-06 14:55:08 +11:00
yuyi
29857cb9d6
checker: fix interpolation recursive str ( fix #1905 ) ( #7141 )
2020-12-05 21:41:54 +01:00
yuyi
595efbac5b
checker: fix or_block return &type mismatch ( #7138 )
2020-12-05 08:06:51 +02:00
yuyi
9b6a1552e9
checker: check match return mismatch type ( fix #6826 ) ( #7109 )
2020-12-03 21:14:23 +02:00
Daniel Däschle
558a756431
parser: fix position offset by 1 ( #7099 )
2020-12-03 11:25:06 +02:00
yuyi
30da85a4d5
checker: fix optional or_block {none} ( #7095 )
2020-12-03 01:03:17 +01:00
Lukas Neubert
8adc8ed103
parser: do not fail on comment direct after import ( #7071 )
2020-12-01 22:32:34 +02:00
Daniel Däschle
879d238887
cgen: initial option auto str support ( #7004 )
2020-12-01 04:00:23 +01:00
yuyi
0b96cd50e1
scanner: fix escape `\u` ( fix #6849 ) ( #7012 )
2020-11-29 17:01:40 +02:00
yuyi
f336c2c5cc
scanner: fix error of backslash escaping x in ident_string( fix #6850 ) ( #6994 )
2020-11-29 00:39:45 +02:00
Daniel Däschle
32c027a0bf
parser: disallow ptr type as sum type variant ( #6996 )
2020-11-28 23:40:40 +02:00
spaceface777
bbea7fb91f
docs: document the `[required]` struct attribute ( #6956 )
2020-11-27 15:37:12 +02:00
Daniel Däschle
52b627feb3
checker: check filter, map and sort left type ( #6952 )
2020-11-26 11:28:54 +01: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
96539e43b5
all: nested sum types ( #6913 )
2020-11-23 16:16:13 +01:00
Nick Treleaven
51c737669d
checker: check labelled break/continue is inside a matching `for` loop ( #6910 )
2020-11-22 20:51:07 +01:00
Swastik Baranwal
650cdef8b4
checker: disallow array sum types without default field ( #6892 )
2020-11-21 00:07:25 +01:00
Delyan Angelov
3c4b87bfec
checker: add check against `fn test_opt() ?{}`
2020-11-20 15:12:53 +02:00
Daniel Däschle
ed874ffc5b
checker: fix sum type operator check ( #6815 )
2020-11-17 21:26:40 +01:00
Swastik Baranwal
4415feb2df
checker: disallow string(bool) ( #6863 )
2020-11-17 21:23:17 +01:00
Nick Treleaven
4882d338f0
checker: improve array literal element type mismatch error ( #6825 )
2020-11-16 00:41:24 +02:00
Daniel Däschle
20bec81678
checker: smartcast only if type is not mut ( #6841 )
2020-11-15 16:53:51 +02:00
Delyan Angelov
f995aa35ea
checker: add a check for `x := math.sin<f64>(0)`
2020-11-15 11:51:12 +02:00
Nick Treleaven
50163508f8
gen: implement type_name method for sum type instances ( #6802 )
2020-11-14 13:59:03 +02:00
Luke Edwards
a525397022
checker: improve wording on error messages ( #6799 )
2020-11-11 23:11:27 +02:00
Delyan Angelov
dd1717af34
checker: add a missing return regression test for if branches too
2020-11-11 18:06:13 +02:00
Delyan Angelov
8c241cb745
checker: check that fns with return values, and matches, do return
2020-11-11 17:23:57 +02:00
Daniel Däschle
6271798ce3
cgen: union sum types implementation ( #6745 )
2020-11-11 09:18:15 +01:00