Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
<?php

namespace Rector\CodeQuality\Tests\Rector\Foreach_\ForeachToInArrayRector\Fixture;

use Rector\CodeQuality\Tests\Rector\Foreach_\ForeachToInArrayRector\Source\Collection;

final class IgnoreCollections
{
public function foreachToInArray(): bool
{
$items = new Collection();
foreach ($items as $item) {
if ($item == 'something') {
return true;
}
}

return false;
}

public function foreachToInArrayYoda(): bool
{
$items = new Collection();
foreach ($items as $item) {
if ('something' == $item) {
return true;
}
}

return false;
}

public function foreachToInArrayStrict(): bool
{
$items = new Collection();
foreach ($items as $item) {
if ($item === 'something') {
return true;
}
}

return false;
}

public function invertedForeachToInArrayStrict(): bool
{
$items = new Collection();
foreach ($items as $item) {
if ($item === 'something') {
return false;
}
}

return true;
}

public function foreachToInArrayWithToVariables(): bool
{
$items = new Collection();
foreach ($items as $item) {
if ($something === $item) {
return true;
}
}

return false;
}

public function foreachWithoutReturnFalse()
{
$items = new Collection();
foreach ($items as $item) {
if ($item === 'something') {
return true;
}
}
}

public function foreachReturnString()
{
$items = new Collection();
foreach ($items as $item) {
if ($item === 'something') {
return true;
}
}

return 'false';
}

public function foreachWithSomethingElseAfterIt()
{
$items = new Collection();
foreach ($items as $item) {
if ($item === 'something') {
return true;
}
}

$foo = 'bar';
}

public function foreachWithElseNullable()
{
$items = new Collection();
foreach ($items as $item) {
if ('string') {
return true;
}
}

return;
}

public function foreachWithElseFalsable()
{
$items = new Collection();
foreach ($items as $item) {
if ('string') {
return true;
}
}

return false;
}

public function alwaysTrue(): bool
{
$items = new Collection();
foreach ($items as $item) {
if ($something === $item) {
return true;
}
}

return true;
}
}

?>
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ public function test(): void
__DIR__ . '/Fixture/fixture2.php.inc',
__DIR__ . '/Fixture/fixture3.php.inc',
__DIR__ . '/Fixture/fixture4.php.inc',
__DIR__ . '/Fixture/ignore_collections.php.inc',
]);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
<?php

namespace Rector\CodeQuality\Tests\Rector\Foreach_\ForeachToInArrayRector\Source;

use ArrayIterator;
use Closure;
use Doctrine\Common\Collections\Expr\ClosureExpressionVisitor;
use const ARRAY_FILTER_USE_BOTH;
use function array_filter;
use function array_key_exists;
use function array_keys;
use function array_map;
use function array_reverse;
use function array_search;
use function array_slice;
use function array_values;
use function count;
use function current;
use function end;
use function in_array;
use function key;
use function next;
use function reset;
use function spl_object_hash;
use function uasort;

class Collection implements \Countable, \IteratorAggregate, \ArrayAccess
{
/**
* {@inheritDoc}
*/
public function offsetExists($offset)
{
}

/**
* {@inheritDoc}
*/
public function offsetGet($offset)
{
}

/**
* {@inheritDoc}
*/
public function offsetSet($offset, $value)
{
}

/**
* {@inheritDoc}
*/
public function offsetUnset($offset)
{
}

/**
* {@inheritDoc}
*/
public function count()
{
}

/**
* {@inheritDoc}
*/
public function getIterator()
{
}
}