ffi 2.4 green: #extends and #implements body items

Two new lexer tokens `hash_extends` / `hash_implements` (global tokens,
context-meaningful inside #jni_class bodies — same pattern as #using).
`JniClassDecl.methods` refactored into `members: []const JniClassMember`,
a tagged union with `method` / `extends` / `implements` variants.
Body loop dispatches on the leading token: `#extends Alias;` /
`#implements Alias;` consume the alias name and push a non-method
member; everything else falls through to the existing method path.

The alias on the right of `#extends` is the sx-side name (resolved
to the corresponding #jni_class at sema time in a later step), not
the foreign Java path — the path lives only in the alias's own
directive arg.

123/123 examples green.
This commit is contained in:
agra
2026-05-20 10:02:56 +03:00
parent e225adbd1c
commit a5c6f754a8
7 changed files with 37 additions and 8 deletions

View File

@@ -1499,6 +1499,8 @@ pub const Server = struct {
.hash_jni_call,
.hash_jni_static_call,
.hash_jni_class,
.hash_extends,
.hash_implements,
=> ST.keyword,
.kw_f32, .kw_f64, .kw_Type, .kw_Self => ST.type_,