Index: tests/submethods.test =================================================================== diff -u -N -r2a10ca191c0d398430ad7b6b86bf0714a141e089 -r2c338821c949f8eb468c54a537d96a1d90b55805 --- tests/submethods.test (.../submethods.test) (revision 2a10ca191c0d398430ad7b6b86bf0714a141e089) +++ tests/submethods.test (.../submethods.test) (revision 2c338821c949f8eb468c54a537d96a1d90b55805) @@ -911,10 +911,36 @@ ? {b x s} $sc } +nx::test case ensemble-callstack-introspection { + set ::body { + return [list [current nextmethod] {*}[next]] + } + + nx::Class create A { + set ::handle [:method "i s" args $::body] + } + + nx::Class create B -superclasses A { + :public method "i s" args $::body + :create b + } + + ? {b eval { :i s }} {{::nsf::classes::A::i s} {}} + ? {::nsf::cmd::info args [lindex [b eval { :i s }] 0]} "args" + ? {::nsf::cmd::info definitionhandle [lindex [b eval { :i s }] 0]} $::handle + ? {::nsf::cmd::info body [lindex [b eval { :i s }] 0]} $::body + ? {b i s} {{::nsf::classes::A::i s} {}}; + ? {::nsf::cmd::info args [lindex [b i s] 0]} "args" + ? {::nsf::cmd::info definitionhandle [lindex [b i s] 0]} $::handle + ? {::nsf::cmd::info body [lindex [b i s] 0]} $::body + + unset -nocomplain ::handle + unset -nocomplain ::body +} + # # Local variables: # mode: tcl # tcl-indent-level: 2 # indent-tabs-mode: nil # End: -