Skip to content

Commit

Permalink
:octocat: phpstan 2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
codemasher committed Nov 16, 2024
1 parent 98f1859 commit 747a38d
Show file tree
Hide file tree
Showing 5 changed files with 84 additions and 49 deletions.
4 changes: 2 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,8 @@
"phpbench/phpbench": "^1.3",
"phpunit/phpunit": "^11.3",
"phpmd/phpmd": "^2.15",
"phpstan/phpstan": "^1.12",
"phpstan/phpstan-deprecation-rules": "^1.2",
"phpstan/phpstan": "^2.0",
"phpstan/phpstan-deprecation-rules": "^2.0",
"setasign/fpdf": "^1.8.2",
"slevomat/coding-standard": "^8.15",
"squizlabs/php_codesniffer": "^3.10"
Expand Down
123 changes: 82 additions & 41 deletions phpstan-baseline.neon
Original file line number Diff line number Diff line change
@@ -1,206 +1,247 @@
parameters:
ignoreErrors:
-
message: "#^Property chillerlan\\\\QRCodeBenchmark\\\\DecoderBenchmark\\:\\:\\$imageBlob \\(string\\) does not accept GdImage\\|string\\.$#"
message: '#^Property chillerlan\\QRCodeBenchmark\\DecoderBenchmark\:\:\$imageBlob \(string\) does not accept GdImage\|string\.$#'
identifier: assign.propertyType
count: 1
path: benchmark/DecoderBenchmark.php

-
message: "#^Parameter \\#1 \\$segment of method chillerlan\\\\QRCode\\\\QRCode\\:\\:addSegment\\(\\) expects chillerlan\\\\QRCode\\\\Data\\\\QRDataModeInterface, object given\\.$#"
message: '#^Parameter \#1 \$segment of method chillerlan\\QRCode\\QRCode\:\:addSegment\(\) expects chillerlan\\QRCode\\Data\\QRDataModeInterface, object given\.$#'
identifier: argument.type
count: 1
path: benchmark/QRCodeBenchmark.php

-
message: "#^Parameter \\#2 \\$dataSegments of class chillerlan\\\\QRCode\\\\Data\\\\QRData constructor expects array\\<chillerlan\\\\QRCode\\\\Data\\\\QRDataModeInterface\\>, array\\<int, object\\> given\\.$#"
message: '#^Parameter \#2 \$dataSegments of class chillerlan\\QRCode\\Data\\QRData constructor expects array\<chillerlan\\QRCode\\Data\\QRDataModeInterface\>, array\<int, object\> given\.$#'
identifier: argument.type
count: 2
path: benchmark/QRDataBenchmark.php

-
message: "#^Parameter \\#1 \\$string of function strtolower expects string, int\\|string given\\.$#"
message: '#^Parameter \#1 \$string of function strtolower expects string, int\|string given\.$#'
identifier: argument.type
count: 1
path: benchmark/generate-markdown.php

-
message: "#^Offset 'name' does not exist on array\\<int, mixed\\>\\.$#"
message: '#^Offset ''name'' does not exist on array\<int, mixed\>\.$#'
identifier: offsetAccess.notFound
count: 1
path: benchmark/parse-common.php

-
message: "#^Offset 'results' does not exist on array\\<int, mixed\\>\\.$#"
message: '#^Offset ''results'' does not exist on array\<int, mixed\>\.$#'
identifier: offsetAccess.notFound
count: 1
path: benchmark/parse-common.php

-
message: "#^Offset 0 does not exist on array\\{\\}\\.$#"
message: '#^Offset 0 does not exist on array\{\}\.$#'
identifier: offsetAccess.notFound
count: 1
path: benchmark/parse-common.php

-
message: "#^Function chillerlan\\\\QRCodeBenchmark\\\\parseLine\\(\\) return type has no value type specified in iterable type array\\.$#"
message: '#^Function chillerlan\\QRCodeBenchmark\\parseLine\(\) return type has no value type specified in iterable type array\.$#'
identifier: missingType.iterableValue
count: 1
path: benchmark/parse-result.php

-
message: "#^Parameter \\#1 \\$string of function trim expects string, string\\|false given\\.$#"
message: '#^Parameter \#1 \$string of function trim expects string, string\|false given\.$#'
identifier: argument.type
count: 1
path: benchmark/parse-result.php

-
message: "#^Property chillerlan\\\\QRCode\\\\QROptions\\:\\:\\$eccLevel \\(int\\) does not accept string\\.$#"
message: '#^Property chillerlan\\QRCode\\QROptions\:\:\$eccLevel \(int\) does not accept string\.$#'
identifier: assign.propertyType
count: 1
path: examples/custom_output.php

-
message: "#^Parameter \\#1 \\$width of function imagecreatetruecolor expects int\\<1, max\\>, int given\\.$#"
message: '#^Parameter \#1 \$width of function imagecreatetruecolor expects int\<1, max\>, int given\.$#'
identifier: argument.type
count: 1
path: examples/imageWithText.php

-
message: "#^Parameter \\#2 \\$color of function imagecolortransparent expects int\\|null, int\\<0, max\\>\\|false given\\.$#"
message: '#^Parameter \#2 \$color of function imagecolortransparent expects int\|null, int\<0, max\>\|false given\.$#'
identifier: argument.type
count: 1
path: examples/imageWithText.php

-
message: "#^Parameter \\#2 \\$height of function imagecreatetruecolor expects int\\<1, max\\>, int given\\.$#"
message: '#^Parameter \#2 \$height of function imagecreatetruecolor expects int\<1, max\>, int given\.$#'
identifier: argument.type
count: 1
path: examples/imageWithText.php

-
message: "#^Parameter \\#6 \\$color of function imagechar expects int, int\\<0, max\\>\\|false given\\.$#"
message: '#^Parameter \#6 \$color of function imagechar expects int, int\<0, max\>\|false given\.$#'
identifier: argument.type
count: 1
path: examples/imageWithText.php

-
message: "#^Parameter \\#6 \\$color of function imagefilledrectangle expects int, int\\<0, max\\>\\|false given\\.$#"
message: '#^Parameter \#6 \$color of function imagefilledrectangle expects int, int\<0, max\>\|false given\.$#'
identifier: argument.type
count: 1
path: examples/imageWithText.php

-
message: "#^Parameter \\#1 \\(Intervention\\\\Image\\\\Interfaces\\\\ImageInterface\\|string\\) of echo cannot be converted to string\\.$#"
message: '#^Parameter \#1 \(Intervention\\Image\\Interfaces\\ImageInterface\|string\) of echo cannot be converted to string\.$#'
identifier: echo.nonString
count: 1
path: examples/intervention-image.php

-
message: "#^Method RandomDotsSVGOutput\\:\\:collectModules\\(\\) should return array\\<int, mixed\\> but returns array\\<int\\|string, array\\<int, mixed\\>\\>\\.$#"
message: '#^Method RandomDotsSVGOutput\:\:collectModules\(\) should return array\<int, mixed\> but returns array\<int\|string, list\<mixed\>\>\.$#'
identifier: return.type
count: 1
path: examples/svgRandomColoredDots.php

-
message: "#^Method RoundQuietzoneSVGoutput\\:\\:collectModules\\(\\) should return array\\<int, mixed\\> but returns array\\<int\\|string, array\\<int, mixed\\>\\>\\.$#"
message: '#^Method RoundQuietzoneSVGoutput\:\:collectModules\(\) should return array\<int, mixed\> but returns array\<int\|string, list\<mixed\>\>\.$#'
identifier: return.type
count: 1
path: examples/svgRoundQuietzone.php

-
message: "#^Parameter \\#1 \\$data of function imagecreatefromstring expects string, string\\|false given\\.$#"
message: '#^Parameter \#1 \$data of function imagecreatefromstring expects string, string\|false given\.$#'
identifier: argument.type
count: 1
path: src/Common/GDLuminanceSource.php

-
message: "#^Parameter \\#1 \\$gdImage of class chillerlan\\\\QRCode\\\\Common\\\\GDLuminanceSource constructor expects GdImage, GdImage\\|false given\\.$#"
message: '#^Parameter \#1 \$gdImage of class chillerlan\\QRCode\\Common\\GDLuminanceSource constructor expects GdImage, GdImage\|false given\.$#'
identifier: argument.type
count: 2
path: src/Common/GDLuminanceSource.php

-
message: "#^Parameter \\#2 \\$color of function imagecolorsforindex expects int, int\\<0, max\\>\\|false given\\.$#"
message: '#^Parameter \#2 \$color of function imagecolorsforindex expects int, int\<0, max\>\|false given\.$#'
identifier: argument.type
count: 1
path: src/Common/GDLuminanceSource.php

-
message: "#^Parameter \\#1 \\$maskPattern of class chillerlan\\\\QRCode\\\\Common\\\\MaskPattern constructor expects int, int\\|false given\\.$#"
message: '#^Parameter \#1 \$maskPattern of class chillerlan\\QRCode\\Common\\MaskPattern constructor expects int, int\|false given\.$#'
identifier: argument.type
count: 1
path: src/Common/MaskPattern.php

-
message: "#^Method chillerlan\\\\QRCode\\\\Common\\\\Version\\:\\:getRSBlocks\\(\\) return type has no value type specified in iterable type array\\.$#"
message: '#^Method chillerlan\\QRCode\\Common\\Version\:\:getRSBlocks\(\) return type has no value type specified in iterable type array\.$#'
identifier: missingType.iterableValue
count: 1
path: src/Common/Version.php

-
message: "#^Parameter \\#1 \\$encoding of function mb_detect_order expects non\\-empty\\-list\\<non\\-falsy\\-string\\>\\|non\\-falsy\\-string\\|null, array\\{string, 'UTF\\-8', 'GB2312', 'GB18030', 'CP936', 'EUC\\-CN', 'HZ'\\} given\\.$#"
message: '#^Parameter \#1 \$encoding of function mb_detect_order expects non\-empty\-list\<non\-falsy\-string\>\|non\-falsy\-string\|null, array\{string, ''UTF\-8'', ''GB2312'', ''GB18030'', ''CP936'', ''EUC\-CN'', ''HZ''\} given\.$#'
identifier: argument.type
count: 1
path: src/Data/Hanzi.php

-
message: "#^Parameter \\#1 \\$encoding of function mb_detect_order expects non\\-empty\\-list\\<non\\-falsy\\-string\\>\\|non\\-falsy\\-string\\|null, array\\{string, 'UTF\\-8', 'SJIS', 'SJIS\\-2004'\\} given\\.$#"
message: '#^Parameter \#1 \$encoding of function mb_detect_order expects non\-empty\-list\<non\-falsy\-string\>\|non\-falsy\-string\|null, array\{string, ''UTF\-8'', ''SJIS'', ''SJIS\-2004''\} given\.$#'
identifier: argument.type
count: 1
path: src/Data/Kanji.php

-
message: "#^Parameter \\#1 \\$version of class chillerlan\\\\QRCode\\\\Data\\\\ReedSolomonEncoder constructor expects chillerlan\\\\QRCode\\\\Common\\\\Version, chillerlan\\\\QRCode\\\\Common\\\\Version\\|null given\\.$#"
message: '#^Parameter \#1 \$version of class chillerlan\\QRCode\\Data\\ReedSolomonEncoder constructor expects chillerlan\\QRCode\\Common\\Version, chillerlan\\QRCode\\Common\\Version\|null given\.$#'
identifier: argument.type
count: 1
path: src/Data/QRMatrix.php

-
message: "#^Parameter \\#2 \\$eccLevel of class chillerlan\\\\QRCode\\\\Data\\\\ReedSolomonEncoder constructor expects chillerlan\\\\QRCode\\\\Common\\\\EccLevel, chillerlan\\\\QRCode\\\\Common\\\\EccLevel\\|null given\\.$#"
message: '#^Parameter \#2 \$eccLevel of class chillerlan\\QRCode\\Data\\ReedSolomonEncoder constructor expects chillerlan\\QRCode\\Common\\EccLevel, chillerlan\\QRCode\\Common\\EccLevel\|null given\.$#'
identifier: argument.type
count: 1
path: src/Data/QRMatrix.php

-
message: "#^Parameter \\#1 \\$maskPattern of method chillerlan\\\\QRCode\\\\Data\\\\QRMatrix\\:\\:mask\\(\\) expects chillerlan\\\\QRCode\\\\Common\\\\MaskPattern, chillerlan\\\\QRCode\\\\Common\\\\MaskPattern\\|null given\\.$#"
message: '#^Parameter \#1 \$maskPattern of method chillerlan\\QRCode\\Data\\QRMatrix\:\:mask\(\) expects chillerlan\\QRCode\\Common\\MaskPattern, chillerlan\\QRCode\\Common\\MaskPattern\|null given\.$#'
identifier: argument.type
count: 1
path: src/Decoder/BitMatrix.php

-
message: "#^Parameter \\#1 \\$version of class chillerlan\\\\QRCode\\\\Data\\\\QRMatrix constructor expects chillerlan\\\\QRCode\\\\Common\\\\Version, chillerlan\\\\QRCode\\\\Common\\\\Version\\|null given\\.$#"
message: '#^Parameter \#1 \$version of class chillerlan\\QRCode\\Data\\QRMatrix constructor expects chillerlan\\QRCode\\Common\\Version, chillerlan\\QRCode\\Common\\Version\|null given\.$#'
identifier: argument.type
count: 1
path: src/Decoder/BitMatrix.php

-
message: "#^Parameter \\#2 \\$b of method chillerlan\\\\QRCode\\\\Decoder\\\\BitMatrix\\:\\:numBitsDiffering\\(\\) expects int, int\\|null given\\.$#"
message: '#^Parameter \#2 \$b of method chillerlan\\QRCode\\Decoder\\BitMatrix\:\:numBitsDiffering\(\) expects int, int\|null given\.$#'
identifier: argument.type
count: 1
path: src/Decoder/BitMatrix.php

-
message: "#^Parameter \\#2 \\$eccLevel of class chillerlan\\\\QRCode\\\\Data\\\\QRMatrix constructor expects chillerlan\\\\QRCode\\\\Common\\\\EccLevel, chillerlan\\\\QRCode\\\\Common\\\\EccLevel\\|null given\\.$#"
message: '#^Parameter \#2 \$eccLevel of class chillerlan\\QRCode\\Data\\QRMatrix constructor expects chillerlan\\QRCode\\Common\\EccLevel, chillerlan\\QRCode\\Common\\EccLevel\|null given\.$#'
identifier: argument.type
count: 1
path: src/Decoder/BitMatrix.php

-
message: "#^Property chillerlan\\\\QRCode\\\\Decoder\\\\Decoder\\:\\:\\$options is never read, only written\\.$#"
message: '#^Property chillerlan\\QRCode\\Decoder\\Decoder\:\:\$options is never read, only written\.$#'
identifier: property.onlyWritten
count: 1
path: src/Decoder/Decoder.php

-
message: "#^Method chillerlan\\\\QRCode\\\\Decoder\\\\ReedSolomonDecoder\\:\\:deinterleaveRawBytes\\(\\) return type has no value type specified in iterable type array\\.$#"
message: '#^Method chillerlan\\QRCode\\Decoder\\ReedSolomonDecoder\:\:deinterleaveRawBytes\(\) return type has no value type specified in iterable type array\.$#'
identifier: missingType.iterableValue
count: 1
path: src/Decoder/ReedSolomonDecoder.php

-
message: "#^Parameter \\#1 \\$width of function imagecreatetruecolor expects int\\<1, max\\>, int given\\.$#"
message: '#^Parameter \#1 \$width of function imagecreatetruecolor expects int\<1, max\>, int given\.$#'
identifier: argument.type
count: 1
path: src/Output/QRGdImage.php

-
message: "#^Parameter \\#2 \\$height of function imagecreatetruecolor expects int\\<1, max\\>, int given\\.$#"
message: '#^Parameter \#2 \$height of function imagecreatetruecolor expects int\<1, max\>, int given\.$#'
identifier: argument.type
count: 1
path: src/Output/QRGdImage.php

-
message: "#^Method chillerlan\\\\QRCodeTest\\\\Common\\\\MaskPatternTest\\:\\:assertMask\\(\\) has parameter \\$expected with no value type specified in iterable type array\\.$#"
message: '#^Method chillerlan\\QRCodeTest\\Common\\MaskPatternTest\:\:assertMask\(\) has parameter \$expected with no value type specified in iterable type array\.$#'
identifier: missingType.iterableValue
count: 1
path: tests/Common/MaskPatternTest.php

-
message: "#^Method chillerlan\\\\QRCodeTest\\\\Common\\\\MaskPatternTest\\:\\:maskPatternProvider\\(\\) return type has no value type specified in iterable type array\\.$#"
message: '#^Method chillerlan\\QRCodeTest\\Common\\MaskPatternTest\:\:maskPatternProvider\(\) return type has no value type specified in iterable type array\.$#'
identifier: missingType.iterableValue
count: 1
path: tests/Common/MaskPatternTest.php

-
message: "#^Method chillerlan\\\\QRCodeTest\\\\Common\\\\MaskPatternTest\\:\\:testMask\\(\\) has parameter \\$expected with no value type specified in iterable type array\\.$#"
message: '#^Method chillerlan\\QRCodeTest\\Common\\MaskPatternTest\:\:testMask\(\) has parameter \$expected with no value type specified in iterable type array\.$#'
identifier: missingType.iterableValue
count: 1
path: tests/Common/MaskPatternTest.php

-
message: "#^Parameter \\#1 \\$string of static method chillerlan\\\\QRCode\\\\Data\\\\QRDataModeInterface\\:\\:validateString\\(\\) expects string, string\\|false given\\.$#"
message: '#^Parameter \#1 \$string of static method chillerlan\\QRCode\\Data\\QRDataModeInterface\:\:validateString\(\) expects string, string\|false given\.$#'
identifier: argument.type
count: 1
path: tests/Data/DataInterfaceTestAbstract.php

-
message: "#^Parameter \\#2 \\$to_encoding of function mb_convert_encoding expects string, string\\|null given\\.$#"
message: '#^Parameter \#2 \$to_encoding of function mb_convert_encoding expects string, string\|null given\.$#'
identifier: argument.type
count: 1
path: tests/Data/ECITest.php

-
message: "#^Parameter \\#1 \\$blob of method chillerlan\\\\QRCode\\\\QRCode\\:\\:readFromBlob\\(\\) expects string, GdImage\\|string given\\.$#"
message: '#^Parameter \#1 \$blob of method chillerlan\\QRCode\\QRCode\:\:readFromBlob\(\) expects string, GdImage\|string given\.$#'
identifier: argument.type
count: 1
path: tests/Data/QRDataTest.php
3 changes: 0 additions & 3 deletions src/Detector/PerspectiveTransform.php
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,6 @@ private function set(
return $this;
}

/**
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
*/
public function quadrilateralToQuadrilateral(
float $x0, float $y0, float $x1, float $y1, float $x2, float $y2, float $x3, float $y3,
float $x0p, float $y0p, float $x1p, float $y1p, float $x2p, float $y2p, float $x3p, float $y3p,
Expand Down
2 changes: 0 additions & 2 deletions src/QRCode.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@
* @author Smiley <[email protected]>
* @copyright 2015 Smiley
* @license MIT
*
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
*/
declare(strict_types=1);

Expand Down
1 change: 0 additions & 1 deletion tests/QRMaxLengthTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,6 @@ public static function getMaxLengthForMode(int $mode, Version $version, EccLevel
throw new QRCodeException('invalid $ecc');
}

/** @SuppressWarnings(PHPMD.UndefinedVariable) */
$maxlength = static::MAX_LENGTH[$ver][$dataMode][$ecc];

// Hanzi mode sets an additional 4 bit long subset identifier
Expand Down

0 comments on commit 747a38d

Please sign in to comment.