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:
18
examples/ffi-jni-class-01-empty.sx
Normal file
18
examples/ffi-jni-class-01-empty.sx
Normal 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;
|
||||||
|
}
|
||||||
1
tests/expected/ffi-jni-class-01-empty.exit
Normal file
1
tests/expected/ffi-jni-class-01-empty.exit
Normal file
@@ -0,0 +1 @@
|
|||||||
|
1
|
||||||
1
tests/expected/ffi-jni-class-01-empty.txt
Normal file
1
tests/expected/ffi-jni-class-01-empty.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
/Users/agra/projects/sx/examples/ffi-jni-class-01-empty.sx:13:8: error: unexpected token in expression
|
||||||
Reference in New Issue
Block a user