Commit 5626bb45d2

Andrew Kelley <andrew@ziglang.org>
2022-05-18 23:46:04
Sema: fix comptime `@floatCast` downcast
1 parent 58943fc
Changed files (2)
src
test
behavior
src/Sema.zig
@@ -7236,8 +7236,8 @@ fn zirFloatCast(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!A
         ),
     }
 
-    if (try sema.isComptimeKnown(block, operand_src, operand)) {
-        return sema.coerce(block, dest_ty, operand, operand_src);
+    if (try sema.resolveMaybeUndefVal(block, operand_src, operand)) |operand_val| {
+        return sema.addConstant(dest_ty, try operand_val.floatCast(sema.arena, dest_ty, target));
     }
     if (dest_is_comptime_float) {
         return sema.fail(block, src, "unable to cast runtime value to 'comptime_float'", .{});
test/behavior/cast.zig
@@ -630,7 +630,9 @@ test "vector casts" {
 }
 
 test "@floatCast cast down" {
-    if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
+    if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
+    if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
+    if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
 
     {
         var double: f64 = 0.001534;