Added struct lifetime test
This commit is contained in:
@ -39,6 +39,9 @@ func (f *Function) CompileAssign(node *ast.Assign) error {
|
||||
case *eval.Register:
|
||||
f.Execute(operation, leftValue.Register, right)
|
||||
case *eval.Memory:
|
||||
// TODO: Reservation needs to be canceled on defer
|
||||
f.CurrentScope().Reserve(leftValue.Memory.Base)
|
||||
|
||||
if operation.Kind == token.Assign {
|
||||
rightValue, err := f.Evaluate(right)
|
||||
|
||||
|
8
tests/programs/struct-lifetime.q
Normal file
8
tests/programs/struct-lifetime.q
Normal file
@ -0,0 +1,8 @@
|
||||
main() {
|
||||
c := new(Counter)
|
||||
c.value += 16
|
||||
}
|
||||
|
||||
struct Counter {
|
||||
value int
|
||||
}
|
@ -69,6 +69,7 @@ var programs = []struct {
|
||||
{"index-static", 0},
|
||||
{"index-dynamic", 0},
|
||||
{"struct", 0},
|
||||
{"struct-lifetime", 0},
|
||||
{"len", 0},
|
||||
{"cast", 0},
|
||||
{"function-pointer", 0},
|
||||
|
Reference in New Issue
Block a user