ChaiScript/unittests/class_missing_line_separator.chai
leftibot 7b45fe19fe
Fix #592: Local variable saw_eol in Class_Statements() was always true (#646)
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>
2026-04-11 08:32:27 -06:00

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)