1
0
mirror of https://github.com/danog/psalm.git synced 2024-11-27 12:55:26 +01:00
psalm/tests/FileManipulation/UnnecessaryVarAnnotationManipulationTest.php
Bruce Weirdan 4110ec351b Make travis green again (#2518)
* Bumped phpspec/prophecy version to prevent 7.4 deprecations

* Fix DOMDocument::$config type

This property was documented as containing DOMConfiguration object, but
in fact always returned `null` (see [php source](ee80567a83/ext/dom/document.c (L542))).

DOMConfiguration class is removed in PHP 8.

* Dropped unused use

* Allow to set PHP 8.0 as current version

* Fix CallMap issues for PHP 8.0

- Use both major and minor version to load deltas
- Don't load non-existent deltas
- Stop at lowest possible delta
2019-12-27 19:06:09 -05:00

169 lines
4.6 KiB
PHP

<?php
namespace Psalm\Tests\FileManipulation;
class UnnecessaryVarAnnotationManipulationTest extends FileManipulationTest
{
/**
* @return array<string,array{string,string,string,string[],bool}>
*/
public function providerValidCodeParse()
{
return [
'removeSingleLineVarAnnotation' => [
'<?php
function foo() : string {
return "hello";
}
/** @var string */
$a = foo();
/** @var "a"|"b" */
$b = foo();',
'<?php
function foo() : string {
return "hello";
}
$a = foo();
/** @var "a"|"b" */
$b = foo();',
'5.6',
['UnnecessaryVarAnnotation'],
true,
],
'removeSingleLineVarAnnotationFlipped' => [
'<?php
function foo() : string {
return "hello";
}
/** @var "a"|"b" */
$b = foo();
/** @var string */
$a = foo();',
'<?php
function foo() : string {
return "hello";
}
/** @var "a"|"b" */
$b = foo();
$a = foo();',
'5.6',
['UnnecessaryVarAnnotation'],
true,
],
'removeSingleLineVarAnnotationAndType' => [
'<?php
function foo() : string {
return "hello";
}
/** @var string $a */
$a = foo();
/** @var "a"|"b" */
$b = foo();',
'<?php
function foo() : string {
return "hello";
}
$a = foo();
/** @var "a"|"b" */
$b = foo();',
'5.6',
['UnnecessaryVarAnnotation'],
true,
],
'removeMultipleLineVarAnnotation' => [
'<?php
function foo() : string {
return "hello";
}
/**
* @var string
*/
$a = foo();
/** @var "a"|"b" */
$b = foo();',
'<?php
function foo() : string {
return "hello";
}
$a = foo();
/** @var "a"|"b" */
$b = foo();',
'5.6',
['UnnecessaryVarAnnotation'],
true,
],
'removeMultipleLineVarAnnotationKeepComment' => [
'<?php
function foo() : string {
return "hello";
}
/**
* @var string
* this comment should stay
*/
$a = foo();
/** @var "a"|"b" */
$b = foo();',
'<?php
function foo() : string {
return "hello";
}
/**
* this comment should stay
*/
$a = foo();
/** @var "a"|"b" */
$b = foo();',
'5.6',
['UnnecessaryVarAnnotation'],
true,
],
'removeMultipleLineVarAnnotationOnce' => [
'<?php
/** @return string[] */
function foo() : array {
return ["hello"];
}
/**
* @var int $k
* @var string $v
*/
foreach (foo() as $k => $v) {}',
'<?php
/** @return string[] */
function foo() : array {
return ["hello"];
}
/**
* @var int $k
*/
foreach (foo() as $k => $v) {}',
'5.6',
['UnnecessaryVarAnnotation'],
true,
],
];
}
}