authorgravatar for josh@junon.meJosh Junon <josh@junon.me> 2020-04-04 04:04:00+02:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2020-05-08 14:26:13+03:00
log4a5c58dd354b84af821a6c257cc15489fc827f75
treea5d88559ff1e5d080476c3a39d2b83cb13a0cf94
parentfbf081a3066b4a438e53b58ad2aa564022dfa88d
signaturelock-open Commit is signed but in an unrecognized format.

fix private member checking for non-canonical invocations (fixes #4909)


1 files changed, 9 insertions(+), 0 deletions(-)

src/ir.cpp+9
......@@ -21624,6 +21624,15 @@ static IrInstGen *ir_analyze_container_member_access_inner(IrAnalyze *ira,
2162421624 if (tld->resolution == TldResolutionResolving)
2162521625 return ir_error_dependency_loop(ira, source_instr);
2162621626
21627 if (tld->visib_mod == VisibModPrivate &&
21628 tld->import != get_scope_import(source_instr->scope))
21629 {
21630 ErrorMsg *msg = ir_add_error(ira, source_instr,
21631 buf_sprintf("'%s' is private", buf_ptr(field_name)));
21632 add_error_note(ira->codegen, msg, tld->source_node, buf_sprintf("declared here"));
21633 return ira->codegen->invalid_inst_gen;
21634 }
21635
2162721636 TldFn *tld_fn = (TldFn *)tld;
2162821637 ZigFn *fn_entry = tld_fn->fn_entry;
2162921638 assert(fn_entry != nullptr);