diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/012/oop-mi.expected | 12 | ||||
-rw-r--r-- | tests/012/oop-mi.tl | 13 |
2 files changed, 23 insertions, 2 deletions
diff --git a/tests/012/oop-mi.expected b/tests/012/oop-mi.expected index 6d112c2e..ebc807f3 100644 --- a/tests/012/oop-mi.expected +++ b/tests/012/oop-mi.expected @@ -1,7 +1,7 @@ -#S(der0 gx gx gy dgy x dx y dy z dz) +#S(der0 li (b1 b2 g) gx gx gy dgy x dx y dy z dz) dgs0 gs1-b1 -#S(der1 x b3x gx b3gx gy gy y b2y) +#S(der1 x b3x gx b3gx li (b1 b2 g) gy gy y b2y) gs0 gs1-b1 (meth base3 b3m0) @@ -15,3 +15,11 @@ gm base1 base2 grand +(b1 b2 g) +(gf b2f b1f b1 b2 g) +(b1 b2 g) +(gf b2f b1f b1 b2 g) +(b1 b2 g) +(gf b2f b1f b1 b2 g) +(b2 b1 g) +(gf b1f b2f b2 b1 g) diff --git a/tests/012/oop-mi.tl b/tests/012/oop-mi.tl index 4431f23d..0e54086a 100644 --- a/tests/012/oop-mi.tl +++ b/tests/012/oop-mi.tl @@ -1,8 +1,11 @@ (load "../common") (defstruct grand nil + (li 'nil) (gx 'gx) (gy 'gy) + (:init (me) (push 'g me.li)) + (:fini (me) (push 'gf me.li)) (:static gs0 'gs0) (:static gs1 'gs1) (:method gm (me) 'gm)) @@ -12,11 +15,15 @@ (defstruct base1 grand (x 'b1x) + (:init (me) (push 'b1 me.li)) + (:fini (me) (push 'b1f me.li)) (:static gs1 'gs1-b1) (:method m (me) 'm1)) (defstruct base2 grand (y 'b2y) + (:init (me) (push 'b2 me.li)) + (:fini (me) (push 'b2f me.li)) (:static gs1 'gs1-b2) (:method m (me) 'm2)) @@ -63,3 +70,9 @@ (prinl (static-slot-home 'der2 'm)) (prinl (static-slot-home 'der3 'm)) (prinl (static-slot-home 'der3 'gm)) + +(each ((ty '(der0 der1 der2 der3))) + (let ((ob (new* ty))) + (prinl ob.li) + (call-finalizers ob) + (prinl ob.li))) |