Commit Graph

886 Commits (6da6a082c7219960bc5a056daf8d422d8201c897)

Author SHA1 Message Date
yuyi 73296e486a
parser: fix function return anon_fn without parentheses 2020-06-22 16:03:31 +02:00
Delyan Angelov b930a11203 parser: fix `match x { mod.constname {} }` handling 2020-06-22 16:16:39 +03:00
Alexander Medvednikov 011e26ca9a checker: check sum types in `match`; cross compilation fixes; orm fixes 2020-06-21 23:09:53 +02:00
Uwe Krüger 37927235cd
parser: trigger declaration of array element as error 2020-06-20 14:30:03 +02:00
spaceface777 a02aff9126
jsgen: fixes and improvements 2020-06-20 13:22:49 +02:00
joe-conigliaro ddd83f1fc6
checker: error if variable used before declaration 2020-06-20 12:42:08 +10:00
Alexander Medvednikov 1d8d19c977 vweb: return $vweb.html() 2020-06-20 03:12:38 +02:00
Alexander Medvednikov 3cfeb92a4e cgen: fix tmp counter; orm: insert fixes 2020-06-19 17:05:57 +02: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
Ned Palacios 5ff7d07138
vdoc: fix sorting + other minor improvements 2020-06-19 10:36:45 +02:00
joe-conigliaro 1c68417918
parser: error on variable redefinition 2020-06-19 06:16:38 +10:00
spaceface777 68967e833d
parser: skip comp_if when building for a different compiler 2020-06-18 22:01:00 +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
joe-conigliaro 68143b7b22
parser/checker/gen: match shaddow cond var & as support: p1 2020-06-19 00:33:16 +10: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
Alexander Medvednikov 6066414afa orm: select many 2020-06-17 14:18:32 +02:00
joe-conigliaro effa0061e8
parser: fix incorrect duplicate struct attr error 2020-06-17 20:27:51 +10:00
Alexander Medvednikov fb5cae7376 orm: select where id = x 2020-06-17 04:05:20 +02:00
Alexander Medvednikov ed58192e4c v orm: select 2020-06-17 00:59:37 +02:00
joe-conigliaro d478b44915
parser/checker/gen: merge AssignExpr & AssignStmt into just AssignStmt 2020-06-16 21:20:16 +10:00
Alexander Medvednikov e8f8defc3e ast: SqlExpr 2020-06-16 12:14:22 +02: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
Delyan Angelov e73ed56231 tests: add parser/tests/, move checker_test.v=>compiler_errors_test.v 2020-06-15 10:58:34 +03:00
yuyi 2785a5bf65
checker: check return_duplicate_with_none (closes #5363) 2020-06-15 15:10:45 +10: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
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
Alexander Medvednikov a2d7bc6e6f vweb: look for html templates in `templates/` 2020-06-10 18:00:11 +02:00
joe-conigliaro 3664bea912
vweb/checker: show tmpl var errors 2020-06-10 02:47:51 +10: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
Alexander Medvednikov b3e416fb52 vweb: fix duplicate fn error with multiple templates 2020-06-09 12:43:20 +02: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
spaceface777 30f1c6bad5
parser: fix type_only fns starting with varargs 2020-06-08 19:02:36 +02: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
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
Alexander Medvednikov 931cf86cc3 tests: build vweb example 2020-06-07 15:44:33 +02:00
joe-conigliaro 70c18fc7b2
vweb: tmpl access to action method vars 2020-06-07 21:26:47 +10:00
joe-conigliaro 1c2bf7b244
vweb: impl of comptime tmpl parsing (fix vweb_example) 2020-06-07 20:26:45 +10:00
Alexander Medvednikov d62d0c40d2 parser: fix typo 2020-06-06 21:36:55 +02:00
Alexander Medvednikov 4d5ac1e16d vweb: $html 2020-06-06 21:36:34 +02:00
Delyan Angelov e534f8507b vlib: minor tweaks for various module imports, needed for vdoc 2020-06-06 19:14:10 +03:00
Delyan Angelov 8d3f680d07 vdoc: implement .toplevel_comments parsing mode 2020-06-06 19:05:26 +03:00
Alexander Medvednikov 40bd1be85f parser: fix ! 2020-06-06 12:43:35 +02:00
Alexander Medvednikov 100b3986b8 parser: handle ! after CallExpr 2020-06-06 12:28:03 +02:00
Alexander Medvednikov 7815c5b108 cgen: $action (ComptimeCall); vweb: hello world works! 2020-06-06 10:05:26 +02:00
Uwe Krüger de76ac583f
parser: fix string interpolation for expressions ending `c`, `r`, `js` 2020-06-05 22:37:34 +02:00
yuyi dd7ebf7fac
parser: check function argument mutable syntax 2020-06-04 15:20:43 +02:00
joe-conigliaro 41dca3ef58
checker/cgen: fix mutable generic fn args 2020-06-04 19:32:31 +10:00
Swastik Baranwal d286f67220
parser: update check for non mut types in fn 2020-06-03 18:47:18 +03:00
yuyi 1060de88af
parser: fix function mutable argument error 2020-06-03 12:28:16 +02:00
spaceface777 4b7c70caca
parser: fix JS functions starting with caps 2020-06-03 10:57:32 +02:00
Alexander Medvednikov 199f4f006b checker: fix mut int check 2020-06-03 10:36:56 +02:00
yuyi d0ff9a7c4a
parser: correct fn arg position in error message 2020-06-03 08:42:02 +03:00
yuyi 1386c5df13
parser: use `?` instead of `?void` errpr 2020-06-02 17:24:24 +02:00
Alexander Medvednikov fb3e52ca63 all: `!is` operator 2020-06-02 16:18:12 +02:00
Alexander Medvednikov 138d730dfa checker: prepare for the is_changed check 2020-06-02 09:00:51 +02:00
Delyan Angelov 86862d6a94 checker: remove mod_file_cacher exception 2020-06-01 17:43:03 +03:00
Alexander Medvednikov 3d83934caf checker: check mutating methods; generics fixes 2020-06-01 15:44:10 +02:00
Alexander Medvednikov f87e872fa2 checker/cgen: interface match 2020-05-31 10:22:21 +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
yuyi 1e504fb388
parser: check undefined variable of assign_expr 2020-05-29 17:38:40 +02:00
Delyan Angelov f3c5f36317 parser: allow for `struct Abc { f [skip] = -1 }` 2020-05-29 12:45:54 +03:00
Alexander Medvednikov 96fb7901b3 live: fix reloader.v 2020-05-29 04:36:08 +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
yuyi 28ffe2a6ee
checker: add error for struct fields of type []unknown 2020-05-28 19:38:53 +03:00
spaceface777 60716bba29
parser: fix nested array_init syntax 2020-05-28 19:36:57 +03:00
pancake 1d78914a8f
parser: support @VROOT in #include too, make it use absolute paths 2020-05-28 19:36:04 +03:00
Alexander Medvednikov 9609b3a9c8 checker: make the method warning an error 2020-05-28 15:30:54 +02:00
Alexander Medvednikov 01dbb25a37 checker: do not allow defining methods on types from other modules 2020-05-28 15:23:20 +02:00
Leah Lundqvist 1d0ebfb691
jsgen: add hash statement 2020-05-28 14:38:10 +02:00
yuyi 977eb895e8
checker: check array init's element type 2020-05-28 13:32:12 +02:00
yuyi 9cbd9db4e7
cgen: fix swap assign of prefix and postfix expr 2020-05-28 02:22:09 +03:00
Delyan Angelov f6bdb3ae81 v.vmod: cleanup vmod.mod_file_cacher API 2020-05-28 01:38:11 +03:00
Alexander Medvednikov 670820cc59 parser: do not allow 1 char struct names 2020-05-27 16:00:00 +02:00
Alexander Medvednikov 5423a15f46 generics: more fixes 2020-05-27 15:56:30 +02:00
Alexander Medvednikov 7c9279c447 vfmt: make work with comptime 2020-05-27 03:33:40 +02:00
Alexander Medvednikov 6f7628cb67 parser: comptime call fixes 2020-05-27 03:20:25 +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
yuyi 30ca08aaa3
parser: fix self-referenced error 2020-05-25 11:31:04 +02:00
Alexander Medvednikov f41e2c0a4b string: make replace() clone for now; parser: comptime method 2020-05-25 08:17:36 +02:00
Alexander Medvednikov 1ef8eacd6e checker/gen: more generics fixes; ComptimeCall 2020-05-25 05:32:36 +02:00
yuyi 641fe5c864
checker: fix unresolved variables error on assignments 2020-05-24 20:33:53 +03:00
Delyan Angelov 70f0115e27 options: use panic_debug() for opt()? calls in main with -cg 2020-05-23 11:43:20 +03:00
Enzo Baldisserri 801bca1ef2
compiler: propagate optional 2020-05-23 08:51:15 +02:00
Delyan Angelov acb58a1f98 parser: add p.peek_tok3, fix `for ...<a.len...` 2020-05-22 19:48:47 +03:00
yuyi dda875a9c8
all: unify const names to snake_case 2020-05-22 17:36:09 +02:00
Delyan Angelov 7a4f26ac4f compiler: use -lpthread during building v itself. 2020-05-22 08:36:56 +03:00
Alexander Medvednikov edabd57e8a parser: use parallel only on macos for now 2020-05-22 02:45: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 ce1a181699 all: generic functions 2020-05-21 03:58:53 +02:00
yuyi b8c028c727
parser: fix -5.str() precedence 2020-05-20 23:26:23 +02:00
Alexander Medvednikov ca81442fac parser: fix a small bug with < 2020-05-20 21:47:03 +02:00
Alexander Medvednikov 82cedbaf62 fmt: fix `map[string][]string`; parser: allow `foo<int>(10)` 2020-05-20 21:40:24 +02:00
Don Alfons Nisnoni 10ad5332e8
parser: improve unused imports warning 2020-05-20 20:50:27 +03:00
Alexander Medvednikov 0d3f133436 parser: show location of a previously defined function 2020-05-20 17:27:37 +02:00
Delyan Angelov ac396ea02f http: cleanup backend_nix.c.v, fixes vpm too 2020-05-20 12:04:28 +03:00
spaceface777 b10df252dc
all: replace `is_c`, `is_js` with `language` 2020-05-19 17:12:47 +02:00
yuyi 74686d0ec4
test: fix alias type errors and type_test.v 2020-05-19 15:04:51 +03:00
Alexander Medvednikov 03525843a0 parser: do not allow calling private functions 2020-05-18 22:54:11 +02:00
Uwe Krüger 2635be511f
all: re-apply C++ support 2020-05-18 21:38:06 +02:00
Alexander Medvednikov 895cefe351 parser: do not allow defining methods on types from other modules 2020-05-18 20:55:22 +02:00
Tanel Liiv 2344c1a435
parser: fix to multi-expr 2020-05-18 18:33:27 +02:00
Alexander Medvednikov 07a78b2843 Revert "all: C++ compiler support"
This reverts commit 9a237c3e82.
2020-05-18 17:05:48 +02:00
Alexander Medvednikov fc900baf9e parser: a minor simplification 2020-05-18 17:02:29 +02:00
Uwe Krüger 9a237c3e82
all: C++ compiler support 2020-05-18 15:51:36 +02:00
yuyi 7f4cf08516
parser: check `(mut f Foo)` syntax 2020-05-17 13:51:18 +02:00
Alexander Medvednikov 0845b2cfbe builder: skip warnings; pref: move pref creation to pref.v 2020-05-16 22:45:38 +02:00
Delyan Angelov 62cb48d252 repl: treat middle imports in a more forgiving way 2020-05-16 22:03:28 +03:00
Enzo Baldisserri f44a40eee0
checker: check incorrect names 2020-05-16 16:12:23 +02:00
Tanel Liiv 44502a3fb2
parser: return multi expr 2020-05-15 23:14:53 +02:00
spaceface777 7c9bb44784 parser: allow JS methods with more than 1 dot 2020-05-15 22:26:51 +02:00
Delyan Angelov 5d0cc0944e parser: fix v_panic due to -pos in unused var warning (with tcc) 2020-05-15 20:11:27 +03:00
yuyi 8500c8885c
cgen: fix optional_void error; handle `?` return type 2020-05-15 15:55:03 +02:00
Alexander Medvednikov 0f251e9ede checker: handle json.decode correctly 2020-05-14 18:30:30 +02:00
Alexander Medvednikov f49ef39708 checker: handle unexpected `or` blocks 2020-05-14 18:19:40 +02:00
Enzo Baldisserri fd0d833e33
gen: if expressions with multiple statements 2020-05-14 17:15:25 +02:00
wilesun 2a9cbbe157
cgen: handle sizeof(C.struct) 2020-05-14 17:14:59 +02:00
yuyi 6d0b791ac8
parser: warning about unused imports 2020-05-14 17:14:24 +02:00
Alexander Medvednikov 1bf26a35fa array: rename default to init 2020-05-13 22:00:24 +02:00
yuyi 2e0b9de31c
parser: error for consts in fns 2020-05-13 18:39:02 +02:00
Alexander Medvednikov 33a9822548 parser/vfmt: handle array len and default in array init 2020-05-13 16:11:52 +02:00
yuyi b1511ce995
parser: optimize no main file process 2020-05-13 14:02:04 +02:00
yuyi 7837abf6b0
parser: optimize stmt() 2020-05-12 17:18:25 +02:00
yuyi 99b31d8241
parser: unified way to handle struct and enum name check 2020-05-12 13:39:32 +02:00
Alexander Medvednikov 712fd384ee parser: fix eval not used in match 2020-05-12 00:26:39 +02:00
Alexander Medvednikov 27d3800cc3 parser: bring back "evaluated but not used" 2020-05-12 00:19:45 +02:00
Alexander Medvednikov 1c8e14c77c vfmt: handle comments in const blocks 2020-05-12 00:09:59 +02:00
Alexander Medvednikov e9177faf17 checker: allow `*x = y` only inside unsafe blocks 2020-05-11 16:05:59 +02:00
Alexey 6f2dcd819f
parser: force visibility of interface methods 2020-05-11 15:10:26 +02:00
Alexander Medvednikov ce03761375 parser: fix mut args with the new syntax; checker: fmt 2020-05-11 14:16:20 +02:00
Kris Cherven 8bc0c31f29
parser: add error for variables, that are evaluated, but not used 2020-05-11 11:13:36 +03:00
joe-conigliaro 1b3cd7abe0
cgen: fix sum type assign/push from in match branch & type mod 2020-05-11 16:59:55 +10:00
Ned Palacios 5f0ad0f562
compiler: add output mode for errors and warnings, support for `-silent` flag 2020-05-10 12:26:57 +03:00
yuyi 7f69c2fbf5
parser: check `import` in the middle of file error 2020-05-10 07:47:20 +03:00
yuyi ba3a631954
parser: check for module statement errors 2020-05-10 02:28:56 +02:00
Alexander Medvednikov 09f6cd6a75 parser/checker: [ref_only] attribute 2020-05-09 23:45:41 +02:00
Alexander Medvednikov dea9ca2491 cgen: fix a big with &Foo{} init 2020-05-09 15:23:48 +02:00
Alexander Medvednikov c64f8b0d1f parser/checker: pub: struct fields 2020-05-09 15:16:48 +02:00
yuyi 5f435fa1cc
parser: check enum name and field name errors 2020-05-09 12:43:10 +02:00
Ned Palacios 5b47ec49af
parser: add support for multiple struct field attributes 2020-05-08 15:09:42 +02:00
yuyi ef505e21ee
parser: check for import errors 2020-05-08 16:01:54 +03:00
Ned Palacios 13b11a4155
parser: fix struct attribute for array struct field 2020-05-08 13:09:40 +02:00
Delyan Angelov 673acdbd00 tcc: fix selfcompilation with tcc. Temporarily disable crashing interface test 2020-05-07 20:59:45 +03:00
Enzo Baldisserri 0f8ed84333
checker: verify interface is not used as receiver 2020-05-07 11:14:51 +03:00
yuyi 2f52106253
parser: use .next instead of .check, when a token is already known 2020-05-07 07:51:36 +03:00
yuyi 98a1b2782b
parser: simplify import 2020-05-07 04:32:29 +02:00
Delyan Angelov f638caef39 compiler: v -autofree can now compile itself 2020-05-06 19:03:51 +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
yuyi 51f3f31a4e
checker: check string(1) cast error 2020-05-06 12:05:24 +02:00
yuyi b627bb933c
message: use uniform message reference format 2020-05-06 09:10:40 +03:00
Alexander Medvednikov a0ca68ce3f checker: do not allow `string(int)` 2020-05-05 15:26:42 +02:00
Alexander Medvednikov b3d7b0205a json: handle field attributes 2020-05-05 14:41:27 +02:00
Alexander Medvednikov ee92060d4d json: decode_array fix 2020-05-05 14:19:31 +02:00
Alexander Medvednikov 621cb7b914 parser: short struct init syntax 2020-05-05 02:12:51 +02:00
Alexander Medvednikov 32a7bd3a48 parser/checker: do not allow using private types from other modules 2020-05-04 21:56:41 +02:00
Delyan Angelov 36bf99ed5a parser: remove forgotten ----- line 2020-05-04 18:28:55 +03:00
Delyan Angelov d30eefc3be fmt: improve handling of map[k]v and []map[k]v types 2020-05-04 18:27:07 +03:00
Alexander Medvednikov fd8a194df0 json: wrap up decode() 2020-05-04 16:46:39 +02:00
Delyan Angelov cdf70c070b tests: add panic_with_cg.vv/.out 2020-05-04 14:34:51 +03:00
joe-conigliaro 57903247e3
parser: add back struct field removed by accident 2020-05-04 21:27:54 +10:00
joe-conigliaro d75f286230
parser: store FnDecl body position and use for scope 2020-05-04 20:31:34 +10:00
Enzo Baldisserri 4b3ce79e84
interface: support arguments in methods and simplify 2020-05-04 00:14:59 +02:00
Delyan Angelov 242670a33d compiler: add support for panic_debug with -cg 2020-05-03 22:13:59 +03:00
Uwe Krüger 4a096bd133
parser: fix string interpolation for default conversion 2020-05-03 18:12:59 +02:00
Delyan Angelov 7e4e3abc2c compiler: circuimvent the dependency cycle v.ast <-> v.table 2020-05-02 22:52:10 +03:00
joe-conigliaro 483f0f408c
ast: allow scope var shadowing 2020-05-02 23:46:53 +10:00
Tanel Liiv 68ca8ab8a4
array: nested map() 2020-05-02 15:26:58 +02:00
Delyan Angelov 7038f59ca5 compiler: add back support for -live 2020-05-02 01:14:44 +03:00
eyelash 130324df76
compiler: remove debug prints 2020-05-02 00:10:36 +02:00
yuyi b21be7f670
parser: multiple names error 2020-05-01 18:18:58 +02:00
yuyi de272654f1
repl: fix import xxx with no fn main error 2020-05-01 18:12:18 +02:00
Alexander Medvednikov f1903f3c1f parser: fix imported interfaces 2020-04-30 18:06:14 +02:00
Alexander Medvednikov 9971c58ca3 all: remove `var` key 2020-04-30 16:55:33 +02:00
yuyi 5481c0fc84
parser: uniform handling of enum field format 2020-04-30 12:18:16 +02:00
yuyi 81ed6ad2a1
checker: check duplicate consts 2020-04-30 12:17:31 +02:00
Delyan Angelov e5ae4b6454 parser: fix match exprs over C.VALUES (needed for C.GLFW_KEY_UP) 2020-04-29 20:35:57 +03:00
Enzo Baldisserri 390d88f933
parser: fail for section redefinition in struct 2020-04-29 13:32:39 +02:00
Alexander Medvednikov 2fc05b814c all: interface arrays 2020-04-29 12:21:15 +02:00
Enzo Baldisserri 682838a0cf
checker: check array and fields mutability 2020-04-27 22:53:26 +02:00
joe-conigliaro 9f76a7b250
parser: simplify unused vars & add loop/if vars etc 2020-04-27 23:16:31 +10:00
Delyan Angelov e67bf674e3 scanner: cleanup, only v.parser now depends on v.scanner 2020-04-27 16:08:04 +03:00
Alexander Medvednikov f23948010a parser: new array init syntax 2020-04-26 17:28:48 +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 0641a31fe0 parser: allow mutable pointer args 2020-04-26 11:53:41 +02:00
Alexander Medvednikov 3c08f655af parser: do not allow mutable simple args 2020-04-26 10:35:10 +02:00
Alexander Medvednikov a56121c329 checker: check mutability in index exprs; parser: set is_mut for args 2020-04-26 10:25:58 +02:00
Delyan Angelov ee31339dfd parser: fix error position for use `x := []Type{}` 2020-04-26 10:42:46 +03:00
Alexander Medvednikov 3ab8dc0092 parser: array init: `[]string` => `[]string{}` 2020-04-26 09:17:17 +02:00
Alexander Medvednikov a48080afec parser: deprecate import(); replace remaining import()s 2020-04-26 07:36:02 +02:00
Alexander Medvednikov f7153ca4fa fmt: array_init(); parser: fn_redefinition_error() 2020-04-26 07:17:01 +02:00
Alexander Medvednikov 3166833471 parser: fix interface method return type parsing 2020-04-26 07:03:26 +02:00
yuyi 541b058e90
all: use `a !in b` instead of `!(a in b)` 2020-04-26 06:39:23 +02:00
Alexander Medvednikov 8000eb3656 parser: revert silent _ prefix rule 2020-04-26 05:34:34 +02:00
yuyi c26e83f58a
array: fix fixed array errors 2020-04-25 18:26:38 +02:00
Enzo Baldisserri fb54a2635c
fmt: lots of fixes 2020-04-25 17:49:16 +02:00
Delyan Angelov 9a19531909 compiler: add support for `[if myflag]` void fn/methods 2020-04-25 16:57:11 +03:00
Delyan Angelov 945f964c0c parser: stay silent about unused variables starting with _ 2020-04-25 15:38:15 +03:00
joe-conigliaro 41cc96aaec
revert parser: simplify array push detection 2020-04-25 18:57:12 +10:00
joe-conigliaro 4675656786
parser: simplify array push detection 2020-04-25 18:42:53 +10:00
joe-conigliaro 9fff8733a0
parser: allow deref assign without parens pt1 2020-04-25 18:07:30 +10:00
joe-conigliaro 6696e1a6e2
table: move set_nr_muls to method 2020-04-25 17:54:32 +10:00
Alexander Medvednikov d54b48b300 table: interface cast fix 2020-04-25 09:18:10 +02:00
joe-conigliaro fbcdffbbc8
table: move Type functions to methods 2020-04-25 17:08:53 +10:00
Alexander Medvednikov f1f9e423c3 interfaces: preparatory fixes 2020-04-25 08:00:44 +02:00
Enzo Baldisserri fa4739794f
checker: fix "unnecessary `()`" error position 2020-04-24 20:27:18 +02:00
Delyan Angelov cc4090cc74 vfmt: remove unused variable check for vfmt 2020-04-24 20:25:11 +03:00
Delyan Angelov 8be10ffbd6 vfmt: always walk over all comptime branches 2020-04-24 19:05:55 +03:00
Delyan Angelov 863fab0268 comptime: enable again skipping parsing of other platform branches 2020-04-24 08:51:48 +03:00
Delyan Angelov 6b31ebe456 Revert "comptime: enable again skipping parsing of other platform branches"
This reverts commit 0f4c5fb1c9.
2020-04-23 22:47:16 +03:00
Delyan Angelov 0f4c5fb1c9 comptime: enable again skipping parsing of other platform branches 2020-04-23 20:45:16 +03:00
Delyan Angelov adb8fb1dc6 comptime: fix custom -d flags and `$if x? {}`. Fixes ftp_test.v . 2020-04-23 17:52:44 +03:00
yuyi 2b4f72ef64
parser: fix empty import error 2020-04-23 14:48:05 +02:00
Delyan Angelov 8b5573a6f3 errors: use more distinct and detailed name redefinition messages 2020-04-23 13:15:01 +03:00
yuyi 5664cbd3d0
enum: check enum name and modify related files 2020-04-23 05:16:10 +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
joe-conigliaro de182d5809
parser: use single scope for fn args/body 2020-04-22 21:15:38 +10:00
joe-conigliaro 80a4fbf0be
parser: anon fn arg scope fix 2020-04-22 21:11:58 +10:00
joe-conigliaro 3ca4f5fada
checker/parser: anon fn call & return type fix 2020-04-22 18:41:57 +10:00
Kris Cherven 5c3742fbd2
parser: check var names in for loops 2020-04-22 03:48:51 +02:00
Kris Cherven 155891a4e0
parser: add unused variable warning 2020-04-22 01:52:56 +02:00
joe-conigliaro abf5942433
parser/cgen: anon fn var & calling (#4534) 2020-04-21 13:23:36 +10:00
Alexander Medvednikov ee2e83fef0 go back to `mut`. decisions, decisions... 2020-04-21 05:11:50 +02:00
Alexander Medvednikov 1bf094fbca parser: mut in receivers 2020-04-21 05:07:49 +02:00
Ruofan XU cdb1b0344c
checker: improve type check for arithmetic assignment op and fix error pos 2020-04-20 20:56:05 +02:00
yuyi 717e26b45e
checker: more infix checks 2020-04-20 14:49:26 +02:00
Alexander Medvednikov e006da7259 parser: fix a bad comment 2020-04-20 08:44:14 +02:00
Alexander Medvednikov ee2f1652b5 fmt: add EOL 2020-04-20 08:30:42 +02:00
Alexander Medvednikov c1fc768c1b fmt: run on cmd/v; cgen: fix anonymous functions 2020-04-20 07:04:31 +02:00
Kris Cherven 95ae915c0c
checker/parser: fix outdated error messages 2020-04-19 20:46:48 +02:00
Enzo Baldisserri 57c142b993
checker: disallow pub in main 2020-04-19 00:07:57 +02:00
yuyi 5374899f29
parser: fix interpolation error 2020-04-18 00:22:03 +02:00
Enzo Baldisserri f2be3d7ffb
checker: check that right `is` type exists 2020-04-18 00:19:33 +02:00
Tim Basel 73073cd954
parser: anonymous functions (part 1) 2020-04-17 21:59:19 +02:00
yuyi 67cd90de6e
parser: fix number parse error 2020-04-17 20:31:32 +02:00
Alexander Medvednikov c4b7d7cab3 match: shadow variable instead of `it` 2020-04-17 19:24:10 +02:00
Alexander Medvednikov 59baef89a0 parser: assign.v, containers.v, for.v, if.v 2020-04-17 18:16:55 +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
Alexander Medvednikov 06c1b9e95e table/checker: verify private functions/methods 2020-04-17 17:16:14 +02:00
Daniel Däschle af30bf939e
checker: fix return underlining 2020-04-17 16:16:56 +02:00
Daniel Däschle 402e55d115
ast: expr.Position; struct field refactoring 2020-04-17 02:38:39 +02:00
Alexander Medvednikov 714ff50322 fmt: use the new receiver syntax 2020-04-16 15:42:40 +02:00
Alexander Medvednikov 4b5acfd960 parser: (var x X) receiver syntax 2020-04-16 15:40:21 +02:00
Alexander Medvednikov 8760313ce5 fmt builder.v 2020-04-16 15:35:19 +02:00
Alexander Medvednikov af224b4933 parser/cgen: is keyword 2020-04-16 15:32:14 +02:00
Daniel Däschle 19723c927b
checker: move more checks from parser 2020-04-16 12:17:15 +02:00
Delyan Angelov 8a1248b2e7 builder: restore module import cycle detection/topological reorder 2020-04-16 12:29:36 +03:00
Daniel Däschle 04db2d02b8
checker: move struct name check from parser to checker 2020-04-16 11:01:18 +02:00
Daniel Däschle a680db44ed
parser: change `for` error message 2020-04-16 06:01:14 +02:00
yuyi b15780ae51
parser: better const error 2020-04-16 06:00:05 +02:00
Abdullah Atta 6a186e8f11
jsgen: implement js backend 2020-04-15 23:16:49 +02:00
Daniel Däschle 27b6f30305
checker: move capital var check from parser to checker 2020-04-15 19:09:51 +02:00
Daniel Däschle 93b942de46
parser: fix a match error 2020-04-15 16:23:03 +02:00
Alexander Medvednikov da28bc7026 Revert "fmt: `(var f Foo)`"
This reverts commit 4b110756e0.
2020-04-15 04:15:42 +02:00
Alexander Medvednikov 4b110756e0 fmt: `(var f Foo)` 2020-04-15 03:56:16 +02:00
Alexander Medvednikov f34352faf9 fmt: use var instead of mut 2020-04-15 01:55:51 +02:00
Alexander Medvednikov efaec8be8e token/parser: var keyword 2020-04-15 01:45:27 +02:00
Daniel Däschle 4068cbc6eb
parser: fix var name check pos 2020-04-14 21:27:17 +02:00
Alexander Medvednikov 14e1b963f2 parser: do not allow variable names with capital letters 2020-04-14 20:40:00 +02:00
Enzo Baldisserri 86402204a7
checker: fail if else isn't the last branch of match 2020-04-14 20:31:51 +02:00
Alexander Medvednikov 233ae3f772 fmt: use `import module` syntax 2020-04-14 19:32:23 +02:00
Alexander Medvednikov 2251634743 parser: hide import deprecation warning for now 2020-04-14 18:36:29 +02:00
Alexander Medvednikov f91d527154 deprecate `import module` 2020-04-14 18:27:30 +02:00
Alexander Medvednikov ec10831318 parser: `[]int{cap:cap, len:len}` syntax; minor fixes 2020-04-14 18:10:16 +02:00
joe-conigliaro b33a9fc9e7
parser: fix left shift precedence 2020-04-15 01:41:14 +10:00
Delyan Angelov 2b3204603a parser: add an $if tinyc{} wrapper for the tcc_stack_bug variable 2020-04-14 18:02:55 +03:00
Delyan Angelov 2df4998acc parser: fix v selfcompilation with tcc (tcc bug workaround) 2020-04-14 11:06:19 +03:00
Daniel Däschle 12e48c6fe2
checker: check match for exhaustion 2020-04-14 01:03:31 +02:00
Alexander Medvednikov 24958df565 parser: do not allow duplicate fns; cgen: move fn code to fn.v 2020-04-13 19:59:57 +02:00
Daniel Däschle a6100be8df
parser: fix position of array init
* parser: fix position of array init
* fix checker_error_test.v tests
2020-04-13 19:08:02 +03:00
Alexander Medvednikov 2bd22aa4a4 parser: type Foo = Bar 2020-04-13 15:06:02 +02:00
Alexander Medvednikov 0db0c642c3 vfmt: add missing imports automatically 2020-04-12 17:45:04 +02:00
Daniel Däschle 4449468ca4
parser: correct error position on field and method errors 2020-04-12 15:19:07 +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
yuyi 0ced7116b6
string: add is_upper/is_lower and fix parser.match_expr error
* string: add is_upper/is_lower and fix parser.match_expr error

* to_capital => capitalize, to_title => title

* is_titled => is_title, is_capitalized => is_capital
2020-04-12 13:09:05 +03:00
Alexander Medvednikov 449d839684 checker: make sure functions return 2020-04-11 21:50:14 +02:00
Alexander Medvednikov d0ac69d12e parser: fix sizeof(&Foo) 2020-04-11 18:38:25 +02:00
yuyi ea960b2ce2
parser: fix inter literal format error 2020-04-11 17:25:39 +02:00
yuyi c1aba95d7d
parser: refactor script & repl handling 2020-04-11 15:06:26 +03:00
Daniel Däschle be16c5b21d
parser: better error on short init struct 2020-04-11 14:56:55 +03:00
Alexander Medvednikov 053de0b8e3 checker: check variable mutability 2020-04-11 04:09:41 +02:00
Alexander Medvednikov 9422cd1009 parser: handle mut & receivers; fix checker_error_test 2020-04-11 02:24:00 +02:00