Lukas Neubert
02ba923ba7
fmt: do not add braces for trailing struct arg ( #7072 )
2020-12-04 11:22:26 +02:00
joe-conigliaro
cf7b45b074
checker: correctly check arrays with element that is an alias. fixes #6735
2020-12-04 14:26:25 +11:00
yuyi
9b6a1552e9
checker: check match return mismatch type ( fix #6826 ) ( #7109 )
2020-12-03 21:14:23 +02:00
Daniel Däschle
558a756431
parser: fix position offset by 1 ( #7099 )
2020-12-03 11:25:06 +02:00
yuyi
30da85a4d5
checker: fix optional or_block {none} ( #7095 )
2020-12-03 01:03:17 +01:00
Alexander Medvednikov
1037d3a383
checker: make missing `mut` before an argument a warning
2020-12-02 23:58:06 +01:00
Lukas Neubert
2691163a7e
scope: remove redundant name arg from register() ( #7077 )
2020-12-02 14:40:25 +01:00
joe-conigliaro
cd46eb42d7
checker: fix generic os.fn call (script) without mod prefix. fixes #7073
2020-12-02 21:40:44 +11: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
5b6eb7b2c9
cgen: simplify .str() generation ( #7038 )
2020-12-01 16:09:03 +01: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
joe-conigliaro
0e54b9acb5
checker: remove debug println introduced in 4f658ec
2020-12-01 15:14:30 +11:00
joe-conigliaro
4f658ec292
fix auto inferred generic call of mod.func(). closes #6263
2020-12-01 15:10:06 +11:00
Daniel Däschle
879d238887
cgen: initial option auto str support ( #7004 )
2020-12-01 04:00:23 +01: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
yuyi
0b96cd50e1
scanner: fix escape `\u` ( fix #6849 ) ( #7012 )
2020-11-29 17:01:40 +02:00
joe-conigliaro
91eca539d0
all: -usecache fixes and self compilation & some type cname optimisation ( #7015 )
2020-11-29 14:10:45 +01:00
Delyan Angelov
a6f1667bce
checker: make `sym == typ` an error
2020-11-29 00:43:06 +02:00
yuyi
f336c2c5cc
scanner: fix error of backslash escaping x in ident_string( fix #6850 ) ( #6994 )
2020-11-29 00:39:45 +02:00
Daniel Däschle
32c027a0bf
parser: disallow ptr type as sum type variant ( #6996 )
2020-11-28 23:40:40 +02:00
Delyan Angelov
321daede1d
cgen: fix a buggy comparison, add ability to do println(sym.debug())
2020-11-28 19:48:53 +02:00
Alexander Medvednikov
fcd127ed87
autofree: make -experimental the default
2020-11-27 20:49:48 +01:00
spaceface777
bbea7fb91f
docs: document the `[required]` struct attribute ( #6956 )
2020-11-27 15:37:12 +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
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
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
Nick Treleaven
51c737669d
checker: check labelled break/continue is inside a matching `for` loop ( #6910 )
2020-11-22 20:51:07 +01:00
Alexander Medvednikov
ed7413ee51
autofree: handle SelectorExpr receivers
2020-11-21 23:19:04 +01:00
Daniel Däschle
22fdf76db5
gen: unwrap optional on if guard expr ( #6903 )
2020-11-21 22:40:05 +01:00
Alexander Medvednikov
2afb9b30e9
autofree: minor fixes; skip in consts
2020-11-21 19:07:47 +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
Alexander Medvednikov
99bdb87a01
all: remove #objc for good
2020-11-20 23:49:52 +01:00
Delyan Angelov
3c4b87bfec
checker: add check against `fn test_opt() ?{}`
2020-11-20 15:12:53 +02:00
Nick Treleaven
d5242e0bf5
gen: implement labelled break and continue (retry) ( #6887 )
2020-11-20 12:23:48 +01: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
Daniel Däschle
e06756ef58
all: match multi aggregate for union sum types ( #6868 )
2020-11-18 20:52:00 +01:00
Daniel Däschle
ed874ffc5b
checker: fix sum type operator check ( #6815 )
2020-11-17 21:26:40 +01:00
Swastik Baranwal
4415feb2df
checker: disallow string(bool) ( #6863 )
2020-11-17 21:23:17 +01:00
Nick Treleaven
4882d338f0
checker: improve array literal element type mismatch error ( #6825 )
2020-11-16 00:41:24 +02:00
Daniel Däschle
20bec81678
checker: smartcast only if type is not mut ( #6841 )
2020-11-15 16:53:51 +02:00
Delyan Angelov
f995aa35ea
checker: add a check for `x := math.sin<f64>(0)`
2020-11-15 11:51:12 +02:00
Nick Treleaven
50163508f8
gen: implement type_name method for sum type instances ( #6802 )
2020-11-14 13:59:03 +02:00
Delyan Angelov
df385799a2
checker: fix `invalid type (typ=0 idx=0)` when x,y := gfn(), and gfn returns (Abc,T)
2020-11-14 10:42:56 +02:00
Luke Edwards
a525397022
checker: improve wording on error messages ( #6799 )
2020-11-11 23:11:27 +02:00
Delyan Angelov
dd1717af34
checker: add a missing return regression test for if branches too
2020-11-11 18:06:13 +02:00
Delyan Angelov
8c241cb745
checker: check that fns with return values, and matches, do return
2020-11-11 17:23:57 +02:00
Daniel Däschle
6271798ce3
cgen: union sum types implementation ( #6745 )
2020-11-11 09:18:15 +01:00
spaceface777
bb91dc90a5
checker: fix `&` on pointers ( #6787 )
2020-11-10 13:12:21 +02:00
Nick Treleaven
baf2ff1a91
checker: unify invalid argument errors, use argument position ( #6785 )
2020-11-10 10:40:50 +01:00
Nick Treleaven
c76e486765
parser: implement `T.name` for generic types ( #6783 )
2020-11-09 14:35:26 +01:00
pancake
2994e7150f
vweb: check function and route parameter count ( #6761 )
2020-11-08 09:14:24 +01:00
Delyan Angelov
0ba5544446
checker: add a check for `ptr = Abc{}`
2020-11-07 21:19:46 +02:00
Nick Treleaven
931882d720
checker: support ?T, &T generic return types ( #6772 )
2020-11-07 18:27:10 +02:00
Swastik Baranwal
6354fa031c
checker: add more checks for index_expr ( #6737 )
2020-11-07 14:55:05 +01:00
Larpon
4051ce869c
all: remove unused enum value and improve error message for `@` tokens in scanner ( #6751 )
2020-11-05 12:59:49 +02:00
Larpon
785bf40f67
all: remove comp time '@' expansion from scanner ( #6746 )
2020-11-05 10:12:32 +02:00
Nick Treleaven
ca8d23acab
table: make Table.type_to_str generate proper function type, not fn name ( #6716 )
2020-11-05 06:34:56 +01: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
Delyan Angelov
2c3f695469
checker,parser: treat C.Struct fields as public by default
2020-11-03 09:35:44 +02:00
Delyan Angelov
4e760c703e
checker: disallow `opt_returning_string() or { ... 123 }` ( closes #6711 )
2020-11-02 05:29:37 +02:00
pancake
d040af4939
checker: improve error message for: `a := foo() or { println(err) }` ( #6710 )
2020-11-02 04:52:35 +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
3c0f4c46fa
checker: add check preventing `if x:=non_optional() {}`
2020-11-02 01:58:07 +02:00
Alexander Medvednikov
a0bf796926
autofree: handle SelectorExpr and fix json
2020-11-02 00:57:45 +01:00
Daniel Däschle
9fdf04b7ff
cgen: make generics printable ( #6700 )
2020-10-31 19:43:06 +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
pancake
367067dfff
pkgconfig: improve and fix the parser; move to v.pkgconfig ( #6695 )
2020-10-29 11:57:23 +02:00
pancake
36c5eab799
all: add #pkgconfig directive using the new vlib modules ( #6673 )
2020-10-26 18:05:18 +01:00
Delyan Angelov
89daec4e93
ci: run vfmt over compile.v and checker.v
2020-10-24 20:41:52 +03:00
Delyan Angelov
8b01146b90
compiler: implement -W and -reuse-tmpc
2020-10-24 20:34:50 +03:00
Delyan Angelov
ac6fad6a63
checker: fix comptime custom defines usages, add tests
2020-10-24 15:06:51 +03: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
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
Delyan Angelov
92d9569d5d
checker: fix #include with @VROOT
2020-10-18 22:31:21 +03:00
Alexander Medvednikov
396dca7f48
checker: handle bad `$if` values
2020-10-18 21:22:37 +02:00
Swastik Baranwal
acc85be5ae
checker: disallow type casting to `none` ( #6635 )
2020-10-17 20:02:30 +03: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
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
Nick Treleaven
3c336b566d
checker: add check_expected() which returns an optional error ( #6623 )
2020-10-15 17:30:36 +02:00
Alexander Medvednikov
3d4ab7de1e
checker: update tests
2020-10-15 12:39:32 +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
Alexander Medvednikov
ea09bd5e45
checker/fmt: `for mut val` fixes
2020-10-14 12:50:19 +02:00
Alexander Medvednikov
a07f31feae
all: `for mut val in vals {` (part 1)
2020-10-13 16:27:30 +02:00
Nick Treleaven
78bcda14c4
checker: infer T from parameter of type `[]T` ( #6611 )
2020-10-13 15:15:25 +03:00
Nick Treleaven
b677ad9ca5
checker: fix panic on match expression without results ( #6597 )
2020-10-10 15:42:40 +02:00