Skip to content

Commit

Permalink
Refined types error message types to list<string> where applicable
Browse files Browse the repository at this point in the history
Added workarounds for vimeo/psalm#2772 and
moved from `Safe\array_combine` to just
`\array_combine` due to thecodingmachine/safe#185
  • Loading branch information
uzibhalepu authored and Ocramius committed Feb 8, 2020
1 parent fbd077e commit 47e5176
Show file tree
Hide file tree
Showing 40 changed files with 111 additions and 74 deletions.
17 changes: 16 additions & 1 deletion src/Command/AssertBackwardsCompatible.php
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,8 @@ public function __construct(
$this->pickFromVersion = $pickFromVersion;
$this->locateDependencies = $locateDependencies;
$this->compareApi = $compareApi;

$this->setName('roave-backwards-compatibility-check:assert-backwards-compatible');
}

/**
Expand All @@ -85,7 +87,6 @@ public function __construct(
protected function configure() : void
{
$this
->setName('roave-backwards-compatibility-check:assert-backwards-compatible')
->setDescription('Verifies that the revision being compared with "from" does not introduce any BC (backwards-incompatible) changes')
->addOption(
'from',
Expand Down Expand Up @@ -191,6 +192,20 @@ public function execute(InputInterface $input, OutputInterface $output) : int
return $this->printOutcomeAndExit($changes, $stdErr);
}

/**
* {@inheritDoc}
*
* The parent implementation allows for nullable names: not here.
*/
public function getName(): string
{
$name = parent::getName();

assert($name !== null);

return $name;
}

private function printOutcomeAndExit(Changes $changes, OutputInterface $stdErr) : int
{
$hasBcBreaks = count($changes);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
use function array_keys;
use function array_map;
use function iterator_to_array;
use function Safe\array_combine;
use function array_combine;

/**
* @covers \Roave\BackwardCompatibility\DetectChanges\BCBreak\ClassBased\AncestorRemoved
Expand Down Expand Up @@ -45,7 +45,7 @@ public function testDiffs(
/**
* @return array<string, array<int, ReflectionClass|array<int, string>>>
*
* @psalm-return array<string, array{0: ReflectionClass, 1: ReflectionClass, 2: array<int, string>}>
* @psalm-return array<string, array{0: ReflectionClass, 1: ReflectionClass, 2: list<string>}>
*/
public function classesToBeTested() : array
{
Expand Down Expand Up @@ -133,6 +133,7 @@ class ClassWithInvertedInterfaceNames implements IG, IE {}
return array_combine(
array_keys($classes),
array_map(
/** @psalm-param list<string> $errors https://github.com/vimeo/psalm/issues/2772 */
static function (string $className, array $errors) use ($fromReflector, $toReflector) : array {
return [
$fromReflector->reflect($className),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
use function array_keys;
use function array_map;
use function iterator_to_array;
use function Safe\array_combine;
use function array_combine;

/**
* @covers \Roave\BackwardCompatibility\DetectChanges\BCBreak\ClassBased\ClassBecameAbstract
Expand Down Expand Up @@ -45,7 +45,7 @@ public function testDiffs(
/**
* @return array<string, array<int, ReflectionClass|array<int, string>>>
*
* @psalm-return array<string, array{0: ReflectionClass, 1: ReflectionClass, 2: array<int, string>}>
* @psalm-return array<string, array{0: ReflectionClass, 1: ReflectionClass, 2: list<string>}>
*/
public function classesToBeTested() : array
{
Expand Down Expand Up @@ -100,6 +100,7 @@ interface AbstractToInterface {}
return array_combine(
array_keys($classes),
array_map(
/** @psalm-param list<string> $errors https://github.com/vimeo/psalm/issues/2772 */
static function (string $className, array $errors) use ($fromReflector, $toReflector) : array {
return [
$fromReflector->reflect($className),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public function testDiffs(
/**
* @return array<string, array<int, ReflectionClass|array<int, string>>>
*
* @psalm-return array<string, array{0: ReflectionClass, 1: ReflectionClass, 2: array<int, string>}>
* @psalm-return array<string, array{0: ReflectionClass, 1: ReflectionClass, 2: list<string>}>
*/
public function classesToBeTested() : array
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
use function array_keys;
use function array_map;
use function iterator_to_array;
use function Safe\array_combine;
use function array_combine;

final class ClassBecameInterfaceTest extends TestCase
{
Expand Down Expand Up @@ -42,7 +42,7 @@ public function testDiffs(
/**
* @return array<string, array<int, ReflectionClass|array<int, string>>>
*
* @psalm-return array<string, array{0: ReflectionClass, 1: ReflectionClass, 2: array<int, string>}>
* @psalm-return array<string, array{0: ReflectionClass, 1: ReflectionClass, 2: list<string>}>
*/
public function classesToBeTested() : array
{
Expand Down Expand Up @@ -106,6 +106,7 @@ trait TraitToTrait {}
return array_combine(
array_keys($classes),
array_map(
/** @psalm-param list<string> $errors https://github.com/vimeo/psalm/issues/2772 */
static function (string $className, array $errors) use ($fromReflector, $toReflector) : array {
return [
$fromReflector->reflect($className),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public function testDiffs(
/**
* @return array<string, array<int, ReflectionClass|array<int, string>>>
*
* @psalm-return array<string, array{0: ReflectionClass, 1: ReflectionClass, 2: array<int, string>}>
* @psalm-return array<string, array{0: ReflectionClass, 1: ReflectionClass, 2: list<string>}>
*/
public function classesToBeTested() : array
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
use function array_keys;
use function array_map;
use function iterator_to_array;
use function Safe\array_combine;
use function array_combine;

/**
* @covers \Roave\BackwardCompatibility\DetectChanges\BCBreak\ClassBased\ClassBecameTrait
Expand Down Expand Up @@ -45,7 +45,7 @@ public function testDiffs(
/**
* @return array<string, array<int, ReflectionClass|array<int, string>>>
*
* @psalm-return array<string, array{0: ReflectionClass, 1: ReflectionClass, 2: array<int, string>}>
* @psalm-return array<string, array{0: ReflectionClass, 1: ReflectionClass, 2: list<string>}>
*/
public function classesToBeTested() : array
{
Expand Down Expand Up @@ -109,6 +109,7 @@ trait TraitToTrait {}
return array_combine(
array_keys($classes),
array_map(
/** @psalm-param list<string> $errors https://github.com/vimeo/psalm/issues/2772 */
static function (string $className, array $errors) use ($fromReflector, $toReflector) : array {
return [
$fromReflector->reflect($className),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public function testDiffs(
/**
* @return array<string, array<int, ReflectionClass|array<int, string>>>
*
* @psalm-return array<string, array{0: ReflectionClass, 1: ReflectionClass, 2: array<int, string>}>
* @psalm-return array<string, array{0: ReflectionClass, 1: ReflectionClass, 2: list<string>}>
*/
public function classesToBeTested() : array
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public function testDiffs(
/**
* @return array<string, array<int, ReflectionClass|array<int, string>>>
*
* @psalm-return array<string, array{0: ReflectionClass, 1: ReflectionClass, 2: array<int, string>}>
* @psalm-return array<string, array{0: ReflectionClass, 1: ReflectionClass, 2: list<string>}>
*/
public function classesToBeTested() : array
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public function testDiffs(
/**
* @return array<string, array<int, ReflectionClass|array<int, string>>>
*
* @psalm-return array<string, array{0: ReflectionClass, 1: ReflectionClass, 2: array<int, string>}>
* @psalm-return array<string, array{0: ReflectionClass, 1: ReflectionClass, 2: list<string>}>
*/
public function classesToBeTested() : array
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
use function array_keys;
use function array_map;
use function iterator_to_array;
use function Safe\array_combine;
use function array_combine;

/**
* @covers \Roave\BackwardCompatibility\DetectChanges\BCBreak\ClassConstantBased\ClassConstantValueChanged
Expand Down Expand Up @@ -45,7 +45,7 @@ public function testDiffs(
/**
* @return array<string, array<int, ReflectionClassConstant|array<int, string>>>
*
* @psalm-return array<string, array{0: ReflectionClassConstant, 1: ReflectionClassConstant, 2: array<int, string>}>
* @psalm-return array<string, array{0: ReflectionClassConstant, 1: ReflectionClassConstant, 2: list<string>}>
*/
public function propertiesToBeTested() : array
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
use Roave\BetterReflection\SourceLocator\Type\StringSourceLocator;
use function array_map;
use function iterator_to_array;
use function Safe\array_combine;
use function array_combine;

/**
* @covers \Roave\BackwardCompatibility\DetectChanges\BCBreak\ClassConstantBased\ClassConstantVisibilityReduced
Expand Down Expand Up @@ -44,7 +44,7 @@ public function testDiffs(
/**
* @return array<string, array<int, ReflectionClassConstant|array<int, string>>>
*
* @psalm-return array<string, array{0: ReflectionClassConstant, 1: ReflectionClassConstant, 2: array<int, string>}>
* @psalm-return array<string, array{0: ReflectionClassConstant, 1: ReflectionClassConstant, 2: list<string>}>
*/
public function propertiesToBeTested() : array
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
use function array_keys;
use function array_map;
use function iterator_to_array;
use function Safe\array_combine;
use function array_combine;

/** @covers \Roave\BackwardCompatibility\DetectChanges\BCBreak\FunctionBased\FunctionBecameInternal */
final class FunctionBecameInternalTest extends TestCase
Expand Down Expand Up @@ -44,8 +44,7 @@ public function testDiffs(
/**
* @return array<string, array<int, ReflectionFunctionAbstract|array<int, string>>>
*
* @psalm-return array<string, array{0: ReflectionFunctionAbstract, 1: ReflectionFunctionAbstract, 2: array<int,
* string>}>
* @psalm-return array<string, array{0: ReflectionFunctionAbstract, 1: ReflectionFunctionAbstract, 2: list<string>}>
*/
public function functionsToBeTested() : array
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
use Roave\BetterReflection\Reflector\ClassReflector;
use Roave\BetterReflection\Reflector\FunctionReflector;
use Roave\BetterReflection\SourceLocator\Type\StringSourceLocator;
use function array_combine;
use function array_map;
use function iterator_to_array;
use function Safe\array_combine;

/**
* @covers \Roave\BackwardCompatibility\DetectChanges\BCBreak\FunctionBased\ParameterByReferenceChanged
Expand Down Expand Up @@ -45,7 +45,7 @@ public function testDiffs(
/**
* @return array<string, array<int, ReflectionFunctionAbstract|array<int, string>>>
*
* @psalm-return array<string, array{0: ReflectionFunctionAbstract, 1: ReflectionFunctionAbstract, 2: array<int, string>}>
* @psalm-return array<string, array{0: ReflectionFunctionAbstract, 1: ReflectionFunctionAbstract, 2: list<string>}>
*/
public function functionsToBeTested() : array
{
Expand Down Expand Up @@ -124,7 +124,8 @@ function changed2(& $a) {}
array_combine(
array_keys($functions),
array_map(
function (string $function, array $errorMessages) use ($fromReflector, $toReflector) : array {
/** @psalm-param list<string> $errorMessages https://github.com/vimeo/psalm/issues/2772 */
static function (string $function, array $errorMessages) use ($fromReflector, $toReflector) : array {
return [
$fromReflector->reflect($function),
$toReflector->reflect($function),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
use Roave\BetterReflection\Reflector\ClassReflector;
use Roave\BetterReflection\Reflector\FunctionReflector;
use Roave\BetterReflection\SourceLocator\Type\StringSourceLocator;
use function array_combine;
use function array_map;
use function iterator_to_array;
use function Safe\array_combine;

/**
* @covers \Roave\BackwardCompatibility\DetectChanges\BCBreak\FunctionBased\ParameterDefaultValueChanged
Expand Down Expand Up @@ -45,7 +45,7 @@ public function testDiffs(
/**
* @return array<string, array<int, ReflectionFunctionAbstract|array<int, string>>>
*
* @psalm-return array<string, array{0: ReflectionFunctionAbstract, 1: ReflectionFunctionAbstract, 2: array<int, string>}>
* @psalm-return array<string, array{0: ReflectionFunctionAbstract, 1: ReflectionFunctionAbstract, 2: list<string>}>
*/
public function functionsToBeTested() : array
{
Expand Down Expand Up @@ -124,7 +124,8 @@ function changed2($a = 2) {}
array_combine(
array_keys($functions),
array_map(
function (string $function, array $errorMessages) use ($fromReflector, $toReflector) : array {
/** @psalm-param list<string> $errorMessages https://github.com/vimeo/psalm/issues/2772 */
static function (string $function, array $errorMessages) use ($fromReflector, $toReflector) : array {
return [
$fromReflector->reflect($function),
$toReflector->reflect($function),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
use Roave\BetterReflection\Reflector\ClassReflector;
use Roave\BetterReflection\Reflector\FunctionReflector;
use Roave\BetterReflection\SourceLocator\Type\StringSourceLocator;
use function array_combine;
use function array_map;
use function iterator_to_array;
use function Safe\array_combine;

/**
* @covers \Roave\BackwardCompatibility\DetectChanges\BCBreak\FunctionBased\ParameterTypeChanged
Expand Down Expand Up @@ -45,7 +45,7 @@ public function testDiffs(
/**
* @return array<string, array<int, ReflectionFunctionAbstract|array<int, string>>>
*
* @psalm-return array<string, array{0: ReflectionFunctionAbstract, 1: ReflectionFunctionAbstract, 2: array<int, string>}>
* @psalm-return array<string, array{0: ReflectionFunctionAbstract, 1: ReflectionFunctionAbstract, 2: list<string>}>
*/
public function functionsToBeTested() : array
{
Expand Down Expand Up @@ -157,7 +157,8 @@ function changed2(int $a, int $b) {}
array_combine(
array_keys($functions),
array_map(
function (string $function, array $errorMessages) use ($fromReflector, $toReflector) : array {
/** @psalm-param list<string> $errorMessages https://github.com/vimeo/psalm/issues/2772 */
static function (string $function, array $errorMessages) use ($fromReflector, $toReflector) : array {
return [
$fromReflector->reflect($function),
$toReflector->reflect($function),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@
use Roave\BetterReflection\Reflector\ClassReflector;
use Roave\BetterReflection\Reflector\FunctionReflector;
use Roave\BetterReflection\SourceLocator\Type\StringSourceLocator;
use function array_combine;
use function array_map;
use function iterator_to_array;
use function Safe\array_combine;

/**
* @covers \Roave\BackwardCompatibility\DetectChanges\BCBreak\FunctionBased\ParameterTypeContravarianceChanged
Expand Down Expand Up @@ -46,7 +46,7 @@ public function testDiffs(
/**
* @return array<string, array<int, ReflectionFunctionAbstract|array<int, string>>>
*
* @psalm-return array<string, array{0: ReflectionFunctionAbstract, 1: ReflectionFunctionAbstract, 2: array<int, string>}>
* @psalm-return array<string, array{0: ReflectionFunctionAbstract, 1: ReflectionFunctionAbstract, 2: list<string>}>
*/
public function functionsToBeTested() : array
{
Expand Down Expand Up @@ -158,6 +158,7 @@ function changed2(int $a, int $b) {}
array_combine(
array_keys($functions),
array_map(
/** @psalm-param list<string> $errorMessages https://github.com/vimeo/psalm/issues/2772 */
function (string $function, array $errorMessages) use ($fromReflector, $toReflector) : array {
return [
$fromReflector->reflect($function),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
use Roave\BetterReflection\Reflector\ClassReflector;
use Roave\BetterReflection\Reflector\FunctionReflector;
use Roave\BetterReflection\SourceLocator\Type\StringSourceLocator;
use function array_combine;
use function array_map;
use function iterator_to_array;
use function Safe\array_combine;

/**
* @covers \Roave\BackwardCompatibility\DetectChanges\BCBreak\FunctionBased\RequiredParameterAmountIncreased
Expand Down Expand Up @@ -45,7 +45,7 @@ public function testDiffs(
/**
* @return array<string, array<int, ReflectionFunctionAbstract|array<int, string>>>
*
* @psalm-return array<string, array{0: ReflectionFunctionAbstract, 1: ReflectionFunctionAbstract, 2: array<int, string>}>
* @psalm-return array<string, array{0: ReflectionFunctionAbstract, 1: ReflectionFunctionAbstract, 2: list<string>}>
*/
public function functionsToBeTested() : array
{
Expand Down Expand Up @@ -129,6 +129,7 @@ function changed2($a, $b, $c, $d) {}
array_combine(
array_keys($functions),
array_map(
/** @psalm-param list<string> $errorMessages https://github.com/vimeo/psalm/issues/2772 */
function (string $function, array $errorMessages) use ($fromReflector, $toReflector) : array {
return [
$fromReflector->reflect($function),
Expand Down
Loading

0 comments on commit 47e5176

Please sign in to comment.