backport copy elision changes
This commit contains everything from the copy-elision-2 branch that does not have to do with copy elision directly, but is generally useful for master branch. * All const values know their parents, when applicable, not just structs and unions. * Null pointers in const values are represented explicitly, rather than as a HardCodedAddr value of 0. * Rename "maybe" to "optional" in various code locations. * Separate DeclVarSrc and DeclVarGen * Separate PtrCastSrc and PtrCastGen * Separate CmpxchgSrc and CmpxchgGen * Represent optional error set as an integer, using the 0 value. In a const value, it uses nullptr. * Introduce type_has_one_possible_value and use it where applicable. * Fix debug builds not setting memory to 0xaa when storing undefined. * Separate the type of a variable from the const value of a variable. * Use copy_const_val where appropriate. * Rearrange structs to pack data more efficiently. * Move test/cases/* to test/behavior/* * Use `std.debug.assertOrPanic` in behavior tests instead of `std.debug.assert`. * Fix outdated slice syntax in docs.
This commit is contained in:
@@ -3220,7 +3220,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
|
||||
\\ return 2;
|
||||
\\}
|
||||
,
|
||||
".tmp_source.zig:2:15: error: unable to infer expression type",
|
||||
".tmp_source.zig:2:15: error: values of type 'comptime_int' must be comptime known",
|
||||
);
|
||||
|
||||
cases.add(
|
||||
@@ -3566,7 +3566,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
|
||||
\\
|
||||
\\export fn entry() usize { return @sizeOf(@typeOf(a)); }
|
||||
,
|
||||
".tmp_source.zig:2:11: error: expected type, found 'i32'",
|
||||
".tmp_source.zig:2:11: error: expected type 'type', found 'i32'",
|
||||
);
|
||||
|
||||
cases.add(
|
||||
|
||||
Reference in New Issue
Block a user