From: SourceForge.net <no...@so...> - 2012-02-06 19:28:27
|
Bugs item #3485060, was opened at 2012-02-06 11:28 Message generated for change (Tracker Item Submitted) made by basilik99 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110894&aid=3485060&group_id=10894 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: 35. TclOO Package Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Etienne Basilik (basilik99) Assigned to: Donal K. Fellows (dkf) Summary: TclOO: variables not copied when mixins are copied Initial Comment: Hi, I use ActiveState Tcl 8.6.0.0.295132 Beta 6. The following code: package require TclOO oo::class create Mix1 \ { variable Mix1_var constructor {} \ { set Mix1_var 10 puts "Mix1 constructor: Mix1_var = $Mix1_var." next } } oo::class create C1 \ { mixin [oo::copy Mix1 Mix1_copy] variable C1_var constructor {} \ { set C1_var 40 my variable Mix1_var ;# needed otherwise variable not found (normal behavior) puts "C1 constructor: C1_var = $C1_var and Mix1_var = $Mix1_var." } } C1 create objc1 gives the output: Mix1 constructor: Mix1_var = 10. can't read "Mix1_var": no such variable % puts $errorInfo can't read "Mix1_var": no such variable while executing "puts "C1 constructor: C1_var = $C1_var and Mix1_var = $Mix1_var."" (class "::C1" constructor line 4) invoked from within "next" (class "::oo::define::Mix1_copy" constructor line 4) invoked from within "C1 create objc1" However, if: mixin [oo::copy Mix1 Mix1_copy] is replaced by: mixin Mix1 then it works without an error. So I suspect variables in a mixin not being copied when the mixin class is copied. Please confirm if it is a bug. Thanks, Etienne ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110894&aid=3485060&group_id=10894 |