Skip to content

Commit 9660b8d

Browse files
committed
PostInc of literal-string leads to literal-string
1 parent 9cf20f3 commit 9660b8d

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

src/Analyser/MutatingScope.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1846,6 +1846,9 @@ private function resolveType(Expr $node): Type
18461846

18471847
$stringType = new StringType();
18481848
if ($stringType->isSuperTypeOf($varType)->yes()) {
1849+
if ($varType->isLiteralString()->yes()) {
1850+
return new IntersectionType([$stringType, new AccessoryLiteralStringType()]);
1851+
}
18491852
return $stringType;
18501853
}
18511854

tests/PHPStan/Analyser/data/literal-string.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,14 @@ public function doFoo($literalString, string $string)
3939
assertType('string', implode($literalString, [$string]));
4040
}
4141

42+
/** @param literal-string $literalString */
43+
public function increment($literalString, string $string)
44+
{
45+
$literalString++;
46+
assertType('literal-string', $literalString);
47+
48+
$string++;
49+
assertType('string', $string);
50+
}
51+
4252
}

0 commit comments

Comments
 (0)