Index: tests/interceptor-slot.test =================================================================== diff -u -r46f5a635968d0c3dfe4c81f80e4ac21350096394 -r994c14a5b0e1d662fc4f903f097ed0ee7a130986 --- tests/interceptor-slot.test (.../interceptor-slot.test) (revision 46f5a635968d0c3dfe4c81f80e4ac21350096394) +++ tests/interceptor-slot.test (.../interceptor-slot.test) (revision 994c14a5b0e1d662fc4f903f097ed0ee7a130986) @@ -565,6 +565,10 @@ r leave Uwe r configure -name "Office" ? {set ::_} "enter leave" + ? {r info lookup filters} "::nsf::classes::Room::loggingFilter" + ? {r info lookup filters -guards} {{loggingFilter -guard { + [current calledmethod] in {enter leave} + }}} # Now we define a subclass DangerRoom, which refines the filter by # logging into a "dangerRoomLog". We want here entries for all @@ -589,11 +593,39 @@ ? {set ::_} "enter leave" ? {expr [llength $::dangerRoomLog] > 2} 1 + ? {d info lookup filters} "::nsf::classes::DangerRoom::loggingFilter ::nsf::classes::Room::loggingFilter" + d destroy } # +# Test info lookup mixins (with guards) +# + +nx::test case filter-guard-separately { + nx::Class create M1 + nx::Class create M2 + nx::Class create M3 + nx::Class create C + nx::Class create D -superclass C + + D create d1 -object-mixin M1 + ? {d1 info lookup mixins} ::M1 + + D mixin add {M2 -guard 1} + ? {d1 info lookup mixins} "::M1 ::M2" + + C mixin add M3 + ? {d1 info lookup mixins} "::M1 ::M2 ::M3" + ? {d1 info lookup mixins -guards} "::M1 {::M2 -guard 1} ::M3" + ? {d1 info lookup mixins -guards *2*} "{::M2 -guard 1}" + + d1 object mixin clear + ? {d1 info lookup mixins} "::M2 ::M3" +} + +# # Local variables: # mode: tcl # tcl-indent-level: 2