diff options
author | dgp <dgp@users.sourceforge.net> | 2019-12-30 21:25:43 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2019-12-30 21:25:43 (GMT) |
commit | 341619118a2ea2f6da6062f2069842d22d2bbb8f (patch) | |
tree | c3254e9ffb9adf777a3a13d28c6f4e556593ee6f /tests/oo.test | |
parent | 7278c6fb2c9bd8691b60e61ac24a57a85d10c1ae (diff) | |
parent | 30d15963daa3545b3a2b09e6cd1f340f68723020 (diff) | |
download | tcl-341619118a2ea2f6da6062f2069842d22d2bbb8f.zip tcl-341619118a2ea2f6da6062f2069842d22d2bbb8f.tar.gz tcl-341619118a2ea2f6da6062f2069842d22d2bbb8f.tar.bz2 |
merge 8.7
Diffstat (limited to 'tests/oo.test')
-rw-r--r-- | tests/oo.test | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/oo.test b/tests/oo.test index c8f4b21..235a90d 100644 --- a/tests/oo.test +++ b/tests/oo.test @@ -1422,6 +1422,35 @@ test oo-7.9 {OO: defining inheritance in namespaces} -setup { return } } -result {} +test oo-7.10 {OO: next after object deletion, bug [135804138e]} -setup { + set ::result "" + oo::class create c1 { + method m1 {} { + lappend ::result c1::m1 + } + } + oo::class create c2 { + superclass c1 + destructor { + lappend ::result c2::destructor + my m1 + lappend ::result /c2::destructor + } + method m1 {} { + lappend ::result c2::m1 + rename [self] {} + lappend ::result no-self + next + lappend ::result /c2::m1 + } + } +} -body { + c2 create o + lappend ::result [catch {o m1} msg] $msg +} -cleanup { + c1 destroy + unset ::result +} -result {c2::m1 c2::destructor c2::m1 no-self c1::m1 /c2::m1 /c2::destructor no-self 1 {no next method implementation}} test oo-8.1 {OO: global must work in methods} { oo::object create foo |