Merge remote-tracking branch 'origin/master' into stage2-whole-file-astgen

In particular I wanted the change that makes `suspend;` illegal in the
parser.
This commit is contained in:
Andrew Kelley
2021-04-24 10:44:41 -07:00
73 changed files with 1160 additions and 468 deletions

View File

@@ -1349,15 +1349,6 @@ pub fn boolMask(comptime MaskInt: type, value: bool) callconv(.Inline) MaskInt {
return @bitCast(i1, @as(u1, @boolToInt(value)));
}
// At comptime, -% is disallowed on unsigned values.
// So we need to jump through some hoops in that case.
// This is a workaround for #7951
if (@typeInfo(@TypeOf(.{value})).Struct.fields[0].is_comptime) {
// Since it's comptime, we don't need this to generate nice code.
// We can just do a branch here.
return if (value) ~@as(MaskInt, 0) else 0;
}
return -%@intCast(MaskInt, @boolToInt(value));
}