Index: tests/aliastest.xotcl =================================================================== diff -u -rd5785e8f405e03767db40836127cab24cf8f8b85 -r1f0231a5c7cbb8dfef4eaf78335c9ad571863660 --- tests/aliastest.xotcl (.../aliastest.xotcl) (revision d5785e8f405e03767db40836127cab24cf8f8b85) +++ tests/aliastest.xotcl (.../aliastest.xotcl) (revision 1f0231a5c7cbb8dfef4eaf78335c9ad571863660) @@ -16,7 +16,7 @@ ::xotcl::use xotcl2 # the system methods of Object are either alias or forwarders -? {lsort [::xotcl::Slot info methods -defined -methodtype alias]} {assign get} +? {lsort [::xotcl::Slot info methods -methodtype alias]} {assign get} ? {::xotcl::Slot info method definition get} "::xotcl::Slot alias get ::xotcl::setinstvar" set cmd "::xotcl2::Object alias -objscope set ::set" @@ -34,25 +34,25 @@ Foo create f1 ? {f1 foo} 1 ? {f1 foo -x 2} 2 -? {Foo info methods -defined -methodtype alias} "foo" +? {Foo info methods -methodtype alias} "foo" -? {Base info methods -defined -methodtype scripted} {foo} -? {Foo info methods -defined -methodtype scripted} {foo} +? {Base info methods -methodtype scripted} {foo} +? {Foo info methods -methodtype scripted} {foo} Base method foo {} {} -? {Foo info methods -defined -methodtype alias} "" -? {Base info methods -defined -methodtype scripted} {} -? {Foo info methods -defined -methodtype scripted} {} +? {Foo info methods -methodtype alias} "" +? {Base info methods -methodtype scripted} {} +? {Foo info methods -methodtype scripted} {} ? {Foo info method definition foo} "" Base method foo {{-x 1}} {return $x} ::xotcl::alias ::Foo foo ::xotcl::classes::Base::foo -? {Base info methods -defined -methodtype scripted} {foo} "defined again" -? {Foo info methods -defined -methodtype scripted} {foo} "aliased again" +? {Base info methods -methodtype scripted} {foo} "defined again" +? {Foo info methods -methodtype scripted} {foo} "aliased again" Foo method foo {} {} -? {Base info methods -defined -methodtype scripted} {foo} "still defined" -? {Foo info methods -defined -methodtype scripted} {} "removed" +? {Base info methods -methodtype scripted} {foo} "still defined" +? {Foo info methods -methodtype scripted} {} "removed" # # chaining aliases @@ -70,49 +70,49 @@ ? {t foo} ::T->foo ? {t FOO} ::T->foo -? {lsort [T info methods -defined -methodtype scripted]} {FOO foo} +? {lsort [T info methods -methodtype scripted]} {FOO foo} T method foo {} {} -? {lsort [T info methods -defined -methodtype scripted]} {} "alias is deleted" +? {lsort [T info methods -methodtype scripted]} {} "alias is deleted" # puts stderr "double indirection" T method foo args { return [self class]->[self proc] } ::xotcl::alias T FOO ::xotcl::classes::T::foo ::xotcl::alias S BAR ::xotcl::classes::T::FOO -? {T info methods -defined -methodtype alias} "FOO" +? {T info methods -methodtype alias} "FOO" ? {T info method definition FOO} "::T alias FOO ::xotcl::classes::T::foo" -? {lsort [T info methods -defined -methodtype scripted]} {FOO foo} -? {S info methods -defined -methodtype scripted} {BAR} +? {lsort [T info methods -methodtype scripted]} {FOO foo} +? {S info methods -methodtype scripted} {BAR} T method FOO {} {} -? {T info methods -defined -methodtype scripted} {foo} -? {S info methods -defined -methodtype scripted} {BAR} +? {T info methods -methodtype scripted} {foo} +? {S info methods -methodtype scripted} {BAR} ? {s BAR} ::S->foo ? {t foo} ::T->foo ? {S info method definition BAR} "::S alias BAR ::xotcl::classes::T::FOO" T method foo {} {} -? {T info methods -defined -methodtype scripted} {} -? {S info methods -defined -methodtype scripted} {} +? {T info methods -methodtype scripted} {} +? {S info methods -methodtype scripted} {} T method foo args { return [self class]->[self proc] } ::xotcl::alias T FOO ::xotcl::classes::T::foo ::xotcl::alias S BAR ::xotcl::classes::T::FOO -? {lsort [T info methods -defined -methodtype scripted]} {FOO foo} -? {S info methods -defined -methodtype scripted} {BAR} +? {lsort [T info methods -methodtype scripted]} {FOO foo} +? {S info methods -methodtype scripted} {BAR} T method foo {} {} -? {S info methods -defined -methodtype scripted} {} -? {T info methods -defined -methodtype scripted} {} +? {S info methods -methodtype scripted} {} +? {T info methods -methodtype scripted} {} T method foo args { return [self class]->[self proc] } T method -per-object bar args { return [self class]->[self proc] } ::xotcl::alias T FOO -per-object ::xotcl::classes::T::foo ::xotcl::alias T BAR -per-object ::T::FOO ::xotcl::alias T ZAP -per-object ::T::BAR -? {T info methods -defined -methodtype scripted} {foo} -? {lsort [T info -per-object methods -defined -methodtype alias]} {BAR FOO ZAP} -? {lsort [T info -per-object methods -defined -methodtype scripted]} {BAR FOO ZAP bar} +? {T info methods -methodtype scripted} {foo} +? {lsort [T info -per-object methods -methodtype alias]} {BAR FOO ZAP} +? {lsort [T info -per-object methods -methodtype scripted]} {BAR FOO ZAP bar} ? {t foo} ::T->foo ? {T info -per-object method definition ZAP} {::T alias -per-object ZAP ::T::BAR} @@ -121,39 +121,39 @@ ? {T ZAP} ->foo ? {T bar} ->bar T method -per-object FOO {} {} -? {T info methods -defined -methodtype scripted} {foo} -? {lsort [T info -per-object methods -defined -methodtype scripted]} {BAR ZAP bar} +? {T info methods -methodtype scripted} {foo} +? {lsort [T info -per-object methods -methodtype scripted]} {BAR ZAP bar} ? {T BAR} ->foo ? {T ZAP} ->foo rename ::T::BAR "" -? {T info methods -defined -methodtype scripted} {foo} -? {lsort [T info -per-object methods -defined -methodtype scripted]} {ZAP bar} +? {T info methods -methodtype scripted} {foo} +? {lsort [T info -per-object methods -methodtype scripted]} {ZAP bar} #? {T BAR} ""; # now calling the proc defined above, alias chain seems intact ? {T ZAP} ->foo; # is ok, still pointing to 'foo' #T method -per-object BAR {} {} -? {T info methods -defined -methodtype scripted} {foo} -? {lsort [T info -per-object methods -defined -methodtype scripted]} {ZAP bar} +? {T info methods -methodtype scripted} {foo} +? {lsort [T info -per-object methods -methodtype scripted]} {ZAP bar} ? {T ZAP} ->foo T method foo {} {} -? {T info methods -defined -methodtype scripted} {} -? {lsort [T info -per-object methods -defined -methodtype scripted]} {bar} +? {T info methods -methodtype scripted} {} +? {lsort [T info -per-object methods -methodtype scripted]} {bar} # # per-object methods as per-object aliases # T method -per-object m1 args { return [self class]->[self proc] } ::xotcl::alias T M1 -per-object ::T::m1 ::xotcl::alias T M11 -per-object ::T::M1 -? {lsort [T info -per-object methods -defined -methodtype scripted]} {M1 M11 bar m1} +? {lsort [T info -per-object methods -methodtype scripted]} {M1 M11 bar m1} ? {T m1} ->m1 ? {T M1} ->m1 ? {T M11} ->m1 T method -per-object M1 {} {} -? {lsort [T info -per-object methods -defined -methodtype scripted]} {M11 bar m1} +? {lsort [T info -per-object methods -methodtype scripted]} {M11 bar m1} ? {T m1} ->m1 ? {T M11} ->m1 T method -per-object m1 {} {} -? {lsort [T info -per-object methods -defined -methodtype scripted]} {bar} +? {lsort [T info -per-object methods -methodtype scripted]} {bar} # # a proc as alias @@ -166,17 +166,17 @@ # ! per-object alias referenced as per-class alias ! # ::xotcl::alias T BAR ::T::FOO2 -? {lsort [T info -per-object methods -defined -methodtype scripted]} {FOO2 bar} -? {lsort [T info methods -defined -methodtype scripted]} {BAR FOO1} +? {lsort [T info -per-object methods -methodtype scripted]} {FOO2 bar} +? {lsort [T info methods -methodtype scripted]} {BAR FOO1} ? {T FOO2} ->foo ? {t FOO1} ::T->foo ? {t BAR} ::T->foo # # delete proc # rename foo "" -? {lsort [T info -per-object methods -defined -methodtype scripted]} {bar} -? {lsort [T info methods -defined -methodtype scripted]} {} +? {lsort [T info -per-object methods -methodtype scripted]} {bar} +? {lsort [T info methods -methodtype scripted]} {} # namespaced procs + namespace deletion @@ -189,14 +189,14 @@ ::xotcl::alias T FOO ::ns1::foo ::xotcl::alias T BAR ::ns1::bar ::xotcl::alias T BAR2 ::ns1::bar2 -? {lsort [T info methods -defined -methodtype scripted]} {BAR BAR2 FOO} +? {lsort [T info methods -methodtype scripted]} {BAR BAR2 FOO} set _ GOTYA ? {t FOO} ::T->foo ? {t BAR} GOTYA ? {t BAR2} GOTYA namespace delete ::ns1 ? {info procs ::ns1::*} {} -? {lsort [T info methods -defined -methodtype scripted]} {} +? {lsort [T info methods -methodtype scripted]} {} # per-object namespaces @@ -210,14 +210,14 @@ U method -per-object bar args { return [self class]->[self proc] } ::xotcl::alias U BAR -per-object ::U::bar -? {lsort [U info -per-object methods -defined -methodtype scripted]} {BAR ZAP bar zap} +? {lsort [U info -per-object methods -methodtype scripted]} {BAR ZAP bar zap} ? {U BAR} ->bar ? {U ZAP} ->zap namespace delete ::U ? {namespace exists ::U} 0 -? {lsort [U info -per-object methods -defined -methodtype scripted]} {} -? {U procsearch BAR} "" -? {U procsearch ZAP} "" +? {lsort [U info -per-object methods -methodtype scripted]} {} +? {U info callable BAR} "" +? {U info callable ZAP} "" ::U destroy @@ -238,14 +238,14 @@ ::xotcl::alias V FOO1 ::foo ::xotcl::alias V FOO2 -per-object ::foo -? {lsort [V info -per-object methods -defined -methodtype scripted]} {FOO2 bar} -? {lsort [V info methods -defined -methodtype scripted]} {FOO1 bar} +? {lsort [V info -per-object methods -methodtype scripted]} {FOO2 bar} +? {lsort [V info methods -methodtype scripted]} {FOO1 bar} ? {V FOO2} 1-1-1 ? {v FOO1} 2-2-2 V method FOO1 {} {} -? {lsort [V info methods -defined -methodtype scripted]} {bar} +? {lsort [V info methods -methodtype scripted]} {bar} rename ::foo "" -? {lsort [V info -per-object methods -defined -methodtype scripted]} {bar} +? {lsort [V info -per-object methods -methodtype scripted]} {bar} # @@ -334,9 +334,9 @@ unset ::xotcl::alias(::C,FOO,0) ? {info exists ::xotcl::alias(::C,FOO,0)} 0 ? {C info method definition FOO} "" -? {C info methods -defined -methodtype alias} FOO +? {C info methods -methodtype alias} FOO rename ::foo "" -? {C info methods -defined -methodtype alias} "" +? {C info methods -methodtype alias} "" ? {info exists ::xotcl::alias(::C,FOO,0)} 0 ? {C info method definition FOO} "" @@ -353,10 +353,10 @@ ? {info exists ::xotcl::alias(::C,FOO,0)} 0 ::xotcl::alias C FOO ::foo ? {info exists ::xotcl::alias(::C,FOO,0)} 1 -? {C info methods -defined -methodtype alias} FOO +? {C info methods -methodtype alias} FOO rename ::foo ::foo2 ? {info exists ::xotcl::alias(::C,FOO,0)} 1 -? {C info methods -defined -methodtype alias} FOO +? {C info methods -methodtype alias} FOO ? {c FOO} ::c->foo2 ? {C info method definition FOO} "::C alias FOO ::foo"; # should be ::foo2 (!)