Skip to content
Closed
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,25 @@
<?php

namespace Rector\Tests\DeadCode\Rector\FunctionLike\NarrowTooWideReturnTypeRector\Fixture;

$simple = fn(int $x): string|int|bool => $x > 5 ? 'high' : 10;

$ternary = fn(?int $value): string|int|float|null =>
$value === null ? null : ($value > 0 ? 'positive' : -1);

$cast = fn(mixed $input): int|string|array => (int) $input;

?>
-----
<?php

namespace Rector\Tests\DeadCode\Rector\FunctionLike\NarrowTooWideReturnTypeRector\Fixture;

$simple = fn(int $x): string|int => $x > 5 ? 'high' : 10;

$ternary = fn(?int $value): string|int|null =>
$value === null ? null : ($value > 0 ? 'positive' : -1);

$cast = fn(mixed $input): int => (int) $input;

?>
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?php

namespace Rector\Tests\DeadCode\Rector\FunctionLike\NarrowTooWideReturnTypeRector\Fixture;

$callback = function(): string|int|array|null {
if (rand(0, 1)) {
return 'result';
}

if (rand(0, 1)) {
return 42;
}

return null;
};

?>
-----
<?php

namespace Rector\Tests\DeadCode\Rector\FunctionLike\NarrowTooWideReturnTypeRector\Fixture;

$callback = function(): string|int|null {
if (rand(0, 1)) {
return 'result';
}

if (rand(0, 1)) {
return 42;
}

return null;
};

?>
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
<?php

namespace Rector\Tests\DeadCode\Rector\FunctionLike\NarrowTooWideReturnTypeRector\Fixture;

final class EdgeCases
{
public function implicitNull(): string|int|null
{
if (rand(0, 1)) {
return;
}

return 'something';
}

public function implicitReturn(): string|int|null
{
if (rand(0, 1)) {
return 'something';
}
}

public function nullableReturn(): ?string
{
return 'something';
}
}

?>
-----
<?php

namespace Rector\Tests\DeadCode\Rector\FunctionLike\NarrowTooWideReturnTypeRector\Fixture;

final class EdgeCases
{
public function implicitNull(): ?string
{
if (rand(0, 1)) {
return;
}

return 'something';
}

public function implicitReturn(): ?string
{
if (rand(0, 1)) {
return 'something';
}
}

public function nullableReturn(): string
{
return 'something';
}
}

?>
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
<?php

namespace Rector\Tests\DeadCode\Rector\FunctionLike\NarrowTooWideReturnTypeRector\Fixture;

final class FinalClass
{
public function getData(): string|int|\DateTime
{
if (rand(0, 1)) {
return 'text';
}

if (rand(0, 1)) {
return 'text';
}

return 1000;
}

public function getInfo(): string|int|bool|null
{
if (rand(0, 1)) {
return 'info';
}

if (rand(0, 1)) {
return null;
}

return 42;
}

private function processData(): string|array|object
{
if (rand(0, 1)) {
return 'processed';
}

return ['data' => 'value'];
}
}

?>
-----
<?php

namespace Rector\Tests\DeadCode\Rector\FunctionLike\NarrowTooWideReturnTypeRector\Fixture;

final class FinalClass
{
public function getData(): string|int
{
if (rand(0, 1)) {
return 'text';
}

if (rand(0, 1)) {
return 'text';
}

return 1000;
}

public function getInfo(): string|int|null
{
if (rand(0, 1)) {
return 'info';
}

if (rand(0, 1)) {
return null;
}

return 42;
}

private function processData(): string|array
{
if (rand(0, 1)) {
return 'processed';
}

return ['data' => 'value'];
}
}

?>
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
<?php


namespace Rector\Tests\DeadCode\Rector\FunctionLike\NarrowTooWideReturnTypeRector\Fixture;

use Rector\Tests\DeadCode\Rector\FunctionLike\NarrowTooWideReturnTypeRector\Source\SomeInterface;
use Rector\Tests\DeadCode\Rector\FunctionLike\NarrowTooWideReturnTypeRector\Sourcet\SomeAbstractClass;

final class FinalInheritance extends SomeAbstractClass
{
public function process(): string|int|array
{
if (rand(0, 1)) {
return 'text';
}

return 42;
}
}

final class FinalInterfaceImplementation implements SomeInterface
{
public function getData(): string|int|bool
{
return 'data';
}
}

?>
-----
<?php


namespace Rector\Tests\DeadCode\Rector\FunctionLike\NarrowTooWideReturnTypeRector\Fixture;

use Rector\Tests\DeadCode\Rector\FunctionLike\NarrowTooWideReturnTypeRector\Source\SomeInterface;
use Rector\Tests\DeadCode\Rector\FunctionLike\NarrowTooWideReturnTypeRector\Sourcet\SomeAbstractClass;

final class FinalInheritance extends SomeAbstractClass
{
public function process(): string|int
{
if (rand(0, 1)) {
return 'text';
}

return 42;
}
}

final class FinalInterfaceImplementation implements SomeInterface
{
public function getData(): string
{
return 'data';
}
}

?>
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
<?php

namespace Rector\Tests\DeadCode\Rector\FunctionLike\NarrowTooWideReturnTypeRector\Fixture;

class NonFinalClassWithFinalMethods
{
public function getData(): string|int|\DateTime
{
return 'hello';
}

final public function getInfo(): string|int|bool
{
return 'info';
}

final protected function processData(): string|array|object
{
return 'processed';
}

private function helper(): string|int|float
{
return 'helper';
}
}

?>
-----
<?php

namespace Rector\Tests\DeadCode\Rector\FunctionLike\NarrowTooWideReturnTypeRector\Fixture;

class NonFinalClassWithFinalMethods
{
public function getData(): string|int|\DateTime
{
return 'hello';
}

final public function getInfo(): string
{
return 'info';
}

final protected function processData(): string
{
return 'processed';
}

private function helper(): string
{
return 'helper';
}
}

?>
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php

namespace Rector\Tests\DeadCode\Rector\FunctionLike\NarrowTooWideReturnTypeRector\Fixture;

function processValue(): string|int|float|bool
{
if (rand(0, 1)) {
return 'text';
}

if (rand(0, 1)) {
return 123;
}

return true;
}

?>
-----
<?php

namespace Rector\Tests\DeadCode\Rector\FunctionLike\NarrowTooWideReturnTypeRector\Fixture;

function processValue(): string|int|bool
{
if (rand(0, 1)) {
return 'text';
}

if (rand(0, 1)) {
return 123;
}

return true;
}

?>
Loading
Loading