Delyan Angelov
99f311cc5f
checker: protect against stackoverflows due to deep expr recursion
2020-06-08 20:35:33 +03:00
Alexander Medvednikov
dabfc4ebd0
checker: do not display errors for incorrectly initialized vars
2020-06-08 13:10:47 +02:00
Enzo Baldisserri
11b7b97311
parser: fail when assigning to _ with :=
2020-06-08 00:47:04 +02:00
joe-conigliaro
1c2bf7b244
vweb: impl of comptime tmpl parsing (fix vweb_example)
2020-06-07 20:26:45 +10:00
Alexander Medvednikov
2770077cb0
fmt: x.foo!() experiment
2020-06-06 16:05:24 +02:00
Alexander Medvednikov
40bd1be85f
parser: fix !
2020-06-06 12:43:35 +02:00
Alexander Medvednikov
7815c5b108
cgen: $action (ComptimeCall); vweb: hello world works!
2020-06-06 10:05:26 +02:00
joe-conigliaro
0a3486b4c5
checker: generic/vewb fix
2020-06-06 17:06:11 +10:00
joe-conigliaro
c2fe4ffa85
table: remove fn to set idx & add new derive fn
2020-06-06 12:51:36 +10:00
joe-conigliaro
31d03bb113
checker/cgen: small generic fixes (mut arg return)
2020-06-06 12:24:27 +10:00
joe-conigliaro
3c4e4d4825
gen/checker: copy ptr & flag info in unwrap_generic
2020-06-05 18:41:15 +10:00
yuyi
c9b395f9cf
checker: fix for_in_index type error
2020-06-05 09:44:25 +02:00
yuyi
dd7ebf7fac
parser: check function argument mutable syntax
2020-06-04 15:20:43 +02:00
joe-conigliaro
edd56bc080
table: allow type hold 8 flags at once
2020-06-04 22:38:54 +10:00
joe-conigliaro
41dca3ef58
checker/cgen: fix mutable generic fn args
2020-06-04 19:32:31 +10:00
yuyi
8a24d7d723
checker: optional return fix
2020-06-04 10:40:32 +02:00
Swastik Baranwal
d286f67220
parser: update check for non mut types in fn
2020-06-03 18:47:18 +03:00
yuyi
1060de88af
parser: fix function mutable argument error
2020-06-03 12:28:16 +02:00
Alexander Medvednikov
00978da2c4
checker: fix mut int test
2020-06-03 10:45:19 +02:00
Alexander Medvednikov
888a43a684
checker: fix mut int test
2020-06-03 10:40:41 +02:00
Alexander Medvednikov
199f4f006b
checker: fix mut int check
2020-06-03 10:36:56 +02:00
yuyi
d0ff9a7c4a
parser: correct fn arg position in error message
2020-06-03 08:42:02 +03:00
Alexander Medvednikov
63b8cdea7a
checker: require () in a && b || c
2020-06-02 22:21:44 +02:00
yuyi
1386c5df13
parser: use `?` instead of `?void` errpr
2020-06-02 17:24:24 +02:00
Uwe Krüger
b0f66a4e05
checker: permit int -> f32, int64 -> f64 and similar promotions again
2020-06-02 17:00:14 +02:00
Alexander Medvednikov
fb3e52ca63
all: `!is` operator
2020-06-02 16:18:12 +02:00
Alexander Medvednikov
138d730dfa
checker: prepare for the is_changed check
2020-06-02 09:00:51 +02:00
Uwe Krüger
076089d3c5
checker: apply stricter type checks to function args and return types
2020-06-01 21:15:59 +02:00
Delyan Angelov
ae8f7cf569
tests: fix some tests, that failed due to the stricter immutable checks
2020-06-01 18:24:38 +03:00
Delyan Angelov
86862d6a94
checker: remove mod_file_cacher exception
2020-06-01 17:43:03 +03:00
Alexander Medvednikov
3d83934caf
checker: check mutating methods; generics fixes
2020-06-01 15:44:10 +02:00
Uwe Krüger
faf3248e98
checker: check types for bitwise right shift
2020-05-31 12:58:13 +02:00
Alexander Medvednikov
f87e872fa2
checker/cgen: interface match
2020-05-31 10:22:21 +02:00
Alexander Medvednikov
1ca7a607d3
checker/cgen: return interfaces
2020-05-30 19:54:16 +02:00
Uwe Krüger
b74e1bb05d
checker: fix type mismatch in function argument for struct reference init
2020-05-30 15:42:12 +02:00
yuyi
1e504fb388
parser: check undefined variable of assign_expr
2020-05-29 17:38:40 +02:00
Alexander Medvednikov
1c11ac9fdf
checker: make sure `is` is only used with interfaces and sum types
2020-05-29 06:46:01 +02:00
yuyi
3a340cbffc
checker: fix array_init cast type error
2020-05-29 06:39:46 +02:00
Alexander Medvednikov
81b44dc2c9
generics: generic call inside generic call; checker: check mut args at call
2020-05-29 04:30:00 +02:00
yuyi
28ffe2a6ee
checker: add error for struct fields of type []unknown
2020-05-28 19:38:53 +03:00
Alexander Medvednikov
9609b3a9c8
checker: make the method warning an error
2020-05-28 15:30:54 +02:00
Alexander Medvednikov
01dbb25a37
checker: do not allow defining methods on types from other modules
2020-05-28 15:23:20 +02:00
yuyi
977eb895e8
checker: check array init's element type
2020-05-28 13:32:12 +02:00
Alexander Medvednikov
d6037cbcf2
generics: fix method calls
2020-05-28 05:58:19 +02:00
Alexander Medvednikov
4988d340b1
generics: fix method calls
2020-05-28 01:19:08 +02:00
yuyi
84edbd83da
all: fix struct names error
2020-05-27 19:12:34 +03:00
Alexander Medvednikov
670820cc59
parser: do not allow 1 char struct names
2020-05-27 16:00:00 +02:00
Alexander Medvednikov
5423a15f46
generics: more fixes
2020-05-27 15:56:30 +02:00
Emily Hudson
0b64e2190f
checker,cgen: unpack multi returns in return statements
2020-05-27 15:47:38 +03:00
Delyan Angelov
481f103dc9
checker: make an error using non `pub` fns from other modules
2020-05-27 12:00:19 +03:00
Uwe Krüger
013fdb8a4b
checker: restrict numeric promotions to cases where no data is lost
2020-05-27 05:42:48 +02:00
Alexander Medvednikov
fc67046bac
checker: fix pub fn check
2020-05-27 03:38:21 +02:00
Alexander Medvednikov
b4d88ee4af
checker: handle map.clone()
2020-05-26 02:09:26 +02:00
Delyan Angelov
b0cfd3fa67
parser: reimplement [flag] enum support. Add p.vcodegen too
2020-05-26 00:00:48 +03:00
Delyan Angelov
5825e467b8
checker: fix appending an .enum_val to a struct field of []Enum
2020-05-25 21:48:43 +03:00
Enzo Baldisserri
d22609051a
checker: CallExpr with handled optional returns plain type
2020-05-25 11:32:14 +02:00
yuyi
30ca08aaa3
parser: fix self-referenced error
2020-05-25 11:31:04 +02:00
Alexander Medvednikov
1ef8eacd6e
checker/gen: more generics fixes; ComptimeCall
2020-05-25 05:32:36 +02:00
Delyan Angelov
a0f8005352
checker: support tests/run/ folder, checks many warns/errors/output
2020-05-24 21:13:09 +03:00
Delyan Angelov
23e8c8ecda
checker: prevent infinite recursion on a:=b b:=a
2020-05-24 20:55:04 +03:00
yuyi
641fe5c864
checker: fix unresolved variables error on assignments
2020-05-24 20:33:53 +03:00
Alexander Medvednikov
67750c91d7
generics: lots of fixes
2020-05-24 04:43:03 +02:00
yuyi
4608898bcd
checker: fix multiple assign immutable error
2020-05-23 17:30:28 +02:00
Enzo Baldisserri
801bca1ef2
compiler: propagate optional
2020-05-23 08:51:15 +02:00
yuyi
dda875a9c8
all: unify const names to snake_case
2020-05-22 17:36:09 +02:00
Enzo Baldisserri
1633675c11
gen: fix nested `or`
2020-05-21 22:35:43 +02:00
Alexander Medvednikov
d3ce6fd2e7
checker: check each generic function for each type
2020-05-21 21:51:52 +02:00
Ruofan XU
b2b0461218
scanner: fix err pos related to num literal
2020-05-21 18:43:57 +02:00
Alexander Medvednikov
87d8e70d6d
checker/table: generic fixes
2020-05-21 18:15:04 +02:00
Ruofan XU
aba09a7e4d
scanner: fix err pos related to num literals
2020-05-21 16:20:36 +03:00
Alexander Medvednikov
abb15275f5
checker: update a `for in` error test
2020-05-21 06:06:11 +02:00
Alexander Medvednikov
ce1a181699
all: generic functions
2020-05-21 03:58:53 +02:00
Don Alfons Nisnoni
10ad5332e8
parser: improve unused imports warning
2020-05-20 20:50:27 +03:00
Tanel Liiv
c9f3a05ef6
checker: fix map/filter called with a plain fn argument
2020-05-20 15:28:33 +03:00
spaceface777
b10df252dc
all: replace `is_c`, `is_js` with `language`
2020-05-19 17:12:47 +02:00
yuyi
74686d0ec4
test: fix alias type errors and type_test.v
2020-05-19 15:04:51 +03:00
Alexander Medvednikov
03525843a0
parser: do not allow calling private functions
2020-05-18 22:54:11 +02:00
Alexander Medvednikov
d325cdba0d
checker: fmt
2020-05-18 15:43:52 +02:00
Alexander Medvednikov
4f307c1a78
checker: requre & in struct init; http: chunked encoding
2020-05-18 05:11:00 +02:00
Swastik Baranwal
d697b2848a
checker: more checks for in and !in
2020-05-17 17:03:32 +02:00
spaceface777
0def084932
checker: fix JS name regression
2020-05-17 16:23:09 +02:00
yuyi
7f4cf08516
parser: check `(mut f Foo)` syntax
2020-05-17 13:51:18 +02:00
yuyi
02fb393747
test: fix vrepl and cast test errors
2020-05-17 02:13:08 +02:00
Alexander Medvednikov
5b15b8ccc9
checker: do not allow casting strings
2020-05-16 22:52:41 +02:00
Alexander Medvednikov
6e4ae5a5e6
checker: do not allow casting strings
2020-05-16 22:48:45 +02:00
Alexander Medvednikov
0845b2cfbe
builder: skip warnings; pref: move pref creation to pref.v
2020-05-16 22:45:38 +02:00
Enzo Baldisserri
f44a40eee0
checker: check incorrect names
2020-05-16 16:12:23 +02:00
Swastik Baranwal
37cf46d67a
checker: add more checks for modulo
2020-05-16 15:32:46 +02:00
Tanel Liiv
44502a3fb2
parser: return multi expr
2020-05-15 23:14:53 +02:00
Alexander Medvednikov
0f251e9ede
checker: handle json.decode correctly
2020-05-14 18:30:30 +02:00
Alexander Medvednikov
f49ef39708
checker: handle unexpected `or` blocks
2020-05-14 18:19:40 +02:00
Enzo Baldisserri
fd0d833e33
gen: if expressions with multiple statements
2020-05-14 17:15:25 +02:00
yuyi
6d0b791ac8
parser: warning about unused imports
2020-05-14 17:14:24 +02:00
yuyi
70b76a8e31
builder: use verror for not found modules
2020-05-14 10:59:29 +03:00
Delyan Angelov
d830620651
compiler: restore support for --enable-globals flag, and add tests.
2020-05-14 08:43:12 +03:00
Alexander Medvednikov
ab7bc760c6
cgen: new Option part 1
2020-05-13 21:59:08 +02:00
Sandro Martini
9895cab51c
tests: add more tests on interfaces
2020-05-13 20:30:18 +02:00
Enzo Baldisserri
1ca04e6113
checker: prevent interface instantiation
2020-05-13 19:20:15 +02:00
yuyi
2e0b9de31c
parser: error for consts in fns
2020-05-13 18:39:02 +02:00
Alexander Medvednikov
db5036686b
checker: make `type is private` warning an errror
2020-05-13 14:21:52 +02:00
yuyi
b1511ce995
parser: optimize no main file process
2020-05-13 14:02:04 +02:00
Alexander Medvednikov
3e6f7d3eb6
freetype: minor fixes
2020-05-13 00:50:46 +02:00
Alexander Medvednikov
7a5a4df4c6
checker: handle `println()`
2020-05-12 19:38:46 +02:00
yuyi
99b31d8241
parser: unified way to handle struct and enum name check
2020-05-12 13:39:32 +02:00
yuyi
dea2658a80
checker: minor optimization in infix_expr
2020-05-11 23:50:13 +02:00
Alexander Medvednikov
e9177faf17
checker: allow `*x = y` only inside unsafe blocks
2020-05-11 16:05:59 +02:00
Alexander Medvednikov
828f9af64c
checker: fmt
2020-05-11 14:38:25 +02:00
Alexander Medvednikov
8a6820d1b7
checker: revert fmt for now
2020-05-11 14:32:41 +02:00
Alexander Medvednikov
ce03761375
parser: fix mut args with the new syntax; checker: fmt
2020-05-11 14:16:20 +02:00
joe-conigliaro
2a40665919
ast/checker: cast no longer needed & use auto deref
2020-05-11 20:02:28 +10:00
Kris Cherven
8bc0c31f29
parser: add error for variables, that are evaluated, but not used
2020-05-11 11:13:36 +03:00
Kris Cherven
3a3d00ac72
checker: prevent C error on const mutation
2020-05-11 11:09:58 +03:00
joe-conigliaro
1b3cd7abe0
cgen: fix sum type assign/push from in match branch & type mod
2020-05-11 16:59:55 +10:00
Alexey
71c2b26103
checker: fix checking uninitialized refs
2020-05-10 22:26:47 +02:00
joe-conigliaro
a73660a4c3
checker/cgen: simplify assigning fn to var
2020-05-11 00:13:30 +10:00
Ned Palacios
5f0ad0f562
compiler: add output mode for errors and warnings, support for `-silent` flag
2020-05-10 12:26:57 +03:00
yuyi
7f69c2fbf5
parser: check `import` in the middle of file error
2020-05-10 07:47:20 +03:00
yuyi
ba3a631954
parser: check for module statement errors
2020-05-10 02:28:56 +02:00
yuyi
85723e3799
checker: check for_in_map using one variable error
2020-05-10 02:28:43 +02:00
Alexander Medvednikov
10da871743
checker: handle unknown fields in fail_if_immutable
2020-05-10 02:07:15 +02:00
Alexander Medvednikov
09f6cd6a75
parser/checker: [ref_only] attribute
2020-05-09 23:45:41 +02:00
Alexander Medvednikov
d7c4630d33
checker: make pub field check an error
2020-05-09 18:34:07 +02:00
yuyi
3eeef6203e
checker: check for map_init key duplicate
2020-05-09 16:55:38 +02:00
Alexander Medvednikov
c64f8b0d1f
parser/checker: pub: struct fields
2020-05-09 15:16:48 +02:00
yuyi
5f435fa1cc
parser: check enum name and field name errors
2020-05-09 12:43:10 +02:00
Tanel Liiv
7815a5495c
checker: handle multireturn fn calls as if/match last expressions
2020-05-08 22:49:45 +02:00
Sandro Martini
910a8934cb
checker: fix typo on error message and related test
2020-05-08 21:21:47 +03:00
Ned Palacios
5b47ec49af
parser: add support for multiple struct field attributes
2020-05-08 15:09:42 +02:00
yuyi
ef505e21ee
parser: check for import errors
2020-05-08 16:01:54 +03:00
Alexander Medvednikov
2f4fc86d58
checker: fix unknown var enum crash
2020-05-08 15:00:06 +02:00
Delyan Angelov
fec7f0f0b9
cgen: fix auto .str() generation for []&T, and `fn (t &T) str() string{}`
2020-05-08 12:48:07 +03:00
Delyan Angelov
673acdbd00
tcc: fix selfcompilation with tcc. Temporarily disable crashing interface test
2020-05-07 20:59:45 +03:00
yuyi
78efe72c4c
checker: optimize check string cast error
2020-05-07 12:34:06 +02:00
Enzo Baldisserri
0f8ed84333
checker: verify interface is not used as receiver
2020-05-07 11:14:51 +03:00
Delyan Angelov
e33805b2b3
json.decode: fix expressions in the second argument, also fixes news_fetcher.v
2020-05-06 21:44:50 +03:00
Tanel Liiv
b5a1544bf8
parser: allow re-assigning fns to variables
2020-05-06 20:09:29 +02:00
Don Alfons Nisnoni
e87289f24d
Fix typo on checker
2020-05-06 13:57:40 +03:00
Alexander Medvednikov
b4c93349e8
checker: fix interface name check
2020-05-06 12:32:44 +02:00
Alexander Medvednikov
cc66eb1194
parser/checker: check capital letters in interface names/methods
2020-05-06 12:26:00 +02:00
yuyi
51f3f31a4e
checker: check string(1) cast error
2020-05-06 12:05:24 +02:00
Enzo Baldisserri
215657e16a
checker: check interface implementation
2020-05-06 11:29:37 +02:00
yuyi
b627bb933c
message: use uniform message reference format
2020-05-06 09:10:40 +03:00
Enzo Baldisserri
c1f224640f
checker: verify that there is a main module
2020-05-06 00:09:46 +02:00
Tanel Liiv
b16281d6e4
cgen: pass around functions
2020-05-05 16:21:21 +02:00
Alexander Medvednikov
a0ca68ce3f
checker: do not allow `string(int)`
2020-05-05 15:26:42 +02:00
Alexander Medvednikov
ee92060d4d
json: decode_array fix
2020-05-05 14:19:31 +02:00
Steve Phillips
081338b8bf
checker.v: suggest []Type{}, not []Type
2020-05-05 00:20:32 +02:00
Alexander Medvednikov
32a7bd3a48
parser/checker: do not allow using private types from other modules
2020-05-04 21:56:41 +02:00
Alexander Medvednikov
9aa1a65489
checker: check match condition
2020-05-04 21:03:18 +02:00
joe-conigliaro
b2157388d9
checker: check method args
2020-05-05 01:32:40 +10:00
Alexander Medvednikov
fd8a194df0
json: wrap up decode()
2020-05-04 16:46:39 +02:00
yuyi
90fc23ccfb
checker: fix array init []type{cap: x.len} error
2020-05-04 13:22:09 +02:00
Alexander Medvednikov
de749e9d3b
parser/cgen: interface <<; `any` type
2020-05-03 18:08:45 +02:00
Alexander Medvednikov
2a016d03ac
checker: use `[]int` instead of `array_int` in errors
2020-05-03 16:49:05 +02:00
joe-conigliaro
8df7637853
checker: dont re match/cast with position() when already cast to sum type
2020-05-03 14:22:41 +10:00
Alexander Medvednikov
b0018ed594
checker: better << error
2020-05-02 16:48:52 +02:00
Tanel Liiv
68ca8ab8a4
array: nested map()
2020-05-02 15:26:58 +02:00
joe-conigliaro
a9a8539e41
checker: small fix in assign_stmt
2020-05-02 20:21:28 +10:00
joe-conigliaro
fd925fbd05
checker: simplify assign_stmt & add better checks
2020-05-02 19:45:08 +10:00
Uwe Krüger
170ee4312f
cgen: string interpolation field width support for large integers and utf8 strings
2020-05-02 00:43:59 +02:00
yuyi
b21be7f670
parser: multiple names error
2020-05-01 18:18:58 +02:00
yuyi
de272654f1
repl: fix import xxx with no fn main error
2020-05-01 18:12:18 +02:00
eyelash
4d04e88679
errors: show line numbers in default color and add a space
2020-05-01 14:46:12 +02:00
Alexander Medvednikov
0b8a0d1640
checker: fix _ check
2020-05-01 12:22:39 +02:00
joe-conigliaro
fb1c60c53d
checker: add back check struct field fn args
2020-05-01 20:12:21 +10:00
Alexander Medvednikov
c1ee14cc3e
json: decode() part 1
2020-05-01 12:02:31 +02:00
joe-conigliaro
a0e662bef9
checker: remove debug println from selector_expr
2020-05-01 19:54:47 +10:00
joe-conigliaro
03904085c4
checker: check fn field exprs
2020-05-01 19:50:32 +10:00
Tanel Liiv
182e7071bf
array: map() function
2020-05-01 00:29:54 +02:00
Alexander Medvednikov
f1903f3c1f
parser: fix imported interfaces
2020-04-30 18:06:14 +02:00
yuyi
5481c0fc84
parser: uniform handling of enum field format
2020-04-30 12:18:16 +02:00
yuyi
81ed6ad2a1
checker: check duplicate consts
2020-04-30 12:17:31 +02:00
yuyi
4d415e56d6
checker: check enum field name duplicate
2020-04-30 09:34:18 +02:00
yuyi
c4f672454f
checker: check import duplicates
2020-04-30 09:33:12 +02:00
Henrixounez
f6d74c8a37
checker: error on ternary if type mismatch
2020-04-30 09:32:29 +02:00
Tim Basel
3e4cd12fd0
.gitignore: ignore all binary files by default
2020-04-29 16:49:13 +02:00
Alexander Medvednikov
51d0ce0222
tests: more interface tests; checker: handle zero selectorexpr type error
2020-04-29 12:46:09 +02:00
Henrixounez
c500044bae
checker: unreachable code warning
2020-04-29 12:31:18 +02:00
Alexander Medvednikov
2fc05b814c
all: interface arrays
2020-04-29 12:21:15 +02:00
Delyan Angelov
1e910c6afe
tests: add reference_field_must_be_initialized.vv
2020-04-29 12:56:12 +03:00
Delyan Angelov
bf8ed1815c
builder: print collected checker warnings too
2020-04-29 12:38:43 +03:00
Delyan Angelov
dd3434598c
checker_test: remove generated .v files, when a test is OK
2020-04-29 11:48:51 +03:00
yuyi
117649f40d
checker: check devision by zero (int and float)
2020-04-29 10:07:27 +02:00
yuyi
2b48ce21df
checker: make sure `main` has no args and doesn't return
2020-04-29 09:19:46 +02:00
yuyi
a9e33e712a
checker: check struct field name duplicate
2020-04-29 09:11:36 +02:00
Delyan Angelov
8c526ad05b
tests: ignore vlib/v/checker/tests/*.v files (only *.vv are sources there)
2020-04-28 16:45:25 +03:00
Henrixounez
0afaef5818
checker: ambiguous function call error
...
* checker: ambiguous function call error
* checker: ambiguous function call error wording
* checker: ambiguous functions tests newline
2020-04-28 16:27:49 +03:00
Enzo Baldisserri
7bf8731778
checker: check variable mutability for postfix exprs
2020-04-28 11:20:19 +02:00
yuyi
f2060d431e
checker: check division by zero
2020-04-28 09:52:01 +02:00
yuyi
28f5920bb0
cgen: fix `map` `fixed-array` .str() error
2020-04-28 07:22:46 +02:00
yuyi
b20777df59
checker: main function called error
2020-04-28 07:21:50 +02:00
Enzo Baldisserri
682838a0cf
checker: check array and fields mutability
2020-04-27 22:53:26 +02:00
joe-conigliaro
9f76a7b250
parser: simplify unused vars & add loop/if vars etc
2020-04-27 23:16:31 +10:00
Delyan Angelov
e67bf674e3
scanner: cleanup, only v.parser now depends on v.scanner
2020-04-27 16:08:04 +03:00
Alexander Medvednikov
50a83736ff
checker: struct init: handle C types
2020-04-26 19:59:03 +02:00
Alexander Medvednikov
8223efe9df
checker: check struct field types
2020-04-26 18:38:29 +02:00
Alexander Medvednikov
83552a0d58
array: replace make() with the new init syntax
2020-04-26 17:52:27 +02:00
Enzo Baldisserri
0f2f97e3e5
checker: reorganize tests to match fmt tests
2020-04-26 12:34:42 +02:00
Alexander Medvednikov
270566055f
checker: make sure all FnDecl types are valid
2020-04-26 10:39:26 +02:00
Alexander Medvednikov
a56121c329
checker: check mutability in index exprs; parser: set is_mut for args
2020-04-26 10:25:58 +02:00
Alexander Medvednikov
20bcb6b8bb
tests: fix lef_shift test
2020-04-26 09:29:29 +02:00
Alexander Medvednikov
7955181c6c
tests: [] fixes
2020-04-26 09:18:29 +02:00
Alexander Medvednikov
3ab8dc0092
parser: array init: `[]string` => `[]string{}`
2020-04-26 09:17:17 +02:00
yuyi
3a59f5727c
checker: fix check main function error ( #4601 )
2020-04-26 08:04:28 +02:00
Delyan Angelov
48f9cc1ed7
tests: make alias_type_exists.vv use `type Pigeon Bird` syntax
2020-04-26 08:23:09 +03:00
Enzo Baldisserri
0b3412cdb5
checker: check that type exists in TypeDecl
2020-04-26 06:40:54 +02:00
yuyi
541b058e90
all: use `a !in b` instead of `!(a in b)`
2020-04-26 06:39:23 +02:00
Alexander Medvednikov
2b4ac0e63a
checker: handle array of interfaces
2020-04-26 06:29:03 +02:00
Enzo Baldisserri
3e68e429b6
checker: avert if else is unnecessary
2020-04-25 21:51:44 +02:00
Enzo Baldisserri
c73d91a8fe
fmt: TypeDecl; format more files
2020-04-25 20:58:00 +02:00
Ruofan XU
d86539c4f5
checker: clean up infix_expr
2020-04-25 20:28:49 +02:00
Alexander Medvednikov
b7e5be41f5
checker/cgen: `as` fixes
2020-04-25 18:41:12 +02:00
yuyi
c26e83f58a
array: fix fixed array errors
2020-04-25 18:26:38 +02:00
Enzo Baldisserri
fb54a2635c
fmt: lots of fixes
2020-04-25 17:49:16 +02:00
Delyan Angelov
7c080c5d4a
checker: prevent `x := voidfn()`
2020-04-25 18:06:34 +03:00
Larpon
6a834c0528
checker: use 'mut' instead of 'var' in error message
2020-04-25 17:51:12 +03:00
Delyan Angelov
9a19531909
compiler: add support for `[if myflag]` void fn/methods
2020-04-25 16:57:11 +03:00
joe-conigliaro
fbcdffbbc8
table: move Type functions to methods
2020-04-25 17:08:53 +10:00
Enzo Baldisserri
a924defb94
checker: check `in` left type
2020-04-25 06:14:17 +02:00
Enzo Baldisserri
fa4739794f
checker: fix "unnecessary `()`" error position
2020-04-24 20:27:18 +02:00
Enzo Baldisserri
323ca2b3bb
checker: check duplicates on match with no else
...
Refactor match duplication test to work even if there is not else, and to include every expression.
Add tests for duplicate expressions in match.
2020-04-24 17:04:39 +03:00
Delyan Angelov
aa15dec660
checker: check default struct field expression types
2020-04-24 16:46:55 +03:00
Alexander Medvednikov
d7ee4755c2
parser/cgen: interfaces (part 1)
2020-04-22 20:23:53 +02:00
joe-conigliaro
3ca4f5fada
checker/parser: anon fn call & return type fix
2020-04-22 18:41:57 +10:00
joe-conigliaro
c1e8612624
checker/gen: allow vargs to be forwarded. fix/enable variadic test
2020-04-22 13:28:47 +10:00
Kris Cherven
155891a4e0
parser: add unused variable warning
2020-04-22 01:52:56 +02:00
yuyi
a8dc0ccbcd
checker: add more op checks
2020-04-21 13:26:02 +02:00
joe-conigliaro
abf5942433
parser/cgen: anon fn var & calling ( #4534 )
2020-04-21 13:23:36 +10:00
Ruofan XU
f725b93019
tests: delete an unused file
2020-04-20 21:48:14 +02:00
Ruofan XU
cdb1b0344c
checker: improve type check for arithmetic assignment op and fix error pos
2020-04-20 20:56:05 +02:00
yuyi
717e26b45e
checker: more infix checks
2020-04-20 14:49:26 +02:00
yuyi
07f69fab19
checker: remove dots from error messages
2020-04-20 11:57:07 +02:00
Alexander Medvednikov
4b329cb89d
tests: fix a typo
2020-04-20 08:32:10 +02:00
Alexander Medvednikov
639dc02cc8
x64: test hello world
2020-04-20 08:27:37 +02:00
Alexander Medvednikov
c1fc768c1b
fmt: run on cmd/v; cgen: fix anonymous functions
2020-04-20 07:04:31 +02:00
yuyi
be3bd520f6
checker: fix for in range type mismatch
2020-04-20 00:21:16 +02:00
Ruofan XU
5edd9cdc3a
checker: add type check for bit op
2020-04-19 22:29:45 +02:00
yuyi
dbb81b89fd
checker: fix type mismatch of `in` array
2020-04-19 22:26:58 +02:00
Daniel Däschle
b62bb22fa6
checker: allow C values in enum
2020-04-19 22:26:04 +02:00
Ruofan XU
6c59b306c7
checker: add type check for arithmetic assignment ops
2020-04-19 22:24:12 +02:00
yuyi
4de16e9f0f
tests: enable checker_error_test on windows
2020-04-19 20:48:13 +02:00
Kris Cherven
95ae915c0c
checker/parser: fix outdated error messages
2020-04-19 20:46:48 +02:00
Enzo Baldisserri
57c142b993
checker: disallow pub in main
2020-04-19 00:07:57 +02:00
Tim Basel
86df486988
compiler: rename is_so to is_shared
2020-04-18 17:46:23 +02:00
Enzo Baldisserri
0f9322bf36
checker: print error and pos for lacking main or pub main
2020-04-18 00:20:38 +02:00
Enzo Baldisserri
f2be3d7ffb
checker: check that right `is` type exists
2020-04-18 00:19:33 +02:00
Tim Basel
73073cd954
parser: anonymous functions (part 1)
2020-04-17 21:59:19 +02:00
Kris Cherven
84ac634c31
checker: disallow pub fn main()
2020-04-17 20:30:43 +02:00
Alexander Medvednikov
ed8855c4cd
tests: fix struct_unknown_field.v
2020-04-17 17:20:35 +02:00
Alexander Medvednikov
4a556f72bb
checker: allow calling private functions in tests
2020-04-17 17:18:40 +02:00
Alexander Medvednikov
06c1b9e95e
table/checker: verify private functions/methods
2020-04-17 17:16:14 +02:00
Daniel Däschle
af30bf939e
checker: fix return underlining
2020-04-17 16:16:56 +02:00
Daniel Däschle
402e55d115
ast: expr.Position; struct field refactoring
2020-04-17 02:38:39 +02:00
Alexander Medvednikov
af224b4933
parser/cgen: is keyword
2020-04-16 15:32:14 +02:00
Delyan Angelov
cc9828b481
checker: fix building of shared .so libs
2020-04-16 16:30:19 +03:00
Daniel Däschle
19723c927b
checker: move more checks from parser
2020-04-16 12:17:15 +02:00
Delyan Angelov
8a1248b2e7
builder: restore module import cycle detection/topological reorder
2020-04-16 12:29:36 +03:00
Daniel Däschle
04db2d02b8
checker: move struct name check from parser to checker
2020-04-16 11:01:18 +02:00
Delyan Angelov
92129d760d
checker: fix false positives for sumtype kind of matches
2020-04-16 00:32:56 +03:00
Abdullah Atta
6a186e8f11
jsgen: implement js backend
2020-04-15 23:16:49 +02:00
Daniel Däschle
27b6f30305
checker: move capital var check from parser to checker
2020-04-15 19:09:51 +02:00
Daniel Däschle
93b942de46
parser: fix a match error
2020-04-15 16:23:03 +02:00
joe-conigliaro
fde83aff0b
checker/cgen: fix calling struct field with fn type
2020-04-15 04:28:18 +02:00
Alexander Medvednikov
efaec8be8e
token/parser: var keyword
2020-04-15 01:45:27 +02:00
Enzo Baldisserri
86402204a7
checker: fail if else isn't the last branch of match
2020-04-14 20:31:51 +02:00
Daniel Däschle
50871d1a92
checker: for in index type error position
2020-04-14 19:37:56 +02:00
Alexander Medvednikov
ec10831318
parser: `[]int{cap:cap, len:len}` syntax; minor fixes
2020-04-14 18:10:16 +02:00
Delyan Angelov
e947d5e8c8
checker: fully exhaustive matches for sumtypes and enums
...
Also change the vlib/v/checker/tests/inout/match_expr_else.out to reflex the
new error details.
2020-04-14 16:50:43 +03:00
Daniel Däschle
75603beeea
checker: match exhaustive as stmt and with enum
2020-04-14 15:12:26 +02:00
Alexander Medvednikov
5f1b88c2c4
checker: do not use !in for now
2020-04-14 04:14:02 +02:00
Alexander Medvednikov
bbc35b1179
checker: check bool and string ops
2020-04-14 04:12:28 +02:00
Daniel Däschle
12e48c6fe2
checker: check match for exhaustion
2020-04-14 01:03:31 +02:00
Alexander Medvednikov
7aacf77262
checker: remove an extra fn check
2020-04-13 20:06:20 +02:00
Alexander Medvednikov
24958df565
parser: do not allow duplicate fns; cgen: move fn code to fn.v
2020-04-13 19:59:57 +02:00
Daniel Däschle
a6100be8df
parser: fix position of array init
...
* parser: fix position of array init
* fix checker_error_test.v tests
2020-04-13 19:08:02 +03:00
Daniel Däschle
1a4113d245
checker: store errors in []Error
2020-04-13 01:56:01 +02:00
Alexander Medvednikov
810a0725ec
tests: fix fmt tests
2020-04-12 17:49:31 +02:00
Alexander Medvednikov
0db0c642c3
vfmt: add missing imports automatically
2020-04-12 17:45:04 +02:00
Daniel Däschle
4449468ca4
parser: correct error position on field and method errors
2020-04-12 15:19:07 +03:00
Alexander Medvednikov
449d839684
checker: make sure functions return
2020-04-11 21:50:14 +02:00
Alexander Medvednikov
581d836de6
!in operator
2020-04-11 21:31:54 +02:00
Delyan Angelov
15f4594e44
msvc: fix self compile, by avoiding explicit casting to the same type
2020-04-11 13:35:41 +03:00
Alexander Medvednikov
053de0b8e3
checker: check variable mutability
2020-04-11 04:09:41 +02:00
Alexander Medvednikov
9422cd1009
parser: handle mut & receivers; fix checker_error_test
2020-04-11 02:24:00 +02:00
Alexander Medvednikov
8fbae86bb3
vfmt: skip skipped modules; add module test
2020-04-10 22:32:52 +02:00
Alexander Medvednikov
b95a47b5a7
checker: check fn main(); vfmt: fix for{}, module and module comments
2020-04-10 22:27:54 +02:00
Delyan Angelov
217e6f3b8e
checker/parser: allow for fixed array with sizes defined with a const
2020-04-10 22:01:22 +03:00
Alexander Medvednikov
f76931c01e
cache builtin modules
2020-04-10 18:11:43 +02:00
Daniel Däschle
c815f84722
parser: fix void assign check
2020-04-10 15:53:06 +03:00
Daniel Däschle
42b3b19af4
checker: fix checker enum infix error
2020-04-10 15:44:01 +03:00
Daniel Däschle
adb379dd63
parser: fix string position
2020-04-10 15:40:52 +03:00
Delyan Angelov
83dfc6b9b9
checker: add more checks for multivar assignments
2020-04-10 15:38:43 +03:00
Delyan Angelov
3573030b9b
checker: fix error position for assignment expression
2020-04-10 15:14:05 +03:00
Daniel Däschle
0f11d883fa
checker: fix error messages and add checker tests
...
* checker: fix error messages
* tests: fix command and ignore defect output
2020-04-10 11:59:07 +03:00
Daniel Däschle
32550c6d69
scanner: even better error messages
2020-04-10 00:09:34 +02:00
Daniel Däschle
320fad49c5
checker: check enum
2020-04-09 19:23:49 +02:00
Alexander Medvednikov
f508955b64
vfmt: fix mod.Type; run vfmt on ast.v
2020-04-09 15:33:46 +02:00
Alexander Medvednikov
fa6aaad6df
checker: handle `x := x`
2020-04-08 19:15:19 +02:00
Alexander Medvednikov
5ef5712e91
vfmt: do not generate a space if the comment is empty
2020-04-08 14:19:13 +02:00
Alexander Medvednikov
eb78396307
parser: fix prefix precedence
2020-04-08 13:53:11 +02:00
Delyan Angelov
ef19aa1de6
assert: fix line position, pretty print float literals and casts
2020-04-08 05:47:29 +03:00
Delyan Angelov
b9ec1479e4
checker: allow again fallthrough in or{} blocks of option calls without assignment
2020-04-08 02:56:24 +03:00
Alexander Medvednikov
6bbd1943dd
cgen: fix &string cast; vfmt fixes
2020-04-07 18:51:44 +02:00
Daniel Däschle
0024ff848d
parser: check if the last or {} block expression is valid
...
These checks allows for:
a) `x := call() or { 'abc' }`
b) `x := call() or { panic('abc') }`
c) `x := call() or { exit(123) }`
d) `x := call() or { continue }`
e) `x := call() or { break }`
f) `x := call() or { return }`
... but produce errors for:
g) `x := call() or { println('an error') }` , etc.
2020-04-07 17:36:00 +03:00
Alexander Medvednikov
8f9a8e1e7f
vfmt: small fixes + run on checker.v and fmt.v
2020-04-07 15:15:49 +02:00
Daniel Däschle
fe0942043c
checker: check if BranchStmt is in a loop
2020-04-07 12:29:11 +02:00
lutherwenxu
a8c92e6dff
checker: remove hack and enforce type checking
2020-04-07 03:27:06 +02:00
Alexander Medvednikov
b7560fe4bf
parser: do not allow duplicate methods; builder: cleaning up
2020-04-07 01:02:48 +02:00
Alexander Medvednikov
8d150d427a
merge and simplify cmd/v and v.builder
2020-04-07 00:44:31 +02:00
Alexander Medvednikov
d865fc26eb
http: fix method_and_url_to_response definition
2020-04-06 17:42:47 +02:00
lutherwenxu
e8b26b1b8d
checker: make struct_init check more robust
2020-04-06 17:39:52 +02:00
Alexander Medvednikov
be014fcdd6
checker: << check; initial #flag os support
2020-04-06 02:05:11 +02:00
Alexander Medvednikov
852ec61b34
vfmt: fix single line if
2020-04-05 23:00:21 +02:00
Alexander Medvednikov
ffe8452f02
vfmt: fix imports
2020-04-05 21:53:00 +02:00
Delyan Angelov
b0567543c9
add support for errcode in or{} optional blocks.
2020-04-04 21:47:57 +03:00
Alexander Medvednikov
33b03449d5
tools: remove vnames.v for now
2020-04-04 16:39:08 +02:00
krischerven
1960c6f4cb
checker: make an error message less ambiguous
2020-04-04 15:36:12 +02:00
joe-conigliaro
b4e5e36d4a
checker: var opt & temp `[]` & non array init error & bug notes
2020-04-04 22:32:16 +11:00
Alexey
5313a1401f
checker: show actual field name in warn message
2020-04-04 11:57:45 +02:00
joe-conigliaro
97d8633557
checker: constant cycle & test fix
2020-04-04 17:05:26 +11:00
joe-conigliaro
c9e290b36f
table: simplify/generalise type fns & remove calls
2020-04-04 16:37:11 +11:00
joe-conigliaro
bf59828897
ast: const impl & global scope & objects
2020-04-04 14:14:40 +11:00
Alexander Medvednikov
1d2de44e19
cgen: fix print(ptr); checker: uninitialized reference error/warning
2020-04-03 20:17:53 +02:00
Delyan Angelov
31c4b1cda6
v2: compile vfmt again; consistent colored error messages
2020-04-03 18:42:22 +03:00
Alexander Medvednikov
52f096f5d9
cgen: `go xxx()`
2020-04-03 15:18:20 +02:00
Alexander Medvednikov
87a185ea9c
checker: remove newlines after errors
2020-04-03 11:09:02 +02:00
Alexander Medvednikov
0dad1a89e6
checker: much less verbose error messages
2020-04-03 11:01:09 +02:00
Alexander Medvednikov
1d52847924
checker: error on an unknown ident
2020-04-03 10:52:48 +02:00
Alexander Medvednikov
a25f47124d
cgen: make array_set/map_set work with pointers
2020-04-03 10:41:01 +02:00
Delyan Angelov
07c53b1b70
v2: report ill defined consts by name/line, not only how many they are
2020-04-02 22:33:36 +03:00
hazohelet
0e6fe0a4f2
V: fix const bugs and pass const_test.v ( #4206 )
...
* fix const bug in v2
* v2: fix const decl
* small comment fix
2020-04-02 19:39:17 +02:00
Alexander Medvednikov
40fd924b15
parser: match must be exhaustive; cmd/v: one verbosity level, simpler version
2020-04-02 16:51:16 +02:00
krischerven
dac304195e
cgen: print: support all the same functionality as println
2020-04-02 09:19:57 +02:00
Alexander Medvednikov
88d15c6611
gl, glfw, freetype fixes
2020-04-02 01:45:22 +02:00
Alexander Medvednikov
39434155f8
short struct init syntax
2020-04-01 23:23:20 +02:00
Alexander Medvednikov
3ef6436bef
fix fmt2 test
2020-04-01 17:52:50 +02:00
Alexander Medvednikov
0de853a2ab
v2: lots of minor test fixes
2020-04-01 17:14:21 +02:00
Alexander Medvednikov
43f72246aa
checker: fix index type check
2020-03-31 17:51:16 +02:00
Alexander Medvednikov
9d630dff30
allow slicing of fixed size arrays
2020-03-31 16:48:00 +02:00
joe-conigliaro
3b621c0ce6
checker: make var_scope mutable
2020-03-31 15:41:14 +11:00
joe-conigliaro
602bc06bee
ast: use multi return optional for find_scope_and_var
2020-03-31 15:39:14 +11:00
joe-conigliaro
71ca553190
cgen: multi return/assign optionals
2020-03-31 15:34:59 +11:00
joe-conigliaro
3440d7edd8
ast: first step merging CallExpr & MethodCallExpr
2020-03-30 21:39:20 +11:00
Delyan Angelov
a9724fd38d
v2: typeof()
2020-03-28 17:37:22 +01:00
Alexander Medvednikov
831be43740
checker: check ! operator
2020-03-28 14:38:16 +01:00
joe-conigliaro
718819eb7a
map/scope/checker: update just var type & ret zero in map.get3
2020-03-29 00:00:28 +11:00
Alexander Medvednikov
473d9fef55
checker: do not allow extra () in if conditions
2020-03-27 14:57:19 +01:00
Joe Conigliaro
fd8bb2c95c
tests: small array/struct test notes & tmp fix
2020-03-27 20:47:24 +11:00
Joe Conigliaro
7ce7151ad2
cgen: v2 compiles itself - defer stmt / if * in opt parens.
2020-03-27 17:21:22 +11:00
Alexander Medvednikov
ed3e0c43bc
cgen: for c in string; short struct init syntax fixes;
2020-03-26 17:03:14 +01:00
Alexander Medvednikov
c71d36356b
v2: optionals fixes
2020-03-26 14:58:11 +01:00
Joe Conigliaro
1d0f3abadf
cgen/checker: variadic method call fix
2020-03-26 22:40:14 +11:00
Joe Conigliaro
b1d15afe61
checker: array slice type
2020-03-26 22:04:24 +11:00
Alexander Medvednikov
fc86269bc9
checker: array str fixes
2020-03-26 11:32:32 +01:00
Joe Conigliaro
9c6ac7cb71
cgen: fix variadics called with 0 vargs
2020-03-26 21:09:59 +11:00
Alexander Medvednikov
1f3428f282
cgen: basic assert
2020-03-26 10:27:46 +01:00
Alexander Medvednikov
456750ac19
v2: array_test fixes
2020-03-25 14:24:48 +01:00
Joe Conigliaro
8ba46965b6
checker: array map fixes
2020-03-25 20:07:53 +11:00
Alexander Medvednikov
5d976d841b
v2: raw strings
2020-03-24 17:07:27 +01:00
Alexander Medvednikov
32c8eb6490
os: vfmt os_test.v
2020-03-24 16:18:37 +01:00
Joe Conigliaro
9a8bd3f7fa
checker: variadic method fix
2020-03-24 22:39:11 +11:00
joe-conigliaro
e5a111396c
cgen: add for map
2020-03-24 17:25:10 +11:00
Joe Conigliaro
076bc2b773
cgen/checker: fixes & fixes & tmp fixes :D
2020-03-23 02:22:49 +11:00
Alexander Medvednikov
c0df54b7d3
checker: check $if else
2020-03-22 14:56:13 +01:00
Alexander Medvednikov
c2ce06eba7
cgen: generate #ifdefs
2020-03-22 13:55:39 +01:00
Joe Conigliaro
043ea80fa9
checker: comptime if expr/stmts & type check fixes
2020-03-22 23:36:27 +11:00
Alexander Medvednikov
4cbba8c45d
memory: handle arrays
2020-03-22 13:19:45 +01:00
Joe Conigliaro
efbf114a2f
checker: ref & deref in prefix expr
2020-03-22 02:41:01 +11:00
Joe Conigliaro
fc43294efc
checker: deref fix
2020-03-22 01:27:10 +11:00
Joe Conigliaro
f7042e9038
cgen: sum type cast & map str() receiver
2020-03-21 23:57:11 +11:00
Joe Conigliaro
eb8d64999f
checker: temp map str() method fix
2020-03-21 22:31:25 +11:00
Alexander Medvednikov
c12985d1d7
cgen: for in; init fixes
2020-03-21 10:22:19 +01:00
Alexander Medvednikov
5072320803
cgen/ast/checker: string interpolation
2020-03-21 07:01:11 +01:00
Joe Conigliaro
15d4b5fcdb
checker/fmt/cgen: fun vfmt on changes from previous commit
2020-03-21 00:46:00 +11:00
Joe Conigliaro
a331abf675
ast/cgen/parser: combine IfExpr branches into single node
2020-03-21 00:39:56 +11:00
Alexander Medvednikov
216c7a16d8
cgen: filter + expected_type fix
2020-03-19 15:18:29 +01:00
Alexander Medvednikov
b290efa394
ast: TypeOf
2020-03-19 12:15:42 +01:00
Joe Conigliaro
97fbbac973
checker: enum value, use base type no extra info
2020-03-19 21:52:47 +11:00
Joe Conigliaro
408553e967
gen: add typedefs for optional enums & array clone receiver type fix
2020-03-19 21:04:51 +11:00
Joe Conigliaro
6c56528cd7
checker: update assoc type
2020-03-19 19:52:33 +11:00
Joe Conigliaro
a456c21249
gen: cgen sum cast in struct init
2020-03-19 19:40:21 +11:00
Joe Conigliaro
6e5b58413a
checker: check assoc field exprs
2020-03-19 18:57:33 +11:00
Joe Conigliaro
3e70e5f2f1
gen: add `in` for map and string to cgen
2020-03-19 18:32:42 +11:00
Alexander Medvednikov
fe6707b26d
cgen: minor fixes
2020-03-18 16:47:37 +01:00
Alexander Medvednikov
c514f0b672
cgen: automatic dereference and match fix
2020-03-18 16:07:54 +01:00
Joe Conigliaro
c4f6125a31
gen/checker: add errors for as cast & for in var
2020-03-19 00:50:21 +11:00
Joe Conigliaro
96af21ff68
gen: impl as cast
2020-03-18 23:55:46 +11:00
Joe Conigliaro
5fb90e12b1
checker: ForInStmt only call table.value_type once
2020-03-18 23:29:28 +11:00
Joe Conigliaro
4262ff76c3
checker/parser: check & gen stmts for ForIn & fix key, val vars
2020-03-18 23:18:18 +11:00
Alexander Medvednikov
91378583cc
cgen: another expected_type fix
2020-03-18 12:34:27 +01:00
Alexander Medvednikov
af289da844
ast: MatchExpr: expr_type => cond_type
2020-03-18 12:23:32 +01:00
Alexander Medvednikov
256a93e6e6
checker: expected_type fixes
2020-03-18 12:18:48 +01:00
Joe Conigliaro
126ef0f5c2
checker/gen: add unchecked exprs & small fixes
2020-03-18 19:56:19 +11:00
Alexander Medvednikov
a011b8951a
cgen: if/match expressions and other fixes
2020-03-18 08:41:49 +01:00
Joe Conigliaro
3fecf154aa
gen: move helper fns to ast
2020-03-18 11:19:23 +11:00
Joe Conigliaro
91e47caf38
gen: add if guard to cgen
2020-03-18 02:40:41 +11:00
Delyan Angelov
f73b38a0d8
vfmt2: fix literal integer number formatting
2020-03-17 02:49:15 +01:00
Joe Conigliaro
cf094c6265
cgen: gen fn type declerations
2020-03-16 20:12:03 +11:00
joe-conigliaro
c947e6ebe6
cgen: cast to sum type
2020-03-16 17:42:45 +11:00
Alexander Medvednikov
8a8f50a6a0
cgen: unwrapped optionals
2020-03-15 08:18:45 +01:00
Joe Conigliaro
3e05939b65
cgen: enum fixes
2020-03-15 12:51:31 +11:00
Alexander Medvednikov
843bb6dac1
cgen: lots of fixes
2020-03-15 00:46:08 +01:00
Joe Conigliaro
cc338df77f
parser/checker/gen: update call args to use ast.CallArg
2020-03-14 21:11:43 +11:00
Joe Conigliaro
920ab79665
checker: check range exprs
2020-03-13 23:08:03 +11:00
Alexander Medvednikov
b173cea177
cgen: optionals
2020-03-13 05:57:55 +01:00
Alexander Medvednikov
4b4c47461b
cgen: error fixes; table: simplify; compiler tests
2020-03-13 01:43:30 +01:00
Alexander Medvednikov
92d6eec09a
cgen: fix remaining errors. hello world now compiles
2020-03-12 09:11:41 +01:00
Alexander Medvednikov
a182b5c531
cgen: more errors fixed
2020-03-11 23:22:40 +01:00
Alexander Medvednikov
e0c85f87ae
cgen: args fixes
2020-03-11 21:11:27 +01:00
Alexander Medvednikov
aada19f574
cgen: fix [] => string casts and for in
2020-03-11 19:00:55 +01:00
Joe Conigliaro
01004bc5d8
checker: remove test println from previous commit
2020-03-12 02:29:02 +11:00
Joe Conigliaro
a1314bd199
checker/gen/table: impl fn types & sum/other fixes & tidy
2020-03-12 02:10:46 +11:00
Joe Conigliaro
7513dab185
table/checker: proper parent field/method lookup & cleanup
2020-03-11 20:48:45 +11:00
Alexander Medvednikov
0ad9eb5e16
scanner: remove the "too long name" error; checker: check string() cast arg
2020-03-11 06:46:14 +01:00
Alexander Medvednikov
cd0b81fc5f
cgen: fix a bug with [].repeat
2020-03-11 06:30:20 +01:00
Alexander Medvednikov
a2ff24c912
cgen: reference receiver test
2020-03-11 05:56:15 +01:00
Alexander Medvednikov
75db3e4416
cgen: fix ptr indexing
2020-03-11 05:25:15 +01:00
Alexander Medvednikov
de55a26cfe
cgen: lots of fixes
2020-03-10 23:21:29 +01:00
Joe Conigliaro
bc184a9f02
checker: properly update var info in AssignStmt
2020-03-11 01:16:30 +11:00
Joe Conigliaro
ddd5a9443d
v: fix AssignStmt
2020-03-11 00:45:21 +11:00
Joe Conigliaro
c9d30f78b7
v: no optional for scope.innermost & more blank_ident
2020-03-10 23:35:25 +11:00
Joe Conigliaro
f7a93a69f6
v: fix/gen multi return/assign + merge VarDecl & AssignStmt
2020-03-10 22:01:37 +11:00
Alexander Medvednikov
e3687dc257
checker: check C args
2020-03-08 22:11:56 +01:00
yuyi
783dee1f48
os: merge with filepath
2020-03-07 22:26:26 +01:00
Alexander Medvednikov
fbf80dc315
cgen: array_set()
2020-03-07 16:39:15 +01:00
Alexander Medvednikov
24bcc7a93b
cgen: array and fixed array fixes
2020-03-07 14:31:40 +01:00
Joe Conigliaro
09d9dd2607
v: add map init
2020-03-07 18:13:00 +11:00
Alexander Medvednikov
260f708bb2
cgen: array << val
2020-03-07 05:19:15 +01:00
Alexander Medvednikov
c14c81ace6
cgen: fix ->
2020-03-07 04:45:35 +01:00
Alexander Medvednikov
f699dcac94
checker: check println arg
2020-03-07 00:38:35 +01:00
Alexander Medvednikov
180b9b971a
cgen: string_add()
2020-03-07 00:34:14 +01:00
Alexander Medvednikov
5c8617ec68
ast: set IndexType.container_type; array_get()
2020-03-06 17:06:03 +01:00
Joe Conigliaro
db22bc579a
v: update resovled call expr name
2020-03-07 01:02:40 +11:00
Joe Conigliaro
89cbe76193
v: run cast expr through checker
2020-03-07 00:36:32 +11:00
Joe Conigliaro
3de3b38dc1
v: udpate elem_type in ArrayInit node & tests
2020-03-07 00:06:52 +11:00
Joe Conigliaro
49f3ce0571
v2: add method call receiver to cgen & check method args
2020-03-06 20:52:03 +11:00
Joe Conigliaro
7008b1a92c
v2: update ident name for resolved const/fn objects
2020-03-06 10:10:01 +11:00
Joe Conigliaro
272eaaa704
v2: remove type fields from parser & some cleanup
2020-03-05 23:57:05 +11:00
Joe Conigliaro
9921897aa6
v2: add some comments in parser & checker
2020-03-05 22:44:33 +11:00
Joe Conigliaro
6de44db4eb
v2: update checker. missing from previous commits
2020-03-05 22:30:16 +11:00
Alexander Medvednikov
4161cfcdb8
cgen: lots of fixes
2020-03-05 00:43:09 +01:00
Alexander Medvednikov
37453945d0
cgen: remaining nodes; match type fix; v2.c is now generated
2020-03-04 15:48:43 +01:00
Joe Conigliaro
8458ea40f0
v2: add UnsafeStmt to checker & byte/byteptr to check
2020-03-05 00:20:37 +11:00
Joe Conigliaro
e71948461e
v2: update MatchExpr
2020-03-04 21:59:45 +11:00
Joe Conigliaro
ed763df42e
v2: tidy checker remove old comments & code
2020-03-04 21:08:46 +11:00
Joe Conigliaro
d501ea0afb
v2: fix array init
2020-03-04 12:50:32 +11:00
Joe Conigliaro
bac6fc6ee2
v2: remove test println from checker
2020-03-04 09:49:14 +11:00
Joe Conigliaro
ea26b5f30c
v2: fix fn call name lookup
2020-03-04 09:46:59 +11:00
Alexander Medvednikov
2a99422386
cgen: more nodes; exit if there are checker errors
2020-03-03 18:37:38 +01:00
Alexander Medvednikov
0c67b3cff4
checker: fix match return type
2020-03-03 17:29:16 +01:00
Joe Conigliaro
147ecc5e17
v2: time - prefix C struct & ast.TypeName to ast.Type
2020-03-04 01:06:21 +11:00
Alexander Medvednikov
22ffe336cb
checker: AsCast, CharLiteral, fix integer index check
2020-03-02 19:00:33 +01:00
Alexander Medvednikov
baaa55f196
cgen: fix methods; println
2020-03-02 18:27:00 +01:00
Joe Conigliaro
16528b12fa
v2: allow enum value to be used as int
2020-03-02 21:32:28 +11:00
Joe Conigliaro
f57a651e3b
v2: match expr fixes & tmp typeof skip
2020-03-02 20:53:38 +11:00
joe-conigliaro
b65fad9ca8
v2: fix if guard var type & handle blank ident in assign
2020-03-02 16:05:40 +11:00
joe-conigliaro
a118c72423
v2: checker - save type in MapInit node
2020-03-02 14:24:45 +11:00
joe-conigliaro
b333d02e3b
v2: allow none & error for functions that return optional - checker
2020-03-02 13:58:36 +11:00
Alexander Medvednikov
38de6c98fc
cgen: test local modules
2020-03-01 21:56:07 +01:00
Joe Conigliaro
1ab830da4b
v2: fix var mistaken for enum in parser
2020-03-02 01:19:10 +11:00
Alexander Medvednikov
82b0024758
fix v2 parser int.v error
2020-03-01 14:57:54 +01:00
Alexander Medvednikov
d7a8b1b4f2
checker: set fn arg expected_type
2020-03-01 14:10:10 +01:00
Alexander Medvednikov
7a499b3cd3
checker: fix first() and last(); call_args; method cgen
2020-03-01 13:07:51 +01:00
Joe Conigliaro
9978fb3e2c
v2: fix map_init return type in checker
2020-03-01 21:45:44 +11:00
Joe Conigliaro
00dcaf0e04
v2: ArrayInit + all errs & unhandled + arrange nodes + type fix
2020-03-01 15:14:36 +11:00
Alexander Medvednikov
4e88c2286e
checker: IfGuard, map fixes
2020-02-29 20:11:04 +01:00
Alexander Medvednikov
ee05b51f47
checker: fix match expected_type
2020-02-29 18:34:25 +01:00
Alexander Medvednikov
a15dcbfb2d
checker: set expected_type in several places
2020-02-29 18:25:38 +01:00
Alexander Medvednikov
27ce38937c
checker: fix Assoc
2020-02-29 18:07:29 +01:00
Joe Conigliaro
f67fca826e
v2: fix C function & type prefixing
2020-02-29 21:47:47 +11:00
Joe Conigliaro
48f912c2e9
v2: handle variadic in selector_expr
2020-02-29 19:04:47 +11:00
Joe Conigliaro
236b7b15bb
v2: handle optional in return stmt in checker
2020-02-29 16:32:00 +11:00
Joe Conigliaro
eb80accfee
v2: add ParExpr to checker
2020-02-29 15:36:39 +11:00
Alexander Medvednikov
7f5a15372f
os: fix get_raw_line() + minor v2 fixes
2020-02-28 14:05:20 +01:00
Joe Conigliaro
c4b9ef388f
v2: handle var decl & assign stmt together 1st step combining
2020-02-28 23:29:04 +11:00
Alexander Medvednikov
3bde876097
v2: checker: fix --/++
2020-02-27 17:31:10 +01:00
Alexander Medvednikov
09b7a7c872
v2: checker: handle clone()
2020-02-27 17:21:13 +01:00
Alexander Medvednikov
b1357d9641
v2: checker: fix filter()
2020-02-27 16:51:47 +01:00
Joe Conigliaro
237d83b2ee
v2: more work on AssignStmt & multi ret & initial blank ident
2020-02-27 21:12:30 +11:00
Alexander Medvednikov
c51f464446
v2: fix `mod.Enum.val` and `x = .val`
2020-02-27 00:12:40 +01:00
Alexander Medvednikov
857cbfb0d2
v2: short struct init syntax; .xxx enum checks; unions; assert
2020-02-26 15:51:05 +01:00
Alexander Medvednikov
28ee0f4ebe
checker: check enums
2020-02-25 15:02:34 +01:00
Alexander Medvednikov
cd41967aa1
fmt: struct pub/mut fields, map init
2020-02-22 14:13:22 +01:00
joe-conigliaro
b250ded3fa
v2: fix typo & remove unneeded field
2020-02-22 23:08:14 +11:00
joe-conigliaro
30c8a5a010
v2: temp const fix
2020-02-22 23:04:56 +11:00
Alexander Medvednikov
6f577321f1
checker: fix build
2020-02-22 12:58:16 +01:00
Alexander Medvednikov
e459e6d24a
checker: remove unnecessary exits
2020-02-22 12:57:18 +01:00
Alexander Medvednikov
6dac2edeef
checker: is_number()
2020-02-21 13:44:03 +01:00
Alexander Medvednikov
e35f8e9e23
checker: return errors
2020-02-20 17:05:16 +01:00
Alexander Medvednikov
296e736f5b
checker: minor fixes
2020-02-20 16:16:44 +01:00
joe-conigliaro
72bbec89a9
v2: fix error in checker, continue instead of break
2020-02-21 00:20:08 +11:00
joe-conigliaro
6f7c103e50
v2: checker use kind instead of idx
2020-02-20 23:27:23 +11:00
joe-conigliaro
e7e2c68d09
v2: allow type with str method to be used as fn string argument
2020-02-20 23:18:55 +11:00
Alexander Medvednikov
c099cd8bf6
pratt: fix precedence
2020-02-20 12:59:05 +01:00
Alexander Medvednikov
0074976636
checker: exit if there are errors
2020-02-20 12:05:53 +01:00
joe-conigliaro
fcd97f513a
v2: module/type/fn name fixes, compile fixes
2020-02-20 21:13:18 +11:00
Alexander Medvednikov
92e3e48bce
v2: checker: [] and in
2020-02-19 21:13:42 +01:00
Alexander Medvednikov
ec3d67c19f
checker: print multiple errors; none
2020-02-19 19:54:42 +01:00
joe-conigliaro
e4179c0008
v2: more array init & index expr fixes
2020-02-20 00:34:44 +11:00
joe-conigliaro
69634c60b3
v2: start to fix index expr for map/array/fixed array
2020-02-19 21:45:06 +11:00
joe-conigliaro
42399d24d9
v2: fix index expr for fixed array & map
2020-02-19 21:39:30 +11:00
Alexander Medvednikov
bc11419ff9
v2: fix for position and check
2020-02-19 11:06:36 +01:00
joe-conigliaro
b62a90a212
v2: module/import fixes, use parent_idx instead of parent ptr to remove need to preallocate types array
2020-02-19 13:09:35 +11:00
Alexander Medvednikov
480af3f381
v2: checker fixes
2020-02-18 20:06:01 +01:00
joe-conigliaro
67756c53dc
v2: more cleanup ( #3765 )
2020-02-18 18:58:20 +11:00
yuyi
6849a4e770
filepath: path separator ( #3756 )
2020-02-17 20:31:23 +01:00
Alexander Medvednikov
53f8ae6517
fix prod build
2020-02-17 14:30:01 +01:00
Alexander Medvednikov
1dd6491a2f
v2: more parser fixes
2020-02-17 14:15:49 +01:00
joe-conigliaro
d7f74ecf52
v2: move more type handling to checker + some clean up
2020-02-17 12:25:18 +01:00
joe-conigliaro
dc90f4f4a6
v2: remove unresolved types; handle types in checker; add ast.scope
2020-02-15 13:37:48 +01:00
Alexander Medvednikov
d5f90ef64b
v2: handle unresolved consts
2020-02-10 18:43:25 +01:00
joe-conigliaro
bf5ed5e451
v2: fix array index, for loop, add cast expr & other minor fixes
2020-02-10 14:43:17 +01:00
Alexander Medvednikov
3f6ccd3120
v2: minor fixes
2020-02-10 13:58:24 +01:00
joe-conigliaro
e274c5c485
v2: type sys - store type idx/ptr in int & add helpers
2020-02-10 08:32:08 +01:00
joe-conigliaro
a2d2586331
v2: map / string / builtin type fixes
2020-02-08 16:59:57 +01:00
joe-conigliaro
9e9bdc32ea
v2: lots of small fixes parent method/field resolution
2020-02-08 09:50:12 +01:00
Alexander Medvednikov
f782388148
v2: minor fixes
2020-02-07 21:29:28 +01:00
joe-conigliaro
35bef514b0
v2: checker & unresolved fixes & small updates
2020-02-07 18:46:42 +01:00
Alexander Medvednikov
f241945d70
v2: `as` cast
2020-02-07 09:19:45 +01:00
Alexander Medvednikov
bb60b3081f
v2: parse builtin successfully
2020-02-07 07:34:18 +01:00
joe-conigliaro
67a13fc916
v2: start impl multi assign
2020-02-06 17:38:02 +01:00
joe-conigliaro
d9e92a08cb
v2: use pointer to table.type, fix unresolved array/map sub-types
2020-02-06 13:57:35 +01:00
joe-conigliaro
85e4e4cb40
v2: resolve unresolved call expression types & add test
2020-02-04 12:03:12 +01:00
Alexander Medvednikov
c7f07cd0b6
v2: postfix_expr() checker
2020-02-04 07:37:41 +01:00
Alexander Medvednikov
64bfae0a0e
2
2020-02-03 11:54:41 +01:00
Alexander Medvednikov
6489b48c9c
v2: clean up IndexExpr type check
2020-02-03 11:29:50 +01:00
Alexander Medvednikov
1ac7a95f9b
fix array_test.v
2020-02-03 10:27:06 +01:00
Alexander Medvednikov
50b704c5dd
sum type: mut
2020-02-03 09:25:26 +01:00
Alexander Medvednikov
34e9eb32bb
sum types: allow modification in `match`
2020-02-03 09:11:10 +01:00
Alexander Medvednikov
d918903252
v2: move index expr type check
2020-02-03 07:45:09 +01:00
joe-conigliaro
2d5c70832c
v2: initial module support
2020-02-03 07:31:54 +01:00
Alexander Medvednikov
d87cb3f672
v2: consts, $if, attributes, globals, if/for type check, prefs
2020-02-03 07:03:32 +01:00
Alexander Medvednikov
71653273f6
v2: range, *, function object
2020-02-02 14:32:12 +01:00
Alexander Medvednikov
377d8dc42c
v2: parser_test: run all tests
2020-02-02 08:06:21 +01:00
Alexander Medvednikov
9f4661391d
v2: simplify the type system; an initial version of the V interpreter
2020-02-02 07:56:18 +01:00
Shun Sakai
c8c43a2475
update copyright year
2020-01-23 21:04:46 +01:00
joe-conigliaro
3a8b437b8d
v2: move array_init to checker
2020-01-19 13:52:34 +01:00
joe-conigliaro
09d1eb7c55
v2: type checker + lots of other changes
2020-01-18 23:26:14 +01:00