isPlainFreeFn / isPlainFreeFnDecl excluded a #foreign body but classified an empty-block extern fn as a plain free function, so existing extern fns were wrongly counted in the bare-call ambiguity verdict (and eligible for the out-of-line-slot / shadow-author pass). Both predicates now also exclude extern_export == .extern_ (an external C symbol with no sx-lowerable body, name-keyed first-wins dispatch like #foreign); export keeps a real body and stays plain-free. Greens example 1230 — same-name extern authors compile like their #foreign twins (0729). 646 corpus / 444 unit, 0 failed.
85 KiB
85 KiB