From 709b065320295fe21417e30d1678cc683b5fc43c Mon Sep 17 00:00:00 2001 From: Oliver Klee Date: Wed, 19 Mar 2025 10:29:20 +0100 Subject: [PATCH] [TASK] Add native type declarations for `Color` Also make some types more specific. Also improve code formatting a bit. Part of #811 --- config/phpstan-baseline.neon | 6 ------ src/Value/Color.php | 25 ++++++++++++------------- 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/config/phpstan-baseline.neon b/config/phpstan-baseline.neon index a84cbd81..416fa9d1 100644 --- a/config/phpstan-baseline.neon +++ b/config/phpstan-baseline.neon @@ -90,12 +90,6 @@ parameters: count: 3 path: ../src/Value/Color.php - - - message: '#^Provide more specific return type "Sabberworm\\CSS\\Value\\Color" over abstract one$#' - identifier: typePerfect.narrowReturnObjectType - count: 1 - path: ../src/Value/Color.php - - message: '#^Loose comparison via "\!\=" is not allowed\.$#' identifier: notEqual.notAllowed diff --git a/src/Value/Color.php b/src/Value/Color.php index 4c59a0a3..028ce856 100644 --- a/src/Value/Color.php +++ b/src/Value/Color.php @@ -16,7 +16,7 @@ class Color extends CSSFunction { /** - * @param array $colorValues + * @param array $colorValues * @param int<0, max> $lineNumber */ public function __construct(array $colorValues, int $lineNumber = 0) @@ -32,17 +32,16 @@ public function __construct(array $colorValues, int $lineNumber = 0) */ public static function parse(ParserState $parserState, bool $ignoreCase = false): CSSFunction { - return - $parserState->comes('#') - ? self::parseHexColor($parserState) - : self::parseColorFunction($parserState); + return $parserState->comes('#') + ? self::parseHexColor($parserState) + : self::parseColorFunction($parserState); } /** * @throws UnexpectedEOFException * @throws UnexpectedTokenException */ - private static function parseHexColor(ParserState $parserState): CSSFunction + private static function parseHexColor(ParserState $parserState): Color { $parserState->consume('#'); $hexValue = $parserState->parseIdentifier(false); @@ -183,10 +182,9 @@ private static function parseColorFunction(ParserState $parserState): CSSFunctio } $parserState->consume(')'); - return - $containsVar - ? new CSSFunction($colorMode, \array_values($colorValues), ',', $parserState->currentLine()) - : new Color($colorValues, $parserState->currentLine()); + return $containsVar + ? new CSSFunction($colorMode, \array_values($colorValues), ',', $parserState->currentLine()) + : new Color($colorValues, $parserState->currentLine()); } private static function mapRange(float $value, float $fromMin, float $fromMax, float $toMin, float $toMax): float @@ -196,19 +194,20 @@ private static function mapRange(float $value, float $fromMin, float $fromMax, f $multiplier = $toRange / $fromRange; $newValue = $value - $fromMin; $newValue *= $multiplier; + return $newValue + $toMin; } /** - * @return array + * @return array */ - public function getColor() + public function getColor(): array { return $this->components; } /** - * @param array $colorValues + * @param array $colorValues */ public function setColor(array $colorValues): void {