@@ -115,6 +115,12 @@ class PHP_CodeCoverage
115115 */
116116 private $ ignoredLines = array ();
117117
118+ /**
119+ * To track lines which have open brackets/close brackets + code
120+ * @var array
121+ */
122+ private $ doNotIgnoreLines = array ();
123+
118124 /**
119125 * Test data.
120126 *
@@ -671,6 +677,10 @@ private function getLinesToBeIgnored($filename)
671677
672678 if (!isset ($ this ->ignoredLines [$ filename ])) {
673679 $ this ->ignoredLines [$ filename ] = array ();
680+ //[TARLABS] Added below 2 lines for
681+ $ this ->doNotIgnoreLines [$ filename ] = array ();
682+ $ lastLineIgnoredForStartOrEndPhpTag = 0 ;
683+
674684 $ ignore = false ;
675685 $ stop = false ;
676686 $ lines = file ($ filename );
@@ -790,11 +800,26 @@ private function getLinesToBeIgnored($filename)
790800 $ this ->ignoredLines [$ filename ][] = $ token ->getEndLine ();
791801
792802 // Intentional fallthrough
803+ case 'PHP_Token_NAMESPACE ' :
804+ $ this ->ignoredLines [$ filename ][] = $ token ->getEndLine ();
805+ // Intentional fallthrough
806+ case 'PHP_Token_USE ' :
807+ $ this ->ignoredLines [$ filename ][] = $ token ->getLine ();
808+ break ;
793809 case 'PHP_Token_OPEN_TAG ' :
794810 case 'PHP_Token_CLOSE_TAG ' :
795- case ' PHP_Token_USE ' :
811+ $ lastLineIgnoredForStartOrEndPhpTag = $ token -> getLine ();
796812 $ this ->ignoredLines [$ filename ][] = $ token ->getLine ();
797813 break ;
814+ case 'PHP_Token_WHITESPACE ' :
815+ break ;
816+ default :
817+ if ($ lastLineIgnoredForStartOrEndPhpTag == $ token ->getLine ())
818+ {
819+ //This line possibly has some code and cannot be ignored
820+ $ this ->doNotIgnoreLines [$ filename ][] = $ token ->getLine ();
821+ }
822+ break ;
798823 }
799824
800825 if ($ ignore ) {
@@ -807,12 +832,13 @@ private function getLinesToBeIgnored($filename)
807832 }
808833 }
809834
835+
810836 $ this ->ignoredLines [$ filename ][] = $ numLines + 1 ;
837+ $ this ->doNotIgnoreLines [$ filename ] = array_unique ($ this ->doNotIgnoreLines [$ filename ]);
811838
812839 $ this ->ignoredLines [$ filename ] = array_unique (
813- $ this ->ignoredLines [$ filename ]
840+ array_diff ( $ this ->ignoredLines [$ filename ], $ this -> doNotIgnoreLines [ $ filename ])
814841 );
815-
816842 sort ($ this ->ignoredLines [$ filename ]);
817843 }
818844
@@ -896,4 +922,4 @@ private function getAllowedLines(array $linesToBeCovered, array $linesToBeUsed)
896922
897923 return $ allowedLines ;
898924 }
899- }
925+ }
0 commit comments