File tree Expand file tree Collapse file tree 2 files changed +39
-1
lines changed Expand file tree Collapse file tree 2 files changed +39
-1
lines changed Original file line number Diff line number Diff line change @@ -95,8 +95,15 @@ public function process(File $phpcsFile, $stackPtr)
95
95
continue ;
96
96
}
97
97
98
+ // If there is a phpstan-ignore inline comment disregard it and continue searching backwards
99
+ // to find the function comment.
100
+ if ($ this ->tokenIsPhpstanComment ($ tokens [$ commentEnd ]) === true ) {
101
+ $ functionCodeStart = $ commentEnd ;
102
+ continue ;
103
+ }
104
+
98
105
break ;
99
- }
106
+ }//end for
100
107
101
108
// Constructor methods are exempt from requiring a docblock.
102
109
// @see https://www.drupal.org/project/coder/issues/3400560.
@@ -182,6 +189,20 @@ public function process(File $phpcsFile, $stackPtr)
182
189
}//end process()
183
190
184
191
192
+ /**
193
+ * Determine if a token is a '@phpstan-' control comment.
194
+ *
195
+ * @param array<mixed> $token The token to be checked.
196
+ *
197
+ * @return bool True if the token contains a @phpstan comment.
198
+ */
199
+ public static function tokenIsPhpstanComment ($ token )
200
+ {
201
+ return ($ token ['code ' ] === T_COMMENT && strpos ($ token ['content ' ], ' @phpstan- ' ) !== false );
202
+
203
+ }//end tokenIsPhpstanComment()
204
+
205
+
185
206
/**
186
207
* Process the return comment of this function comment.
187
208
*
Original file line number Diff line number Diff line change @@ -2003,3 +2003,20 @@ public function &get($instance_id) {
2003
2003
}
2004
2004
2005
2005
}
2006
+
2007
+ /**
2008
+ * Test for @phpstan-ignore-next-line.
2009
+ *
2010
+ * Coder issue https://www.drupal.org/project/coder/issues/3516489
2011
+ */
2012
+ // @phpstan-ignore-next-line missingType.return
2013
+ public function ignore_phpstan_comment () {
2014
+ }
2015
+
2016
+ /**
2017
+ * Test for @phpstan-ignore with attribute before.
2018
+ */
2019
+ #[ExampleAttribute('foo ' , 'bar ' )]
2020
+ // @phpstan-ignore-next-line missingType.return
2021
+ public function ignore_phpstan_comment_with_attribute_before () {
2022
+ }
You can’t perform that action at this time.
0 commit comments