ffi 2.0: xfail parser test for Foo :: #jni_class(...) { ... }

Today's parser doesn't recognize #jni_class as a hash directive
after `::`, so it falls through to expression parsing and errors
at the `#` token. Step 2.1 extends parseConstBinding to accept
the directive (opaque on empty body) and re-snapshots this file
to green.
This commit is contained in:
agra
2026-05-20 09:12:57 +03:00
parent 4ddee931b5
commit 4c670e66f3
3 changed files with 20 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
// Phase 2 step 2.0 (PLAN-FFI.md): xfail parser test for the
// type-introducer `Foo :: #jni_class("java/path/Foo") { }` directive.
//
// Today's parser doesn't recognize `#jni_class` as a known hash
// directive after `::`, so it falls through to expression parsing
// and fails at the `#` token. Step 2.1 (next commit) extends
// `parseConstBinding` to accept the directive, treat an empty body
// as an opaque forward declaration, and re-snapshots this file to
// capture the green behavior.
#import "modules/std.sx";
Foo :: #jni_class("java/path/Foo") { }
main :: () -> s32 {
print("parse-only ok\n");
0;
}

View File

@@ -0,0 +1 @@
1

View File

@@ -0,0 +1 @@
/Users/agra/projects/sx/examples/ffi-jni-class-01-empty.sx:13:8: error: unexpected token in expression