public function visitSet(SetCommand $x, Context $ctx)
 {
     $fieldName = $this->clientOracle->getFieldId($x->getFieldDeclClass(), $x->getField());
     if (is_null($fieldName)) {
         throw new IncompatibleRemoteServiceException('The client does not have field ' . $x->getField() . ' in type ' . $x->getFieldDeclClass() . getFullName());
     }
     // i[3].foo = bar
     $this->push($this->parent->makeBackRef(array_peek($this->stack)));
     $this->dot();
     $this->push($fieldName);
     $this->eq();
     $this->accept($x->getValue());
     return false;
 }