diff --git a/src/Libero/ruleset.xml b/src/Libero/ruleset.xml index b05d421..a834cfd 100644 --- a/src/Libero/ruleset.xml +++ b/src/Libero/ruleset.xml @@ -101,6 +101,7 @@ + diff --git a/tests/cases/classes/method-generics b/tests/cases/classes/method-generics new file mode 100644 index 0000000..2ae7ed7 --- /dev/null +++ b/tests/cases/classes/method-generics @@ -0,0 +1,91 @@ +---DESCRIPTION--- +Generic types must be used +---FILENAME--- +Foo.php +---CONTENTS--- + */ + public $baz; + + /** + * @param string[] $quux + * @return string[] + */ + public function qux($quux) + { + } + + /** + * @param iterable|string[] $corge + * @return iterable|string[] + */ + public function quuz($corge) + { + } + + /** + * @param ArrayObject $garply + * @return ArrayObject + */ + public function grault($garply) + { + } +} + +---FIXED--- + */ + public $foo; + + /** @var iterable */ + public $bar; + + /** @var ArrayObject */ + public $baz; + + /** + * @param array $quux + * @return array + */ + public function qux($quux) + { + } + + /** + * @param iterable $corge + * @return iterable + */ + public function quuz($corge) + { + } + + /** + * @param ArrayObject $garply + * @return ArrayObject + */ + public function grault($garply) + { + } +} + +--- diff --git a/tests/cases/functions/generics b/tests/cases/functions/generics new file mode 100644 index 0000000..8039939 --- /dev/null +++ b/tests/cases/functions/generics @@ -0,0 +1,63 @@ +---DESCRIPTION--- +Generic types must be used +---FILENAME--- +Foo.php +---CONTENTS--- + $quuz + * @return ArrayObject + */ +function quux($quuz) +{ +} + +---FIXED--- + $bar + * @return array + */ +function foo($bar) +{ +} + +/** + * @param iterable $qux + * @return iterable + */ +function baz($qux) +{ +} + +/** + * @param ArrayObject $quuz + * @return ArrayObject + */ +function quux($quuz) +{ +} + +--- diff --git a/tests/cases/interfaces/method-generics b/tests/cases/interfaces/method-generics new file mode 100644 index 0000000..f2b0c78 --- /dev/null +++ b/tests/cases/interfaces/method-generics @@ -0,0 +1,61 @@ +---DESCRIPTION--- +Generic types must be used +---FILENAME--- +Foo.php +---CONTENTS--- + $corge + * @return ArrayObject + */ + public function quuz($corge); +} + +---FIXED--- + $baz + * @return array + */ + public function bar($baz); + + /** + * @param iterable $quux + * @return iterable + */ + public function qux($quux); + + /** + * @param ArrayObject $corge + * @return ArrayObject + */ + public function quuz($corge); +} + +--- diff --git a/tests/cases/trait/method-generics b/tests/cases/trait/method-generics new file mode 100644 index 0000000..90d025d --- /dev/null +++ b/tests/cases/trait/method-generics @@ -0,0 +1,87 @@ +---DESCRIPTION--- +Generic types must be used +---FILENAME--- +Foo.php +---CONTENTS--- + */ + public $baz; + + /** + * @param string[] $quux + * @return string[] + */ + public function qux($quux) + { + } + + /** + * @param iterable|string[] $corge + * @return iterable|string[] + */ + abstract public function quuz($corge); + + /** + * @param ArrayObject $garply + * @return ArrayObject + */ + public function grault($garply) + { + } +} + +---FIXED--- + */ + public $foo; + + /** @var iterable */ + public $bar; + + /** @var ArrayObject */ + public $baz; + + /** + * @param array $quux + * @return array + */ + public function qux($quux) + { + } + + /** + * @param iterable $corge + * @return iterable + */ + abstract public function quuz($corge); + + /** + * @param ArrayObject $garply + * @return ArrayObject + */ + public function grault($garply) + { + } +} + +---