@@ -39,26 +39,43 @@ public function processMemberVar(File $phpcsFile, $stackPtr)
39
39
{
40
40
$ tokens = $ phpcsFile ->getTokens ();
41
41
$ ignore = [
42
- T_PUBLIC ,
43
- T_PRIVATE ,
44
- T_PROTECTED ,
45
- T_VAR ,
46
- T_STATIC ,
47
- T_WHITESPACE ,
48
- T_STRING ,
49
- T_NS_SEPARATOR ,
50
- T_NULLABLE ,
51
- T_READONLY ,
52
- T_TYPE_UNION ,
53
- T_TYPE_INTERSECTION ,
54
- T_FALSE ,
55
- T_NULL ,
42
+ T_PUBLIC => T_PUBLIC ,
43
+ T_PRIVATE => T_PRIVATE ,
44
+ T_PROTECTED => T_PROTECTED ,
45
+ T_VAR => T_VAR ,
46
+ T_STATIC => T_STATIC ,
47
+ T_READONLY => T_READONLY ,
48
+ T_WHITESPACE => T_WHITESPACE ,
49
+ T_STRING => T_STRING ,
50
+ T_NS_SEPARATOR => T_NS_SEPARATOR ,
51
+ T_NAMESPACE => T_NAMESPACE ,
52
+ T_NULLABLE => T_NULLABLE ,
53
+ T_TYPE_UNION => T_TYPE_UNION ,
54
+ T_TYPE_INTERSECTION => T_TYPE_INTERSECTION ,
55
+ T_NULL => T_NULL ,
56
+ T_TRUE => T_TRUE ,
57
+ T_FALSE => T_FALSE ,
58
+ T_SELF => T_SELF ,
59
+ T_PARENT => T_PARENT ,
56
60
];
57
61
58
- $ commentEnd = $ phpcsFile ->findPrevious ($ ignore , ($ stackPtr - 1 ), null , true );
59
- if ($ commentEnd === false
60
- || ($ tokens [$ commentEnd ]['code ' ] !== T_DOC_COMMENT_CLOSE_TAG
61
- && $ tokens [$ commentEnd ]['code ' ] !== T_COMMENT )
62
+ for ($ commentEnd = ($ stackPtr - 1 ); $ commentEnd >= 0 ; $ commentEnd --) {
63
+ if (isset ($ ignore [$ tokens [$ commentEnd ]['code ' ]]) === true ) {
64
+ continue ;
65
+ }
66
+
67
+ if ($ tokens [$ commentEnd ]['code ' ] === T_ATTRIBUTE_END
68
+ && isset ($ tokens [$ commentEnd ]['attribute_opener ' ]) === true
69
+ ) {
70
+ $ commentEnd = $ tokens [$ commentEnd ]['attribute_opener ' ];
71
+ continue ;
72
+ }
73
+
74
+ break ;
75
+ }
76
+
77
+ if ($ tokens [$ commentEnd ]['code ' ] !== T_DOC_COMMENT_CLOSE_TAG
78
+ && $ tokens [$ commentEnd ]['code ' ] !== T_COMMENT
62
79
) {
63
80
$ phpcsFile ->addError ('Missing member variable doc comment ' , $ stackPtr , 'Missing ' );
64
81
return ;
0 commit comments