Index: Makefile.in =================================================================== diff -u -rcaba76f5ac2943f5a3dfd33550cb578132f40c80 -r59f13181ba70df745dca1c5e96ed872703d8662d --- Makefile.in (.../Makefile.in) (revision caba76f5ac2943f5a3dfd33550cb578132f40c80) +++ Makefile.in (.../Makefile.in) (revision 59f13181ba70df745dca1c5e96ed872703d8662d) @@ -524,6 +524,7 @@ $(TCLSH) $(src_test_dir_native)/destroy.test -libdir $(PLATFORM_DIR) $(TESTFLAGS) $(TCLSH) $(src_test_dir_native)/methods.test -libdir $(PLATFORM_DIR) $(TESTFLAGS) $(TCLSH) $(src_test_dir_native)/method-parameter.test -libdir $(PLATFORM_DIR) $(TESTFLAGS) + $(TCLSH) $(src_test_dir_native)/accessor.test -libdir $(PLATFORM_DIR) $(TESTFLAGS) $(TCLSH) $(src_test_dir_native)/cget.test -libdir $(PLATFORM_DIR) $(TESTFLAGS) $(TCLSH) $(src_test_dir_native)/properties.test -libdir $(PLATFORM_DIR) $(TESTFLAGS) $(TCLSH) $(src_test_dir_native)/var-access.test -libdir $(PLATFORM_DIR) $(TESTFLAGS) Index: TODO =================================================================== diff -u -r4744ebb4e03c140e81e49c56c406774d55e476ce -r59f13181ba70df745dca1c5e96ed872703d8662d --- TODO (.../TODO) (revision 4744ebb4e03c140e81e49c56c406774d55e476ce) +++ TODO (.../TODO) (revision 59f13181ba70df745dca1c5e96ed872703d8662d) @@ -5051,6 +5051,7 @@ overwrote the error message in the interp result nx.tcl: + - replace empty-named arrays by dicts - remove setter methods from BootstrapVariableSlots - reducing interface of BootstrapVariableSlots by setting methods protected - use value=* as names for interally called and forwarder-called @@ -5090,6 +5091,9 @@ nx::test: - don't delete system slot ::xotcl::Attribute on cleanup +nx.tcl: +- add slot method value=unset to nx::RelationSlot and nx::VariableSlot +- extended regression test ======================================================================== TODO: Index: library/nx/nx.tcl =================================================================== diff -u -r5d3bc04b5ec0a4422236a65220d94ceee17a8796 -r59f13181ba70df745dca1c5e96ed872703d8662d --- library/nx/nx.tcl (.../nx.tcl) (revision 5d3bc04b5ec0a4422236a65220d94ceee17a8796) +++ library/nx/nx.tcl (.../nx.tcl) (revision 59f13181ba70df745dca1c5e96ed872703d8662d) @@ -1532,6 +1532,10 @@ ::nsf::method::alias RelationSlot value=set ::nsf::relation ::nsf::method::alias RelationSlot value=get ::nsf::relation + RelationSlot public method value=unset {obj prop} { + ::nsf::relation $obj $prop {} + } + RelationSlot protected method delete_value {obj prop old value} { # # Helper method for the delete operation, deleting a value from a @@ -2105,6 +2109,11 @@ ::nsf::method::alias ::nx::VariableSlot value=get ::nsf::var::set ::nsf::method::alias ::nx::VariableSlot value=set ::nsf::var::set + + ::nx::VariableSlot public method value=unset {obj prop} { + puts stderr "::nsf::var::unset $obj $prop" + ::nsf::var::unset $obj $prop + } ::nx::VariableSlot public method value=add {obj prop value {pos 0}} { if {![:isMultivalued]} { Index: tests/interceptor-slot.test =================================================================== diff -u -rd4bf05d3f89dd055bb5c86cb7f3f82ca2321473c -r59f13181ba70df745dca1c5e96ed872703d8662d --- tests/interceptor-slot.test (.../interceptor-slot.test) (revision d4bf05d3f89dd055bb5c86cb7f3f82ca2321473c) +++ tests/interceptor-slot.test (.../interceptor-slot.test) (revision 59f13181ba70df745dca1c5e96ed872703d8662d) @@ -25,7 +25,12 @@ ? {c1 info precedence} "::M ::C ::nx::Object" ? {C mixin delete M} "" ? {C info mixin classes} "" + ? {C mixin set ::M} "::M" + ? {C mixin unset} "" + ? {C info mixin classes} "" + + ? {C mixin add ::M} "::M" ? {C mixin set {}} "" ? {C info mixin classes} "" } @@ -61,6 +66,11 @@ ? {c1 info precedence} "::M2 ::C ::nx::Object" ? {c1 object mixin delete M2} "" ? {c1 info precedence} "::C ::nx::Object" + + ? {c1 object mixin add M} {::M} + ? {c1 info object mixin classes} {::M} + ? {c1 object mixin unset} {} + ? {c1 info object mixin classes} {} } # @@ -164,14 +174,18 @@ ? {::nsf::relation cc object-filter filterA} filterA ? {cc info object filter methods} "filterA" ? {cc object filter set filterB} "filterB" + ? {::nsf::relation cc object-filter} "filterB" ? {cc info object filter methods} "filterB" + ? {cc object filter add filterD} "filterD filterB" ? {::nsf::relation cc object-filter} "filterD filterB" ? {cc info object filter methods} "filterD filterB" + ? {cc object filter delete filterB} "filterD" ? {::nsf::relation cc object-filter} "filterD" ? {cc info object filter methods} "filterD" + ? {catch {::nsf::relation cc object-filter UNKNOWN}} 1 ? {::nsf::relation cc object-filter} "filterD" ? {cc info object filter methods} "filterD" @@ -181,7 +195,8 @@ ? {::nsf::relation CC object-filter filterC} "filterC" ? {::nsf::relation CC object-filter} "filterC" ? {CC info object filter methods} "filterC" - ? {::nsf::relation CC object-filter ""} "" + + ? {CC object filter unset} "" ? {::nsf::relation CC object-filter} "" ? {CC info object filter methods} "" @@ -190,16 +205,20 @@ ? {::nsf::relation CC class-filter filterA} "filterA" ? {::nsf::relation CC class-filter} "filterA" ? {CC info filter methods} "filterA" + ? {CC filter add filterB} "filterB filterA" ? {::nsf::relation CC class-filter} "filterB filterA" ? {CC info filter methods} "filterB filterA" + ? {CC filter delete filterA} "filterB" ? {::nsf::relation CC class-filter} "filterB" ? {CC info filter methods} "filterB" + ? {catch {::nsf::relation CC class-filter UNKNOWN}} 1 ? {::nsf::relation CC class-filter} "filterB" ? {CC info filter methods} "filterB" - ? {::nsf::relation CC class-filter ""} "" + + ? {CC filter unset} "" ? {::nsf::relation CC class-filter} "" ? {CC info filter methods} "" }