New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Code Coverage (HTML Report) does not work correctly when Scoped PHAR is used #3751
Comments
@sebastianfeldmann I think the dynamic class names of php-token-stream that you referenced in #3750 (comment) may be to blame here. |
This is weird: Although we have <?php
namespace PHPUnit;
// ...
class PHP_Token_Stream_CachingFactory @theofidry Do we need to use a different syntax to configure |
Even if I explicitly configure each and every class of php-token-stream using its name they are still prefixed. diff --git a/build/scoper.inc.php b/build/scoper.inc.php
index 827dbbece..ef590f936 100644
--- a/build/scoper.inc.php
+++ b/build/scoper.inc.php
@@ -12,7 +12,178 @@
'whitelist' => [
'PHPUnit\*',
'SebastianBergmann\CodeCoverage\*',
- 'PHP_Token*',
'Prophecy\*',
+ 'PHP_Token',
+ 'PHP_TokenWithScope',
+ 'PHP_TokenWithScopeAndVisibility',
+ 'PHP_Token_ABSTRACT',
+ 'PHP_Token_AMPERSAND',
+ 'PHP_Token_AND_EQUAL',
+ 'PHP_Token_ARRAY',
+ 'PHP_Token_ARRAY_CAST',
+ 'PHP_Token_AS',
+ 'PHP_Token_AT',
+ 'PHP_Token_BACKTICK',
+ 'PHP_Token_BAD_CHARACTER',
+ 'PHP_Token_BOOLEAN_AND',
+ 'PHP_Token_BOOLEAN_OR',
+ 'PHP_Token_BOOL_CAST',
+ 'PHP_Token_BREAK',
+ 'PHP_Token_CALLABLE',
+ 'PHP_Token_CARET',
+ 'PHP_Token_CASE',
+ 'PHP_Token_CATCH',
+ 'PHP_Token_CHARACTER',
+ 'PHP_Token_CLASS',
+ 'PHP_Token_CLASS_C',
+ 'PHP_Token_CLASS_NAME_CONSTANT',
+ 'PHP_Token_CLONE',
+ 'PHP_Token_CLOSE_BRACKET',
+ 'PHP_Token_CLOSE_CURLY',
+ 'PHP_Token_CLOSE_SQUARE',
+ 'PHP_Token_CLOSE_TAG',
+ 'PHP_Token_COALESCE',
+ 'PHP_Token_COLON',
+ 'PHP_Token_COMMA',
+ 'PHP_Token_COMMENT',
+ 'PHP_Token_CONCAT_EQUAL',
+ 'PHP_Token_CONST',
+ 'PHP_Token_CONSTANT_ENCAPSED_STRING',
+ 'PHP_Token_CONTINUE',
+ 'PHP_Token_CURLY_OPEN',
+ 'PHP_Token_DEC',
+ 'PHP_Token_DECLARE',
+ 'PHP_Token_DEFAULT',
+ 'PHP_Token_DIR',
+ 'PHP_Token_DIV',
+ 'PHP_Token_DIV_EQUAL',
+ 'PHP_Token_DNUMBER',
+ 'PHP_Token_DO',
+ 'PHP_Token_DOC_COMMENT',
+ 'PHP_Token_DOLLAR',
+ 'PHP_Token_DOLLAR_OPEN_CURLY_BRACES',
+ 'PHP_Token_DOT',
+ 'PHP_Token_DOUBLE_ARROW',
+ 'PHP_Token_DOUBLE_CAST',
+ 'PHP_Token_DOUBLE_COLON',
+ 'PHP_Token_DOUBLE_QUOTES',
+ 'PHP_Token_ECHO',
+ 'PHP_Token_ELLIPSIS',
+ 'PHP_Token_ELSE',
+ 'PHP_Token_ELSEIF',
+ 'PHP_Token_EMPTY',
+ 'PHP_Token_ENCAPSED_AND_WHITESPACE',
+ 'PHP_Token_ENDDECLARE',
+ 'PHP_Token_ENDFOR',
+ 'PHP_Token_ENDFOREACH',
+ 'PHP_Token_ENDIF',
+ 'PHP_Token_ENDSWITCH',
+ 'PHP_Token_ENDWHILE',
+ 'PHP_Token_END_HEREDOC',
+ 'PHP_Token_EQUAL',
+ 'PHP_Token_EVAL',
+ 'PHP_Token_EXCLAMATION_MARK',
+ 'PHP_Token_EXIT',
+ 'PHP_Token_EXTENDS',
+ 'PHP_Token_FILE',
+ 'PHP_Token_FINAL',
+ 'PHP_Token_FINALLY',
+ 'PHP_Token_FOR',
+ 'PHP_Token_FOREACH',
+ 'PHP_Token_FUNCTION',
+ 'PHP_Token_FUNC_C',
+ 'PHP_Token_GLOBAL',
+ 'PHP_Token_GOTO',
+ 'PHP_Token_GT',
+ 'PHP_Token_HALT_COMPILER',
+ 'PHP_Token_IF',
+ 'PHP_Token_IMPLEMENTS',
+ 'PHP_Token_INC',
+ 'PHP_Token_INCLUDE',
+ 'PHP_Token_INCLUDE_ONCE',
+ 'PHP_Token_INLINE_HTML',
+ 'PHP_Token_INSTANCEOF',
+ 'PHP_Token_INSTEADOF',
+ 'PHP_Token_INTERFACE',
+ 'PHP_Token_INT_CAST',
+ 'PHP_Token_ISSET',
+ 'PHP_Token_IS_EQUAL',
+ 'PHP_Token_IS_GREATER_OR_EQUAL',
+ 'PHP_Token_IS_IDENTICAL',
+ 'PHP_Token_IS_NOT_EQUAL',
+ 'PHP_Token_IS_NOT_IDENTICAL',
+ 'PHP_Token_IS_SMALLER_OR_EQUAL',
+ 'PHP_Token_Includes',
+ 'PHP_Token_LINE',
+ 'PHP_Token_LIST',
+ 'PHP_Token_LNUMBER',
+ 'PHP_Token_LOGICAL_AND',
+ 'PHP_Token_LOGICAL_OR',
+ 'PHP_Token_LOGICAL_XOR',
+ 'PHP_Token_LT',
+ 'PHP_Token_METHOD_C',
+ 'PHP_Token_MINUS',
+ 'PHP_Token_MINUS_EQUAL',
+ 'PHP_Token_MOD_EQUAL',
+ 'PHP_Token_MULT',
+ 'PHP_Token_MUL_EQUAL',
+ 'PHP_Token_NAMESPACE',
+ 'PHP_Token_NEW',
+ 'PHP_Token_NS_C',
+ 'PHP_Token_NS_SEPARATOR',
+ 'PHP_Token_NUM_STRING',
+ 'PHP_Token_OBJECT_CAST',
+ 'PHP_Token_OBJECT_OPERATOR',
+ 'PHP_Token_OPEN_BRACKET',
+ 'PHP_Token_OPEN_CURLY',
+ 'PHP_Token_OPEN_SQUARE',
+ 'PHP_Token_OPEN_TAG',
+ 'PHP_Token_OPEN_TAG_WITH_ECHO',
+ 'PHP_Token_OR_EQUAL',
+ 'PHP_Token_PAAMAYIM_NEKUDOTAYIM',
+ 'PHP_Token_PERCENT',
+ 'PHP_Token_PIPE',
+ 'PHP_Token_PLUS',
+ 'PHP_Token_PLUS_EQUAL',
+ 'PHP_Token_POW',
+ 'PHP_Token_POW_EQUAL',
+ 'PHP_Token_PRINT',
+ 'PHP_Token_PRIVATE',
+ 'PHP_Token_PROTECTED',
+ 'PHP_Token_PUBLIC',
+ 'PHP_Token_QUESTION_MARK',
+ 'PHP_Token_REQUIRE',
+ 'PHP_Token_REQUIRE_ONCE',
+ 'PHP_Token_RETURN',
+ 'PHP_Token_SEMICOLON',
+ 'PHP_Token_SL',
+ 'PHP_Token_SL_EQUAL',
+ 'PHP_Token_SPACESHIP',
+ 'PHP_Token_SR',
+ 'PHP_Token_SR_EQUAL',
+ 'PHP_Token_START_HEREDOC',
+ 'PHP_Token_STATIC',
+ 'PHP_Token_STRING',
+ 'PHP_Token_STRING_CAST',
+ 'PHP_Token_STRING_VARNAME',
+ 'PHP_Token_SWITCH',
+ 'PHP_Token_Stream',
+ 'PHP_Token_Stream_CachingFactory',
+ 'PHP_Token_THROW',
+ 'PHP_Token_TILDE',
+ 'PHP_Token_TRAIT',
+ 'PHP_Token_TRAIT_C',
+ 'PHP_Token_TRY',
+ 'PHP_Token_UNSET',
+ 'PHP_Token_UNSET_CAST',
+ 'PHP_Token_USE',
+ 'PHP_Token_USE_FUNCTION',
+ 'PHP_Token_VAR',
+ 'PHP_Token_VARIABLE',
+ 'PHP_Token_WHILE',
+ 'PHP_Token_WHITESPACE',
+ 'PHP_Token_XOR_EQUAL',
+ 'PHP_Token_YIELD',
+ 'PHP_Token_YIELD_FROM',
],
]; |
Forgot about how whitelisting is implemented and looked at this wrong. |
This is indeed related to php-token-stream which has code like so foreach ($this->tokens as $token) {
switch (get_class($token)) {
case 'PHP_Token_HALT_COMPILER': With the scoped |
Solved by sebastianbergmann/php-token-stream@2579e43. |
Reproducing example
Actual
Expected
The text was updated successfully, but these errors were encountered: