zig/test/cases
Andrew Kelley f8fe517d12
better string literal caching implementation
We were caching the ConstExprValue of string literals,
which works if you can never modify ConstExprValues.
This premise is broken with `comptime var ...`.

So I implemented an optimization in ConstExprValue
arrays, where it stores a `Buf *` directly rather
than an array of ConstExprValues for the elements,
and then similar to array of undefined, it is
expanded into the canonical form when necessary.
However many operations can happen directly on the
`Buf *`, which is faster.

Furthermore, before a ConstExprValue array is expanded
into canonical form, it removes itself from the string
literal cache. This fixes the issue, because before an
array element is modified it would have to be expanded.

closes #1076
2018-09-20 11:04:31 -04:00
..
bugs better string literal caching implementation 2018-09-20 11:04:31 -04:00
import
namespace_depends_on_compile_var
pub_enum
align.zig fix crash when pointer casting a runtime extern function 2018-09-16 11:23:38 -04:00
alignof.zig
array.zig
asm.zig
atomics.zig
bit_shifting.zig link to #1544 2018-09-17 21:25:37 -04:00
bitcast.zig implementation for bitcasting extern enum type to c_int 2018-09-18 15:00:14 -04:00
bool.zig
byval_arg_var.zig
cancel.zig test/cases/cancel.zig: update suspend to use @handle(); 2018-08-02 17:47:03 +09:00
cast.zig better string literal caching implementation 2018-09-20 11:04:31 -04:00
const_slice_child.zig
coroutine_await_struct.zig test/cases/coroutine_await_struct.zig: update test to reflect that the promise symbol is no in scope with suspend; 2018-08-02 16:59:11 +09:00
coroutines.zig pull request fixups 2018-08-02 14:15:31 -04:00
defer.zig fix generation of error defers for fns inside fns 2018-07-19 18:06:41 -04:00
enum_with_members.zig
enum.zig
error.zig
eval.zig fix @bytesToSlice on a packed struct 2018-09-18 09:49:57 -04:00
field_parent_ptr.zig
fn_in_struct_in_comptime.zig
fn.zig allow extern structs to have stdcallcc function pointers 2018-09-17 11:22:30 -04:00
for.zig fix crash when var in inline loop has different types 2018-08-28 15:24:28 -04:00
generics.zig
if.zig
import.zig
incomplete_struct_param_tld.zig
ir_block_deps.zig
math.zig
merge_error_sets.zig fix linux 2018-08-21 20:31:50 -04:00
misc.zig remove this. add @This(). 2018-09-13 16:34:33 -04:00
new_stack_call.zig
null.zig fix optional pointer to empty struct incorrectly being non-null 2018-09-18 17:51:50 -04:00
optional.zig allow == for comparing optional pointers 2018-07-13 12:34:42 -04:00
pointers.zig
popcount.zig add @popCount intrinsic 2018-07-07 00:25:32 -04:00
ref_var_in_if_after_if_2nd_switch_prong.zig
reflection.zig remove this. add @This(). 2018-09-13 16:34:33 -04:00
sizeof_and_typeof.zig
slice.zig
struct_contains_null_ptr_itself.zig
struct_contains_slice_of_itself.zig
struct.zig fix implicit cast of packed struct field to const ptr 2018-09-18 14:34:30 -04:00
switch_prong_err_enum.zig
switch_prong_implicit_cast.zig
switch.zig
syntax.zig
this.zig remove this. add @This(). 2018-09-13 16:34:33 -04:00
try.zig
type_info.zig remove this. add @This(). 2018-09-13 16:34:33 -04:00
undefined.zig
underscore.zig better support for _ identifier 2018-08-03 02:57:17 -04:00
union.zig fix tagged union with only 1 field tripping assertion 2018-09-13 13:33:11 -04:00
var_args.zig
void.zig fix iterating over a void slice 2018-07-06 17:27:44 -04:00
while.zig
widening.zig