Commit Graph

323 Commits (dd5b25a9f2aebfdd54d8bd3128cd5a49a445e92f)

Author SHA1 Message Date
Daniel Däschle 3a146a6dbe
checker: fix error pos on default value (#6338) 2020-09-09 15:34:41 +02:00
Alexander Medvednikov 925f1781b3 checker: default field fixes 2020-09-09 14:05:56 +02:00
Alexander Medvednikov e018509ba6 checker: test for unnecessary default struct field values 2020-09-09 13:59:52 +02:00
Swastik Baranwal ea2b2ebc07
checker: modify error messages for ptrs (#6325) 2020-09-09 10:07:58 +02:00
Nick Treleaven 49c322f120
checker: simplify argument qualifier errors (#6321) 2020-09-08 19:34:17 +02:00
Uwe Krüger 2cb711ee15
checker/channels: check `mut`/`&` state of transmitted objects (#6315) 2020-09-06 21:24:41 +02:00
Xavier B 8ef55bd8c9
checker: add checks for map key/value types (#6283) 2020-09-04 23:59:54 +02:00
spaceface777 35cbca96e1
checker: implement `[required]` struct field attribute (#6276) 2020-08-31 23:15:40 +02:00
spaceface777 bd304f1141
checker: check number of fields in short struct inits (#6280) 2020-08-31 22:17:59 +02:00
Nick Treleaven 7dbae14e19
checker: error on `mut name =` (#6247) 2020-08-28 20:07:32 +03:00
Swastik Baranwal 39bf02ea68
checker: add error for arr1 <,>,>=,<= arr2 (#6243) 2020-08-28 11:08:07 +03:00
Delyan Angelov f73506be49 tests: fix some byte->rune errors 2020-08-27 12:08:05 +03:00
Delyan Angelov 99dd72efea tests: add another test for 47f59d3 2020-08-26 11:46:29 +03:00
Delyan Angelov 47f59d3fb6 v.scanner: fix error line numbers when comments end with CRLF 2020-08-26 11:39:32 +03:00
Delyan Angelov 86dfd3902f tests: use .vv files directly in compiler_errors_test.v 2020-08-25 18:14:06 +03:00
Nick Treleaven acc5c95f0d
checker: error with `*expr` if not a pointer (#6211) 2020-08-24 17:19:17 +02:00
Swastik Baranwal b2e79dbebd
parser: add an error for `import mod.sub as mod` and `import mod as mod` (#6194) 2020-08-23 02:12:25 +02:00
Daniel Däschle fcc61a981d
all: TypeSymbol.source_name (#6187) 2020-08-22 12:29:15 +02:00
Delyan Angelov 06967d9297 sort: require a mutable receiver 2020-08-21 21:19:37 +03:00
Nick Treleaven 217f04e311
checker: disallow casting to bool, use `some_int != 0` instead (#6138) 2020-08-19 14:37:55 +02:00
Swastik Baranwal 46b4e2a0cd
checker: check`match` types (#6149) 2020-08-17 20:19:21 +02:00
Uwe Krüger 9a5f040f72
all: handle `<-` arrow token for channel operations (#6152) 2020-08-17 20:12:00 +02:00
Nick Treleaven 6ba6a22a77
checker: prevent from casting non-struct to struct (#6143) 2020-08-17 11:19:44 +02:00
Alexander Medvednikov b2059c481a checker: fix an incorrect name test 2020-08-16 19:24:00 +02:00
Alexander Medvednikov f965ddae49 parser: handle several errors in types; cgen: objC includes 2020-08-16 19:16:59 +02:00
Enzo a02593204f
checker: forbid aliasing an alias (#6118) 2020-08-16 04:53:16 +02:00
Daniel Däschle b2fee21ef3
checker: check struct casting (#5864) 2020-08-14 14:57:08 +02:00
Alexander Medvednikov fc1f41fc84 checker: fix a string error test 2020-08-13 23:33:18 +02:00
Delyan Angelov da7adb5b1b ci: fix failing tests for compiler_errors_test.v 2020-08-13 13:16:41 +03:00
Swastik Baranwal 9fdb1701e0
checker: add a check for str[i] = `a` (#6107) 2020-08-11 17:41:54 +02:00
Alexander Medvednikov c5aa2bfa51 tests: fix a match test 2020-08-11 16:26:52 +02:00
Alexander Medvednikov 2dd82748e0 checker: simplify << error message 2020-08-11 01:01:33 +02:00
Delyan Angelov 36eae1c175
builtin: x.vstring() instead of string(x) (#6102) 2020-08-10 18:05:26 +02:00
Nick Treleaven 6cc8815931
parser: support [unsafe] instead of [unsafe_fn] (#6066) 2020-08-08 16:24:05 +02:00
Delyan Angelov 91c9c0c917 checker: fix unknown_method_suggest_name.out test result too 2020-07-30 19:37:36 +03:00
Delyan Angelov f300f787f3 checker: add suggestions for method mispellings and unknown types 2020-07-30 18:48:16 +03:00
Delyan Angelov 9c9533dad9
checker: add error for `fn f() Struct { return &Struct{} }` (#6019) 2020-07-29 21:40:43 +02:00
Swastik Baranwal 4500e7131e
checker: add a checker error for fn calls on left side of an assignment (#5993) 2020-07-29 18:33:00 +03:00
Delyan Angelov 9c028bb299 checker: fix passing enum to a method expecting string 2020-07-28 13:50:40 +03:00
Delyan Angelov 9d056168ae ci: fix failing tests 2020-07-26 10:48:24 +03:00
Alexander Medvednikov 6796b93abd tests: fix compiler_errors_test.v 2020-07-25 22:20:10 +02:00
Alexander Medvednikov 7c86156be5 checker: fix unsafe tests 2020-07-25 18:58:23 +02:00
Nick Treleaven ee349691f9
v/checker: Warn about pointer indexing outside unsafe {} (#5918) 2020-07-22 20:28:53 +03:00
spaceface777 f4251dded0
checker: suggest using `:=` when assigning to undefined variable (#5911) 2020-07-21 19:49:53 +03:00
Nick Treleaven 15ca64d81d
tests: rename pointer_arithmetic_should_be_checked.vv -> unsafe_required.vv (#5897) 2020-07-20 23:04:22 +03:00
Nick Treleaven a74cbf55c7
checker: warn if C.m* or C.s* functions are called outside unsafe blocks (#5869) 2020-07-20 20:06:41 +03:00
Nick Treleaven e6fc8eb015
checker: check that array slicing indexes are valid (#5892) 2020-07-20 19:52:03 +03:00
Delyan Angelov fb4c3ff31a tests: split unsafe.v to vlib/v/tests/unsafe_test.v and a checker output .vv&.out test 2020-07-20 16:53:27 +03:00
Ryan Willis 1114fd28d0
all: import individual symbols feature (#5872) 2020-07-18 21:34:38 +02:00
spaceface777 3583302ad4
parser: force `...` rather than `..` in matches for inclusive ranges (#5852) 2020-07-17 11:30:21 +03:00
spaceface777 b900577dae
compiler: handle ranges as `match` conditions (#5847) 2020-07-16 16:41:18 +03:00
Enzo 2ee8f93d60
parser: duplicate method declaration on interface (#5825) 2020-07-15 10:23:21 +02:00
Alexander Medvednikov 06f5279f77 checker: fix multi_const_field_name_duplicate test 2020-07-14 17:44:08 +02:00
Alexander Medvednikov 899c69caf1 checker: fix dup const test 2020-07-14 17:24:08 +02:00
Uwe Krüger aa364ddaca
checker, cgen: checks for shared/lock, first autolock (#5815) 2020-07-13 12:19:28 +02:00
yuyi 9b4c81e85f
checker: check missing return values in functions (#5803) 2020-07-11 16:30:49 +02:00
Delyan Angelov 37d739684c checker: prevent string(byte), suggest byte.str() instead 2020-07-11 17:09:22 +03:00
pancake 7d6ba2d07d
checker: add error when interface i, without a .str() method, have i.str() called (#5788) 2020-07-10 22:47:29 +03:00
Daniel Däschle fb927dab60
checker: check all branches for return (#5763) 2020-07-09 22:38:43 +02:00
Daniel Däschle c5dc1a33b6
all: remove `it` smartcast and replace with original variable name (#5764) 2020-07-09 17:14:14 +02:00
yuyi fc7237be7b
checker: fix cast to sum type (fix #5690) (#5692) 2020-07-06 12:32:59 +02:00
yuyi f41edef4c6
checker: add `1/0x0 1/0b0..` division by zero check (#5694) 2020-07-06 12:32:00 +02:00
yuyi 34a24eaa4e
checker: validate loop var names (#5677) 2020-07-05 15:27:37 +02:00
Delyan Angelov f374e37b61 checker: add details about a non matching functional argument 2020-07-04 22:37:06 +03:00
Delyan Angelov 0637feb382 checker: use a more readable error message for non matching fn args 2020-07-04 21:23:22 +03:00
div72 be04de98bb
checker: check for enum value duplicates/overflow (#5659) 2020-07-04 18:28:01 +03:00
Delyan Angelov 35431d457b checker: add check for strict .str() method signature 2020-07-04 14:14:43 +03:00
Alexander Medvednikov 3d3549d65a Revert "parser: advanced division by zero check (#5629)"
This reverts commit f03688e443.
2020-07-03 22:30:51 +02:00
yuyi f03688e443
parser: advanced division by zero check (#5629) 2020-07-03 11:28:00 +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
Uwe Krüger 8fe70a24a8
checker: forbid non-reference mut arg or receiver of go function 2020-06-26 23:31:38 +02:00
yuyi 7efb3ecb34
checker: check deprecated functions 2020-06-23 16:25:24 +02:00
yuyi e2b5debc6b
checker: check optional type call 2020-06-23 11:39:58 +02:00
yuyi ed393896f5
checker: check printing of optional type 2020-06-23 11:38:30 +02:00
Uwe Krüger 37927235cd
parser: trigger declaration of array element as error 2020-06-20 14:30:03 +02:00
joe-conigliaro ddd83f1fc6
checker: error if variable used before declaration 2020-06-20 12:42:08 +10:00
Uwe Krüger c78cfa43bc
checker: make map literals have a real type 2020-06-19 15:00:27 +02:00
Alexander Medvednikov 5f5228f0f3 test: fix `as` checker test 2020-06-19 11:48:19 +02:00
Alexander Medvednikov 274ecb71fa checker: `as` type test 2020-06-19 11:27:20 +02:00
yuyi 5a6d440f68
checker: check `array_insert` `array_prepend` type mismatch 2020-06-19 10:49:43 +02:00
joe-conigliaro d478b44915
parser/checker/gen: merge AssignExpr & AssignStmt into just AssignStmt 2020-06-16 21:20:16 +10:00
yuyi 2daf915371
parser: `expression evaluated but not used` error 2020-06-16 11:06:53 +02:00
Uwe Krüger f2d9fa3815
cgen: restructure string_inter_literal() 2020-06-16 10:41:51 +02:00
joe-conigliaro 0cd9066f44
parser/cgen: multiple attributes & better errors (closes #5334) 2020-06-15 22:59:09 +10:00
yuyi 2785a5bf65
checker: check return_duplicate_with_none (closes #5363) 2020-06-15 15:10:45 +10:00
Ruofan XU 90279a7108
checker: use ++ / -- instead of += 1 / -= 1 2020-06-14 19:05:05 +02:00
Swastik Baranwal a3a91f54a9
checker: handle `!is` in error messages 2020-06-14 19:03:29 +02:00
yuyi 90f07eb64a
parser: fix fn attributes empty error 2020-06-12 18:27:05 +02:00
Swastik Baranwal 56ae3797dd
checker: add checks and test for ~ operator 2020-06-12 12:05:20 +02:00
yuyi a66753871d
checker: check array.map/filter fn or anon_fn 2020-06-11 13:14:07 +02:00
Enzo Baldisserri 11b7b97311
parser: fail when assigning to _ with := 2020-06-08 00:47:04 +02:00
yuyi c9b395f9cf
checker: fix for_in_index type error 2020-06-05 09:44:25 +02:00
yuyi dd7ebf7fac
parser: check function argument mutable syntax 2020-06-04 15:20:43 +02:00
yuyi 8a24d7d723
checker: optional return fix 2020-06-04 10:40:32 +02: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
Alexander Medvednikov 00978da2c4 checker: fix mut int test 2020-06-03 10:45:19 +02:00
Alexander Medvednikov 888a43a684 checker: fix mut int test 2020-06-03 10:40:41 +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
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
Uwe Krüger faf3248e98
checker: check types for bitwise right shift 2020-05-31 12:58:13 +02:00
yuyi 1e504fb388
parser: check undefined variable of assign_expr 2020-05-29 17:38:40 +02:00
yuyi 28ffe2a6ee
checker: add error for struct fields of type []unknown 2020-05-28 19:38:53 +03:00
yuyi 977eb895e8
checker: check array init's element type 2020-05-28 13:32:12 +02:00
yuyi 84edbd83da
all: fix struct names error 2020-05-27 19:12:34 +03:00
Alexander Medvednikov 670820cc59 parser: do not allow 1 char struct names 2020-05-27 16:00:00 +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
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
Delyan Angelov a0f8005352 checker: support tests/run/ folder, checks many warns/errors/output 2020-05-24 21:13:09 +03:00
yuyi 641fe5c864
checker: fix unresolved variables error on assignments 2020-05-24 20:33:53 +03:00
yuyi 4608898bcd
checker: fix multiple assign immutable error 2020-05-23 17:30:28 +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
Ruofan XU b2b0461218
scanner: fix err pos related to num literal 2020-05-21 18:43:57 +02:00
Ruofan XU aba09a7e4d
scanner: fix err pos related to num literals 2020-05-21 16:20:36 +03:00
Alexander Medvednikov abb15275f5 checker: update a `for in` error test 2020-05-21 06:06:11 +02:00
Don Alfons Nisnoni 10ad5332e8
parser: improve unused imports warning 2020-05-20 20:50:27 +03:00
Swastik Baranwal d697b2848a
checker: more checks for in and !in 2020-05-17 17:03:32 +02:00
yuyi 7f4cf08516
parser: check `(mut f Foo)` syntax 2020-05-17 13:51:18 +02:00
yuyi 02fb393747
test: fix vrepl and cast test errors 2020-05-17 02:13:08 +02:00
Enzo Baldisserri f44a40eee0
checker: check incorrect names 2020-05-16 16:12:23 +02:00
Swastik Baranwal 37cf46d67a
checker: add more checks for modulo 2020-05-16 15:32:46 +02:00
Enzo Baldisserri fd0d833e33
gen: if expressions with multiple statements 2020-05-14 17:15:25 +02:00
yuyi 6d0b791ac8
parser: warning about unused imports 2020-05-14 17:14:24 +02:00
yuyi 70b76a8e31
builder: use verror for not found modules 2020-05-14 10:59:29 +03:00
Delyan Angelov d830620651 compiler: restore support for --enable-globals flag, and add tests. 2020-05-14 08:43:12 +03:00
Enzo Baldisserri 1ca04e6113
checker: prevent interface instantiation 2020-05-13 19:20:15 +02:00
yuyi 2e0b9de31c
parser: error for consts in fns 2020-05-13 18:39:02 +02:00
yuyi b1511ce995
parser: optimize no main file process 2020-05-13 14:02:04 +02:00
yuyi 99b31d8241
parser: unified way to handle struct and enum name check 2020-05-12 13:39:32 +02:00
Kris Cherven 8bc0c31f29
parser: add error for variables, that are evaluated, but not used 2020-05-11 11:13:36 +03:00
Kris Cherven 3a3d00ac72
checker: prevent C error on const mutation 2020-05-11 11:09:58 +03:00
Alexey 71c2b26103
checker: fix checking uninitialized refs 2020-05-10 22:26:47 +02: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
yuyi 85723e3799
checker: check for_in_map using one variable error 2020-05-10 02:28:43 +02:00
yuyi 3eeef6203e
checker: check for map_init key duplicate 2020-05-09 16:55:38 +02:00
yuyi 5f435fa1cc
parser: check enum name and field name errors 2020-05-09 12:43:10 +02:00
Sandro Martini 910a8934cb
checker: fix typo on error message and related test 2020-05-08 21:21:47 +03: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
Delyan Angelov 673acdbd00 tcc: fix selfcompilation with tcc. Temporarily disable crashing interface test 2020-05-07 20:59:45 +03:00
yuyi 78efe72c4c
checker: optimize check string cast error 2020-05-07 12:34:06 +02:00
Enzo Baldisserri 0f8ed84333
checker: verify interface is not used as receiver 2020-05-07 11:14:51 +03:00
Don Alfons Nisnoni e87289f24d
Fix typo on checker 2020-05-06 13:57:40 +03:00