Skip to content
This repository was archived by the owner on Nov 21, 2019. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/Libero/ruleset.xml
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@
<property name="spacesCountAroundEqualsSign" value="0"/>
</properties>
</rule>
<rule ref="SlevomatCodingStandard.TypeHints.DisallowArrayTypeHintSyntax"/>
<rule ref="SlevomatCodingStandard.TypeHints.NullableTypeForNullDefaultValue"/>
<rule ref="SlevomatCodingStandard.TypeHints.ParameterTypeHintSpacing"/>
<rule ref="SlevomatCodingStandard.TypeHints.ReturnTypeHintSpacing">
Expand Down
91 changes: 91 additions & 0 deletions tests/cases/classes/method-generics
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
---DESCRIPTION---
Generic types must be used
---FILENAME---
Foo.php
---CONTENTS---
<?php

declare(strict_types=1);

namespace Vendor;

class Foo
{
/** @var string[] */
public $foo;

/** @var iterable|string[] */
public $bar;

/** @var ArrayObject<string> */
public $baz;

/**
* @param string[] $quux
* @return string[]
*/
public function qux($quux)
{
}

/**
* @param iterable|string[] $corge
* @return iterable|string[]
*/
public function quuz($corge)
{
}

/**
* @param ArrayObject<string> $garply
* @return ArrayObject<string>
*/
public function grault($garply)
{
}
}

---FIXED---
<?php

declare(strict_types=1);

namespace Vendor;

class Foo
{
/** @var array<string> */
public $foo;

/** @var iterable<string> */
public $bar;

/** @var ArrayObject<string> */
public $baz;

/**
* @param array<string> $quux
* @return array<string>
*/
public function qux($quux)
{
}

/**
* @param iterable<string> $corge

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the smell of Java in the morning

* @return iterable<string>
*/
public function quuz($corge)
{
}

/**
* @param ArrayObject<string> $garply
* @return ArrayObject<string>
*/
public function grault($garply)
{
}
}

---
63 changes: 63 additions & 0 deletions tests/cases/functions/generics
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---DESCRIPTION---
Generic types must be used
---FILENAME---
Foo.php
---CONTENTS---
<?php

declare(strict_types=1);

/**
* @param string[] $bar
* @return string[]
*/
function foo($bar)
{
}

/**
* @param iterable|string[] $qux
* @return iterable|string[]
*/
function baz($qux)
{
}

/**
* @param ArrayObject<string> $quuz
* @return ArrayObject<string>
*/
function quux($quuz)
{
}

---FIXED---
<?php

declare(strict_types=1);

/**
* @param array<string> $bar
* @return array<string>
*/
function foo($bar)
{
}

/**
* @param iterable<string> $qux
* @return iterable<string>
*/
function baz($qux)
{
}

/**
* @param ArrayObject<string> $quuz
* @return ArrayObject<string>
*/
function quux($quuz)
{
}

---
61 changes: 61 additions & 0 deletions tests/cases/interfaces/method-generics
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---DESCRIPTION---
Generic types must be used
---FILENAME---
Foo.php
---CONTENTS---
<?php

declare(strict_types=1);

namespace Vendor;

interface Foo
{
/**
* @param string[] $baz
* @return string[]
*/
public function bar($baz);

/**
* @param iterable|string[] $quux
* @return iterable|string[]
*/
public function qux($quux);

/**
* @param ArrayObject<string> $corge
* @return ArrayObject<string>
*/
public function quuz($corge);
}

---FIXED---
<?php

declare(strict_types=1);

namespace Vendor;

interface Foo
{
/**
* @param array<string> $baz
* @return array<string>
*/
public function bar($baz);

/**
* @param iterable<string> $quux
* @return iterable<string>
*/
public function qux($quux);

/**
* @param ArrayObject<string> $corge
* @return ArrayObject<string>
*/
public function quuz($corge);
}

---
87 changes: 87 additions & 0 deletions tests/cases/trait/method-generics
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
---DESCRIPTION---
Generic types must be used
---FILENAME---
Foo.php
---CONTENTS---
<?php

declare(strict_types=1);

namespace Vendor;

trait Foo
{
/** @var string[] */
public $foo;

/** @var iterable|string[] */
public $bar;

/** @var ArrayObject<string> */
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<string> $garply
* @return ArrayObject<string>
*/
public function grault($garply)
{
}
}

---FIXED---
<?php

declare(strict_types=1);

namespace Vendor;

trait Foo
{
/** @var array<string> */
public $foo;

/** @var iterable<string> */
public $bar;

/** @var ArrayObject<string> */
public $baz;

/**
* @param array<string> $quux
* @return array<string>
*/
public function qux($quux)
{
}

/**
* @param iterable<string> $corge
* @return iterable<string>
*/
abstract public function quuz($corge);

/**
* @param ArrayObject<string> $garply
* @return ArrayObject<string>
*/
public function grault($garply)
{
}
}

---