indirect via resolve_value method
[scpubgit/DKit.git] / lib / DX / Op / Prop.pm
index bacdf7c..dc4ae78 100644 (file)
@@ -14,10 +14,11 @@ sub run {
     $state, map +($_ => $self->$_), qw(of name value)
   );
   die "property name must be bound" unless $args{name}->is_bound;
-  my $name = $args{name}->bound_value;
+  my $name = $state->resolve_value($args{name});
   if ($args{of}->is_bound) {
     if ($args{value}->is_bound) {
-      if ($args{of}->bound_value->$name eq $args{value}->bound_value) {
+      if ($state->resolve_value($args{of})->$name
+          eq $state->resolve_value($args{value})) {
         return $state->add_dependencies(
                          $args{of}->id => $args{value}->id,
                          $args{value}->id => $args{of}->id,
@@ -26,7 +27,7 @@ sub run {
       }
       return $state->backtrack;
     }
-    my $value = $args{of}->bound_value;
+    my $value = $state->resolve_value($args{of});
     if ($value->can("has_${name}") and not $value->${\"has_${name}"}) {
       return $state->backtrack;
     }