diff options
| author | 2026-10-14 09:33:03 +0000 | |
|---|---|---|
| committer | 2026-10-14 09:33:03 +0000 | |
| commit | ebaa15f02dd0e5aa358ea2e527ae4557e40b4e9c (patch) | |
| tree | 9f53ccfed1eedd90df2747bdfd0e9ea907caee95 /tests/programs | |
| parent | todo: record the reverted unchecked trial and what it showed (diff) | |
constants inside structs, and typo suggestions for fields and static members
const NAME = e; inside a struct body declares a compile-time constant named
Struct.NAME, reached as Struct.NAME or by bare name in the struct's methods.
A misspelled field or Struct.name member now ends its error with
'; did you mean 'name'?' on the member word, which the language server
turns into a quick fix.
Diffstat (limited to 'tests/programs')
| -rw-r--r-- | tests/programs/struct_const.zc | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/programs/struct_const.zc b/tests/programs/struct_const.zc new file mode 100644 index 0000000..59af8fd --- /dev/null +++ b/tests/programs/struct_const.zc @@ -0,0 +1,28 @@ +namespace; +include rt; + +struct Text { + const MAX = 24, MIN = 1; + const int WIDE = MAX * 2; + int len, tag; + static int top() { return MAX; } + static int span() { return MAX - MIN; } + int room() { return MAX - this.len; } + int total() { int[MIN + 2] a; a[2] = WIDE; return a[2] + this.tag; } +} + +const MAX = 99; + +int main() { + Text t; + t.len = 5; t.tag = 7; + rt.put_n(Text.MAX); rt.put_c(32); + rt.put_n(Text.MIN + Text.WIDE); rt.put_c(32); + rt.put_n(Text.top()); rt.put_c(32); + rt.put_n(Text.span()); rt.put_c(32); + rt.put_n(t.room()); rt.put_c(32); + rt.put_n(t.total()); rt.put_c(32); + rt.put_n(t.len + t.tag); rt.put_c(32); + rt.put_n(MAX); rt.put_c(10); + return 0; +} |
