1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00
Commit Graph

1536 Commits

Author SHA1 Message Date
joe-conigliaro
4dc4f12ccd hashmap: use fnv32 as hash algo 2019-12-21 09:59:12 +03:00
joe-conigliaro
6763a92834 fix multiple type parameters 2019-12-21 09:54:43 +03:00
joe-conigliaro
f7c1b78ec2 clean up generic structs 2019-12-21 05:33:59 +03:00
Alexander Medvednikov
61bfecfa09 vweb: minor fixes 2019-12-21 05:19:26 +03:00
joe-conigliaro
fbd9fedbfb implement generic structs 2019-12-21 03:53:57 +03:00
Changsen XU 徐昶森
b3a402eb82 add mysql -I flag for ubuntu 18.04 (#3153) 2019-12-20 23:18:23 +03:00
Don Alfons Nisnoni
090f444d8f scanner: small DRY 2019-12-20 23:15:16 +03:00
Steve Phillips
6e9493887d builtin/array.v: Fixed typo in new_array (cap -> cap_) 2019-12-20 23:09:59 +03:00
Delyan Angelov
b62e28dba5 compiler: fix interface generation for unused interfaces 2019-12-20 23:06:11 +03:00
Alexander Medvednikov
00b8a5d3e4 vfmt: enum fix 2019-12-20 02:38:11 +03:00
Alexander Medvednikov
6af54d0207 fix windows build 2019-12-20 02:20:03 +03:00
Alexander Medvednikov
6210984c97 run vfmt 2019-12-20 02:09:56 +03:00
Alexander Medvednikov
b6fe2ebc0b fix tools test 2019-12-20 00:20:22 +03:00
Alexander Medvednikov
d082b3f4b9 run vfmt on vlib/builtin 2019-12-20 00:12:29 +03:00
Alexander Medvednikov
76c800ffb6 bring back array.eq 2019-12-19 23:49:40 +03:00
Alexander Medvednikov
d38687f893 run vfmt on cc, cgen, comptime, if_match 2019-12-19 23:43:23 +03:00
Alexander Medvednikov
ce86626ec2 run vfmt on table.v 2019-12-19 23:26:23 +03:00
Alexander Medvednikov
1679457f6b clean up math_test.v 2019-12-19 22:16:10 +03:00
BigBlack
a38a0f4fb7 parser: fix x.function_pointer() 2019-12-19 21:23:29 +03:00
Alexander Medvednikov
2096018b00 map: another fix + test 2019-12-19 21:17:12 +03:00
Alexander Medvednikov
26f5d34e64 map: fix a bug with an incorrect size after delete() 2019-12-19 21:11:42 +03:00
Alexander Medvednikov
519f2990f2 vfmt: minor fixes 2019-12-19 10:02:47 +03:00
penguindark
929e7c1193 strconv: atof_quick for tasks that need speed but not big accuracy 2019-12-19 03:37:53 +03:00
Alexander Medvednikov
df2f98e276 run vfmt on more files 2019-12-19 02:38:54 +03:00
Alexander Medvednikov
1cef83aea4 run vfmt on array.v 2019-12-18 21:20:41 +03:00
Charles WANG
0ebe86fbd5 sqlite: readme 2019-12-18 13:22:22 +03:00
BigBlack
2f218b878b fix fn type call 2019-12-18 13:21:49 +03:00
Delyan Angelov
4b7aa4ec09 freebsd: fix compilation 2019-12-18 13:21:20 +03:00
Alexander Medvednikov
67bdc2c7a9 vfmt: fn args fixes 2019-12-18 11:11:47 +03:00
Alexander Medvednikov
569b32bd1e run vfmt on fn.v 2019-12-18 10:07:30 +03:00
Alexander Medvednikov
81045023c4 run vfmt on scanner.v 2019-12-18 08:26:51 +03:00
Abdullah Atta
20e73ff69a os: fix nreadelements naming 2019-12-18 08:22:52 +03:00
Abdullah Atta
489ec05b23 eventbus: remove hacks, add sender 2019-12-18 08:16:33 +03:00
Alexander Medvednikov
02939d776b vfmt: fix in, |, or {} 2019-12-18 08:01:29 +03:00
Alexander Medvednikov
3d1db3519d test enum printing 2019-12-18 05:45:48 +03:00
Alexander Medvednikov
7456d556e1 fix 2 repl tests 2019-12-18 05:02:23 +03:00
Alexander Medvednikov
a46a2e4715 run vfmt on parser.v 2019-12-18 04:43:41 +03:00
Alexander Medvednikov
ad211a86a6 vfmt: re-write V files + fix {} 2019-12-18 04:33:02 +03:00
Alexander Medvednikov
53b334145b lots of vfmt fixes 2019-12-18 04:15:41 +03:00
BigBlack
67cf7f18e6 array of pointers support 2019-12-18 03:26:04 +03:00
prime31
f00f9fbf5a os: fix bug where read_bytes would return only the first byte 2019-12-18 00:16:56 +03:00
BigBlack
e68200538a parser: call struct field fns 2019-12-17 22:00:08 +03:00
Delyan Angelov
d405cfbcf7 gg: remove spurious printing of gl.TEXT_VERT 2019-12-17 19:17:48 +03:00
Delyan Angelov
ba519f105a compiler: option/command parsing bugfix 2019-12-17 16:00:10 +03:00
Alexander Medvednikov
37add98043 fix programs without fn main 2019-12-17 05:05:10 +03:00
Alexander Medvednikov
84f535d242 atof: remove extra() causing warnings 2019-12-17 01:47:30 +03:00
Alexander Medvednikov
ea781a557f array: slice_clone() 2019-12-17 01:29:40 +03:00
Alexander Medvednikov
562f24336d add ./v2 to gitignore 2019-12-17 01:21:18 +03:00
Johan Hillerström
6008fa44c6 parser: fix generic function call in for in expression 2019-12-17 01:08:30 +03:00
penguindark
3dbf7a4039 atof implementation in V 2019-12-17 01:07:13 +03:00
Alexander Medvednikov
5a56ca0892 parser: handle operator overloading type errors 2019-12-17 00:50:41 +03:00
Alexander Medvednikov
560d1383d1 fix optional struct field assignment 2019-12-17 00:36:28 +03:00
Alexander Medvednikov
54707ff81d do not allow calloc(0) 2019-12-16 22:48:55 +03:00
Alexander Medvednikov
e7856a1afc do not allow malloc(0) 2019-12-16 21:29:32 +03:00
Alexander Medvednikov
10718557a2 increase the name limit to 15 2019-12-16 19:36:29 +03:00
Alexander Medvednikov
bcde155da7 test the recent type alias string; print vweb templates in verbose mode 2019-12-16 19:34:04 +03:00
BigBlack
8c0e0f8ab7 parser: fix type alias type check 2019-12-16 19:06:40 +03:00
Delyan Angelov
b7c477cc18 freestanding: ptr_str, string concat, struct declaration
* compiler: extract c_common_macros from c_headers, and use it in bare_c_headers too. Support for ptr_str and string concatenation in -freestanding mode.

* Add tests for structs and string concatenation in -freestanding mode .

* Move check_string_add_works to string/string.v .
2019-12-16 19:05:33 +03:00
lutherwenxu
dadf147382 flag: implement *_opt() and *_multi()
It's very often that someone will need to process values that were not
provided separately (eg. generating a complex default value like in V).

This commit allows the user to call the *_opt() functions instead of
forcing them to provide some magical default values.

* flag: Implement int_multi(), float_multi() and string_multi()

These 3 functions are useful when the application expects a flag to be
repeated more than once.

A sample would be:
v -cflags someflag -cflags secondflag

This feature exposes the raw array that the flag parser internally keeps
and allow the application to parse it however they want instead of
dropping everything except the first element.

* flag: Add documentation

Add comments describing what *_opt() and *_multi() do.
2019-12-16 19:03:38 +03:00
vitalyster
d1714c4a2a cc.v: build thirdparty objfiles with msvc when no cc installed 2019-12-16 18:56:37 +03:00
Delyan Angelov
7e0a9fb83a compiler: fix regression for -d option flag 2019-12-16 18:55:10 +03:00
João Victor Oliveira Couto
b30f989f44 builder_js: fix mutable error 2019-12-16 18:54:44 +03:00
Kaito Sugimoto
9dd86a2de6 math: fix abs (-0.0) 2019-12-15 19:37:17 +03:00
Delyan Angelov
faa04c586f compiler: restore ability to pass -prod option to run and runrepl. (#3095) 2019-12-15 21:21:37 +11:00
joe-conigliaro
f2c40bf49d
compiler: fix for -Wl -Wa -Wp dont like spaces (#3091) 2019-12-15 16:24:12 +11:00
joe-conigliaro
717740cfcf simplify cflag parsing 2019-12-15 06:18:14 +03:00
joe-conigliaro
be60193588 workaround for -g with default optional value 2019-12-15 06:11:02 +03:00
Alexander Medvednikov
54b0097cee fix repl_test.v 2019-12-15 05:51:00 +03:00
Alexander Medvednikov
68357876ca fix v_command() 2019-12-15 05:44:34 +03:00
Alexander Medvednikov
12ebed0589 error on an incorrect V command 2019-12-15 05:35:17 +03:00
Alexander Medvednikov
48ea136a9a tutorials: vweb: add an article 2019-12-15 00:56:08 +03:00
BigBlack
fc33f9d49c type alias check 2019-12-14 22:01:20 +03:00
Alexander Medvednikov
2e23592264 for: check for redefinitions 2019-12-14 20:00:03 +03:00
Alexander Medvednikov
45695543ba tutorial: minor fixes 2019-12-14 18:59:02 +03:00
Delyan Angelov
1cd5fab21d testing: support for internal module testing 2019-12-14 15:57:28 +03:00
joe-conigliaro
cb9e9286ef
compiler: fixes issue #3074 - can't call a generic function twice with the same data type 2019-12-14 17:54:34 +11:00
prime31
75c01dec30 cleanup SDL event system 2019-12-14 03:31:07 +03:00
Alexander Medvednikov
8581c11900 update malloc 2019-12-14 02:46:55 +03:00
Alexander Medvednikov
962109e855 parser: verify async functions 2019-12-14 02:33:19 +03:00
Alexander Medvednikov
ef562413cd -prealloc 2019-12-14 02:28:15 +03:00
Alexander Medvednikov
88cde6e4e6 orm: skip fields 2019-12-14 02:07:06 +03:00
Alexander Medvednikov
797d4364e7 vweb: fix reading request's body/headers 2019-12-13 23:46:11 +03:00
Alexander Medvednikov
fb3da327d6 vweb: fix a cookie bug 2019-12-13 21:11:40 +03:00
Alexander Medvednikov
83b8d642b4 fix csv/writer.v 2019-12-13 20:45:48 +03:00
Alexander Medvednikov
c72bf0e1b1 global access modifier 2019-12-13 20:28:28 +03:00
Alexander Medvednikov
dc83e30a44 access modifiers: update tests/examples 2019-12-13 20:09:11 +03:00
Alexander Medvednikov
78131e78bc fix sruct access modifiers (pub, pub mut, mut) 2019-12-13 20:00:38 +03:00
Delyan Angelov
fc64238a39 testing: allow tests to import the same module with no custom options 2019-12-13 19:28:39 +03:00
Robert Cristof
ec36755407 mysql: add mysql.escape_string() 2019-12-13 19:12:42 +03:00
Alexander Medvednikov
569a64068a ui/examples: users: fix button click 2019-12-12 23:42:51 +03:00
Alexander Medvednikov
cddfbf7395 parser: allow public types pub type Foo Bar 2019-12-12 22:57:47 +03:00
Alexander Medvednikov
b8f728590b string: last_index ?int 2019-12-12 21:54:48 +03:00
penguindark
8e1c27d129 utf8: punctuation 2019-12-12 21:08:44 +03:00
Alexander Medvednikov
0eeb607ffd fix fopen definition 2019-12-12 21:03:08 +03:00
Alexander Medvednikov
bd833deef3 assoc: verify the field exists and verify the type 2019-12-12 20:38:49 +03:00
Alexander Medvednikov
6982f4a5a2 parser: force {} blocks on new lines 2019-12-12 20:27:05 +03:00
Alexander Medvednikov
02c29624d8 freetype: minor fixes 2019-12-12 14:44:29 +03:00
Alexander Medvednikov
8ba29f968a cc.v: hide "mingw" not found message 2019-12-12 14:27:47 +03:00
Alexander Medvednikov
88ec9c235d sort structs: handle fixed size arrays 2019-12-12 14:21:22 +03:00
Alexander Medvednikov
576618d8cc string cloning; fix foo.str += 's' 2019-12-12 05:20:52 +03:00
Alexander Medvednikov
e182274fe7 free memory block 2019-12-11 23:58:51 +03:00
Alexander Medvednikov
ad250523cd fix parser.fileis() 2019-12-11 21:42:22 +03:00
Alexander Medvednikov
6ffed854cc cgen.prepend_to_statement() 2019-12-11 20:51:58 +03:00
Alexander Medvednikov
47f9c02331 Revert "cgen.prepend_to_statement()"
This reverts commit 507c71ad80.
2019-12-11 20:37:39 +03:00
Alexander Medvednikov
507c71ad80 cgen.prepend_to_statement() 2019-12-11 19:33:54 +03:00
taojy123
28f76f10db vweb: fix empty post request blocking 2019-12-11 19:20:46 +03:00
Alexander Medvednikov
7dcd47369b option to pre-allocate a memory block 2019-12-11 18:41:25 +03:00
Delyan Angelov
13769f440f vweb: continue after bad http client connection; performance fixes
* Enable compiling vweb with -prod (by supressing 'declared and not used' warning about 'reset') .

* Fix http responses (now wrk is happy and shows no errors) by adding a Content-Length header.

* Fix -g compilation for urllib.v .

* vweb: println action= only in debug mode.

* vweb: max request headers counting fix.

* Make vweb.html get a 'ctx mut Context' param, just like the other methods.

* vweb: simplify add_header.

* Use a string builder for the most common html case so that the response http text can be send in one go.

* vweb: reduce _STR/string interpolation usage in the most common html response case.

* vweb: refactor common http response formatting into Context.send_response_to_client/2 method.
2019-12-11 17:32:54 +03:00
Alexander Medvednikov
cfeec92826 use -Wunused-function for now 2019-12-11 15:51:12 +03:00
joe-conigliaro
3486118ab7 compiler: force custom struct .str() methods to be defined public 2019-12-11 03:24:26 +03:00
Alexander Medvednikov
f286387647 vweb: secure HttpOnly cookies 2019-12-11 03:20:30 +03:00
Alexander Medvednikov
cdfbb2978d strings: replace_each([]); orm: update 2019-12-10 23:57:49 +03:00
joe-conigliaro
4e69c40e12 parser: fix use blank ident as value 2019-12-10 21:35:59 +03:00
Alexander Medvednikov
9726e18c0a string: optimize replace() 2019-12-10 18:50:21 +03:00
joe-conigliaro
6d5e9f88f8 parser: allow enums to be used as bitfield flags 2019-12-10 06:16:47 +03:00
Alexander Medvednikov
0650d58818 vweb: readme: list some features of vweb 2019-12-10 00:16:39 +03:00
Alexander Medvednikov
51051cdf92 vweb: enable @ logic in the header + fix the example 2019-12-09 23:34:38 +03:00
Alexander Medvednikov
6f49d4c1d2 orm: bool support; vweb fixes 2019-12-09 23:20:29 +03:00
Delyan Angelov
32b0225079 remove os/time references from live programs, fix warnings 2019-12-09 18:53:17 +03:00
Alexander Medvednikov
8082a5e7f4 fix benchmarking stats 2019-12-09 17:25:56 +03:00
Alexander Medvednikov
75280bb54c fix int.str() memory bug 2019-12-09 16:41:13 +03:00
Delyan Angelov
f68d9d1a16 live: always add os and time when compiling -live programs
Fixes fail when -live user programs do not use os and time.
2019-12-09 13:48:41 +03:00
sha0coder
7ffa315566 vlib/http: ssl handshake fix 2019-12-09 13:31:24 +03:00
Delyan Angelov
ed5c9a20e5 update brew instructions for sdl dependencies 2019-12-09 03:18:08 +03:00
Alexander Medvednikov
b2207c3d28 do not prepend module to external fn name 2019-12-09 00:24:50 +03:00
Alexander Medvednikov
4ebf53c6e9 allow non snake_case fn names in imported fns 2019-12-08 23:56:31 +03:00
prime31
faedebbb4e sdl: separate sdl module into multiple, dependent submodules 2019-12-08 23:30:38 +03:00
penguindark
9730164613 atoi: fix leading zeros in string to int conversion 2019-12-08 23:22:33 +03:00
Alexander Medvednikov
8f9b6ac248 '$foo()' string interpolation 2019-12-08 23:18:11 +03:00
Alexander Medvednikov
874ff42687 temporary fix of "v -g v.v" 2019-12-08 20:58:16 +03:00
Delyan Angelov
1bb38a38bb tooling: add tools/oldv , for use with 'git bisect', or for testing with older V 2019-12-08 20:21:17 +03:00
Alexander Medvednikov
4d1f721558 fix "" string interpolation bug 2019-12-08 20:06:00 +03:00
Alexander Medvednikov
d58982a6f6 vweb: fix tests 2019-12-08 18:07:04 +03:00
Alexander Medvednikov
1c6f7180b2 vweb: fix form parsing 2019-12-08 17:37:23 +03:00
Alexander Medvednikov
02eee49d25 fix defer_test 2019-12-08 15:30:14 +03:00
Alexander Medvednikov
c9886e6f42 use ++ everywhere 2019-12-08 14:34:51 +03:00
Alexander Medvednikov
cc682eafe1 require ++ instead of += 1 2019-12-08 14:11:25 +03:00
Nicolas Sauzede
8bc94947e5 tvintris: fix else cases 2019-12-08 13:45:29 +03:00
bogen85
8178e1f7da freestanding: malloc/free with mm_alloc an mm_free
Added more array support that depends on malloc. Added string clone (that uses malloc). Added test for it. Eliminated stack allocated buffers from most of the unit checks.
2019-12-08 13:44:52 +03:00
Alexander Medvednikov
6ec626c5e9 improve invalid character errorrs 2019-12-08 12:57:40 +03:00
Alexander Medvednikov
8b0de95c0a improve the C struct check 2019-12-08 04:23:22 +03:00
Alexander Medvednikov
6ae51b2cbf handle unknown C types 2019-12-08 04:10:56 +03:00
Alexander Medvednikov
7adda3b71a vweb: fix get_cookie() 2019-12-08 01:48:49 +03:00
Alexander Medvednikov
b1174428a5 vweb: fix redirect() 2019-12-08 01:05:57 +03:00
Alexander Medvednikov
30fc29fa6d fix csv test 2019-12-08 01:03:35 +03:00
Alexander Medvednikov
7069cd6ab5 a separate scope for x := opt, part 2 2019-12-08 00:45:42 +03:00
Alexander Medvednikov
b26a0bde38 a separate scope for x := opt, part 1 2019-12-08 00:34:04 +03:00
Alexander Medvednikov
06a0f39f7b a separate scope for 2019-12-08 00:30:06 +03:00
Alexander Medvednikov
dc2da1de98 fix V build 2019-12-08 00:27:24 +03:00
Alexander Medvednikov
8ebc2fe601 do not allow redefinition in x := opt() { 2019-12-07 23:09:48 +03:00
Alexander Medvednikov
b79588dc69 handle bad value in if x := opt() { 2019-12-07 23:05:54 +03:00
Alexander Medvednikov
49f960aea5 fix some windows cast warnings 2019-12-07 22:42:20 +03:00
Alexander Medvednikov
c019dd6f98 test assert in functions that return values 2019-12-07 22:42:20 +03:00
bogen85
751ba48bf5 freestanding improvements (exit, function checks)
Fixed exit for freestanding (as assert now uses it).
Running each function check now in a forked process so they can be killed or return other exit codes (and so each function runs, even if others crash)
2019-12-07 22:25:19 +03:00
Alexander Medvednikov
d73586743b fix assert in functions that return values 2019-12-07 19:33:59 +03:00
Alexander Medvednikov
b9a24e3b51 Revert "use stdint.h with msvc"
This reverts commit 93529031de.
2019-12-07 19:25:17 +03:00
Alexander Medvednikov
93529031de use stdint.h with msvc 2019-12-07 19:20:53 +03:00
Alexander Medvednikov
63ec3c0486 fix a wrong "0 character in a string literal" error 2019-12-07 18:19:48 +03:00
Alexander Medvednikov
7b0e378947 fix clipboard_linux.v 2019-12-07 18:16:19 +03:00
Alexander Medvednikov
e1ad1794e3 fix readline_linux.v 2019-12-07 17:46:01 +03:00
Alexander Medvednikov
9cba3bdf78 windows: WideCharToMultiByte() returns an int 2019-12-07 17:31:07 +03:00
Alexander Medvednikov
ad6adf327e vlib: fix missing else{} in match statements 2019-12-07 17:23:37 +03:00
Alexander Medvednikov
2fb7fba856 require else in match statements 2019-12-07 17:01:44 +03:00
Alexander Medvednikov
a594e009f2 test high order function 2019-12-07 16:13:25 +03:00
Alexander Medvednikov
f51784ee01 remove unnecessary casts everywhere 2019-12-07 15:51:00 +03:00
Alexander Medvednikov
d7ccbba2c9 do not allow casting a type to itself 2019-12-07 15:31:56 +03:00
Alexander Medvednikov
a854d396ff clipboard: fix mutability on macOS and Windows 2019-12-07 15:22:28 +03:00
Alexander Medvednikov
c2814c1ada vlib: fix remaining mutability errors 2019-12-07 15:13:23 +03:00
Alexander Medvednikov
329485d4b6 vweb: fix headers and cookies 2019-12-07 15:04:05 +03:00
Alexander Medvednikov
cc834dd7a7 parser: x in [] is always false 2019-12-07 03:05:19 +03:00
João Victor Oliveira Couto
5a8c07dcf5 strings: builder: write_b() 2019-12-06 23:02:09 +03:00
Alexander Medvednikov
55f32fc413 more mutability fixes 2019-12-06 19:23:24 +03:00
Alexander Medvednikov
e3b5d7fd7c rename if_st to if_statement 2019-12-06 19:21:26 +03:00
Alexander Medvednikov
bf1b751f47 cli: update mutability 2019-12-06 19:12:01 +03:00
Alexander Medvednikov
c8d111924d check unused and unmodified vars in all modules, not just main 2019-12-06 18:43:56 +03:00
Delyan Angelov
353805e170 os: test is_link() 2019-12-06 12:09:35 +03:00
Alexander Medvednikov
aed22a57e3 fixed size array with const length ([N]int) 2019-12-06 02:41:03 +03:00
Alexander Medvednikov
be323e2fb6 ci: set up pg database to test ORM 2019-12-06 02:11:39 +03:00
Alexander Medvednikov
71c0c4803f ORM fixes 2019-12-06 02:00:37 +03:00
Alexander Medvednikov
79b26b1654 use get_type2 in struct.v 2019-12-05 19:02:33 +03:00
Alexander Medvednikov
cca650c655 better foo must return (int, int) error 2019-12-05 18:55:27 +03:00
Alexander Medvednikov
cb46bf314e get_type.v 2019-12-05 18:48:39 +03:00
BilligsterUser
0a38b307cd os_test: use rmdir() to del dirs 2019-12-05 17:08:55 +03:00
Delyan Angelov
98374ea6fe CI: fix msvc (temporary work around dialogs poping up) 2019-12-05 17:08:18 +03:00
Alexander Medvednikov
4888d27b71 fix v -live on macOS 2019-12-05 14:40:14 +03:00
Alexander Medvednikov
2a1b0a8cae rename table.register_type2() 2019-12-05 14:24:25 +03:00
Nicolas Sauzede
2e30e1453d sdl: fix old vsdl2 references 2019-12-05 12:58:48 +03:00
Alexander Medvednikov
90e3ab8c1e debugging v -live message.v 2019-12-05 12:48:23 +03:00
Nicolas Sauzede
9d854c5df0 vlib: sdl module + tVintris example 2019-12-05 11:25:55 +03:00
Alexander Medvednikov
6dd1270539 builtin: remove an unnecessary malloc() call 2019-12-05 11:08:41 +03:00
Alexander Medvednikov
867f952d6b for: ranging through fixed size arrays 2019-12-05 02:17:17 +03:00
Alexander Medvednikov
fb546f376e set max module depth to 5 2019-12-05 01:27:04 +03:00
Alexander Medvednikov
e707ac4f28 test v -live message.v 2019-12-05 00:17:38 +03:00
Alexander Medvednikov
2144c162c4 os: is_link() 2019-12-04 23:53:11 +03:00
Alexander Medvednikov
a57e29dfc5 os: replace dir_exists with is_dir; file_exists() => exists() 2019-12-04 23:17:45 +03:00
Alexander Medvednikov
fb237b9e53 parser: check types in a in b expressions 2019-12-04 22:17:24 +03:00
Alexander Medvednikov
d9248e8d52 parser: fix a wrong index in an error 2019-12-04 13:36:35 +03:00
Delyan Angelov
9a6711fa1b compiler: c'str' now has type charptr 2019-12-04 13:34:06 +03:00
Alexander Medvednikov
40df0644ca fix all Foo{!} 2019-12-04 13:08:28 +03:00
Alexander Medvednikov
e32cbfcca7 error on C.Foo{!} 2019-12-04 12:56:59 +03:00