Commit Graph

2966 Commits

Author SHA1 Message Date
Andrew Kelley
31aefa6a21 fix structs that contain types which require comptime
Now, if a struct has any fields which require comptime,
such as `type`, then the struct is marked as requiring
comptime as well. Same goes for unions.

This means that a function will implicitly be called
at comptime if the return type is a struct which contains
a field of type `type`.

closes #586
2018-06-07 18:07:30 -04:00
Andrew Kelley
b11c5d8f82
fix std.os.windows.PathFileExists specified in the wrong DLL (#1066)
closes #1054
2018-06-06 15:36:47 -04:00
isaachier
4fc601895b Fix const-ness of buffer in replaceContents method (#1065) 2018-06-06 14:09:47 -04:00
Marc Tiehuis
e7f141b376 Add json.TokenStream (#1062)
This hides some of the low-level parsing details from the
StreamingParser. These don't need to be known when parsing a complete
slice at once (which is we can usually do).

Also, remove `Json` from Parser names. The namespace `json` is sufficient.
2018-06-06 11:24:36 -04:00
Braedon
f389e53735 Add newline to zig fmt error (#1064) 2018-06-06 10:45:19 -04:00
Marc Tiehuis
212449bc23 Fix Log2Int type construction
The following case for example, would previously fail:

    const a = u24(1) << Log2Int(u24)(22);
2018-06-06 22:41:55 +12:00
Andrew Kelley
d3693dca73 Pointer Reform: update @typeInfo
* add assertion for trying to do @typeInfo on global error set
 * remove TypeInfo.Slice
 * add TypeInfo.Pointer.Size with possible values
   - One
   - Many
   - Slice

See #770
2018-06-06 00:39:39 -04:00
Andrew Kelley
76c8efd56c add test for not allowing implicit cast from T to [*]const T
See #770
2018-06-05 23:54:14 -04:00
Andrew Kelley
bd13e757e7 disable deref syntax for unknown length pointers
See #770
2018-06-05 23:26:43 -04:00
Andrew Kelley
0ccc186869 disable field access for unknown length pointers
See #770
2018-06-05 23:26:43 -04:00
Andrew Kelley
bbb565a21e README: update support table
macosx does not run on some of these architectures
2018-06-05 21:56:19 -04:00
Andrew Kelley
652f4bdf62 disallow unknown-length pointer to opaque
This also means that translate-c has to detect when a pointer to
opaque is happening, and use `*` instead of `[*]`.

See #1059
2018-06-05 18:03:21 -04:00
Andrew Kelley
7a09482536 fix crash when evaluating return type has compile error
closes #1058
2018-06-05 10:48:53 -04:00
Andrew Kelley
677eaf29b1
Merge pull request #1057 from ziglang/comptime-int
Rename integer literal type and float literal type
2018-06-05 10:16:51 -04:00
Jimmi HC
a8146ade2a Renamed UndefinedLiteral to Undefined 2018-06-05 11:54:11 +02:00
Jimmi HC
236c680f6b Removed NullLiteral to Null 2018-06-05 11:30:01 +02:00
Jimmi HC
02cb220faf Renamed "(int/float literal)" to "comptime_int/float" 2018-06-05 11:14:43 +02:00
Andrew Kelley
e53b683bd3
Pointer Reform: proper slicing and indexing (#1053)
* enable slicing for single-item ptr to arrays
 * disable slicing for other single-item pointers
 * enable indexing for single-item ptr to arrays
 * disable indexing for other single-item pointers

see #770
closes #386
2018-06-04 22:11:14 -04:00
Andrew Kelley
32e0dfd4f0 never call malloc with size 0
instead we return nullptr. this makes the behavior consistent
across all platforms.

closes #1044
closes #1045
2018-06-04 14:09:31 -04:00
Andrew Kelley
d21a1922eb support zig fmt: off and zig fmt: on between top level decls
closes #1030
closes #1033
2018-06-04 12:15:02 -04:00
Andrew Kelley
8dfa66fee3 Merge branch 'tgschultz-zig-custom-format' 2018-06-04 11:07:47 -04:00
Andrew Kelley
11e7e03139 Merge branch 'zig-custom-format' of https://github.com/tgschultz/zig into tgschultz-zig-custom-format
I removed the code that checks for type signature and type.
A function named `format` is enough for zig to give it a try.
2018-06-04 11:06:55 -04:00
Andrew Kelley
96164ce613 disallow single-item pointer indexing
add pointer arithmetic for unknown length pointer
2018-06-04 01:39:57 -04:00
Marc Tiehuis
4c273126df Add context to zig_unreachable calls (#1039)
This greatly aids debugging on platforms with no stack-traces.
2018-06-03 02:30:43 -04:00
Andrew Kelley
b85b68a7fd better compile error for error sets behind nullable 2018-06-02 15:20:51 -04:00
Marc Tiehuis
e514454c0e Make zig fmt exit with error on any parse errors
This is required for proper detection in editor plugins. Other files may
have been formatted correctly, this only indicates that some failed.
2018-06-02 20:49:35 +12:00
Andrew Kelley
f06bce5dda introduce [*] for unknown length pointers
See #770

Currently it does not have any different behavior than `*`
but it is now recommended to use `[*]` for unknown length
pointers to be future-proof.

Instead of [ * ] being separate tokens as the proposal
suggested, this commit implements `[*]` as a single token.
2018-06-02 04:04:23 -04:00
Andrew Kelley
7b386ea242 fix build file template
See #1035
2018-06-01 21:51:54 -04:00
Andrew Kelley
a3d7a807b7 appveyor: remove llvm 5.0.1 from cache 2018-06-01 12:22:53 -04:00
Andrew Kelley
081072d3b6 docs: add missing builtin to langref syntax coloring 2018-06-01 12:22:53 -04:00
Arthur Elliott
08693411d2 fix typo (#1034) 2018-06-01 12:23:07 -04:00
Andrew Kelley
3918e7699d
Merge pull request #1032 from ziglang/pointer-reform
use * for pointer type instead of &
2018-06-01 11:49:25 -04:00
Andrew Kelley
e29d12d821 fix incorrect address-of syntax on windows 2018-06-01 01:29:34 -04:00
Andrew Kelley
5f38a01ede run zig fmt 2018-06-01 01:22:35 -04:00
Andrew Kelley
4d13ab07de std.zig: update to new pointer syntax 2018-06-01 01:19:26 -04:00
Andrew Kelley
2a7c8c5b10 add test case for pointer to type and slice of type
closes #588
2018-06-01 00:18:10 -04:00
Andrew Kelley
019217d7a2 fix regressions 2018-06-01 00:17:31 -04:00
Andrew Kelley
2f614c42fe ir: rip out special logic for using addr-of instruction for types
See #588
2018-05-31 18:23:39 -04:00
Andrew Kelley
fcbb7426fa use * for pointer type instead of &
See #770

To help automatically translate code, see the
zig-fmt-pointer-reform-2 branch.

This will convert all & into *. Due to the syntax
ambiguity (which is why we are making this change),
even address-of & will turn into *, so you'll have
to manually fix thes instances. You will be guaranteed
to get compile errors for them - expected 'type', found 'foo'
2018-05-31 17:28:07 -04:00
Andrew Kelley
717ac85a5a zig fmt: add --color option to CLI help text 2018-05-30 18:37:12 -04:00
Andrew Kelley
a05acaf9fd Add --color CLI option to zig fmt
It doesn't actually do terminal color yet because we need to add
cross platform terminal color abstractions. But it toggles between
the single line error reporting and the multiline error reporting.

See #1026
2018-05-30 18:26:09 -04:00
Andrew Kelley
d8699ae57e zig fmt: don't compute a sha-256 for no reason
I forgot to delete this code before pushing 2c96f19fd3
2018-05-30 16:45:32 -04:00
Andrew Kelley
ea58f4a5a9 run zig fmt on the codebase 2018-05-30 16:09:11 -04:00
Andrew Kelley
b082cd4580 zig fmt: field access does not cause spaces for slicing
See #1003
2018-05-30 16:08:40 -04:00
Andrew Kelley
84b1842026 zig fmt: space after fn in fn prototypes
See #1003
2018-05-30 15:50:01 -04:00
Andrew Kelley
93b51b0e40 spaces around slice operator if operands are infix
See #1003
2018-05-30 15:33:58 -04:00
Andrew Kelley
2c96f19fd3 std.zig.render returns bool of whether anything changed
zig fmt only renames files and prints to stdout for files which changed
2018-05-30 14:58:27 -04:00
tgschultz
940a854448 Fix MacOS CI Timer test failing...? 2018-05-30 13:38:41 -05:00
tgschultz
fb001f5e90 Fixed character handling 2018-05-30 12:18:24 -05:00
tgschultz
8938c16f38 Formatting 2018-05-30 10:41:48 -05:00