Ned Palacios
5597925d58
parser: separate SelectorExpr if name is on another line ( #7700 )
2020-12-31 12:37:11 +01:00
Daniel Däschle
3ee3c8b3ed
parser: proper error on fn decl in script mode ( #7680 )
2020-12-30 21:18:36 +02:00
Daniel Däschle
e4edc5925a
parser: embed always public and mutable ( #7722 )
2020-12-30 21:17:48 +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
Lukas Neubert
97bfabf194
fmt: heavily refactor and improve/fix logic for structs that use short args syntax ( #7653 )
2020-12-28 18:14:08 +02:00
Lukas Neubert
ef6011b94c
fmt: keep comments after struct decl default value ( #7648 )
2020-12-28 15:38:21 +02:00
Ned Palacios
2946673bc2
parser: fix StructInitField pos, when value expr is empty ( #7643 )
2020-12-28 12:39:02 +02:00
yuyi
dea3d0431d
parser: minor cleanup of `parse_block_no_scope()` ( #7644 )
2020-12-28 11:58:44 +02:00
Lukas Neubert
06fdf34214
fmt: unwrap long single line ifs ( #7608 )
2020-12-27 14:20:30 +01:00
Nick Treleaven
e813583bc1
checker: support integer and voidptr key types for maps ( #7503 )
2020-12-27 14:18:46 +01:00
Alexander Medvednikov
0d43ff2453
parser: fix `for i, mut val in vals {; examples: vfmt flappybird
2020-12-27 12:02:18 +01:00
Swastik Baranwal
e27252bef5
parser: fix the position of the multi variable += assign error ( #7584 )
2020-12-26 19:48:58 +02:00
Ned Palacios
dfcbf31f65
parser: return node on incomplete module selector ( #7574 )
2020-12-26 12:23:51 +02:00
yuyi
1558bd1658
parser: minor optimization of `expr()` ( #7575 )
2020-12-26 12:22:06 +02:00
yuyi
d66ed46486
parser: minor cleanup of `stmt()` ( #7573 )
2020-12-26 08:54:13 +02:00
Lukas Neubert
2c0fba5480
fmt: keep comment between enum fields ( #7566 )
2020-12-25 21:41:59 +02:00
yuyi
3345925883
parser: minor simplification of `stmt` ( #7550 )
2020-12-25 16:59:13 +02:00
Lukas Neubert
8cd74df2f3
vfmt: keep UnsafeExpr linebreacks as set by developer ( #7558 )
2020-12-25 16:52:16 +02:00
Daniel Däschle
1605c3b5f8
parser: fix error when accessing module without name after dot ( #7530 )
2020-12-25 16:50:08 +02:00
Lukas Neubert
0caf668e73
parser: error if operators are used as function names ( #7532 )
2020-12-24 13:38:11 +02:00
Daniel Däschle
b27f5c378c
all: reimplement struct embedding with methods ( #7506 )
2020-12-23 19:12:49 +01:00
yuyi
7b9756be72
parser: check for builtin function redefinitions ( fix #7499 ) ( #7507 )
2020-12-23 18:17:09 +02:00
Delyan Angelov
2c4a51a596
parser: use `v fmt -w "$p.scanner.file_path"` in warns, easing fixing
2020-12-23 14:17:20 +02:00
Lukas Neubert
a2cd1b163c
fmt: keep empty curlies and parenthesis as they are ( #7329 )
2020-12-22 23:43:48 +01:00
Lukas Neubert
d1fc65c260
parser: add information about the ending line for a few elements ( #7414 )
2020-12-22 14:45:12 +01:00
Ned Palacios
06369a27c2
parser: return incomplete selector expr stmt ( #7465 )
2020-12-22 13:00:23 +01:00
spaceface
c544cc508b
pref: fix cross-compiling graphical apps to Windows ( #7449 )
2020-12-21 19:45:12 +02:00
Alexander Medvednikov
875f7a77a9
checker: arr1=arr2 warning
2020-12-20 10:42:46 +01:00
Uwe Krüger
8278af4ee8
parser: hot fix to handle `x = <-ch[i] or { }` ( #7416 )
2020-12-19 22:44:16 +02:00
Alexander Medvednikov
1f74f83bc6
parser: map or block; checker: require ref field init
2020-12-19 10:28:17 +01:00
Delyan Angelov
6f7889a3ca
parser: support for `-d time_parsing`
2020-12-18 17:23:57 +02:00
joe-conigliaro
f2f32626bc
all: get -usecache working with mods in ~/.vmodules (ui examples)
2020-12-17 16:08:28 +11:00
joe-conigliaro
7426544610
parser: vfmt parser.v
2020-12-16 18:09:02 +11:00
joe-conigliaro
a7879ce77e
parser: differentiate recursive alias & existing type err + rune fix
2020-12-16 18:03:49 +11:00
Swastik Baranwal
52f908839e
parser: add error for self aliasing ( #7347 )
2020-12-15 21:49:04 +02:00
Delyan Angelov
ed50e22e18
parser: support _js.v and _c.v for `-Wimpure-v`
2020-12-15 08:24:26 +02:00
yuyi
bfa8e4bf86
parser: minor cleanup of `check()` ( #7333 )
2020-12-15 04:31:34 +01:00
yuyi
8ab59c5f0f
parser: implement a direct call to an array of functions ( fix #6908 ) ( #7322 )
2020-12-15 04:24:57 +01:00
Swastik Baranwal
a3c3fd4d20
cgen: fix generation of array names in generic structs ( #7324 )
2020-12-15 02:52:20 +11:00
Daniel Däschle
7e3e30aa9c
ci: add a parser fuzzer step too ( #7288 )
2020-12-12 15:20:38 +02:00
Daniel Däschle
b76c91ec05
parser: silent mode fixes ( #7286 )
2020-12-12 13:52:22 +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
Daniel Däschle
11808f9fa3
parser: fix silent errors ( #7271 )
2020-12-12 04:06:09 +01:00
Daniel Däschle
597c2249e0
parser: fix expected type enum error pos ( #7265 )
2020-12-11 19:23:29 +02:00
Lukas Neubert
25153490e1
fmt: keep comments after assign on same line ( #7269 )
2020-12-11 19:20:24 +02:00
Daniel Däschle
9c1a5c5117
parser: fix silent parsing examples/vmod.v ( #7264 )
2020-12-11 19:14:07 +02:00
joe-conigliaro
d1224ffb5a
parser: error on non local array/map methods & add tests
2020-12-11 20:50:26 +11:00
joe-conigliaro
a0d10a6606
parser: enum_decl - remove redundant position variable
2020-12-11 19:36:39 +11:00
joe-conigliaro
14c4ba6dd9
parser: error on duplicate enum declaration
2020-12-11 19:30:47 +11:00
joe-conigliaro
6f474913cf
table: properly detect duplicate types
2020-12-11 17:39:51 +11:00
Daniel Däschle
8823430c71
parser: small fixes to make silent mod work with example/json ( #7246 )
2020-12-11 06:55:39 +01:00
Enzo
04346e7ba5
checker: allow void,char,byteptr to be mut args ( #7239 )
2020-12-11 04:47:10 +01:00
Daniel Däschle
aedd1d17b8
parser: fix `v test-parser examples/cli.v` ( #7243 )
2020-12-10 19:32:15 +02:00
Daniel Däschle
1c56ff7faf
parser: fix fibonacci in silent mode ( #7240 )
2020-12-10 18:17:25 +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
0bf679a7aa
checker: correct underline for unknown type in method type ( #7223 )
2020-12-10 11:51:22 +02:00
yuyi
e6d162ad65
parser: minor cleanup of `parser.v` ( #7226 )
2020-12-10 11:25:57 +02:00
Lukas Neubert
3b6b5b8090
vfmt: properly parse comments on lines after init fields ( #7202 )
2020-12-09 11:11:22 +02:00
Delyan Angelov
d5915bde7c
parser: implement support for -Wimpure-v ( #7195 )
2020-12-08 17:52:24 +01:00
Leah Lundqvist
90c1c639fe
js: types ( #7108 )
2020-12-08 17:49:20 +01:00
joe-conigliaro
78a6795319
all: change the way import symbols work & support consts ( #7182 )
2020-12-07 19:13:03 +02:00
Daniel Däschle
334d605d90
tools,vls: add `v test-parser examples/hello_world.v` ( #7145 )
2020-12-06 12:42:56 +02:00
Alexander Medvednikov
8eff8b0eff
autofree: fix `for` args
2020-12-06 08:38:21 +01:00
joe-conigliaro
7733834751
parser/cgen: autofree - move branch_parent_pos to cgen.
2020-12-06 18:02:36 +11:00
joe-conigliaro
d7c057840a
parser: autofree - reset p.branch_parent_pos to previous pos on return
2020-12-06 17:00:44 +11:00
joe-conigliaro
a05408b49a
all: make type system use source name & cleanup storing name in fields
2020-12-06 14:55:08 +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
7212b2eff2
parser: vfmt parser.v which was modified in previous commit
2020-12-06 02:39:56 +11: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
f14bd10c00
autofree: more `return` fixes
2020-12-04 20:44:33 +01:00
Daniel Däschle
47d0ed308d
parser: prepare for better VLS integration, more accurate parser errors ( #7119 )
2020-12-04 20:34:05 +02:00
Alexander Medvednikov
0ea2fa228f
autofree: fix `or {}`; ci: bring back gitly -autofree
2020-12-04 18:06:53 +01:00
spaceface777
50a3009113
fmt: make single-stmt `or` blocks single-line ( #7126 )
2020-12-04 13:25:23 +02:00
Lukas Neubert
02ba923ba7
fmt: do not add braces for trailing struct arg ( #7072 )
2020-12-04 11:22:26 +02:00
Daniel Däschle
6c100a0bc3
vls,parser: fix an eof error in parsing invalid const declarations ( #7115 )
2020-12-03 21:11:43 +02:00
Daniel Däschle
558a756431
parser: fix position offset by 1 ( #7099 )
2020-12-03 11:25:06 +02:00
Swastik Baranwal
c5a7c51dfd
parser: add a check for known vars in or block ( #7094 )
2020-12-03 04:46:04 +01:00
joe-conigliaro
ce1fa1194d
parser: fix not used parent warning for selective imports. closes #6916
2020-12-03 01:14:49 +11:00
Lukas Neubert
2691163a7e
scope: remove redundant name arg from register() ( #7077 )
2020-12-02 14:40:25 +01:00
Lukas Neubert
8adc8ed103
parser: do not fail on comment direct after import ( #7071 )
2020-12-01 22:32:34 +02:00
Alexander Medvednikov
c5cd53ca79
parser: bring back old $if position calculation
2020-12-01 18:59:33 +01:00
Alexander Medvednikov
0ff541375d
autofree: fix a bug with $if and add a test
2020-12-01 18:58:16 +01:00
joe-conigliaro
88835a0456
cgen: remove some nasty replacements
2020-12-01 21:17:19 +11:00
Daniel Däschle
6af082e70e
doc: detailed documentation of the compiler pipeline ( #7043 )
2020-12-01 03:58:39 +01:00
Swastik Baranwal
e3fab7e076
parser: add an error for an invalid string prefix ( #7019 )
2020-11-30 10:58:00 +02:00
joe-conigliaro
ff63fb74d9
dont allow method on non-local types & no mod for arrays. closes #6971
2020-11-30 11:43:22 +11:00
ka-weihe
9367dcda10
all: fix remaining c warnings and add -Werror to CI ( #7021 )
2020-11-29 21:23:37 +02:00
joe-conigliaro
91eca539d0
all: -usecache fixes and self compilation & some type cname optimisation ( #7015 )
2020-11-29 14:10:45 +01:00
Daniel Däschle
32c027a0bf
parser: disallow ptr type as sum type variant ( #6996 )
2020-11-28 23:40:40 +02:00
Nick Treleaven
6da6a082c7
parser: fix showing error position for pratt.v ( #6997 )
2020-11-28 23:39:45 +02:00
Daniel Däschle
6e4dad9acf
parser: fix position of array init ( #6998 )
2020-11-28 17:05:14 +02:00
Delyan Angelov
ac27a3ccee
parser,cgen: improve `[flag]enum Abc{ a b }`, allow `x := Abc.a | Abc.b`
2020-11-27 23:09:14 +02:00
Daniel Däschle
18cf36a22c
parser: remove unnecessary match as code ( #6972 )
2020-11-27 22:25:08 +02:00
Delyan Angelov
e6116c47be
scanner: guarantee an early exit when the parser/scanner is stuck
2020-11-27 12:44:39 +02:00
Daniel Däschle
966b95ca4e
parser: move mut in if/match to expr ( #6973 )
2020-11-27 03:08:42 +01:00
Alexander Medvednikov
62ee436944
all: remove broken escape sequences after $ in strings
2020-11-27 03:07:37 +01:00
Alexander Medvednikov
5e59718970
fmt: handle $tmpl
2020-11-26 18:53:38 +01:00
Alexander Medvednikov
5efd393af2
all: make comptime templates usable outside of vweb via $tmpl
2020-11-26 18:40:35 +01:00
Daniel Däschle
52b627feb3
checker: check filter, map and sort left type ( #6952 )
2020-11-26 11:28:54 +01:00
Takahiro Yaota
258f8f6af9
parser: report unused expression error in if and or blocks ( #6953 )
2020-11-26 00:28:41 +01:00
Daniel Däschle
8446433bcf
parser: remove __type ( #6946 )
2020-11-25 14:27:15 +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
9fbf38c798
parser: fix generic structs from other modules ( #6921 )
2020-11-23 23:21:11 +01:00
Takahiro Yaota
2f9b7fe0f7
vfmt: fix error with `return // comment` ( #6914 )
2020-11-23 11:36:20 +02:00
Daniel Däschle
22fdf76db5
gen: unwrap optional on if guard expr ( #6903 )
2020-11-21 22:40:05 +01:00
Delyan Angelov
2228d75657
ci: fix formatting of comptime.v
2020-11-21 19:04:31 +02:00
Delyan Angelov
fa55c247a2
parser: add `-d print_vweb_template_expansions` to ease vweb template debugging
2020-11-21 17:59:02 +02: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
41ba942369
parser: smartcast mutable selector ( #6881 )
2020-11-19 21:05:10 +01:00
Daniel Däschle
9feb010355
all: mutable smartcasts ( #6878 )
2020-11-19 17:28:46 +01:00
Daniel Däschle
e06756ef58
all: match multi aggregate for union sum types ( #6868 )
2020-11-18 20:52:00 +01:00
Lukas Neubert
ee5ad2a653
parser: fix duplicated struct attrs on first field ( #6859 )
2020-11-17 21:25:54 +01:00
Delyan Angelov
f995aa35ea
checker: add a check for `x := math.sin<f64>(0)`
2020-11-15 11:51:12 +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
spaceface777
3c83551dfe
parser: fix treating JS fn calls as type casts ( #6779 )
2020-11-08 20:33:55 +02:00
pancake
2994e7150f
vweb: check function and route parameter count ( #6761 )
2020-11-08 09:14:24 +01:00
Nick Treleaven
62cae1ba00
parser: parse func<T>() when T is a map or array type ( #6765 )
2020-11-07 02:55:28 +01:00
spaceface777
a9e9554b11
all: fix most C warnings ( #6758 )
2020-11-06 16:26:59 +02:00
Delyan Angelov
26c2654632
parser: vfmt vlib/v/parser/struct.v
2020-11-05 19:55:20 +02:00
Delyan Angelov
953d102996
parser: prevent a segfault, when compiling cmd/tools/vtest-vet.v in PR 6754
2020-11-05 19:40:15 +02: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
Daniel Däschle
a2fc19880a
parser: fixes or block position ( #6736 )
2020-11-04 16:02:01 +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
Daniel Däschle
9d5be12517
gen: add prefix when printing type aliases ( #6701 )
2020-11-03 14:13:35 +01:00
Delyan Angelov
2c3f695469
checker,parser: treat C.Struct fields as public by default
2020-11-03 09:35:44 +02:00
Daniel Däschle
d5a421e3f5
checker: add alias cast type check ( closes #6705 ) ( #6709 )
2020-11-02 01:17:35 +01:00
Delyan Angelov
e72d9c0f88
parser: protect against infinite loops in -silent mode over invalid .v files
2020-11-01 14:02:32 +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
ce7da85166
parser: make .parse() public ( #6693 )
2020-10-29 07:10:45 +01:00
Delyan Angelov
8b01146b90
compiler: implement -W and -reuse-tmpc
2020-10-24 20:34:50 +03:00
Swastik Baranwal
019e3b2f4a
checker: add error for ast.PrefixExpr on the left side of decl_assign ( #6660 )
2020-10-21 17:37:30 +02:00
Enzo
21db4b338b
parser: clean error when nesting `unsafe` ( #6656 )
2020-10-20 22:57:24 +03:00
Alexander Medvednikov
37d6503437
parser: do not allow fn consts
2020-10-19 13:48:39 +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
Delyan Angelov
8d88b73512
parser: fix formatting
2020-10-16 17:47:23 +03:00
Delyan Angelov
140166e1cd
interpolation: support '' (rounding like in C)
2020-10-16 17:28:11 +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
Alexander Medvednikov
7da1afa140
all: switch to the new fn arg syntax everywhere; add lots of vfmt -verify tests
2020-10-15 12:32:28 +02:00
Alexander Medvednikov
982056894e
fmt: use `f(x int, y int)` instead of `f(x, y int)`
2020-10-15 12:00:46 +02:00
Swastik Baranwal
314fae7446
checker: add more checks for hash_stmt ( #6615 )
2020-10-15 11:58:01 +03:00
Delyan Angelov
44a42b7273
ci: fix parser.v formatting
2020-10-15 11:41:43 +03:00
Delyan Angelov
6326b6d58e
parser: add helper method p.trace/2
2020-10-15 11:09:19 +03:00
Delyan Angelov
c33a748344
vfmt: handle more comments in interface/struct init/match branches
2020-10-14 22:52:33 +03:00
Delyan Angelov
3c48a6e4ce
tests: rename _test.v files with dup names (temp workaround for highly parallel testing)
2020-10-14 18:25:26 +03:00
Alexander Medvednikov
a07f31feae
all: `for mut val in vals {` (part 1)
2020-10-13 16:27:30 +02:00
Delyan Angelov
e862fad917
parser: support `mut static x := y` in -translated mode
2020-10-09 22:24:21 +03:00
Delyan Angelov
c3626bf2e6
vfmt: prepare for using .source_name in type_to_str
2020-10-08 14:26:12 +03:00
Delyan Angelov
efce448b23
parser: always treat MainLetter(x) as a cast, even when the type is not yet known
2020-10-07 15:50:54 +03:00
Delyan Angelov
8e5067421f
vet: accumulate the collected errors manually (fixes CI)
2020-10-06 10:02:35 +03:00
Delyan Angelov
70826914a7
ci: fix mut_args_warning.vv error
2020-10-06 09:38:07 +03:00
Alexander Medvednikov
256a572cbe
vet: fix vet_errors
2020-10-06 07:07:50 +02:00
Alexander Medvednikov
ed15b40529
parser: do not allow array references + explain why
2020-10-06 06:53:48 +02:00
Alexander Medvednikov
d2d3289a2a
all: mark pref.Preferences field as immutable
2020-10-06 06:24:50 +02:00
Enzo
fd88bfbac8
fmt: fix formatting of anon args ( #6545 )
2020-10-04 06:32:47 +02:00
Enzo
c84848c417
fmt: fix formatting enum with attributes ( #6551 )
2020-10-03 21:33:02 +03:00
Henrixounez
c324169af0
all: remove intermediate handling for both global definition syntaxes ( #6546 )
2020-10-03 15:41:45 +02:00
Swastik Baranwal
7e13518cc2
parser: disallow match expr at certain places ( #6490 )
2020-10-03 16:30:58 +03:00
Enzo
677b0ba2d2
gen: access fields in multi-type sumtype match ( #6541 )
2020-10-03 11:19:43 +02:00
Henrixounez
c9574ae7d7
syntax: new global variable declaration syntax ( #6540 )
2020-10-03 07:03:44 +02:00
Henrixounez
a57e01fee7
parser: dont allow single letter enums ( #6526 )
2020-10-01 23:29:49 +03:00
Enzo
324d547cdb
parser: allow multiple types in match branch ( #6505 )
2020-10-01 01:07:36 +02:00
Nick Treleaven
18be7b115a
checker: disallow most statements in if/match expression branches ( #6509 )
2020-09-30 16:06:22 +02:00
Delyan Angelov
dc954bbb03
all: use `macos` consistently in os.user_os and the compiler
2020-09-29 22:32:20 +03:00
Nick Treleaven
9f33b33803
parser: warn about ambiguous infix/prefix op token ( #6491 )
2020-09-29 03:13:10 +02:00
Alexander Medvednikov
fca344d1fb
all: fn args => params
2020-09-27 03:32:56 +02:00
Alexander Medvednikov
e2c7126d11
checker: verify mutability of method args
2020-09-27 03:14:24 +02:00
Daniel Däschle
abc98c273c
parser: require assign on type alias ( #6477 )
2020-09-25 12:02:32 +02:00
Nick Treleaven
3925c3fa20
parser: disallow index variable with range `for` ( #6464 )
2020-09-24 15:52:44 +03:00
Alexander Medvednikov
624f22e27e
all: mutability check (part 1); enable mutable sumtype args
2020-09-22 05:28:29 +02:00
Swastik Baranwal
077b597bd8
scanner/parser: change error msgs for `\0` and `\x00` and add error for r`byte` and c`byte` ( #6436 )
2020-09-21 17:34:24 +03:00
Uwe Krüger
0f1c484ad1
parser/checker: `if select { ... } {` ( #6434 )
2020-09-21 07:34:04 +02:00
Uwe Krüger
4ae88c69ac
sync/select: allow push of literals and calculated expressions ( #6429 )
2020-09-20 03:50:09 +02:00
Nick Treleaven
9958881cbe
parser: support parsing unsafe (as first token) as UnsafeExpr ( #6032 )
2020-09-19 19:18:36 +03:00
Henrixounez
4121ba9ea9
parser: fix error about multiple modules showing when eof ( #6423 )
2020-09-19 02:15:47 +02:00
Uwe Krüger
31a52cdf21
cgen: implement channel `select` block code generation ( #6424 )
2020-09-19 02:14:35 +02:00
Daniel Däschle
f59b771c76
parser: fix nested amp ( #6402 )
2020-09-18 01:04:56 +02:00
spaceface777
ff92c3409d
ast: merge `IfExpr` and `CompIf` ( #6011 )
2020-09-18 00:58:54 +02:00
Uwe Krüger
1bc9063573
parser: implement parsing of `select` block ( #6379 )
2020-09-16 15:34:57 +02:00
Alexander Medvednikov
b74c1805d7
cgen/autofree: fix and simplify optionals
2020-09-12 16:40:52 +02:00
Daniel Däschle
ce62f997f3
all: better type error positions ( #6345 )
2020-09-11 14:37:14 +02:00
Alexander Medvednikov
bc8aab4775
checker: fix := test
2020-09-09 17:59:51 +02:00
Alexander Medvednikov
5d484bf022
checker: better error message for incorrect `mut x :=`
2020-09-09 17:27:16 +02:00
Nick Treleaven
eb95a4333a
table: rename Arg to Param ( #6337 )
2020-09-09 13:21:11 +02:00
Uwe Krüger
2cb711ee15
checker/channels: check `mut`/`&` state of transmitted objects ( #6315 )
2020-09-06 21:24:41 +02:00
Alexander Medvednikov
3410705974
autofree: lots of fixes
2020-09-05 12:00:35 +02:00
Uwe Krüger
cbcba2e4cf
parser: enable module auto import (of `sync`) ( #6271 )
2020-08-31 10:44:39 +02:00
Uwe Krüger
c351f8fa47
checker, builtin: prepage for builtin channels ( #6262 )
2020-08-30 08:55:31 +02:00
Nick Treleaven
7dbae14e19
checker: error on `mut name =` ( #6247 )
2020-08-28 20:07:32 +03:00
spaceface777
d663f57d43
parser: move flag logic to checker ( #6239 )
2020-08-28 09:24:04 +03:00
spaceface777
eff319f869
comp_for: allow checking full mehod and arg types ( #5997 )
2020-08-27 15:00:44 +02:00
Delyan Angelov
7476428def
vfmt: handle comments after last const field
2020-08-27 15:07:49 +03:00
Delyan Angelov
86dfd3902f
tests: use .vv files directly in compiler_errors_test.v
2020-08-25 18:14:06 +03:00
Nick Treleaven
818db91a9e
parser: warn if PostfixExpr followed by `]` or `)` token ( #6214 )
2020-08-25 08:50:06 +02:00
Maciej Obarski
e8e0d9fa42
all: [direct_array_access] tag ( #6203 )
2020-08-24 09:04:50 +02:00
Swastik Baranwal
b2e79dbebd
parser: add an error for `import mod.sub as mod` and `import mod as mod` ( #6194 )
2020-08-23 02:12:25 +02:00
Uwe Krüger
61df70fdf5
all: enable `x = <-ch or {...}` ( #6195 )
2020-08-23 02:12:05 +02:00
Daniel Däschle
fcc61a981d
all: TypeSymbol.source_name ( #6187 )
2020-08-22 12:29:15 +02:00
Nick Treleaven
1b914d217e
fmt: don't remove `mut` from `if mut` smart cast ( #6188 )
2020-08-22 00:00:02 +02:00
spaceface777
c1651bd271
gg: fixes and Android support ( #6161 )
2020-08-19 07:10:42 +02:00
Nick Treleaven
e69f091bbd
parser: require `(` on same line as name token for fn call or cast ( #6160 )
2020-08-19 02:37:17 +02:00
Daniel Däschle
b5c1ea44dc
all: fix mutability after if-smartcast ( #6129 )
2020-08-17 21:11:11 +02:00
Uwe Krüger
9a5f040f72
all: handle `<-` arrow token for channel operations ( #6152 )
2020-08-17 20:12:00 +02:00
joe-conigliaro
c01fd4ac58
parser: remove extra scopes from if & match & fix scope end_pos
2020-08-18 01:51:25 +10:00
Alexander Medvednikov
f965ddae49
parser: handle several errors in types; cgen: objC includes
2020-08-16 19:16:59 +02:00
Nick Treleaven
bab5c21224
parser: warn when fixed-size ArrayInit doesn't have trailing `{}`. ( #6137 )
2020-08-16 04:54:05 +02:00
Nick Treleaven
0f0a91fc9e
parser: support custom fixed size ArrayInit: `[3]int{init: -1}` ( #6114 )
2020-08-15 11:01:54 +02:00
Uwe Krüger
9602a25a0b
all: add builtin channel type `chan elem_type` ( #6126 )
2020-08-14 21:18:42 +02:00
Alexander Medvednikov
4bc0dde413
all: new `.sort(a < b)` syntax
2020-08-12 05:54:51 +02:00
Alexander Medvednikov
99798b83b4
parser: fix match/else check
2020-08-11 17:30:37 +02:00
Alexander Medvednikov
c5aa2bfa51
tests: fix a match test
2020-08-11 16:26:52 +02:00
Alexander Medvednikov
88988817d0
parser: minor `match` simplification
2020-08-10 19:54:38 +02:00
Delyan Angelov
36eae1c175
builtin: x.vstring() instead of string(x) ( #6102 )
2020-08-10 18:05:26 +02:00
Delyan Angelov
bd32f0969f
parser: enable CamelCase named method names for JS. objects
2020-08-10 10:39:14 +03:00
Nick Treleaven
fce106cf83
parser: use Attr.arg field for `[name: arg]` ( #6084 )
2020-08-10 02:00:14 +02:00
Nick Treleaven
2dd90de993
parser: error on `[unsafe_fn]` ( #6090 )
2020-08-09 12:22:11 +03:00
Alexander Medvednikov
c65dbe51d6
parser: c2v fixes
2020-08-09 03:58:14 +02:00
Nick Treleaven
6cc8815931
parser: support [unsafe] instead of [unsafe_fn] ( #6066 )
2020-08-08 16:24:05 +02:00
Enzo
f238890fe9
compiler: move attributes to declarations ( #6026 )
2020-08-04 20:10:22 +02:00
Delyan Angelov
0b6b0aca09
parser: fix infinite loop on unexpected $ between statements
2020-08-02 18:17:38 +03:00
Delyan Angelov
c6ae322f85
parser: add hard limit to the number of statements in a fn
2020-08-02 17:58:05 +03:00
Nick Treleaven
7f447bb82f
ast: use Block instead of UnsafeStmt ( #5981 )
2020-08-02 14:06:44 +03:00
Delyan Angelov
0fb8074353
cgen: add support for `$if gcc {}` too
2020-07-31 21:25:37 +03:00
Alexander Medvednikov
f269cbdc94
Revert "parser: Support `unsafe(expr)` ( #5973 )"
...
This reverts commit 19c226fcf8
.
2020-07-29 21:41:47 +02:00
Nick Treleaven
19c226fcf8
parser: Support `unsafe(expr)` ( #5973 )
2020-07-28 11:20:52 +03:00
Enzo
2de1437a1e
ci: vet all files from the compiler ( #5994 )
2020-07-27 12:15:29 +02:00
Alexander Medvednikov
3c1427a4e8
all: fix current module in build-module mode
2020-07-25 01:37:54 +02:00
Louis Schmieder
b58b15993c
gen: compile time for (methods and fields) ( #5957 )
2020-07-25 00:02:44 +02:00
Delyan Angelov
8c4429c875
parser: fix passing the is_mut flag of anon fn arguments
2020-07-24 11:27:56 +03:00
Alexander Medvednikov
632e27a4a9
all: fix a big mutability bug and update all mutable vars
2020-07-23 23:16:36 +02:00
Alexander Medvednikov
32c1042ac6
parser: disable the duplicate import check for now
2020-07-23 22:20:00 +02:00
Alexander Medvednikov
653d40bfe8
parser: do not duplicate table imports
2020-07-23 21:59:48 +02:00
Louis Schmieder
b537d8e23e
parser: comp `for` attrs array ( #5903 )
2020-07-23 17:19:37 +02:00
pancake
36352085ae
v: add support for iOS crosscompilation ( #5943 )
2020-07-23 07:58:44 +03:00
Ryan Willis
938e71b468
v: fix for `import cli { Command }`
2020-07-22 20:33:43 +03:00
joe-conigliaro
d46a89b90d
parser/checker/fmt: optimize scope lookups by storing object with ident & add if expr smartcast support to vfmt ( #5935 )
2020-07-23 02:10:31 +10:00
spaceface777
f4251dded0
checker: suggest using `:=` when assigning to undefined variable ( #5911 )
2020-07-21 19:49:53 +03:00
Delyan Angelov
e1eb9c4ff1
vfmt: fix `x := *&int(ptr)`
2020-07-21 15:58:17 +03:00
Delyan Angelov
35df792c05
vfmt: fix `#include "@VROOT/path/x.h"`
2020-07-21 14:26:49 +03:00
Nick Treleaven
a74cbf55c7
checker: warn if C.m* or C.s* functions are called outside unsafe blocks ( #5869 )
2020-07-20 20:06:41 +03:00
Nick Treleaven
e6fc8eb015
checker: check that array slicing indexes are valid ( #5892 )
2020-07-20 19:52:03 +03:00
Enzo
8653605b0a
fmt: allow for comments in call args and if expressions branches ( #5871 )
2020-07-20 17:48:33 +03:00
Enzo
8a855ccae1
fmt,vet: handle `var in [single_value]` ( #5882 )
2020-07-19 19:58:34 +02:00
Ryan Willis
1114fd28d0
all: import individual symbols feature ( #5872 )
2020-07-18 21:34:38 +02:00
Nick Treleaven
105a0e015e
checker: warn if unsafe method called outside unsafe block ( #5863 )
2020-07-17 19:14:12 +02:00
Enzo
90d9040e6e
all: make comment expressions + fix vfmt array init ( #5851 )
2020-07-17 19:13:22 +02:00
Nick Treleaven
39f90e25f3
all: `if` guard optional: define `err` in `else` branch ( #5853 )
2020-07-17 19:10:01 +02:00
Uwe Krüger
f6947d111b
parser: fix `sizeof(int)` when used as call arg for external function ( #5855 )
2020-07-17 11:31:35 +03:00
spaceface777
3583302ad4
parser: force `...` rather than `..` in matches for inclusive ranges ( #5852 )
2020-07-17 11:30:21 +03:00
Lukas Neubert
fa03f390b3
parser: add error for `for i := 0; i++; i < ..` ( #5850 )
2020-07-17 10:31:58 +03:00
spaceface777
b900577dae
compiler: handle ranges as `match` conditions ( #5847 )
2020-07-16 16:41:18 +03:00
Enzo
2ee8f93d60
parser: duplicate method declaration on interface ( #5825 )
2020-07-15 10:23:21 +02:00
Enzo
de0b96f52c
parser: fail when interface name is duplicated ( #5828 )
2020-07-14 18:52:51 +02:00
Enzo
d301611de7
fmt: interface decl fixes ( #5829 )
2020-07-14 18:52:28 +02:00
Nick Treleaven
53023c1ca9
all: add UnsafeExpr ( #5793 )
2020-07-12 12:58:33 +02:00
Delyan Angelov
9c43d36513
parser,checker: add `-d trace_parser`, `-d trace_checker`
2020-07-12 12:56:01 +03:00
Alexander Medvednikov
d4dd5645fe
parser: remove strconv import
2020-07-11 18:53:50 +02:00
Delyan Angelov
b55f84c0a8
vfmt: turn off module is imported but never used for vfmt
2020-07-11 15:03:37 +03:00
Alexander Medvednikov
d4d552fb00
vet: prohibit spaces after `(`
2020-07-11 11:41:39 +02:00
Emily Hudson
7488dd829d
all: _allow_multiple_values enum attribute ( #5772 )
2020-07-10 16:43:02 +02:00
Swastik Baranwal
9839b0eb7f
parser: handle `a,b += 1,1` ( fix #5735 ) ( #5783 )
2020-07-10 13:59:17 +02:00
Daniel Däschle
fb927dab60
checker: check all branches for return ( #5763 )
2020-07-09 22:38:43 +02:00
Daniel Däschle
c5dc1a33b6
all: remove `it` smartcast and replace with original variable name ( #5764 )
2020-07-09 17:14:14 +02:00
Daniel Däschle
e7cd496c31
parser: smartcast fix ( #5756 )
2020-07-08 16:08:44 +02:00
yuyi
64e9bdc213
parser: fix non-void optional fn missing return value ( fix #5736 ) ( #5741 )
2020-07-08 16:01:17 +02:00
Daniel Däschle
5ea17ad2d4
all: if smartcast part 2 ( #5754 )
2020-07-08 15:46:58 +02:00
Daniel Däschle
b62bf59c21
all: if-is smartcast part 1 ( #5730 )
2020-07-08 15:17:28 +02:00
Delyan Angelov
69d3c3f596
cgen: sort const inits/cleanups topologically, skip calling non `fn init(){}` fns
2020-07-08 14:28:58 +03:00
Alexander Medvednikov
2425c05c42
Revert "cgen: sort const inits/cleanups topologically too"
...
This reverts commit 38000f8622
.
2020-07-08 12:56:56 +02:00
Delyan Angelov
38000f8622
cgen: sort const inits/cleanups topologically too
2020-07-08 11:22:30 +03:00
Louis Schmieder
3bb1d24dad
parser: add template path by fn name for vweb ( #5737 )
2020-07-08 09:12:57 +03:00
joe-conigliaro
2480cce1ed
checker: optimize if & fix typo
2020-07-08 01:36:48 +10:00
joe-conigliaro
5fd5e558ae
parser/checker/gen: anon fn direct call with args
2020-07-08 01:10:39 +10:00
Louis Schmieder
2a7a6fa1eb
orm: add delete stmt ( #5725 )
2020-07-07 16:55:32 +02:00
Uwe Krüger
ef02373061
all: remove `rwshared` keyword, make its semantics default for `shared` ( #5710 )
2020-07-07 01:57:31 +02:00
spaceface777
d0e321c8a3
fmt: allow parsing files without `fn main()` ( #5681 )
2020-07-05 20:53:01 +02:00
KrisChambers
8d035a446a
Fix v/parser: Failure to parse structs with fields typed as anonymous functions returning having an optional void (`?`) return type. ( #5684 )
...
* Handle optional void return type in function types in struct fields.
* Add more testing for optional return types in struct fields.
* Move language parsing into it's own function
* Fix issue caused by not setting typ.
* Fix test for structs containing anon fn with optional void return types
2020-07-05 19:29:39 +02:00
yuyi
96bd4e8794
parser: fix type detection in `match` ( #5679 )
2020-07-05 16:35:45 +02:00
Alexander Medvednikov
188bad4f38
vfmt: handle string attrs
2020-07-04 23:38:28 +02:00
Enzo
7778cbe9f5
all: make `os` global in scripts ( #5669 )
2020-07-04 23:37:41 +02:00
Delyan Angelov
5b93b4f37d
vfmt: allow multiple comments after if branches
2020-07-04 16:13:58 +03:00
Delyan Angelov
68af46402e
vvet: allow passing many files, improve specifity for emacs goto error
2020-07-04 15:29:00 +03:00
Uwe Krüger
3b067f5f85
all: experimental locked concurrency support, part 1 ( #5637 )
2020-07-04 12:44:25 +02:00
Ruofan XU
37f31da6c9
parser: minor simplification ( #5645 )
2020-07-03 23:22:43 +02:00