move dep expansion into predicates for the moment
[scpubgit/DX.git] / lib / DX / Predicate / MemberAt.pm
index 491b48e..72d6018 100644 (file)
@@ -1,6 +1,6 @@
 package DX::Predicate::MemberAt;
 
-use DX::Utils qw(:builders :dep_types);
+use DX::Utils qw(:builders :dep_types expand_deps);
 use DX::ActionBuilder::ProxySetToAdd;
 use DX::ActionBuilder::Null;
 use DX::Class;
@@ -60,10 +60,10 @@ sub _resolution_space_for {
 
     if (my $cur_val = $dict->get_member_at($key)) {
 
-      my $deps = [
+      my $deps = expand_deps([
         [ CONTENTS_OF ,=> $dict, $key->string_value ],
         [ CONTENTS_OF ,=> $value ],
-      ];
+      ]);
 
       if ($value->is_set) {
 
@@ -87,10 +87,10 @@ sub _resolution_space_for {
       }
 
       return rspace(
-        geometry_depends_on => [
+        geometry_depends_on => expand_deps([
           [ CONTENTS_OF ,=> $dict, $key->string_value ],
           [ TYPE_OF ,=> $value ],
-        ],
+        ]),
         aperture => $value->aperture_for_set_value,
         members => [
           res(
@@ -104,10 +104,10 @@ sub _resolution_space_for {
 
     if ($dict->can_add_member) {
 
-      my $deps = [
+      my $deps = expand_deps([
         [ EXISTENCE_OF ,=> $dict, $key->string_value ],
         [ TYPE_OF ,=> $value ],
-      ];
+      ]);
 
       if ($value->is_set) {
 
@@ -149,9 +149,9 @@ sub _resolution_space_for {
     # Dict doesn't allow adding keys and key doesn't exist, so
     # the contents of the value is completely irrelevant to the failure
     return rspace(
-      geometry_depends_on => [
+      geometry_depends_on => expand_deps([
         [ EXISTENCE_OF ,=> $dict, $key->string_value ],
-      ],
+      ]),
       aperture => [],
       members => [],
     );
@@ -170,11 +170,11 @@ sub _resolution_space_for {
   ], map string($_), $dict->index_list;
 
   return rspace(
-    geometry_depends_on => [
+    geometry_depends_on => expand_deps([
       [ INDICES_OF ,=> $dict ],
       [ TYPE_OF ,=> $key ],
       [ TYPE_OF ,=> $value ],
-    ],
+    ]),
     aperture => [ map @{$_->aperture_for_set_value}, $key, $value ],
     members => [
       rstrat(
@@ -184,11 +184,11 @@ sub _resolution_space_for {
         ],
         veracity_depends_on_builder => sub {
           my ($this_key, $this_val) = map @$_, @_;
-          return [
+          return expand_deps([
             [ CONTENTS_OF ,=> $dict, $this_key->string_value ],
             [ CONTENTS_OF ,=> $key ],
             [ CONTENTS_OF ,=> $value ],
-          ];
+          ]);
         },
         implementation_candidates => \@cand,
       ),