Skip to content
This repository was archived by the owner on Nov 21, 2019. It is now read-only.

Commit 0e604fe

Browse files
Generic types must be used (#43)
1 parent 154b18e commit 0e604fe

File tree

5 files changed

+303
-0
lines changed

5 files changed

+303
-0
lines changed

src/Libero/ruleset.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@
101101
<property name="spacesCountAroundEqualsSign" value="0"/>
102102
</properties>
103103
</rule>
104+
<rule ref="SlevomatCodingStandard.TypeHints.DisallowArrayTypeHintSyntax"/>
104105
<rule ref="SlevomatCodingStandard.TypeHints.NullableTypeForNullDefaultValue"/>
105106
<rule ref="SlevomatCodingStandard.TypeHints.ParameterTypeHintSpacing"/>
106107
<rule ref="SlevomatCodingStandard.TypeHints.ReturnTypeHintSpacing">

tests/cases/classes/method-generics

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
---DESCRIPTION---
2+
Generic types must be used
3+
---FILENAME---
4+
Foo.php
5+
---CONTENTS---
6+
<?php
7+
8+
declare(strict_types=1);
9+
10+
namespace Vendor;
11+
12+
class Foo
13+
{
14+
/** @var string[] */
15+
public $foo;
16+
17+
/** @var iterable|string[] */
18+
public $bar;
19+
20+
/** @var ArrayObject<string> */
21+
public $baz;
22+
23+
/**
24+
* @param string[] $quux
25+
* @return string[]
26+
*/
27+
public function qux($quux)
28+
{
29+
}
30+
31+
/**
32+
* @param iterable|string[] $corge
33+
* @return iterable|string[]
34+
*/
35+
public function quuz($corge)
36+
{
37+
}
38+
39+
/**
40+
* @param ArrayObject<string> $garply
41+
* @return ArrayObject<string>
42+
*/
43+
public function grault($garply)
44+
{
45+
}
46+
}
47+
48+
---FIXED---
49+
<?php
50+
51+
declare(strict_types=1);
52+
53+
namespace Vendor;
54+
55+
class Foo
56+
{
57+
/** @var array<string> */
58+
public $foo;
59+
60+
/** @var iterable<string> */
61+
public $bar;
62+
63+
/** @var ArrayObject<string> */
64+
public $baz;
65+
66+
/**
67+
* @param array<string> $quux
68+
* @return array<string>
69+
*/
70+
public function qux($quux)
71+
{
72+
}
73+
74+
/**
75+
* @param iterable<string> $corge
76+
* @return iterable<string>
77+
*/
78+
public function quuz($corge)
79+
{
80+
}
81+
82+
/**
83+
* @param ArrayObject<string> $garply
84+
* @return ArrayObject<string>
85+
*/
86+
public function grault($garply)
87+
{
88+
}
89+
}
90+
91+
---

tests/cases/functions/generics

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
---DESCRIPTION---
2+
Generic types must be used
3+
---FILENAME---
4+
Foo.php
5+
---CONTENTS---
6+
<?php
7+
8+
declare(strict_types=1);
9+
10+
/**
11+
* @param string[] $bar
12+
* @return string[]
13+
*/
14+
function foo($bar)
15+
{
16+
}
17+
18+
/**
19+
* @param iterable|string[] $qux
20+
* @return iterable|string[]
21+
*/
22+
function baz($qux)
23+
{
24+
}
25+
26+
/**
27+
* @param ArrayObject<string> $quuz
28+
* @return ArrayObject<string>
29+
*/
30+
function quux($quuz)
31+
{
32+
}
33+
34+
---FIXED---
35+
<?php
36+
37+
declare(strict_types=1);
38+
39+
/**
40+
* @param array<string> $bar
41+
* @return array<string>
42+
*/
43+
function foo($bar)
44+
{
45+
}
46+
47+
/**
48+
* @param iterable<string> $qux
49+
* @return iterable<string>
50+
*/
51+
function baz($qux)
52+
{
53+
}
54+
55+
/**
56+
* @param ArrayObject<string> $quuz
57+
* @return ArrayObject<string>
58+
*/
59+
function quux($quuz)
60+
{
61+
}
62+
63+
---
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
---DESCRIPTION---
2+
Generic types must be used
3+
---FILENAME---
4+
Foo.php
5+
---CONTENTS---
6+
<?php
7+
8+
declare(strict_types=1);
9+
10+
namespace Vendor;
11+
12+
interface Foo
13+
{
14+
/**
15+
* @param string[] $baz
16+
* @return string[]
17+
*/
18+
public function bar($baz);
19+
20+
/**
21+
* @param iterable|string[] $quux
22+
* @return iterable|string[]
23+
*/
24+
public function qux($quux);
25+
26+
/**
27+
* @param ArrayObject<string> $corge
28+
* @return ArrayObject<string>
29+
*/
30+
public function quuz($corge);
31+
}
32+
33+
---FIXED---
34+
<?php
35+
36+
declare(strict_types=1);
37+
38+
namespace Vendor;
39+
40+
interface Foo
41+
{
42+
/**
43+
* @param array<string> $baz
44+
* @return array<string>
45+
*/
46+
public function bar($baz);
47+
48+
/**
49+
* @param iterable<string> $quux
50+
* @return iterable<string>
51+
*/
52+
public function qux($quux);
53+
54+
/**
55+
* @param ArrayObject<string> $corge
56+
* @return ArrayObject<string>
57+
*/
58+
public function quuz($corge);
59+
}
60+
61+
---

tests/cases/trait/method-generics

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
---DESCRIPTION---
2+
Generic types must be used
3+
---FILENAME---
4+
Foo.php
5+
---CONTENTS---
6+
<?php
7+
8+
declare(strict_types=1);
9+
10+
namespace Vendor;
11+
12+
trait Foo
13+
{
14+
/** @var string[] */
15+
public $foo;
16+
17+
/** @var iterable|string[] */
18+
public $bar;
19+
20+
/** @var ArrayObject<string> */
21+
public $baz;
22+
23+
/**
24+
* @param string[] $quux
25+
* @return string[]
26+
*/
27+
public function qux($quux)
28+
{
29+
}
30+
31+
/**
32+
* @param iterable|string[] $corge
33+
* @return iterable|string[]
34+
*/
35+
abstract public function quuz($corge);
36+
37+
/**
38+
* @param ArrayObject<string> $garply
39+
* @return ArrayObject<string>
40+
*/
41+
public function grault($garply)
42+
{
43+
}
44+
}
45+
46+
---FIXED---
47+
<?php
48+
49+
declare(strict_types=1);
50+
51+
namespace Vendor;
52+
53+
trait Foo
54+
{
55+
/** @var array<string> */
56+
public $foo;
57+
58+
/** @var iterable<string> */
59+
public $bar;
60+
61+
/** @var ArrayObject<string> */
62+
public $baz;
63+
64+
/**
65+
* @param array<string> $quux
66+
* @return array<string>
67+
*/
68+
public function qux($quux)
69+
{
70+
}
71+
72+
/**
73+
* @param iterable<string> $corge
74+
* @return iterable<string>
75+
*/
76+
abstract public function quuz($corge);
77+
78+
/**
79+
* @param ArrayObject<string> $garply
80+
* @return ArrayObject<string>
81+
*/
82+
public function grault($garply)
83+
{
84+
}
85+
}
86+
87+
---

0 commit comments

Comments
 (0)