use VarRef for derived bindings
[scpubgit/DKit.git] / lib / DX / Op / Prop.pm
index dc4ae78..c2b494b 100644 (file)
@@ -1,5 +1,6 @@
 package DX::Op::Prop;
 
+use DX::VarRef;
 use Moo;
 
 with 'DX::Role::Op';
@@ -31,7 +32,8 @@ sub run {
     if ($value->can("has_${name}") and not $value->${\"has_${name}"}) {
       return $state->backtrack;
     }
-    return $state->bind_value($args{value}->id, $value->$name)
+    my $var_ref = DX::VarRef->new(var_id => $args{of}->id, derive => $name);
+    return $state->bind_value($args{value}->id, $var_ref)
                  ->add_dependencies($args{value}->id => $args{of}->id)
                  ->then($self->next);
   }