302 Commits

Author SHA1 Message Date
Andrew Kelley
ab8b14aa9f add test for compile error returning from defer expression
closes #218
2017-01-16 17:18:25 -05:00
Andrew Kelley
867686af42 equality comparison of void types is known at compile time
closes #56
2017-01-16 16:07:03 -05:00
Andrew Kelley
fdbc2d8da1 implement error when assigning to field of const struct
closes #48
2017-01-16 15:24:03 -05:00
Andrew Kelley
c715309bc5 Merge branch 'master' into ir-merge 2017-01-16 14:23:32 -05:00
Andrew Kelley
0b6cf0aa63 fix handling of invalid enumeration 2017-01-15 22:34:20 -05:00
Andrew Kelley
18f248b94d IR: fix array concatenation
all tests passing
2017-01-12 15:10:58 -05:00
Andrew Kelley
d784705353 IR: implement macro for function aliasing function pointer 2017-01-12 03:15:06 -05:00
Andrew Kelley
76b1cbc2ea pass some parseh tests 2017-01-11 22:25:17 -05:00
Andrew Kelley
25a670d74e pass more tests 2017-01-11 19:09:17 -05:00
Andrew Kelley
de9ecaf964 fix some tests 2017-01-11 18:23:19 -05:00
Andrew Kelley
fc53708dc0 better error message for unable to eval const expr 2017-01-11 18:06:21 -05:00
Andrew Kelley
7493af5953 fix a few tests 2017-01-11 00:38:24 -05:00
Andrew Kelley
fde276a3bf IR: implement error for missing or extra switch prongs 2017-01-10 16:28:49 -05:00
Andrew Kelley
76d0e49e61 fix unable to eval const expr test case 2017-01-08 10:54:05 -05:00
Andrew Kelley
e4bc8d22c2 fix some tests 2017-01-08 10:41:36 -05:00
Andrew Kelley
3ef447fa20 don't try to eval extern functions at compile time 2017-01-08 10:30:05 -05:00
Andrew Kelley
6b36aef306 pass conflicting variable name test 2017-01-07 14:27:38 -05:00
Andrew Kelley
cf62f02ba9 don't mark call instruction as generated
pass cast unreachable test
2017-01-06 02:04:27 -05:00
Andrew Kelley
23feafdef0 pass more tests
by removing assertion, fixing error column,
and updating expected message
2017-01-05 19:25:36 -05:00
Andrew Kelley
28403eaad0 pass more tests by updating expected error messages 2017-01-05 19:20:31 -05:00
Andrew Kelley
837cc467f7 pass array access compile error tests 2017-01-05 19:05:48 -05:00
Andrew Kelley
e621ad014e pass cannot assign to constant test 2017-01-05 18:50:36 -05:00
Andrew Kelley
ed21be011a pass unreachable variable test 2017-01-05 04:03:25 -05:00
Andrew Kelley
c32a060d4f IR: add unreachable code compiler error 2017-01-04 23:21:33 -05:00
Andrew Kelley
e4271f4fb2 more test coverage, change 'got' to 'found' in errors 2016-10-28 12:15:37 -04:00
Andrew Kelley
e3857a361c more test coverage 2016-10-28 12:04:46 -04:00
Andrew Kelley
b581da41f8 remove compiler directives
* add `setFnTest`, `setFnVisible`, `setFnStaticEval`,
   `setFnNoInline` builtin functions to replace previous
   directive functionality
 * add `coldcc` and `nakedcc` as keywords which can be used as part
   of a function prototype.
 * `setDebugSafety` builtin can be used to set debug safety features
   at a per block scope level.
 * closes #169
2016-09-28 02:33:32 -04:00
Andrew Kelley
183976b242 add this keyword refers to thing in immediate scope
See #169
2016-09-26 23:47:30 -04:00
Andrew Kelley
7ce7e2c9d1 emit error for extern function
with byvalue return value or parameter.

currently we don't codegen byvalue parameters or return values
correctly for C compatibilty functions so instead of generating
incorrect code, we emit a compile error.

eventually we'll support this feature and remove the compile error.

See #180
2016-09-26 20:01:42 -04:00
Andrew Kelley
7f4d4bdb3f fix crash when doing binary not on integer literal
closes #201
2016-09-26 19:42:51 -04:00
Andrew Kelley
4b68224c60 add error message for method call on non method
closes #199
2016-09-26 01:01:02 -04:00
Andrew Kelley
9ec6a78f12 fix compiler crash for misspelled type with pointer only reference
closes #196
2016-09-23 11:53:05 -04:00
Andrew Kelley
c64f6f9503 fix compile crash when leaving out for loop parameter 2016-09-22 10:40:05 -04:00
Andrew Kelley
e397ea43c0 tests: correct test name 2016-09-19 20:19:02 -04:00
Andrew Kelley
3239b3cb69 use size_t for indexes
protect against incorrect copies in debug mode
2016-09-19 11:54:01 -04:00
Andrew Kelley
b738cbdc76 fix compiler crash involving slice with const slice child
also fix compiler crash for multiple errors in main fn prototype

closes #191
2016-09-15 14:09:08 -04:00
Andrew Kelley
3f05fdc8e8 tests: use a more robust path to self_hosted.zig
closes #184
2016-09-14 03:10:56 -04:00
Andrew Kelley
f1761632da darwin compat fixups
- delete commented out code
 - delete redundant check for missing
   mmacosx-version-min/maxdir
 - add TODO comment in std library
 - rename 'os' to 'self' in io.zig
 - `openSelfExe` aborts on darwin instead of compile error
 - only allow warnings on the one parseh test that has
   `#include <stdint.h>`.
2016-09-14 02:47:16 -04:00
alter
cf9b21c09f MacOSX compatibility
- Implemented some syscall for MacOSX
- tested on : El Capitan 10.11 x86_64
- make self hosted test run on macosx
- modified run_test so it does not fail when parseh throws
  warnings (most of them are related to buildin types from
  gcc that arent defined in header files and unions)
- making -mmacosx-version-min and -mios-version-min works like
  gcc (command line paramers have precedence over enviroment variables)
2016-09-14 02:46:02 -04:00
Andrew Kelley
06f2f4d64b change unreachable{} to @unreachable()
instead of a container init expression, it's a builtin
function call.
2016-09-13 16:46:27 -04:00
Andrew Kelley
56f8325799 add compile error for assigning through const
pointer and slice

closes #188
2016-09-11 14:12:24 -04:00
Andrew Kelley
28811234bb fix compile error message for wrong arg count on method 2016-09-10 20:53:57 -04:00
Andrew Kelley
651dc31247 implement null as a literal type 2016-08-29 22:14:09 -07:00
Andrew Kelley
0fbb9e09ea fix crash when calling method on slice 2016-08-16 23:24:33 -07:00
Andrew Kelley
a2ac06dcd5 std: replace print_u64/i64 with printInt 2016-08-16 22:59:32 -07:00
Andrew Kelley
37d167f6e0 std: conform to style guidelines 2016-08-16 22:42:50 -07:00
Andrew Kelley
0d5ecc4312 ability to have a return type of 'type' 2016-08-07 20:08:37 -07:00
Andrew Kelley
d0b11af2bd new multiline string syntax
This patch also moves a bunch of the parser code into the tokenizer.

Closes #162.
2016-08-04 22:52:38 -07:00
Andrew Kelley
8552d7fd19 explicit wrapping integer operations
instead of wrapping integer types

closes #159
2016-07-27 23:08:27 -07:00
Andrew Kelley
06c4b35eb1 std: improve rand implementation and API 2016-07-26 23:51:58 -07:00