I suppose effect by redefining class
namespace import xotcl::* # file 1 Class F1 F1 instproc foo {} { puts foo } # file 2 source file1 Class F2 -superclass F1 # file 3 source file 1 Class F1 F1 instproc foo {} { puts foo } Class F3 -superclass F1 F2 create f2 f2 foo # F1 is not more superclass of F2 F2 superclass
Redefining F1 (double source) delete old implementation of F1 and so superclass of F2.
The same as
namespace import xotcl::* Class F1 F1 instproc foo {} { puts foo } Class F2 -superclass F1 F2 create f2 f2 foo F1 destroy f2 foo
Artur
Hello,
I attach a few files that will demonstrate the problem. Just run tester.tcl On my PC the effect is that I get an error message:
::tmp1: unable to dispatch method 'testA' while executing "tmp1 testA"
The problem is that tmp1 is of class B and should be able to call testA, which is defined its superclass - A.
I have found that the problem is source command, which includes file a.xotcl several times in several different files. I don't understand however why the message from interpreter says that it cannot find proc testA - this doesn't make sense.
Is there a "nice" method to avoid this? Like in C we use #define and #ifndef
Xotcl mailing list Xotcl@alice.wu-wien.ac.at http://alice.wu-wien.ac.at/mailman/listinfo/xotcl