Skip to content

Commit

Permalink
Merge pull request #9418 from ptomulik/issue-9401
Browse files Browse the repository at this point in the history
Fix #9401
  • Loading branch information
orklah committed Feb 27, 2023
2 parents 1a2909e + 69c5fd6 commit 5083e18
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/Psalm/Internal/TypeVisitor/TypeChecker.php
Expand Up @@ -348,6 +348,7 @@ public function checkTemplateParam(TTemplateParam $atomic): void
{
if ($this->prevent_template_covariance
&& strpos($atomic->defining_class, 'fn-') !== 0
&& $atomic->defining_class !== 'class-string-map'
) {
$codebase = $this->source->getCodebase();

Expand Down
22 changes: 22 additions & 0 deletions tests/Template/ClassStringMapTest.php
Expand Up @@ -83,6 +83,28 @@ function foo(array $arr) : void {
takesVariadic(...$arr);
}',
],
'assignClassStringMapInConstruct' => [
'code' => '<?php
class A {
/** @var class-string-map<T,T> */
private array $map;
/** @param class-string-map<T,T> $map */
public function __construct(array $map) {
$this->map = $map;
}
}',
],
'assignClassStringMapInMethod' => [
'code' => '<?php
class A {
/** @var class-string-map<T,T> */
private array $map = [];
/** @param class-string-map<T,T> $map */
public function set(array $map): void {
$this->map = $map;
}
}',
],
];
}

Expand Down

0 comments on commit 5083e18

Please sign in to comment.