mirror of
https://github.com/ChaiScript/ChaiScript.git
synced 2026-04-30 19:09:26 +08:00
The saw_eol variable in Class_Statements() was initialized to true and only ever set back to true, making the "missing line separator" check unreachable. The fix separates Def (block statement ending with }) from Var_Decl (simple statement) so that Var_Decl sets saw_eol to false, matching the pattern used in Statements() for simple expressions. Co-authored-by: leftibot <leftibot@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
24 lines
424 B
ChaiScript
24 lines
424 B
ChaiScript
|
|
// Test that two var declarations on the same line in a class body
|
|
// are rejected with a "missing line separator" error (issue #592)
|
|
|
|
try {
|
|
eval("class Foo { var x var y }")
|
|
assert_true(false)
|
|
} catch (eval_error) {
|
|
}
|
|
|
|
// Also verify that properly separated declarations still work
|
|
class Bar {
|
|
var x
|
|
var y
|
|
def Bar() {
|
|
this.x = 1
|
|
this.y = 2
|
|
}
|
|
}
|
|
|
|
auto b = Bar()
|
|
assert_equal(1, b.x)
|
|
assert_equal(2, b.y)
|