Index: tests/info-method.test =================================================================== diff -u -rd15bb1fa36c4f2cf118b2ce915928294e762d336 -rbef777ff411770b97736e35a87cb23e23c7d7f83 --- tests/info-method.test (.../info-method.test) (revision d15bb1fa36c4f2cf118b2ce915928294e762d336) +++ tests/info-method.test (.../info-method.test) (revision bef777ff411770b97736e35a87cb23e23c7d7f83) @@ -956,4 +956,26 @@ ? [list ::nsf::method::registered $h1] ::o } +} + +# +# Testing "... info method orgin ..." (in contrast to "... info method +# handle ..."). "origin" always points to the definintion handle, +# "handle" alone is the registration handle. +# + +nx::Test case method-origin { + nx::Class create C + ? {set implHandle [C public method "foo bar" {x} {;}]} "::C::slot::__foo::bar" + ? {set regHandle [C info method handle "foo bar"]} "::nsf::classes::C::foo bar" + ? {set origin [C info method origin "foo bar"]} "::C::slot::__foo::bar" + + ? {set implHandle [C public class method "foo bar" {x} {;}]} "::C::foo::bar" + ? {set regHandle [C class info method handle "foo bar"]} "::C::foo bar" + ? {set origin [C class info method origin "foo bar"]} "::C::foo::bar" + + Object create o + ? {set implHandle [o public method "foo bar" {x} {;}]} "::o::foo::bar" + ? {set regHandle [o info method handle "foo bar"]} "::o::foo bar" + ? {set origin [o info method origin "foo bar"]} "::o::foo::bar" } \ No newline at end of file