Use list type over int array

This commit is contained in:
Aidan Woods 2020-01-19 15:23:58 +00:00
parent 13932bca9a
commit a2ea704a43
No known key found for this signature in database
GPG Key ID: 9A6A8EFAA512BBB9
4 changed files with 45 additions and 42 deletions

View File

@ -18,7 +18,7 @@
},
"require-dev": {
"phpunit/phpunit": "^7.4||^6.5.13||^5.7.27||^4.8.36",
"vimeo/psalm": "^3.4.10",
"vimeo/psalm": "^3.8.3",
"friendsofphp/php-cs-fixer": "^2.13",
"infection/infection": "^0.12.0"
},

View File

@ -18,19 +18,19 @@ use Erusev\Parsedown\State;
*/
final class Table implements AcquisitioningBlock, ContinuableBlock
{
/** @var array<int, _Alignment|null> */
/** @var list<_Alignment|null> */
private $alignments;
/** @var array<int, string> */
/** @var list<string> */
private $headerCells;
/** @var array<int, array<int, string>> */
/** @var list<list<string>> */
private $rows;
/**
* @param array<int, _Alignment|null> $alignments
* @param array<int, string> $headerCells
* @param array<int, array<int, string>> $rows
* @param list<_Alignment|null> $alignments
* @param list<string> $headerCells
* @param list<list<string>> $rows
*/
private function __construct($alignments, $headerCells, $rows)
{
@ -117,7 +117,10 @@ final class Table implements AcquisitioningBlock, ContinuableBlock
return null;
}
$cells = \array_map('trim', \array_slice($matches[0], 0, \count($this->alignments)));
$cells = \array_values(\array_map(
'trim',
\array_slice($matches[0], 0, \count($this->alignments))
));
return new self(
$this->alignments,
@ -128,7 +131,7 @@ final class Table implements AcquisitioningBlock, ContinuableBlock
/**
* @param string $dividerRow
* @return array<int, _Alignment|null>|null
* @return list<_Alignment|null>|null
*/
private static function parseAlignments($dividerRow)
{
@ -137,7 +140,7 @@ final class Table implements AcquisitioningBlock, ContinuableBlock
$dividerCells = \explode('|', $dividerRow);
/** @var array<int, _Alignment|null> */
/** @var list<_Alignment|null> */
$alignments = [];
foreach ($dividerCells as $dividerCell) {
@ -170,7 +173,7 @@ final class Table implements AcquisitioningBlock, ContinuableBlock
return true;
}
/** @return array<int, Inline[]> */
/** @return list<Inline[]> */
public function headerRow(State $State)
{
return \array_map(
@ -185,13 +188,13 @@ final class Table implements AcquisitioningBlock, ContinuableBlock
);
}
/** @return array<int, Inline[]>[] */
/** @return list<Inline[]>[] */
public function rows(State $State)
{
return \array_map(
/**
* @param array<int, string> $cells
* @return array<int, Inline[]>
* @param list<string> $cells
* @return list<Inline[]>
*/
function ($cells) use ($State) {
return \array_map(
@ -209,7 +212,7 @@ final class Table implements AcquisitioningBlock, ContinuableBlock
);
}
/** @return array<int, _Alignment|null> */
/** @return list<_Alignment|null> */
public function alignments()
{
return $this->alignments;

View File

@ -47,15 +47,15 @@ final class BlockTypes implements Configurable
IndentedCode::class,
];
/** @var array<array-key, array<int, class-string<Block>>> */
/** @var array<array-key, list<class-string<Block>>> */
private $blockTypes;
/** @var array<int, class-string<Block>> */
/** @var list<class-string<Block>> */
private $unmarkedBlockTypes;
/**
* @param array<array-key, array<int, class-string<Block>>> $blockTypes
* @param array<int, class-string<Block>> $unmarkedBlockTypes
* @param array<array-key, list<class-string<Block>>> $blockTypes
* @param list<class-string<Block>> $unmarkedBlockTypes
*/
public function __construct(array $blockTypes, array $unmarkedBlockTypes)
{
@ -74,7 +74,7 @@ final class BlockTypes implements Configurable
/**
* @param string $marker
* @param array<int, class-string<Block>> $newBlockTypes
* @param list<class-string<Block>> $newBlockTypes
* @return self
*/
public function settingMarked($marker, array $newBlockTypes)
@ -87,7 +87,7 @@ final class BlockTypes implements Configurable
/**
* @param string $marker
* @param array<int, class-string<Block>> $newBlockTypes
* @param list<class-string<Block>> $newBlockTypes
* @return self
*/
public function addingMarkedHighPrecedence($marker, array $newBlockTypes)
@ -103,7 +103,7 @@ final class BlockTypes implements Configurable
/**
* @param string $marker
* @param array<int, class-string<Block>> $newBlockTypes
* @param list<class-string<Block>> $newBlockTypes
* @return self
*/
public function addingMarkedLowPrecedence($marker, array $newBlockTypes)
@ -118,7 +118,7 @@ final class BlockTypes implements Configurable
}
/**
* @param array<int, class-string<Block>> $newUnmarkedBlockTypes
* @param list<class-string<Block>> $newUnmarkedBlockTypes
* @return self
*/
public function settingUnmarked(array $newUnmarkedBlockTypes)
@ -127,7 +127,7 @@ final class BlockTypes implements Configurable
}
/**
* @param array<int, class-string<Block>> $newBlockTypes
* @param list<class-string<Block>> $newBlockTypes
* @return self
*/
public function addingUnmarkedHighPrecedence(array $newBlockTypes)
@ -138,7 +138,7 @@ final class BlockTypes implements Configurable
}
/**
* @param array<int, class-string<Block>> $newBlockTypes
* @param list<class-string<Block>> $newBlockTypes
* @return self
*/
public function addingUnmarkedLowPrecedence(array $newBlockTypes)
@ -149,7 +149,7 @@ final class BlockTypes implements Configurable
}
/**
* @param array<int, class-string<Block>> $removeBlockTypes
* @param list<class-string<Block>> $removeBlockTypes
* @return self
*/
public function removing(array $removeBlockTypes)
@ -157,21 +157,21 @@ final class BlockTypes implements Configurable
return new self(
\array_map(
/**
* @param array<int, class-string<Block>> $blockTypes
* @return array<int, class-string<Block>>
* @param list<class-string<Block>> $blockTypes
* @return list<class-string<Block>>
*/
function ($blockTypes) use ($removeBlockTypes) {
return \array_diff($blockTypes, $removeBlockTypes);
return \array_values(\array_diff($blockTypes, $removeBlockTypes));
},
$this->blockTypes
),
\array_diff($this->unmarkedBlockTypes, $removeBlockTypes)
\array_values(\array_diff($this->unmarkedBlockTypes, $removeBlockTypes))
);
}
/**
* @param string $marker
* @return array<int, class-string<Block>>
* @return list<class-string<Block>>
*/
public function markedBy($marker)
{
@ -183,7 +183,7 @@ final class BlockTypes implements Configurable
}
/**
* @return array<int, class-string<Block>>
* @return list<class-string<Block>>
*/
public function unmarked()
{

View File

@ -34,14 +34,14 @@ final class InlineTypes implements Configurable
"\n" => [HardBreak::class, SoftBreak::class],
];
/** @var array<array-key, array<int, class-string<Inline>>> */
/** @var array<array-key, list<class-string<Inline>>> */
private $inlineTypes;
/** @var string */
private $inlineMarkers;
/**
* @param array<array-key, array<int, class-string<Inline>>> $inlineTypes
* @param array<array-key, list<class-string<Inline>>> $inlineTypes
*/
public function __construct(array $inlineTypes)
{
@ -57,7 +57,7 @@ final class InlineTypes implements Configurable
/**
* @param string $marker
* @param array<int, class-string<Inline>> $newInlineTypes
* @param list<class-string<Inline>> $newInlineTypes
* @return self
*/
public function setting($marker, array $newInlineTypes)
@ -70,7 +70,7 @@ final class InlineTypes implements Configurable
/**
* @param string $marker
* @param array<int, class-string<Inline>> $newInlineTypes
* @param list<class-string<Inline>> $newInlineTypes
* @return self
*/
public function addingHighPrecedence($marker, array $newInlineTypes)
@ -86,7 +86,7 @@ final class InlineTypes implements Configurable
/**
* @param string $marker
* @param array<int, class-string<Inline>> $newInlineTypes
* @param list<class-string<Inline>> $newInlineTypes
* @return self
*/
public function addingLowPrecedence($marker, array $newInlineTypes)
@ -101,18 +101,18 @@ final class InlineTypes implements Configurable
}
/**
* @param array<int, class-string<Inline>> $removeInlineTypes
* @param list<class-string<Inline>> $removeInlineTypes
* @return self
*/
public function removing(array $removeInlineTypes)
{
return new self(\array_map(
/**
* @param array<int, class-string<Inline>> $inlineTypes
* @return array<int, class-string<Inline>>
* @param list<class-string<Inline>> $inlineTypes
* @return list<class-string<Inline>>
*/
function ($inlineTypes) use ($removeInlineTypes) {
return \array_diff($inlineTypes, $removeInlineTypes);
return \array_values(\array_diff($inlineTypes, $removeInlineTypes));
},
$this->inlineTypes
));
@ -120,7 +120,7 @@ final class InlineTypes implements Configurable
/**
* @param string $marker
* @return array<int, class-string<Inline>>
* @return list<class-string<Inline>>
*/
public function markedBy($marker)
{