protected function parseDesignatorMethod(string $operator, string $signaturePattern, PointcutFilterComposite $pointcutFilterComposite): void
    {
        if (strpos($signaturePattern, '->') === false) {
            throw new InvalidPointcutExpressionException('Syntax error: "->" expected in "' . $signaturePattern . '", defined in ' . $this->sourceHint, 1169027339);
        }
        $methodVisibility = $this->getVisibilityFromSignaturePattern($signaturePattern);
        list($classPattern, $methodPattern) = explode('->', $signaturePattern, 2);
        if (strpos($methodPattern, '(') === false) {
            throw new InvalidPointcutExpressionException('Syntax error: "(" expected in "' . $methodPattern . '", defined in ' . $this->sourceHint, 1169144299);
        }

        $matches = [];
        preg_match(self::PATTERN_MATCHMETHODNAMEANDARGUMENTS, $methodPattern, $matches);

        $methodNamePattern = $matches['MethodName'];
        $methodArgumentPattern = $matches['MethodArguments'];
        $methodArgumentConstraints = $this->getArgumentConstraintsFromMethodArgumentsPattern($methodArgumentPattern);

        $classNameFilter = new PointcutClassNameFilter($classPattern);
        $classNameFilter->injectReflectionService($this->reflectionService);
        $methodNameFilter = new PointcutMethodNameFilter($methodNamePattern, $methodVisibility, $methodArgumentConstraints);
        /** @var LoggerInterface $logger */
        $logger = $this->objectManager->get(PsrLoggerFactoryInterface::class)->get('systemLogger');
        $methodNameFilter->injectLogger($logger);
        $methodNameFilter->injectReflectionService($this->reflectionService);

        if ($operator !== '&&') {
            $subComposite = new PointcutFilterComposite();
            $subComposite->addFilter('&&', $classNameFilter);
            $subComposite->addFilter('&&', $methodNameFilter);

            $pointcutFilterComposite->addFilter($operator, $subComposite);
        } else {
            $pointcutFilterComposite->addFilter('&&', $classNameFilter);
            $pointcutFilterComposite->addFilter('&&', $methodNameFilter);
        }
    }