1
0
mirror of https://github.com/danog/psalm.git synced 2024-11-26 20:34:47 +01:00
psalm/tests/CastTest.php

54 lines
1.5 KiB
PHP
Raw Permalink Normal View History

2022-02-18 20:17:56 +01:00
<?php
namespace Psalm\Tests;
use Psalm\Tests\Traits\ValidCodeAnalysisTestTrait;
class CastTest extends TestCase
{
use ValidCodeAnalysisTestTrait;
public function providerValidCodeParse(): iterable
{
2022-10-17 12:14:07 +02:00
yield 'SKIPPED-castFalseOrIntToInt' => [
2022-02-18 20:17:56 +01:00
'code' => '<?php
/** @var false|int<10, 20> */
$intOrFalse = 10;
$int = (int) $intOrFalse;
',
'assertions' => [
'$int===' => '0|int<10, 20>',
],
];
2022-10-17 12:14:07 +02:00
yield 'SKIPPED-castTrueOrIntToInt' => [
2022-02-18 20:17:56 +01:00
'code' => '<?php
/** @var true|int<10, 20> */
$intOrTrue = 10;
$int = (int) $intOrTrue;
',
'assertions' => [
'$int===' => '1|int<10, 20>',
],
];
2022-10-17 12:14:07 +02:00
yield 'SKIPPED-castBoolOrIntToInt' => [
2022-02-18 20:17:56 +01:00
'code' => '<?php
/** @var bool|int<10, 20> */
$intOrBool = 10;
$int = (int) $intOrBool;
',
'assertions' => [
'$int===' => '0|1|int<10, 20>',
],
];
yield 'castObjectWithPropertiesToArray' => [
'code' => '<?php
/** @var object{a:int,b:string} $o */
$a = (array) $o;
',
'assertions' => [
'$a===' => 'array{a: int, b: string, ...<array-key, mixed>}',
],
];
2022-02-18 20:17:56 +01:00
}
}