Skip to content

Commit 3ba204f

Browse files
committed
WIP introduce tstring() in place of impl. and expl. string casts
1 parent 41b2993 commit 3ba204f

File tree

1 file changed

+18
-11
lines changed

1 file changed

+18
-11
lines changed

src/CodeCoverage/Util/Tokenizer.php

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ private function tname(array $tokens, $idx) {
7676

7777
if ($tconst === T_REQUIRE || $tconst === T_REQUIRE_ONCE || $tconst === T_INCLUDE || $tconst === T_INCLUDE_ONCE) {
7878
if ($this->tconst(tokens[$idx+2]) === T_CONSTANT_ENCAPSED_STRING) {
79-
return trim($tokens[$idx+2], "'\"");
79+
return trim($this->tstring($tokens[$idx+2]), "'\"");
8080
}
8181
return null;
8282
}
@@ -88,10 +88,10 @@ private function tname(array $tokens, $idx) {
8888
$tclass = $this->tclass($token);
8989

9090
if ($tconst === T_STRING) {
91-
$name = (string)$token;
91+
$name = $this->tstring($token);
9292
break;
9393
} elseif ($tconst === T_STRING && $tclass === 'PHP_Token_AMPERSAND' && $this->tconst($tokens[$i+1]) === T_STRING) {
94-
$name = (string)$tokens[$i+1];
94+
$name = $this->tstring($tokens[$i+1]);
9595
break;
9696
} elseif ($tclass === 'PHP_Token_OPEN_BRACKET') {
9797
$name = 'anonymous function';
@@ -117,15 +117,15 @@ private function tname(array $tokens, $idx) {
117117
}
118118

119119
if ($tconst === T_CLASS || $tconst === T_TRAIT) {
120-
return (string) $tokens[$idx + 2];
120+
return $this->tstring($tokens[$idx + 2]);
121121
}
122122

123123
if ($tconst === T_NAMESPACE) {
124-
$namespace = (string)$tokens[$idx+2];
124+
$namespace = $this->tstring($tokens[$idx+2]);
125125

126126
for ($i = $idx + 3;; $i += 2) {
127127
if (isset($tokens[$i]) && $this->tconst($tokens[$i]) === T_NS_SEPARATOR) {
128-
$namespace .= '\\' . $tokens[$i+1];
128+
$namespace .= '\\' . $this->tstring($tokens[$i+1]);
129129
} else {
130130
break;
131131
}
@@ -135,6 +135,13 @@ private function tname(array $tokens, $idx) {
135135
}
136136
}
137137

138+
private function tstring($token) {
139+
if (is_array($token)) {
140+
return $token[1];
141+
}
142+
return $token;
143+
}
144+
138145
/**
139146
* @return string
140147
*/
@@ -166,10 +173,10 @@ private function getParent(array $tokens, $i) {
166173
$parent = false;
167174
if ($this->tconst($tokens[$i+4]) === T_EXTENDS) {
168175
$ci = $i + 6;
169-
$className = (string)$tokens[$ci];
176+
$className = $this->tstring($tokens[$ci]);
170177

171178
while (isset($tokens[$ci+1]) && !($this->tconst($tokens[$ci+1]) === T_WHITESPACE)) {
172-
$className .= (string)$tokens[++$ci];
179+
$className .= $this->tstring($tokens[++$ci]);
173180
}
174181

175182
$parent = $className;
@@ -191,7 +198,7 @@ private function getInterfaces(array $tokens, $i) {
191198
$ii++;
192199

193200
if ($this->tconst($tokens[$ii]) === T_STRING) {
194-
$interfaces[] = (string)$tokens[$ii];
201+
$interfaces[] = $this->tstring($tokens[$ii]);
195202
}
196203
}
197204
}
@@ -261,7 +268,7 @@ private function getDocblock(array $tokens, $idx) {
261268
break;
262269
}
263270

264-
return (string)$token;
271+
return $this->tstring($token);
265272
}
266273
}
267274

@@ -389,7 +396,7 @@ private function getSignature(array $tokens, $idx)
389396
while (isset($tokens[$i]) && $tclass = $this->tclass($tokens[$i]) &&
390397
$tclass !== 'PHP_Token_OPEN_CURLY' &&
391398
$tclass !== 'PHP_Token_SEMICOLON') {
392-
$signature .= $tokens[$i++];
399+
$signature .= $this->tstring($tokens[$i++]);
393400
}
394401

395402
$signature = trim($signature);

0 commit comments

Comments
 (0)