Commit Graph

666 Commits (4923048d9556868c7ac4377a353c4e1618142c04)

Author SHA1 Message Date
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
joe-conigliaro 9d7f1a236a
checker/gen: fix nested sumtype matching 2020-07-06 00:25:04 +10:00
Uwe Krüger 3b067f5f85
all: experimental locked concurrency support, part 1 (#5637) 2020-07-04 12:44:25 +02:00
Nick Treleaven 0b49e4db1c
v/checker.v: disallow pointer arithmetic for InfixExpr outside unsafe {} (#5640) 2020-07-03 18:10:10 +02:00
yuyi 9e949622d3
vrepl: pre-imported common modules (#5643) 2020-07-03 18:06:36 +02:00
Alexander Medvednikov b7175b54eb vweb: ['/:arg1/:arg2/action'] attribute 2020-07-03 15:10:39 +02:00
yuyi 68ac8fde26
tests: add mixed and complex types tests for cross assign (#5622) 2020-07-02 18:20:03 +02:00
yuyi 6cbc0e84f0
cgen: fix cross assign with mutable args (fix #5609 #5610 #5611) (#5614) 2020-07-02 11:09:26 +02:00
Uwe Krüger 6c022db786
scanner: fix string interpolation for '$a.b().c' (#5612) 2020-07-02 00:02:59 +02:00
yuyi 40a393926d
cgen: fix cross assign of struct fields (#5606) 2020-07-01 18:43:14 +02:00
Nick Treleaven e7339fec15
all: disallow pointer arithmetic for AssignStmt, PostfixExpr outside unsafe{} (#5581) 2020-07-01 14:50:17 +02:00
Delyan Angelov 78e1127d99
cgen: treat the main module like any other v module 2020-07-01 00:53:53 +02:00
Uwe Krüger 8a46911725
checker: check if mut function arg is declared as mut (#5579) 2020-06-30 14:19:22 +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
yuyi 5f36874c9b
vrepl: fix optional call 2020-06-24 12:45:48 +02:00
yuyi 514ee9d396
cgen: fix optional void return error 2020-06-24 12:45:15 +02:00
yuyi 73296e486a
parser: fix function return anon_fn without parentheses 2020-06-22 16:03:31 +02:00
yuyi d232833573
gen: fix printing of generic arrays 2020-06-22 14:54:24 +02:00
yuyi 81c19517d1
cgen: add gen_str_for_multi_return 2020-06-21 17:53:13 +02:00
yuyi e484fe15d3
tests: add nested array not equal tests 2020-06-20 02:34:49 +02:00
yuyi 4dc703af2d
cgen: fix nested array equality 2020-06-20 01:40:33 +02:00
Uwe Krüger 770132ff37
float: make default string representations for floats become alike 2020-06-18 22:33:41 +02:00
joe-conigliaro 812a9d646a
test: fix sumtype shadow & as test 2020-06-19 01:14:53 +10:00
joe-conigliaro 198fdcf1c6
test: change sumtype var shadow and as test 2020-06-19 01:10:16 +10:00
joe-conigliaro 3533335804
test: add match sumtype var shadow and `as` test 2020-06-19 01:06:40 +10:00
Alexander Medvednikov 7be952605b 0.1.28 2020-06-18 15:57:53 +02:00
Uwe Krüger ddb1770af2
cgen: fix unsigned/signed integer comparisons 2020-06-17 02:54:27 +02:00
yuyi 23993d2264
cgen: fix nested array equality error 2020-06-16 18:40:32 +02:00
yuyi 730f485591
test: fix `test_array_init()` 2020-06-15 22:31:11 +02:00
joe-conigliaro 0cd9066f44
parser/cgen: multiple attributes & better errors (closes #5334) 2020-06-15 22:59:09 +10:00
Delyan Angelov cadde3e9f0 vlib: fix os.exec().output usages, that may rely on trimmed lines 2020-06-15 15:38:20 +03:00
yuyi b0138e021e
cgen: fix `in` multi_array 2020-06-15 13:21:06 +02:00
Delyan Angelov c874a22b3b doc: use `v new` instead of `v create` 2020-06-14 21:20:31 +03:00
yuyi 4e1a09c9f5
cgen: fix array_init temporary variable error 2020-06-14 19:09:27 +02:00
Ruofan XU 90279a7108
checker: use ++ / -- instead of += 1 / -= 1 2020-06-14 19:05:05 +02:00
yuyi 7e0197c1b8
cgen: fix `in` empty array 2020-06-14 10:54:10 +02:00
Adam Stankiewicz 471c931ada
os: do not trim space from output of exec 2020-06-14 01:41:47 +02:00
Uwe Krüger 50cd0ed785
parser: fix string array initialization with interpolation 2020-06-13 22:38:10 +02:00
Adam Stankiewicz b3fc462a78
scanner: fix parsing multiple .amp 2020-06-13 00:01:44 +02:00
Delyan Angelov 4fc41c4bc4 v: add compiler support for _unlikely_(x) too 2020-06-09 18:11:03 +03:00
Delyan Angelov c7d4360931 v: add full compiler support for _likely_(x) 2020-06-09 17:42:43 +03:00
spaceface777 895c7624e4
jsgen: improve handling of `blank_ident` 2020-06-09 09:45:50 +02:00
spaceface777 30f1c6bad5
parser: fix type_only fns starting with varargs 2020-06-08 19:02:36 +02:00
Enzo Baldisserri 11b7b97311
parser: fail when assigning to _ with := 2020-06-08 00:47:04 +02:00
Alexander Medvednikov 3bbda7103f Revert "parser: allow void return type for C functions"
This reverts commit d7c63922d5.
2020-06-07 19:06:19 +02:00
Swastik Baranwal d7c63922d5
parser: allow void return type for C functions 2020-06-07 19:45:27 +03:00
joe-conigliaro 31d03bb113
checker/cgen: small generic fixes (mut arg return) 2020-06-06 12:24:27 +10:00
Uwe Krüger de76ac583f
parser: fix string interpolation for expressions ending `c`, `r`, `js` 2020-06-05 22:37:34 +02:00
Alexander Medvednikov e3917d98c2 generics: another mut arg test 2020-06-05 20:57:05 +02:00
Alexander Medvednikov 13a7ce9e69 gg: GG => Context 2020-06-04 20:26:18 +02:00
joe-conigliaro 41dca3ef58
checker/cgen: fix mutable generic fn args 2020-06-04 19:32:31 +10:00
yuyi 5ae8853648
all: change `f mut Foo` to `mut f Foo` 2020-06-04 10:35:40 +02:00
yuyi 13e09c61ef
tests: add multi_dimensional array init tests 2020-06-03 14:10:29 +02:00
Alexander Medvednikov d182059ba6 tests: fix fn_test.v 2020-06-03 10:54:47 +02:00
Delyan Angelov 6a0a2da05c cgen: support `$if test { ... }` 2020-06-03 10:20:10 +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
yuyi 653a27005b
cgen: fix multi dimensional array init error 2020-06-02 15:15:52 +02:00
yuyi 63b2d4be99
cgen: make >8 indent levels work 2020-06-02 10:40:24 +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
Alexander Medvednikov 3d83934caf checker: check mutating methods; generics fixes 2020-06-01 15:44:10 +02:00
Delyan Angelov 945439dab6 cgen: print actual values on a failed assert (when possible) 2020-06-01 14:43:38 +03:00
Emily Hudson 75eac291ac
all: variable sized options 2020-05-31 12:57:26 +02:00
Alexander Medvednikov f87e872fa2 checker/cgen: interface match 2020-05-31 10:22:21 +02:00
Alexander Medvednikov 905f844b16 cgen: return interface fix 2020-05-30 20:18:03 +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
Delyan Angelov f3c5f36317 parser: allow for `struct Abc { f [skip] = -1 }` 2020-05-29 12:45:54 +03:00
yuyi 3a340cbffc
checker: fix array_init cast type error 2020-05-29 06:39:46 +02:00
Alexander Medvednikov bec3e07635 interfaces: fix `is` 2020-05-29 05:54:53 +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
spaceface777 60716bba29
parser: fix nested array_init syntax 2020-05-28 19:36:57 +03:00
Alexander Medvednikov d6037cbcf2 generics: fix method calls 2020-05-28 05:58:19 +02:00
Delyan Angelov ae8cc2f433 live: fix -live compilation && make live_test.v not swallow segfault errors 2020-05-28 03:21:49 +03:00
yuyi 9cbd9db4e7
cgen: fix swap assign of prefix and postfix expr 2020-05-28 02:22:09 +03: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 5423a15f46 generics: more fixes 2020-05-27 15:56:30 +02:00
x0r19x91 72ed673566
builtin: array: fix slice cloning 2020-05-27 14:07:03 +02:00
Delyan Angelov ebbf42dadb tests: add a commented test_generic_fn_with_variadics, which worked with old v 2020-05-27 08:41:12 +03:00
Alexander Medvednikov 59711d9c55 generics: test `T{}` 2020-05-27 06:53:52 +02:00
Uwe Krüger 013fdb8a4b
checker: restrict numeric promotions to cases where no data is lost 2020-05-27 05:42:48 +02:00
yuyi bb48851092
cgen: fix mutliple_assign swap 2020-05-26 18:00:51 +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
Delyan Angelov 96808a0e2a cgen: generalize _vcleanup of array/string consts + valgrind with tcc 2020-05-25 10:24:19 +03:00
Alexander Medvednikov 656bc6b6c8 tests: valgrind: strings are freed now! 2020-05-25 06:23:50 +00:00
Alexander Medvednikov 1ef8eacd6e checker/gen: more generics fixes; ComptimeCall 2020-05-25 05:32:36 +02:00
yuyi ec7863d174
cgen: fix array_init of struct error 2020-05-25 04:45:16 +02:00
Uwe Krüger fd4d28b7b6
tests: update for stricter type checks 2020-05-24 21:07:32 +02:00
Delyan Angelov 1754ba19d8 live: cleanup live_test.v output, remove 1s delay 2020-05-24 18:38:43 +03:00
Delyan Angelov d16485c29e live: make live_test.v more robust 2020-05-24 17:45:53 +03:00
Delyan Angelov ddcb5f7da3 gen: fix autogenerated print methods for vargs 2020-05-24 15:05:19 +03:00
Alexander Medvednikov 7963e48ca1 tests: valgrind: disable string.replace() test for now 2020-05-24 07:33:33 +00:00
Alexander Medvednikov 494f4fe986 tests: valgrind: string.replace() 2020-05-24 07:19:58 +00:00
Alexander Medvednikov 67750c91d7 generics: lots of fixes 2020-05-24 04:43:03 +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
penguindark 8bf290acf0
os: minor fixes 2020-05-22 06:21:11 +02:00
Alexander Medvednikov 1e853072dc parser: parallel parser, part 1 2020-05-22 02:23:14 +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
Alexander Medvednikov 227f039652 vfmt: handle generic fn calls 2020-05-21 18:36:25 +02:00
Alexander Medvednikov 87d8e70d6d checker/table: generic fixes 2020-05-21 18:15:04 +02:00
Alexander Medvednikov 45c9ccfc03 tests: simple<string> generics test 2020-05-21 04:56:36 +02:00
Alexander Medvednikov ce1a181699 all: generic functions 2020-05-21 03:58:53 +02:00
Alexander Medvednikov ca81442fac parser: fix a small bug with < 2020-05-20 21:47:03 +02:00
Sandro Martini e137fbb1ea
array: more tests of initialization 2020-05-19 19:53:47 +02:00
yuyi b3b86ea6d7
cgen: fix array_init has len but no init error 2020-05-19 18:33:24 +02:00
yuyi 74686d0ec4
test: fix alias type errors and type_test.v 2020-05-19 15:04:51 +03:00
Uwe Krüger 2635be511f
all: re-apply C++ support 2020-05-18 21:38:06 +02:00
Tanel Liiv 2344c1a435
parser: fix to multi-expr 2020-05-18 18:33:27 +02:00
Ned Palacios ae3df002a2
vmod: add v.mod parser 2020-05-18 14:35:28 +02:00
yuyi 7f4cf08516
parser: check `(mut f Foo)` syntax 2020-05-17 13:51:18 +02:00
yuyi 6855996cca
cgen: fix array_init_with_default 2020-05-16 19:05:26 +02:00
Enzo Baldisserri f44a40eee0
checker: check incorrect names 2020-05-16 16:12:23 +02:00
yuyi 9b6ee8e77d
cgen: array_init_with_default 2020-05-16 15:21:37 +02:00
Tanel Liiv 44502a3fb2
parser: return multi expr 2020-05-15 23:14:53 +02:00
yuyi 8500c8885c
cgen: fix optional_void error; handle `?` return type 2020-05-15 15:55:03 +02:00
Enzo Baldisserri d60233b618
cgen: simplify for in range 2020-05-14 22:22:32 +02:00
Enzo Baldisserri fd0d833e33
gen: if expressions with multiple statements 2020-05-14 17:15:25 +02:00
Alexander Medvednikov 2369a5c8c6 cgen: handle `is` for interfaces 2020-05-14 16:56:45 +02:00
Sandro Martini 9895cab51c
tests: add more tests on interfaces 2020-05-13 20:30:18 +02:00
Enzo Baldisserri 172e4ff853
cgen: simplify if guard else clause 2020-05-13 18:38:00 +02:00
Tanel Liiv af334e320c
cgen: dereference in one place and fix 2020-05-13 01:01:34 +02:00
Kris Cherven d359a7aefb
cgen: fix a goto error 2020-05-11 23:49:08 +02:00
Alexander Medvednikov 2618b4fbd3 Revert "tests: add more tests on interfaces "
This reverts commit 538662d99a.
2020-05-11 15:19:55 +02:00
Sandro Martini 538662d99a
tests: add more tests on interfaces 2020-05-11 15:13:03 +02:00
joe-conigliaro 1b3cd7abe0
cgen: fix sum type assign/push from in match branch & type mod 2020-05-11 16:59:55 +10:00
yuyi 64ba59590e
cgen: fix multiple assign error 2020-05-11 09:45:11 +03:00
yuyi 14bba54ddc
vrepl: fix array_init error
* optimize print conditions
2020-05-11 07:15:08 +03:00
Enzo Baldisserri b09fd66aa2
gen: fix interface pointers 2020-05-10 21:16:22 +02:00
Alexander Medvednikov a2d120b583 cgen: fix reassignment of optionals 2020-05-10 17:41:33 +02:00
eyelash f396f70ae7
repl: fix newline in error messages 2020-05-10 16:26:56 +02:00
Delyan Angelov 809676a856 cgen: fix a sporadic segfault when giving -width in a string interpolation 2020-05-09 15:23:37 +03:00
Tanel Liiv 7815a5495c
checker: handle multireturn fn calls as if/match last expressions 2020-05-08 22:49:45 +02:00
Alexander Medvednikov 6ea741e26e Revert "tests: valgrind: enable string tests"
This reverts commit 1ea13ac7f3.
2020-05-08 16:18:14 +02:00
Alexander Medvednikov 1ea13ac7f3 tests: valgrind: enable string tests 2020-05-08 13:18:27 +00:00
Ned Palacios 13b11a4155
parser: fix struct attribute for array struct field 2020-05-08 13:09:40 +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
yuyi 8866773f97
vrepl: fix import and comment error in the middle of other lines 2020-05-08 09:34:59 +03:00
Delyan Angelov 7207a4970b solaris: fix tests 2020-05-07 16:19:21 +00:00
Tanel Liiv d0afa748ff
cgen: optional multiple return values 2020-05-07 15:36:04 +02:00
Uwe Krüger 59aa31cee5
cgen: string interpolation: optimize away some partial strings of 0 length 2020-05-07 04:34:18 +02:00
Tanel Liiv b5a1544bf8
parser: allow re-assigning fns to variables 2020-05-06 20:09:29 +02:00
Delyan Angelov 88ef0a75e2 ci: pass V_CI_MUSL=1 on musl CI jobs 2020-05-06 15:10:47 +03:00
Alexander Medvednikov cc66eb1194 parser/checker: check capital letters in interface names/methods 2020-05-06 12:26:00 +02:00
Alexander Medvednikov 99cf520bd4 parser: `mut x Type` syntax for args 2020-05-06 12:13:22 +02:00
Enzo Baldisserri 215657e16a
checker: check interface implementation 2020-05-06 11:29:37 +02:00
yuyi c653977c15
cgen: fix struct with map field str() error 2020-05-06 09:08:48 +03:00
Sandro Martini 50351eded8
tests: interface: minor fixes 2020-05-05 19:56:11 +02:00
Alexander Medvednikov fd0f8d06f8 tests: valgrind: use correct flag 2020-05-05 17:55:11 +00:00
Sandro Martini dd2a1455dc
tests: add another function to the Animal interface 2020-05-05 16:27:05 +02:00
Tanel Liiv b16281d6e4
cgen: pass around functions 2020-05-05 16:21:21 +02:00
yuyi 6aca3be474
cgen: fix []map[string]string.str() error 2020-05-05 08:46:19 +03:00
Alexander Medvednikov 621cb7b914 parser: short struct init syntax 2020-05-05 02:12:51 +02:00
Uwe Krüger a4b6c3fa5d
cgen: hex representation of signed and pointers 2020-05-05 00:24:33 +02:00
Delyan Angelov d7e7113047 cgen: fix `for char in nums {}` 2020-05-04 18:57:33 +03:00
Enzo Baldisserri 8fd69e845f
cgen: fix using pointer as interface receiver 2020-05-04 14:21:03 +02:00
Delyan Angelov 0e241162d9 panic: distinguish between builtin and main modules 2020-05-04 14:51:30 +03:00
Delyan Angelov cdf70c070b tests: add panic_with_cg.vv/.out 2020-05-04 14:34:51 +03:00
yuyi 90fc23ccfb
checker: fix array init []type{cap: x.len} error 2020-05-04 13:22:09 +02:00
Uwe Krüger f831910c5c
utf: fix string length calculation for combining characters 2020-05-04 13:21:11 +02:00
yuyi c112b3aec5
tests: fix cleanup of compiler_test.v on windows 2020-05-04 11:33:54 +02:00
Alexander Medvednikov eca24c5d11 tests: interface: rename Speaker to Animal 2020-05-04 10:58:42 +02:00
Delyan Angelov acd80f052b
tests: improve diagnostic output on failure 2020-05-04 11:21:25 +03:00
Enzo Baldisserri 4b3ce79e84
interface: support arguments in methods and simplify 2020-05-04 00:14:59 +02:00
Delyan Angelov 71a92eb87b tests: fix CI failing for builtin __as_cast 2020-05-03 22:25:38 +03:00
Uwe Krüger 4a096bd133
parser: fix string interpolation for default conversion 2020-05-03 18:12:59 +02:00
Alexander Medvednikov de749e9d3b parser/cgen: interface <<; `any` type 2020-05-03 18:08:45 +02:00
Alexander Medvednikov 16fe8103ba tests: bring back valgrind test 2020-05-03 13:12:05 +02: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
Delyan Angelov 7038f59ca5 compiler: add back support for -live 2020-05-02 01:14:44 +03: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 51da324465 tests: fix eventbus_test.v 2020-05-01 10:57:19 +02:00
Alexander Medvednikov f1903f3c1f parser: fix imported interfaces 2020-04-30 18:06:14 +02:00
Alexander Medvednikov 20013e4b4b table: interfaces: unique gen_types 2020-04-30 16:48:46 +02:00
Tim Basel 3e4cd12fd0
.gitignore: ignore all binary files by default 2020-04-29 16:49:13 +02:00
joe-conigliaro 98cd013908
cgen: fix interface struct sorting 2020-04-29 21:08:39 +10:00
Alexander Medvednikov 51d0ce0222 tests: more interface tests; checker: handle zero selectorexpr type error 2020-04-29 12:46:09 +02:00
Alexander Medvednikov 2fc05b814c all: interface arrays 2020-04-29 12:21:15 +02:00
Delyan Angelov 0e765e34be vfmt: extract v.util.find_working_diff_command, color_compare_files 2020-04-29 11:51:45 +03:00
yuyi 28f5920bb0
cgen: fix `map` `fixed-array` .str() error 2020-04-28 07:22:46 +02:00
yuyi e9f764db4f
cgen: uniform string output format 2020-04-27 14:48:28 +02:00
yuyi 99a7b69578
cgen: optimize map_to_string format 2020-04-27 10:52:21 +02:00
yuyi 95754f211f
cgen: generate str function when using x.str() 2020-04-27 08:09:37 +02:00
yuyi 2574dce174
all: fix remaining `[]array` warnings 2020-04-26 16:25:54 +02:00
yuyi 9f4d498ff1
all: update`import ()` and `[]array` 2020-04-26 13:49:31 +02:00
Alexander Medvednikov 41eb4453e3 parser: do not allow redefinition of fn args 2020-04-26 12:01:10 +02:00
Alexander Medvednikov 153ac230ec tests: use new array init syntax, fix mutability 2020-04-26 11:56:30 +02:00
yuyi 9cfb1e3bf7
cgen: fix struct with fixed array error 2020-04-26 06:54:14 +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
Alexander Medvednikov 60a0ba5eaa table: minor interface clean up 2020-04-26 05:34:34 +02:00
Enzo Baldisserri 3e68e429b6
checker: avert if else is unnecessary 2020-04-25 21:51:44 +02:00
Alexander Medvednikov e0f9c042c1 cgen: interface fixes 2020-04-25 21:24:12 +02:00
yuyi c26e83f58a
array: fix fixed array errors 2020-04-25 18:26:38 +02:00
joe-conigliaro aacc3c6f7e
cgen: generate str for variadic (#4587) 2020-04-25 22:23:47 +10:00
Alexander Medvednikov 6248899d25 compiler_test: handle panics 2020-04-25 09:05:14 +02:00
Alexander Medvednikov 2d187fb951 runtime `as` type check: part 1 2020-04-25 08:36:53 +02:00
Alexander Medvednikov f1f9e423c3 interfaces: preparatory fixes 2020-04-25 08:00:44 +02:00
Enzo Baldisserri a924defb94
checker: check `in` left type 2020-04-25 06:14:17 +02:00
Delyan Angelov c6a829ce82 cgen: support for error('abc').str() and printing errors 2020-04-24 18:35:33 +03:00
yuyi afa9d42ff0
cgen: fix gen_str_for_array_fixed error 2020-04-24 12:36:45 +02:00
yuyi 998fc8fc07
cgen: add gen_str_for_array_fixed 2020-04-24 07:32:27 +02:00
Alexander Medvednikov 8cb88d5c9a x64: remove fn arg test for now 2020-04-23 20:55:23 +02:00
yuyi 2b4f72ef64
parser: fix empty import error 2020-04-23 14:48:05 +02:00
yuyi f2e505d962
tests: enable compiler_test.v on Windows 2020-04-23 14:15:15 +02:00
Enzo Baldisserri 7e400124e8
parser: allow blank ident in nested loops 2020-04-23 12:00:51 +02:00
Kris Cherven d871595437
all: replace `var` with `mut` 2020-04-23 01:16:58 +02:00
Alexander Medvednikov d7ee4755c2 parser/cgen: interfaces (part 1) 2020-04-22 20:23:53 +02:00
Enzo Baldisserri fecf4ddf65
cgen: fix optional pointers 2020-04-22 20:12:30 +02:00
joe-conigliaro 830b1807c1
test: add comment for assert bug in fn_test 2020-04-22 18:47:46 +10:00
joe-conigliaro 3ca4f5fada
checker/parser: anon fn call & return type fix 2020-04-22 18:41:57 +10:00
Kris Cherven b288ecb795
cgen: add map string generation 2020-04-22 04:00:38 +02:00
Kris Cherven 155891a4e0
parser: add unused variable warning 2020-04-22 01:52:56 +02:00
Uwe Krüger 08fac28c52
cgen: fix string interpolation for non-standard integer types 2020-04-22 01:48:53 +02:00
joe-conigliaro b9c0d2d362
cgen: fix passing high order function with body 2020-04-21 22:45:20 +10:00
Delyan Angelov 7c1d6b60c2 cgen: add g.auto_str_funcs, print &Struct pointers with enum fields 2020-04-21 13:32:17 +03:00
Alexander Medvednikov 9278a0cfba tests: fix mut_test; x64: sub32() 2020-04-21 05:49:03 +02:00
joe-conigliaro abf5942433
parser/cgen: anon fn var & calling (#4534) 2020-04-21 13:23:36 +10:00
yuyi 27e04748ed
cgen:gen_str_for_array 2020-04-19 10:42:34 +02:00
Alexey 3ee858cd79
cgen: fix struct initialization bugs 2020-04-19 04:44:39 +02:00
Alexey 3d6142064d
tests: remove `msvc-test` 2020-04-18 23:44:42 +02:00
Alexey 2ab2a58bc5
string: add more interpolation tests 2020-04-18 18:26:07 +02:00
Alexander Medvednikov 2c778c8849 fmt: single line matches 2020-04-17 20:51:19 +02:00
Alexander Medvednikov c4b7d7cab3 match: shadow variable instead of `it` 2020-04-17 19:24:10 +02:00
Alexander Medvednikov b53fb365a6 parser: move pratt logic to pratt.v 2020-04-17 18:11:04 +02:00
Alexander Medvednikov 16931fd23f parser: move all struct logic to struct.v 2020-04-17 18:01:02 +02:00
yuyi 420ecaf31d
cgen: gen_str_for_array() 2020-04-17 16:10:41 +02:00
yuyi 8bb11d9035
cgen: fix string_interpolation_struct_test.v error 2020-04-17 01:45:42 +02:00
Enzo Baldisserri 051cc732bb
cgen: generate typeof for functions 2020-04-16 21:04:27 +02:00
Alexander Medvednikov af224b4933 parser/cgen: is keyword 2020-04-16 15:32:14 +02:00
Abdullah Atta 6a186e8f11
jsgen: implement js backend 2020-04-15 23:16:49 +02:00
joe-conigliaro fde83aff0b
checker/cgen: fix calling struct field with fn type 2020-04-15 04:28:18 +02:00
Kris Cherven 4dd8796dba
cgen: fix assignment to nested maps 2020-04-15 02:42:00 +02:00
yuyi 885612afea
ftoa: fix strconv/ftoa/f32_f64_to_string_test.v 2020-04-14 03:53:34 +02:00
yuyi fb4cfa72cd
cgen: fix str() for arrays 2020-04-13 19:18:22 +02:00
krischerven ac67b1ea1b
tests: add new type alias syntax tests 2020-04-13 16:44:21 +02:00
Daniel Däschle 8cbdb75dd6
cgen: fix match expr multiline error
* cgen: fix match expr multiline error
* Support for multiple statements in the else part of the match.
* Add a test for the match expression with multiple statements.
2020-04-13 13:05:38 +03:00
Delyan Angelov 99db5f53f7 repl_test.v: fix compilation (non working ones are for now renamed to .skip) 2020-04-13 11:06:52 +03:00
krischerven 74ba8f5cc9
tests: add testing for !in 2020-04-13 02:29:07 +02:00
krischerven a0d6651e0e
tests: fix typeof_test 2020-04-13 02:22:14 +02:00
Enzo Baldisserri da5a1e458b
cgen: fix match expr in assert 2020-04-13 01:53:26 +02:00
Alexander Medvednikov 0db0c642c3 vfmt: add missing imports automatically 2020-04-12 17:45:04 +02:00
Daniel Däschle 5818956cdc
cgen: % escape in string interpolated literals
* cgen: % escape in c call to _STR
* tests: add test for string % escape
* Add a test for the % escaping when interpolating inside strings
2020-04-12 16:24:23 +03:00
Daniel Däschle 79dad0bca9
parser: fix enum default value in struct
* parser: fix enum default value in struct

* Add a test for the enum default values in structs.

* Fix compilation of vfmt.

* Run vfmt over enum_default_value_in_struct_test.v

* Cleanup spurious , in vfmt output for enum declarations

Co-authored-by: Delyan Angelov <delian66@gmail.com>
2020-04-12 13:35:54 +03:00
krischerven 0a03797694
tests: run vfmt 2020-04-12 01:41:26 +02:00
Alexey 0f19f9dd51
tests: test call of variadic function with no arguments 2020-04-12 01:37:34 +02:00
Daniel Däschle be16c5b21d
parser: better error on short init struct 2020-04-11 14:56:55 +03:00
Swastik Baranwal 6ecb6cfe8e
tests: add an operator overloading test 2020-04-11 14:39:51 +03: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 d5fb68e3d6 vfmt: fix struct init; run on struct_test.v 2020-04-10 00:36:50 +02:00
Alexander Medvednikov 9b2511133d vfmt: lots of fixes; cmd/v: -keepc; 2020-04-10 00:30:43 +02:00
Daniel Däschle c0d86eb651
cgen: printing pointer should print the address 2020-04-09 15:35:52 +02:00
Daniel Däschle 3fbf91a044
cgen: printing pointers 2020-04-09 12:29:29 +02:00
krischerven 8f8f8c418e
cgen: implement equality on arrays 2020-04-09 03:55:37 +02:00
Daniel Däschle 1c340174b7
cgen: print nested structs 2020-04-08 22:14:01 +02:00
Daniel Däschle d38acb5487
cgen: fix enum print case 2020-04-08 18:55:10 +02:00
Daniel Däschle 6bba7d4e3a
cgen: enum str() 2020-04-08 15:54:38 +02:00
Alexander Medvednikov 2e78051933 tests: fix in_expression_test 2020-04-08 13:56:09 +02:00
Delyan Angelov b9ec1479e4 checker: allow again fallthrough in or{} blocks of option calls without assignment 2020-04-08 02:56:24 +03:00
Delyan Angelov cb52dd85e7 tests: add an isolated test case for long struct names with capitalization 2020-04-07 22:03:20 +03:00
Alexander Medvednikov 6bbd1943dd cgen: fix &string cast; vfmt fixes 2020-04-07 18:51:44 +02:00
Daniel Däschle 4aedef367c
cgen: print bool and string correctly in struct 2020-04-07 17:52:15 +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 7f516dbae2 cgen: minor optionals fixes 2020-04-06 18:46:50 +02:00
yuyi 4d5fe14968
log: fix example error 2020-04-06 17:22:53 +02:00
Delyan Angelov 75518e5bb9 ci: extract separate working_with_an_empty_struct_test.v 2020-04-05 12:55:54 +03:00
Delyan Angelov 5e76d53fcd compiler: support default values in optional blocks 2020-04-05 11:59:15 +03:00
joe-conigliaro 97d8633557
checker: constant cycle & test fix 2020-04-04 17:05:26 +11:00
joe-conigliaro bf59828897
ast: const impl & global scope & objects 2020-04-04 14:14:40 +11:00
Alexander Medvednikov 436ef12730 cgen: str(): handle empty structs 2020-04-03 18:49:15 +02: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 fd12e4e826 fix compiler_test.v 2020-04-02 18:12:10 +02:00
Delyan Angelov 61f79270a8 v2: compiler_test.v should fail on errors. 2020-04-02 19:01:31 +03:00
SleepyRoy d5b2eb3c23
test: remove old num_lit_call_method 2020-04-02 15:52:46 +02:00
Alexander Medvednikov 4981c5a870 parser: fix public interfaces 2020-04-02 12:53:25 +02:00
Alexander Medvednikov d57b1ca962 fix valgrind test 2020-04-02 10:44:35 +02:00
SleepyRoy 74bdc57fad
tests: fix num_lit_call_method_test 2020-04-02 00:18:29 +02:00
Alexander Medvednikov 39434155f8 short struct init syntax 2020-04-01 23:23:20 +02:00
Alexander Medvednikov d9af06f2ad remove remaining files in vlib/compiler 2020-04-01 22:19:09 +02:00
Alexander Medvednikov 0de853a2ab v2: lots of minor test fixes 2020-04-01 17:14:21 +02:00
Alexander Medvednikov 5a0bfa03b3 fix tests 2020-04-01 15:39:54 +02:00
Alexander Medvednikov 3dae1cc131 move sdl module to github.com/vlang/sdl 2020-04-01 15:27:28 +02:00
Alexander Medvednikov 7fd81d3abb parser: fix ^=; disable generics and interface map tests for now 2020-04-01 15:15:21 +02:00
Alexander Medvednikov b1b811b5ed v2: static (for translated code only) 2020-04-01 13:38:05 +02:00
Alexander Medvednikov 48832200bb parser: allow types that start with &&; cgen: allow ++/-- exprs for now 2020-04-01 13:18:58 +02:00
Major Taylor 9bb1b5d1bb
v2: enum fields separated by commas 2020-04-01 12:11:00 +02:00
Alexander Medvednikov 2ac074655f fix interface test 2020-03-31 21:05:48 +02:00
Alexander Medvednikov 2b563bc69f v2: initial interface support; fix enum_hex_test.v 2020-03-31 19:59:41 +02:00
Alexander Medvednikov 2fe0e80569 cgen: enum default values 2020-03-31 19:43:11 +02:00
Delyan Angelov b62035e3d0
solaris & termux: fix both, using the more portable termios.h 2020-03-31 12:46:46 +02:00
hazohelet ec025f2020
compiler: use type `unresolved` for unresolved consts 2020-03-29 19:26:55 +02:00
Delyan Angelov a9724fd38d
v2: typeof() 2020-03-28 17:37:22 +01:00
Alexander Medvednikov f627710870 fix repl tests 2020-03-27 20:49:20 +01:00
Alexander Medvednikov eed7c91e87 move compiler tests from compiler/ to v/ 2020-03-27 18:01:46 +01:00
Alexander Medvednikov 89a05a474f valgrind tests: skip C warnings for now 2020-03-25 21:46:46 +01:00
Alexander Medvednikov 3b4e0147cd cgen: fix tests 2020-03-25 17:26:03 +01:00
Alexander Medvednikov 60fbceea43 memory: free_scope_vars() 2020-03-25 12:26:59 +03:00
Alexander Medvednikov 1cb45e9916 compiler_test: do not run on windows for now 2020-03-23 20:36:34 +01:00
Alexander Medvednikov ae2d001261 tests: fix the new v2 output tests 2020-03-23 20:30:20 +01:00
Alexander Medvednikov 8d8907b61e memory: handle string assignments 2020-03-22 13:40:53 +01:00
Alexander Medvednikov cf8776ac71 valgrind: update the test 2020-03-22 13:33:40 +01:00
Delyan Angelov 3f328a0242
test: fix 'v test vlib/v/tests' 2020-03-22 13:26:16 +01:00
Delyan Angelov 53a9329ab6
valgrind: nicer output 2020-03-22 09:44:15 +01:00
Alexander Medvednikov a02395fe2d valgrind: run the tests 2020-03-21 20:31:30 +01:00
Alexander Medvednikov 85e411bd7c fix valgrind test 2020-03-21 20:10:30 +01:00
Alexander Medvednikov 3e80e22f5d fix prod build 2020-03-21 20:02:37 +01:00
Alexander Medvednikov 4b4c47461b cgen: error fixes; table: simplify; compiler tests 2020-03-13 01:43:30 +01:00