public function __set($name, $value)
{
if (\array_key_exists($name, $this->__properties)) {
/** @var ClassFieldAccess $fieldAccess */
$fieldAccess = self::$__joinPoints["prop:{$name}"];
$fieldAccess->ensureScopeRule();
$this->__properties[$name] = $fieldAccess->__invoke($this, ClassFieldAccess::WRITE, $this->__properties[$name], $value);
} elseif (\method_exists(\get_parent_class(), __FUNCTION__)) {
parent::__set($name, $value);
} else {
$this->{$name} = $value;
}
}