Skip to content

Commit 681e729

Browse files
committed
Merge branch 2.1.x into 2.2.x
2 parents 376f52a + 311b589 commit 681e729

2 files changed

Lines changed: 90 additions & 0 deletions

File tree

tests/PHPStan/Rules/Functions/CallToFunctionParametersRuleTest.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2923,6 +2923,22 @@ public function testBug4090(): void
29232923
$this->analyse([__DIR__ . '/../../Analyser/nsrt/bug-4090.php'], []);
29242924
}
29252925

2926+
public function testBug2940(): void
2927+
{
2928+
$this->analyse([__DIR__ . '/data/bug-2940.php'], [
2929+
[
2930+
'Parameter #1 $input of function Bug2940\foo expects array{foo2: string, foo1: string, foobarbar1?: string, foobarbar2?: int, foobarbar3?: string, foobarbar4: string, foobarbar6?: string, foobarbar7: int}, array{xx: 3} given.',
2931+
25,
2932+
"Array does not have offset 'foo2'.",
2933+
],
2934+
[
2935+
'Parameter #1 $input of function Bug2940\foo2 expects array{foo2: string, foo1: string, foobarbar1?: string, foobarbar2?: int, foobarbar3?: string, foobarbar4: string, foobarbar6?: string, foobarbar7: int, ...}, array{xx: 3} given.',
2936+
73,
2937+
"Array does not have offset 'foo2'.",
2938+
],
2939+
]);
2940+
}
2941+
29262942
public function testBug11533(): void
29272943
{
29282944
$this->analyse([__DIR__ . '/data/bug-11533.php'], []);
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
<?php
2+
3+
namespace Bug2940;
4+
5+
/**
6+
* @param array{
7+
* foo2: string,
8+
* foo1: string,
9+
* foobarbar1?: string,
10+
* foobarbar2?: int,
11+
* foobarbar3?: string,
12+
* foobarbar4: string,
13+
* foobarbar6?: string,
14+
* foobarbar7: int
15+
* } $input
16+
*/
17+
function foo(array $input)
18+
{
19+
//stuff
20+
}
21+
22+
23+
function bar()
24+
{
25+
foo(['xx'=>3]);
26+
}
27+
28+
/**
29+
* @param array{
30+
* foo2: string,
31+
* foo1: string,
32+
* foobarbar1?: string,
33+
* foobarbar2?: int,
34+
* foobarbar3?: string,
35+
* foobarbar4: string,
36+
* foobarbar6?: string,
37+
* foobarbar7?: string,
38+
* foobarbar8?: string,
39+
* foobarbar9?: string,
40+
* foobarbar10?: string,
41+
* foobarbar11?: string,
42+
* foobarbar12?: string,
43+
* foobarbar13?: string,
44+
* foobarbar14?: string,
45+
* foobarbar15?: string,
46+
* foobarbar16?: string,
47+
* foobarbar17?: string,
48+
* foobarbar18?: string,
49+
* foobarbar19?: string,
50+
* foobarbar20?: string,
51+
* foobarbar21?: string,
52+
* foobarbar22?: string,
53+
* foobarbar23?: string,
54+
* foobarbar24?: string,
55+
* foobarbar25?: string,
56+
* foobarbar26?: string,
57+
* foobarbar27?: string,
58+
* foobarbar28?: string,
59+
* foobarbar29?: string,
60+
* foobarbar30?: string,
61+
* foobarbar31?: string,
62+
* foobarbar7: int
63+
* } $input
64+
*/
65+
function foo2(array $input)
66+
{
67+
//stuff
68+
}
69+
70+
71+
function bar2()
72+
{
73+
foo2(['xx'=>3]);
74+
}

0 commit comments

Comments
 (0)