protected static function makeInvalidArgumentException($data, $method, $container, $builder)
    {
        $type = gettype($data);
        if (is_object($data)) {
            $type = get_class($data);
        }

        return new InvalidArgumentException(
           'The argument for %s::%s must be instanceof %s, %s, null or array. %s given.',
            [
                self::class, $method, $container, $builder, $type,
            ]
        );
    }