- Classes are defined lazily - Member access is via environment - Member access is just a binary expression with a weird environment - Slot loads look like variable loads now - Associativity in the parser (ugh)
18 lines
521 B
Text
18 lines
521 B
Text
class Foo {
|
|
foo: f64;
|
|
}
|
|
|
|
fun test() {
|
|
let f = new Foo { foo: 12 };
|
|
let z = f.{let y = 222; foo };
|
|
}
|
|
|
|
// NOTE: The AST allows for generic expressions to the right of the dot.
|
|
// We need to make sure things are parsed correctly.
|
|
//
|
|
// TODO: Better parser recovery will improve the specifics of the errors.
|
|
// @expect-errors:
|
|
// | 7:12: Error at '{': expected an expression
|
|
// | 7:13: Error at 'let': expect ';' to end a let statement
|
|
// | 7:26: cannot find value foo here
|
|
// | 8:0: Error at '}': unbalanced '}'
|