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
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
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
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
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
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
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
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
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
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
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
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
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
982056894e
fmt: use `f(x int, y int)` instead of `f(x, y int)`
2020-10-15 12:00:46 +02: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
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
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
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
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
Nick Treleaven
18be7b115a
checker: disallow most statements in if/match expression branches ( #6509 )
2020-09-30 16:06:22 +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
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
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
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
Delyan Angelov
7476428def
vfmt: handle comments after last const field
2020-08-27 15:07:49 +03: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
Daniel Däschle
fcc61a981d
all: TypeSymbol.source_name ( #6187 )
2020-08-22 12:29:15 +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
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
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
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
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
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
Alexander Medvednikov
3c1427a4e8
all: fix current module in build-module mode
2020-07-25 01:37:54 +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
Ryan Willis
938e71b468
v: fix for `import cli { Command }`
2020-07-22 20:33:43 +03:00
spaceface777
f4251dded0
checker: suggest using `:=` when assigning to undefined variable ( #5911 )
2020-07-21 19:49:53 +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
Enzo
90d9040e6e
all: make comment expressions + fix vfmt array init ( #5851 )
2020-07-17 19:13:22 +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
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
Daniel Däschle
fb927dab60
checker: check all branches for return ( #5763 )
2020-07-09 22:38:43 +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
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
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
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
Alexander Medvednikov
b7175b54eb
vweb: ['/:arg1/:arg2/action'] attribute
2020-07-03 15:10:39 +02:00
Delyan Angelov
132170f54c
vfmt: handle comments in enum Abc{} and after match branches
2020-07-02 16:51:09 +03:00
yuyi
2f614ad79f
parser: optimize cross assign using expr.str() ( #5604 )
2020-07-01 16:43:13 +02:00
yuyi
6c5b638202
parser: fix array cross assign ( fix #5577 ) ( #5591 )
2020-07-01 12:11:03 +02:00
Delyan Angelov
78e1127d99
cgen: treat the main module like any other v module
2020-07-01 00:53:53 +02:00
joe-conigliaro
ab37dcaa9c
generic structs: initial implementation
2020-06-29 20:09:09 +02:00
yuyi
9d845262b7
parser: fix module type cast
2020-06-29 17:15:40 +02:00
Alexander Medvednikov
2bfe8e5153
vet: a basic version that just checks indentation for now
2020-06-27 14:50:07 +02:00
Alexander Medvednikov
83b300435a
vweb: escape html; table: rename parent_typ to parent_type
2020-06-24 22:12:33 +02:00
Alexander Medvednikov
9df29d0dd2
checker: do not allow {} for aliases; orm: update stmt
2020-06-24 16:35:18 +02:00
Alexander Medvednikov
11871d9544
fmt: re-run on parser.v and fmt.v
2020-06-24 14:35:00 +02:00
Alexander Medvednikov
74af88bc92
Revert "fmt: re-format parser.v and cgen.v"
...
This reverts commit 6b2808a3f9
.
2020-06-23 18:16:24 +02:00
Alexander Medvednikov
6b2808a3f9
fmt: re-format parser.v and cgen.v
2020-06-23 18:05:53 +02:00
ka-weihe
4e447db883
parser/fmt: fix comments in structs/consts
2020-06-23 18:01:56 +02:00
Alexander Medvednikov
011e26ca9a
checker: check sum types in `match`; cross compilation fixes; orm fixes
2020-06-21 23:09:53 +02:00
joe-conigliaro
ddd83f1fc6
checker: error if variable used before declaration
2020-06-20 12:42:08 +10:00
Alexander Medvednikov
cd8392e42d
orm: insert
2020-06-19 16:43:35 +02:00
Alexander Medvednikov
d04554f0b7
all: more match updates
2020-06-19 11:46:08 +02:00
Alexander Medvednikov
78b32892ac
cgen: use the new match syntax
2020-06-18 20:21:08 +02:00
Uwe Krüger
3b6e66db0d
fmt: further fixes for string interpolation and builtin macros
2020-06-18 18:48:23 +02:00
yuyi
b806fff90a
parser: minor optimization in parse_multi_expr()
2020-06-18 01:15:17 +02:00
Uwe Krüger
9c9f6415da
fmt: more sophisticated analysis for string interpolat
2020-06-17 19:49:13 +02:00
joe-conigliaro
effa0061e8
parser: fix incorrect duplicate struct attr error
2020-06-17 20:27:51 +10:00
joe-conigliaro
d478b44915
parser/checker/gen: merge AssignExpr & AssignStmt into just AssignStmt
2020-06-16 21:20:16 +10:00
yuyi
2daf915371
parser: `expression evaluated but not used` error
2020-06-16 11:06:53 +02:00
Uwe Krüger
f2d9fa3815
cgen: restructure string_inter_literal()
2020-06-16 10:41:51 +02:00
joe-conigliaro
0cd9066f44
parser/cgen: multiple attributes & better errors ( closes #5334 )
2020-06-15 22:59:09 +10:00
Uwe Krüger
50cd0ed785
parser: fix string array initialization with interpolation
2020-06-13 22:38:10 +02:00
yuyi
90f07eb64a
parser: fix fn attributes empty error
2020-06-12 18:27:05 +02:00
Alexander Medvednikov
72fdb09e46
time: relative_short(); fmt: handle $vweb.html()
2020-06-11 20:26:49 +02:00
Delyan Angelov
5ef9569098
cmd/tools: add check_os_api_parity.v - keep module APIs even
2020-06-11 21:13:36 +03:00
joe-conigliaro
3664bea912
vweb/checker: show tmpl var errors
2020-06-10 02:47:51 +10:00
joe-conigliaro
62c80bc2c5
parser: add mod list to allow globals by default
2020-06-09 18:49:15 +10:00
joe-conigliaro
2799a6f065
parser/checker: fix global lookup
2020-06-09 17:08:11 +10:00
Alexander Medvednikov
1bbfc271c5
vweb: fix unused tmpl warning; remove duplicate code
2020-06-08 13:30:42 +02:00
Delyan Angelov
0058b8253d
vdoc: fix 'module, comment, import' sequence bug
2020-06-08 09:27:22 +03: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