private function isExistingPropertyVirtual(string $propertyName): bool
    {
        assert($this->propertyExists($propertyName));
        return $this->properties[$propertyName] === self::PROPERTY_VIRTUAL;
    }