summaryrefslogtreecommitdiffstats
path: root/tests/oo.test
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2019-12-30 21:25:43 (GMT)
committerdgp <dgp@users.sourceforge.net>2019-12-30 21:25:43 (GMT)
commit341619118a2ea2f6da6062f2069842d22d2bbb8f (patch)
treec3254e9ffb9adf777a3a13d28c6f4e556593ee6f /tests/oo.test
parent7278c6fb2c9bd8691b60e61ac24a57a85d10c1ae (diff)
parent30d15963daa3545b3a2b09e6cd1f340f68723020 (diff)
downloadtcl-341619118a2ea2f6da6062f2069842d22d2bbb8f.zip
tcl-341619118a2ea2f6da6062f2069842d22d2bbb8f.tar.gz
tcl-341619118a2ea2f6da6062f2069842d22d2bbb8f.tar.bz2
merge 8.7
Diffstat (limited to 'tests/oo.test')
-rw-r--r--tests/oo.test29
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