refactor(ffi-linkage): Phase 9.3-src — purge 'foreign' from src/ comments + a user-facing diagnostic
Reword every 'foreign' comment to the extern/runtime-class vocabulary matching the renamed identifiers (foreign call→extern call, foreign class→runtime class, foreign path→runtime path, the #foreign-literal comment mentions → extern, etc.). Also fixes two USER-FACING issues: the 'expected … #foreign … after type annotation' parse error no longer advertises the removed keyword, and the Android 'no #jni_main' help diagnostic now shows '#jni_class(…) extern' instead of the rejected '#foreign #jni_class'. Removed the now-dead prefix-#foreign-vs-postfix conflict branch in parseRuntimeClassDecl (the caller rejects #foreign before it runs). src/ now contains 'foreign' ONLY in the hash_foreign token machinery + its 4 rejection messages — the deprecation mechanism (kept per the 9.0 recommendation; the message MUST name #foreign to guide migration). Snapshot-neutral; suite green (646 corpus / 444 unit, 0 failed).
This commit is contained in:
@@ -172,7 +172,7 @@ pub const ObjcLowering = struct {
|
||||
.isize => try out.append(self.l.alloc, 'q'),
|
||||
.usize => try out.append(self.l.alloc, 'Q'),
|
||||
.pointer => |p| {
|
||||
// Pointer to a foreign Obj-C class (or sx-defined #objc_class)
|
||||
// Pointer to a runtime Obj-C class (or sx-defined #objc_class)
|
||||
// encodes as `@`. Anything else falls to `^v` — generic
|
||||
// pointer; the runtime treats it as opaque.
|
||||
const pointee_info = self.l.module.types.get(p.pointee);
|
||||
@@ -378,7 +378,7 @@ pub const ObjcLowering = struct {
|
||||
const pointee = self.l.module.types.get(field_ty).pointer.pointee;
|
||||
// `*void` is NOT considered an object pointer — ambiguous.
|
||||
if (pointee == .void) break :blk false;
|
||||
// `*T` where T is a foreign-class struct (Obj-C class).
|
||||
// `*T` where T is a runtime-class struct (Obj-C class).
|
||||
if (pointee.isBuiltin()) break :blk false;
|
||||
const pointee_info = self.l.module.types.get(pointee);
|
||||
if (pointee_info != .@"struct") break :blk false;
|
||||
|
||||
Reference in New Issue
Block a user