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": { "require-dev": {
"phpunit/phpunit": "^7.4||^6.5.13||^5.7.27||^4.8.36", "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", "friendsofphp/php-cs-fixer": "^2.13",
"infection/infection": "^0.12.0" "infection/infection": "^0.12.0"
}, },

View File

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

View File

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

View File

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