Skip to content
Snippets Groups Projects
Verified Commit 3adb7e22 authored by Alex Pott's avatar Alex Pott
Browse files

Issue #3440170 by mxr576, quietone, smustgrave, longwave, larowlan: Forked...

Issue #3440170 by mxr576, quietone, smustgrave, longwave, larowlan: Forked DocParser incorrectly parses ::class notations

(cherry picked from commit f1f27ff7)
parent fb746dae
No related branches found
No related tags found
26 merge requests!122353526426-warning-for-missing,!12212Issue #3445525 by alexpott, japerry, catch, mglaman, longwave: Add BC layer...,!11958Issue #3490507 by alexpott, smustgrave: Fix bogus mocking in...,!11769Issue #3517987: Add option to contextual filters to encode slashes in query parameter.,!11185Issue #3477324 by andypost, alexpott: Fix usage of str_getcsv() and fgetcsv() for PHP 8.4,!10602Issue #3438769 by vinmayiswamy, antonnavi, michelle, amateescu: Sub workspace does not clear,!10301Issue #3469309 by mstrelan, smustgrave, moshe weitzman: Use one-time login...,!10187Issue #3487488 by dakwamine: ExtensionMimeTypeGuesser::guessMimeType must support file names with "0" (zero) like foo.0.zip,!9944Issue #3483353: Consider making the createCopy config action optionally fail...,!9929Issue #3445469 by pooja_sharma, smustgrave: Add additional test coverage for...,!9787Resolve issue 3479427 - bootstrap barrio issue under Windows,!9742Issue #3463908 by catch, quietone: Split OptionsFieldUiTest into two,!9526Issue #3458177 by mondrake, catch, quietone, godotislate, longwave, larowlan,...,!8738Issue #3424162 by camilledavis, dineshkumarbollu, smustgrave: Claro...,!8704Make greek characters available in ckeditor5,!8597Draft: Issue #3442259 by catch, quietone, dww: Reduce time of Migrate Upgrade tests...,!8533Issue #3446962 by kim.pepper: Remove incorrectly added...,!8517Issue #3443748 by NexusNovaz, smustgrave: Testcase creates false positive,!8325Update file Sort.php,!8095Expose document root on install,!7930Resolve #3427374 "Taxonomytid viewsargumentdefault plugin",!7627Issue #3439440 by nicxvan, Binoli Lalani, longwave: Remove country support from DateFormatter,!7445Issue #3440169: When using drupalGet(), provide an associative array for $headers,!6502Draft: Resolve #2938524 "Plach testing issue",!38582585169-10.1.x,!3226Issue #2987537: Custom menu link entity type should not declare "bundle" entity key
Pipeline #150268 passed with warnings
Pipeline: drupal

#150279

    ......@@ -937,10 +937,16 @@ private function Constant()
    }
    }
    // checks if identifier ends with ::class, \strlen('::class') === 7
    $classPos = stripos($identifier, '::class');
    if ($classPos === strlen($identifier) - 7) {
    return substr($identifier, 0, $classPos);
    /**
    * Checks if identifier ends with ::class and remove the leading backslash if it exists.
    */
    if ($this->identifierEndsWithClassConstant($identifier) && ! $this->identifierStartsWithBackslash($identifier))
    {
    return substr($identifier, 0, $this->getClassConstantPositionInIdentifier($identifier));
    }
    if ($this->identifierEndsWithClassConstant($identifier) && $this->identifierStartsWithBackslash($identifier))
    {
    return substr($identifier, 1, $this->getClassConstantPositionInIdentifier($identifier) - 1);
    }
    if (!defined($identifier)) {
    ......@@ -950,6 +956,24 @@ private function Constant()
    return constant($identifier);
    }
    private function identifierStartsWithBackslash(string $identifier) : bool
    {
    return '\\' === $identifier[0];
    }
    private function identifierEndsWithClassConstant(string $identifier) : bool
    {
    return $this->getClassConstantPositionInIdentifier($identifier) === strlen($identifier) - strlen('::class');
    }
    /**
    * @return int|false
    */
    private function getClassConstantPositionInIdentifier(string $identifier)
    {
    return stripos($identifier, '::class');
    }
    /**
    * Identifier ::= string
    *
    ......
    ......@@ -766,6 +766,10 @@ public static function getConstantsProvider()
    '@AnnotationWithConstants(PHP_EOL)',
    PHP_EOL
    );
    $provider[] = array(
    '@AnnotationWithConstants(\SimpleXMLElement::class)',
    \SimpleXMLElement::class
    );
    $provider[] = array(
    '@AnnotationWithConstants(AnnotationWithConstants::INTEGER)',
    AnnotationWithConstants::INTEGER
    ......
    0% Loading or .
    You are about to add 0 people to the discussion. Proceed with caution.
    Please register or to comment