Daniel Däschle
500ebf77e4
all: implement multiple generics ( #8231 )
2021-01-22 13:49:56 +01:00
Daniel Däschle
3ee7bc960f
checker/gen: fix smartcast pointer sumtype ( #8260 )
2021-01-21 22:31:25 +02:00
joe-conigliaro
97ebecc5f4
usecache: get all tests running with -usecache enabled by default (p.1) ( #7699 )
2021-01-20 06:04:59 +01:00
Tim Basel
129eee346b
fmt: keep single empty lines ( #8189 )
2021-01-19 14:49:40 +01:00
Lukas Neubert
b44c08aff0
fmt: wrap match branch expressions ( #8190 )
2021-01-19 06:16:42 +01:00
Lukas Neubert
ac2c3847af
all: update copyright to 2019-2021 ( #8029 )
2021-01-18 13:20:06 +01:00
Lukas Neubert
16c9cbce7c
fmt: correctly increase f.line_len for write_indent ( #8174 )
2021-01-18 06:02:29 +01:00
Nick Treleaven
df39e7001c
parser: support `module:` for immutable private struct fields ( #8140 )
2021-01-17 05:39:44 +01:00
Delyan Angelov
c4c4b9c7b1
gen,checker: implement g.trace/2 and c.trace/2, similar to p.trace/2
2021-01-15 20:28:53 +02:00
Uwe Krüger
8d014d4646
sync: allow `go` routine join with return value ( #8125 )
2021-01-15 13:45:26 +01:00
Larpon
f73500f2fe
all: add support for the `x := $embed_file('v.png')` compile time call ( #8048 )
2021-01-14 16:20:11 +02:00
yuyi
a2efb5319d
all: change `[1,2,3]!!` to `[1,2,3]!` ( #8101 )
2021-01-14 03:51:13 +01:00
Nick Treleaven
ac85257ea0
parser: fix sizeof(mod.Type), fix checking sizeof expression ( #8065 )
2021-01-13 06:13:39 +01:00
zakuro
33694665f0
fmt: align each contiguous field of struct. not the whole. ( #7981 )
2021-01-12 04:38:43 +01:00
Lukas Neubert
5d6e9f7bf9
fmt: fix rare extra tab after a SumType ( #8035 )
2021-01-11 22:19:42 +01:00
Lukas Neubert
e79695e8fc
fmt: keep comments after call_expr in vscript ( #7990 )
2021-01-09 22:47:33 +01:00
Ned Palacios
256ddcee1f
v.ast: add walker submodule for ast walking ( #7775 )
2021-01-09 05:36:38 +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
Uwe Krüger
cbe7740d97
fmt: do not generate `import` statements for auto imports ( #7966 )
2021-01-08 17:42:40 +01:00
Delyan Angelov
46a5c487c1
parser,fmt: implement `[manualfree] module abc` for opting out *all* fns in a given .v from autofree
2021-01-08 17:24:42 +02:00
Delyan Angelov
083dc23db8
gen: implement a `[manualfree]` tag, for functions, that want to do their own memory management
2021-01-08 16:22:27 +02:00
Daniel Däschle
88d18f3303
checker: smartcast in for loops ( #7942 )
2021-01-07 21:35:32 +01:00
Nick Treleaven
cbefe6c32f
parser: warn about old use of `typeof` ( #7923 )
2021-01-07 20:32:02 +01:00
Uwe Krüger
ffd753abdc
all: implement `ch <- x or {...}` and `ch <- x ?` ( #7928 )
2021-01-06 21:19:40 +01:00
Nick Treleaven
3203a124b2
checker: warn when casting between reference types outside of `unsafe` ( #7892 )
2021-01-05 17:02:04 +02:00
Daniel Däschle
5841d5d8e1
all: implement basic comptime field selector ( #7888 )
2021-01-05 16:11:43 +02:00
Daniel Däschle
7c9fb73b3f
vfmt: fix comments before ...f in Abc{...f} ( #7870 )
2021-01-04 21:01:35 +02:00
Daniel Däschle
164d7bf5fb
parser: struct updating syntax with `Abc{...oldabc newfield: val}` ( #7865 )
2021-01-04 20:19:03 +02:00
zakuro
dd516858d4
fmt: align struct field comments ( #7632 )
2021-01-03 21:10:25 +01:00
Swastik Baranwal
a9ab79d301
checker: ban any_int/any_float outside buitlin ( #7675 )
2020-12-31 12:41:30 +01:00
lydiandy
20f507651e
v.ast: remove unused path and expr fields in Module ( #7625 )
2020-12-31 12:17:59 +02:00
Alexander Medvednikov
ad78875a8c
parser: allow `const x = 0` consts outside of const blocks
2020-12-30 02:15:44 +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
Lukas Neubert
2360762a42
fmt: fix unexpected `comment`, expecting struct key for trailing arg syntax ( #7658 )
2020-12-28 20:26:24 +02:00
Lukas Neubert
4783503185
fmt: keep interface comments between methods ( #7650 )
2020-12-28 18:14:55 +02:00
lydiandy
ecc7c27c9c
v.ast: document vlib/v/ast/ast.v ( #7624 )
2020-12-28 13:52:04 +02:00
Lukas Neubert
e7ca5dd17a
fmt: update expr_is_single_line for MatchExpr, StructInit and CallExpr with or block ( #7564 )
2020-12-25 21:43:50 +02:00
Lukas Neubert
2c0fba5480
fmt: keep comment between enum fields ( #7566 )
2020-12-25 21:41:59 +02:00
spaceface
214290d55b
fmt: add a space around single-line `unsafe` expressions ( #7505 )
2020-12-23 19:13:42 +01:00
Daniel Däschle
b27f5c378c
all: reimplement struct embedding with methods ( #7506 )
2020-12-23 19:12:49 +01:00
Alexander Medvednikov
1f74f83bc6
parser: map or block; checker: require ref field init
2020-12-19 10:28:17 +01:00
joe-conigliaro
0aa9f5a007
all: optimize scope usage in checker & parser. store scope in ast nodes ( #7281 )
2020-12-12 19:01:12 +11:00
Lukas Neubert
25153490e1
fmt: keep comments after assign on same line ( #7269 )
2020-12-11 19:20:24 +02:00
spaceface777
ca2c082a5e
checker: initial support for evaluating expressions at compile time ( #7248 )
2020-12-11 04:46:06 +01:00
Daniel Däschle
0bf679a7aa
checker: correct underline for unknown type in method type ( #7223 )
2020-12-10 11:51:22 +02:00
Daniel Däschle
a38fe4fca9
checker: fix smartcast inside smartcast ( #7215 )
2020-12-10 00:59:39 +01:00
Lukas Neubert
3b6b5b8090
vfmt: properly parse comments on lines after init fields ( #7202 )
2020-12-09 11:11:22 +02:00
joe-conigliaro
78a6795319
all: change the way import symbols work & support consts ( #7182 )
2020-12-07 19:13:03 +02:00
Alexander Medvednikov
8eff8b0eff
autofree: fix `for` args
2020-12-06 08:38:21 +01:00
Alexander Medvednikov
b6ae81032f
ast: Var.is_tmp field
2020-12-06 08:19:17 +01:00
joe-conigliaro
7733834751
parser/cgen: autofree - move branch_parent_pos to cgen.
2020-12-06 18:02:36 +11:00
Delyan Angelov
946a1418fe
Revert "autofree: handle tmp vars in for loops"
...
This reverts commit 1d6c604664
.
2020-12-05 21:52:50 +02:00
Alexander Medvednikov
1d6c604664
autofree: handle tmp vars in for loops
2020-12-05 20:11:31 +01:00
joe-conigliaro
83f651c29a
cgen: autofree - know where to stop freeing parent scops on continue/break
2020-12-06 02:36:27 +11:00
Alexander Medvednikov
0ea2fa228f
autofree: fix `or {}`; ci: bring back gitly -autofree
2020-12-04 18:06:53 +01:00
joe-conigliaro
f1965c0510
ast: fmt ast.v
2020-12-01 21:20:27 +11:00
joe-conigliaro
9b583f51f1
ast: remove field which should have been removed in #34e124d
2020-12-01 20:15:35 +11:00
joe-conigliaro
34e124d5f7
cgen: auto cast sum type in array init. fixes #6907
2020-12-01 20:03:45 +11:00
joe-conigliaro
a7d917474d
checker: simplify generic fn post processing
2020-12-01 16:43:10 +11:00
Daniel Däschle
32c027a0bf
parser: disallow ptr type as sum type variant ( #6996 )
2020-11-28 23:40:40 +02:00
Daniel Däschle
6e4dad9acf
parser: fix position of array init ( #6998 )
2020-11-28 17:05:14 +02:00
Daniel Däschle
966b95ca4e
parser: move mut in if/match to expr ( #6973 )
2020-11-27 03:08:42 +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
aa6303f0b2
all: use the new types with old syntax ( #6922 )
2020-11-24 13:58:29 +01:00
Daniel Däschle
96539e43b5
all: nested sum types ( #6913 )
2020-11-23 16:16:13 +01:00
Swastik Baranwal
650cdef8b4
checker: disallow array sum types without default field ( #6892 )
2020-11-21 00:07:25 +01:00
Daniel Däschle
838ad16296
all: refactor ast.Expr to use the new sum type implementation ( #6792 )
2020-11-21 00:05:57 +01:00
Nick Treleaven
d5242e0bf5
gen: implement labelled break and continue (retry) ( #6887 )
2020-11-20 12:23:48 +01:00
Lukas Neubert
ef3e8d2c84
vfmt: handle comments after type declarations ( #6874 )
2020-11-20 11:51:50 +02:00
Alexander Medvednikov
4328233504
Revert "gen: implement labelled break and continue ( #6880 )"
...
This reverts commit e798326a1a
.
2020-11-20 02:51:35 +01:00
Nick Treleaven
e798326a1a
gen: implement labelled break and continue ( #6880 )
2020-11-19 21:13:15 +01:00
Daniel Däschle
9feb010355
all: mutable smartcasts ( #6878 )
2020-11-19 17:28:46 +01: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
Delyan Angelov
f42a44abec
vfmt: fix `match x { 10 /* ... */ {} }` and `a := [1/* x */, /* y */2, 3]`
2020-11-11 22:59:43 +02:00
Delyan Angelov
ebfd259333
vfmt: support `struct Repo <T, U> { }`
2020-11-11 17:50:03 +02:00
Daniel Däschle
6271798ce3
cgen: union sum types implementation ( #6745 )
2020-11-11 09:18:15 +01:00
Nick Treleaven
c76e486765
parser: implement `T.name` for generic types ( #6783 )
2020-11-09 14:35:26 +01:00
Alexander Medvednikov
1c257abc23
autofree: simplify: merge tmp arg logic with scope vars
2020-11-09 14:24:46 +01:00
pancake
2994e7150f
vweb: check function and route parameter count ( #6761 )
2020-11-08 09:14:24 +01:00
Delyan Angelov
e80487b35c
vfmt: support inline comments before fields in struct initializations
2020-11-05 18:49:52 +02:00
Delyan Angelov
35096cda3f
vfmt: support comments after interface methods
2020-11-05 18:23:45 +02:00
Larpon
785bf40f67
all: remove comp time '@' expansion from scanner ( #6746 )
2020-11-05 10:12:32 +02:00
Delyan Angelov
9eb655e65c
all: add .pos fields to all AST nodes, to avoid wrong positions in error messages
2020-11-04 13:34:12 +02:00
Delyan Angelov
70cbf56655
cgen: show more informative errors, instead of a `invalid type (typ=0 idx=0)` verror panic
2020-10-30 20:26:08 +02:00
Alexander Medvednikov
2c75b1397c
all: struct embedding
2020-10-30 07:09:26 +01:00
Ned Palacios
ccc0cb23ed
doc: store source content, restructure module directory ( #6692 )
2020-10-29 17:21:37 +01:00
Alexander Medvednikov
f19ca6b411
autofree: simplify, use more scoping, fix expressions inside or blocks
2020-10-29 01:09:38 +01:00
Alexander Medvednikov
66b8462d7a
autofree: handle method chains
2020-10-22 03:51:28 +02:00
Delyan Angelov
ab137e4164
cgen: print results of failed callexprs in `assert fn() == fn2()` ( #6665 )
2020-10-21 21:58:40 +02:00
Delyan Angelov
3c2202572b
cgen: produce cleaner error on missing C headers (with optional explanation) ( #6637 )
...
Implements support for `#include <openssl/rand.h> # Please install OpenSSL`.
2020-10-17 18:27:06 +03:00
Enzo
b083f4014b
fmt: fix multiple things and format most of the compiler ( #6631 )
...
Format expressions inside string interpolation like the rest (it used to be a+b instead of a + b, not too sure why)
Fix formatting some match branches when there were only one statement inside (it was inlined)
Fix parsing and formatting some comments edge case on struct field init. You should check out this test because the result is a bit different from before. I personally find it more logical but I would understand if the former format was to stay
Fix formatting of void-returning function signature
2020-10-15 22:12:59 +02:00
Swastik Baranwal
314fae7446
checker: add more checks for hash_stmt ( #6615 )
2020-10-15 11:58:01 +03:00
Delyan Angelov
c33a748344
vfmt: handle more comments in interface/struct init/match branches
2020-10-14 22:52:33 +03:00
Alexander Medvednikov
25947a7b23
autofree: handle args in optional returns
2020-10-14 13:23:58 +02:00
Alexander Medvednikov
a07f31feae
all: `for mut val in vals {` (part 1)
2020-10-13 16:27:30 +02:00
JalonSolov
57d705e265
ast: minor code cleanup ( #6608 )
2020-10-12 23:11:51 +02:00
Swastik Baranwal
d77669da80
test: add tests for disallowing map/array get element/key address ( #6568 )
2020-10-05 18:40:51 +03:00
Enzo
c84848c417
fmt: fix formatting enum with attributes ( #6551 )
2020-10-03 21:33:02 +03:00