@@ -708,58 +708,61 @@ private function getReferences(File $phpcsFile, int $openTagPointer): array
708708 }
709709
710710 $ parsedDocComment = DocCommentHelper::parseDocComment ($ phpcsFile , $ docCommentOpenPointer );
711- $ annotations = AnnotationHelper::getAnnotations ($ phpcsFile , $ docCommentOpenPointer );
712711
713- foreach ($ annotations as $ annotation ) {
714- /** @var list<IdentifierTypeNode> $identifierTypeNodes */
715- $ identifierTypeNodes = AnnotationHelper::getAnnotationNodesByType ($ annotation ->getNode (), IdentifierTypeNode::class);
712+ if ($ parsedDocComment !== null ) {
713+ $ annotations = AnnotationHelper::getAnnotations ($ phpcsFile , $ docCommentOpenPointer );
716714
717- foreach ($ identifierTypeNodes as $ typeHintNode ) {
718- $ typeHint = $ typeHintNode ->name ;
715+ foreach ($ annotations as $ annotation ) {
716+ /** @var list<IdentifierTypeNode> $identifierTypeNodes */
717+ $ identifierTypeNodes = AnnotationHelper::getAnnotationNodesByType ($ annotation ->getNode (), IdentifierTypeNode::class);
719718
720- $ lowercasedTypeHint = strtolower ($ typeHint );
721- if (
722- TypeHintHelper::isSimpleTypeHint ($ lowercasedTypeHint )
723- || TypeHintHelper::isSimpleUnofficialTypeHints ($ lowercasedTypeHint )
724- || !TypeHelper::isTypeName ($ typeHint )
725- ) {
726- continue ;
727- }
719+ foreach ($ identifierTypeNodes as $ typeHintNode ) {
720+ $ typeHint = $ typeHintNode ->name ;
728721
729- $ reference = new stdClass ();
730- $ reference ->source = self ::SOURCE_ANNOTATION ;
731- $ reference ->parsedDocComment = $ parsedDocComment ;
732- $ reference ->annotation = $ annotation ;
733- $ reference ->nameNode = $ typeHintNode ;
734- $ reference ->name = $ typeHint ;
735- $ reference ->type = ReferencedName::TYPE_CLASS ;
736- $ reference ->startPointer = $ annotation ->getStartPointer ();
737- $ reference ->endPointer = null ;
738- $ reference ->isClass = true ;
739- $ reference ->isConstant = false ;
740- $ reference ->isFunction = false ;
741-
742- $ references [] = $ reference ;
743- }
722+ $ lowercasedTypeHint = strtolower ($ typeHint );
723+ if (
724+ TypeHintHelper::isSimpleTypeHint ($ lowercasedTypeHint )
725+ || TypeHintHelper::isSimpleUnofficialTypeHints ($ lowercasedTypeHint )
726+ || !TypeHelper::isTypeName ($ typeHint )
727+ ) {
728+ continue ;
729+ }
730+
731+ $ reference = new stdClass ();
732+ $ reference ->source = self ::SOURCE_ANNOTATION ;
733+ $ reference ->parsedDocComment = $ parsedDocComment ;
734+ $ reference ->annotation = $ annotation ;
735+ $ reference ->nameNode = $ typeHintNode ;
736+ $ reference ->name = $ typeHint ;
737+ $ reference ->type = ReferencedName::TYPE_CLASS ;
738+ $ reference ->startPointer = $ annotation ->getStartPointer ();
739+ $ reference ->endPointer = null ;
740+ $ reference ->isClass = true ;
741+ $ reference ->isConstant = false ;
742+ $ reference ->isFunction = false ;
743+
744+ $ references [] = $ reference ;
745+ }
744746
745- /** @var list<ConstFetchNode> $constantFetchNodes */
746- $ constantFetchNodes = AnnotationHelper::getAnnotationNodesByType ($ annotation ->getNode (), ConstFetchNode::class);
747-
748- foreach ($ constantFetchNodes as $ constantFetchNode ) {
749- $ reference = new stdClass ();
750- $ reference ->source = self ::SOURCE_ANNOTATION_CONSTANT_FETCH ;
751- $ reference ->parsedDocComment = $ parsedDocComment ;
752- $ reference ->annotation = $ annotation ;
753- $ reference ->constantFetchNode = $ constantFetchNode ;
754- $ reference ->name = $ constantFetchNode ->className ;
755- $ reference ->type = ReferencedName::TYPE_CLASS ;
756- $ reference ->startPointer = $ annotation ->getStartPointer ();
757- $ reference ->endPointer = null ;
758- $ reference ->isClass = true ;
759- $ reference ->isConstant = false ;
760- $ reference ->isFunction = false ;
761-
762- $ references [] = $ reference ;
747+ /** @var list<ConstFetchNode> $constantFetchNodes */
748+ $ constantFetchNodes = AnnotationHelper::getAnnotationNodesByType ($ annotation ->getNode (), ConstFetchNode::class);
749+
750+ foreach ($ constantFetchNodes as $ constantFetchNode ) {
751+ $ reference = new stdClass ();
752+ $ reference ->source = self ::SOURCE_ANNOTATION_CONSTANT_FETCH ;
753+ $ reference ->parsedDocComment = $ parsedDocComment ;
754+ $ reference ->annotation = $ annotation ;
755+ $ reference ->constantFetchNode = $ constantFetchNode ;
756+ $ reference ->name = $ constantFetchNode ->className ;
757+ $ reference ->type = ReferencedName::TYPE_CLASS ;
758+ $ reference ->startPointer = $ annotation ->getStartPointer ();
759+ $ reference ->endPointer = null ;
760+ $ reference ->isClass = true ;
761+ $ reference ->isConstant = false ;
762+ $ reference ->isFunction = false ;
763+
764+ $ references [] = $ reference ;
765+ }
763766 }
764767 }
765768
0 commit comments