-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Closed as duplicate of#21165
Closed as duplicate of#21165
Copy link
Labels
bugObserved behavior contradicts documented or intended behaviorObserved behavior contradicts documented or intended behaviorincremental compilationProblem occurs only when reusing compiler state.Problem occurs only when reusing compiler state.
Description
Zig Version
0.16.0-dev.1246+4b593a6c2
Steps to Reproduce and Observed Behavior
Wrong code:
const std = @import("std");
pub fn main() void { //no error set declared here!
try std.testing.expect(2 + 2 == 5);
}zig build --watch -fincremental correctly points out the error:
src\main.zig:4:5: error: expected type 'void', found '@typeInfo(@typeInfo(@TypeOf(testing.expect)).@"fn".return_type.?).error_union.error_set'
try std.testing.expect(2 + 2 == 5);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src\main.zig:3:15: note: function cannot return an error
pub fn main() void {
^~~~
Fix the code:
const std = @import("std");
pub fn main() !void { //now correct
try std.testing.expect(2 + 2 == 5);
}zig build --watch -fincremental incorrectly throws an error despite the source being valid:
error: Found return instr that returns non-void in Function of void return type!
ret i16 %1, !dbg !50393
voidFound return instr that returns non-void in Function of void return type!
ret i16 0, !dbg !50393
voidLLVM ERROR: Broken module found, compilation aborted!
error: process exited with error code 9
Expected Behavior
Incremental compilation should lead to an equivalent result as running zig build again. In this case that means building successfully.
Related: #25874
Metadata
Metadata
Assignees
Labels
bugObserved behavior contradicts documented or intended behaviorObserved behavior contradicts documented or intended behaviorincremental compilationProblem occurs only when reusing compiler state.Problem occurs only when reusing compiler state.