diff --git a/examples/140-expression-bodied-objc-method.sx b/examples/140-expression-bodied-objc-method.sx new file mode 100644 index 0000000..38ee882 --- /dev/null +++ b/examples/140-expression-bodied-objc-method.sx @@ -0,0 +1,20 @@ +// M1.0 (xfail) — '=>' expression-body form inside '#objc_class' +// member methods. +// +// Today: parseForeignClassDecl ([src/parser.zig:1262]) accepts ';' +// (declaration) or '{ ... }' (block body) but not '=>'. Trying +// '=>' surfaces 'expected ;' at the arrow. +// +// Next commit extends the member parser to accept the arrow +// form, mirroring the existing parseFnDecl ('=>') arm, and this +// snapshot flips from a parser error to '42\n'. + +#import "modules/std.sx"; + +SxFoo :: #objc_class("SxFoo") { + greet :: (self: *Self) -> s32 => 42; +} + +main :: () -> s32 { + 0; +} diff --git a/tests/expected/140-expression-bodied-objc-method.exit b/tests/expected/140-expression-bodied-objc-method.exit new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/tests/expected/140-expression-bodied-objc-method.exit @@ -0,0 +1 @@ +1 diff --git a/tests/expected/140-expression-bodied-objc-method.txt b/tests/expected/140-expression-bodied-objc-method.txt new file mode 100644 index 0000000..57d4f6e --- /dev/null +++ b/tests/expected/140-expression-bodied-objc-method.txt @@ -0,0 +1 @@ +/Users/agra/projects/sx/examples/140-expression-bodied-objc-method.sx:15:35: error: expected ';'