Skip to content

Commit

Permalink
fix sometimes not type checking function parameters
Browse files Browse the repository at this point in the history
closes #774

regression introduced in cfb2c67
  • Loading branch information
andrewrk committed Feb 14, 2018
1 parent 629f134 commit 9fa35ad
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/ir.cpp
Expand Up @@ -6727,8 +6727,8 @@ static ConstCastOnly types_match_const_cast_only(IrAnalyze *ira, TypeTableEntry
result.id = ConstCastResultIdFnReturnType;
result.data.return_type = allocate_nonzero<ConstCastOnly>(1);
*result.data.return_type = child;
return result;
}
return result;
}
if (expected_type->data.fn.fn_type_id.param_count != actual_type->data.fn.fn_type_id.param_count) {
result.id = ConstCastResultIdFnArgCount;
Expand Down
13 changes: 13 additions & 0 deletions test/compile_errors.zig
@@ -1,6 +1,19 @@
const tests = @import("tests.zig");

pub fn addCases(cases: &tests.CompileErrorContext) void {
cases.add("type checking function pointers",
\\fn a(b: fn (&const u8) void) void {
\\ b('a');
\\}
\\fn c(d: u8) void {
\\ @import("std").debug.warn("{c}\n", d);
\\}
\\export fn entry() void {
\\ a(c);
\\}
,
".tmp_source.zig:8:7: error: expected type 'fn(&const u8) void', found 'fn(u8) void'");

cases.add("no else prong on switch on global error set",
\\export fn entry() void {
\\ foo(error.A);
Expand Down

0 comments on commit 9fa35ad

Please sign in to comment.