1
0
mirror of https://github.com/danog/psalm.git synced 2024-11-30 04:39:00 +01:00

Merge pull request #8579 from ADmad/patch-2

Fix template param for SplDoublyLinkedList
This commit is contained in:
orklah 2022-10-15 14:35:14 +02:00 committed by GitHub
commit 61ef140e28
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 16 deletions

View File

@ -448,5 +448,5 @@ Psalm has support for a number of builtin classes and interfaces that you can ex
- `class ArrayObject<TKey, TValue> implements IteratorAggregate<TKey, TValue>, ArrayAccess<TKey, TValue>`
- `class ArrayIterator<TKey of array-key, TValue> implements SeekableIterator<TKey, TValue>, ArrayAccess<TKey, TValue>`
- `class DOMNodeList<TNode of DOMNode> implements Traversable<int, TNode>`
- `class SplDoublyLinkedList<TKey, TValue> implements Iterator<TKey, TValue>, ArrayAccess<TKey, TValue>`
- `class SplQueue<TValue> extends SplDoublyLinkedList<int, TValue>`
- `class SplDoublyLinkedList<TValue> implements Iterator<TKey, TValue>, ArrayAccess<TKey, TValue>`
- `class SplQueue<TValue> extends SplDoublyLinkedList<TValue>`

View File

@ -4,10 +4,9 @@
* The SplDoublyLinkedList class provides the main functionalities of a doubly linked list.
* @link https://php.net/manual/en/class.spldoublylinkedlist.php
*
* @template TKey
* @template TValue
* @template-implements Iterator<TKey, TValue>
* @template-implements ArrayAccess<TKey, TValue>
* @template-implements Iterator<int, TValue>
* @template-implements ArrayAccess<int, TValue>
*/
class SplDoublyLinkedList implements Iterator, Countable, ArrayAccess, Serializable
{
@ -16,7 +15,7 @@ class SplDoublyLinkedList implements Iterator, Countable, ArrayAccess, Serializa
/**
* Add/insert a new value at the specified index
*
* @param TKey $index The index where the new value is to be inserted.
* @param int $index The index where the new value is to be inserted.
* @param TValue $newval The new value for the index.
* @return void
*
@ -111,7 +110,7 @@ class SplDoublyLinkedList implements Iterator, Countable, ArrayAccess, Serializa
* Returns whether the requested $index exists
* @link https://php.net/manual/en/spldoublylinkedlist.offsetexists.php
*
* @param TKey $index The index being checked.
* @param int $index The index being checked.
* @return bool true if the requested index exists, otherwise false
*
* @since 5.3.0
@ -122,7 +121,7 @@ class SplDoublyLinkedList implements Iterator, Countable, ArrayAccess, Serializa
* Returns the value at the specified $index
* @link https://php.net/manual/en/spldoublylinkedlist.offsetget.php
*
* @param TKey $index The index with the value.
* @param int $index The index with the value.
* @return TValue The value at the specified index.
*
* @since 5.3.0
@ -133,7 +132,7 @@ class SplDoublyLinkedList implements Iterator, Countable, ArrayAccess, Serializa
* Sets the value at the specified $index to $newval
* @link https://php.net/manual/en/spldoublylinkedlist.offsetset.php
*
* @param TKey $index The index being set.
* @param int $index The index being set.
* @param TValue $newval The new value for the index.
* @return void
*
@ -145,7 +144,7 @@ class SplDoublyLinkedList implements Iterator, Countable, ArrayAccess, Serializa
* Unsets the value at the specified $index
* @link https://php.net/manual/en/spldoublylinkedlist.offsetunset.php
*
* @param TKey $index The index being unset.
* @param int $index The index being unset.
* @return void
*
* @since 5.3.0
@ -166,7 +165,7 @@ class SplDoublyLinkedList implements Iterator, Countable, ArrayAccess, Serializa
* Return current node index
* @link https://php.net/manual/en/spldoublylinkedlist.key.php
*
* @return TKey The current node index.
* @return int The current node index.
*
* @since 5.3.0
*/
@ -346,7 +345,7 @@ class SplFixedArray implements Iterator, ArrayAccess, Countable {
* @link https://php.net/manual/en/class.splstack.php
*
* @template TValue
* @template-extends SplDoublyLinkedList<int, TValue>
* @template-extends SplDoublyLinkedList<TValue>
*/
class SplStack extends SplDoublyLinkedList {
}
@ -356,7 +355,7 @@ class SplStack extends SplDoublyLinkedList {
* @link https://php.net/manual/en/class.splqueue.php
*
* @template TValue
* @template-extends SplDoublyLinkedList<int, TValue>
* @template-extends SplDoublyLinkedList<TValue>
*/
class SplQueue extends SplDoublyLinkedList {
/**

View File

@ -1039,9 +1039,9 @@ class ClassTemplateTest extends TestCase
'code' => '<?php
$list = new SplDoublyLinkedList();
$list->add(5, "hello");
$list->add("hello", 5);
$list->add(5, 1);
/** @var SplDoublyLinkedList<int, string> */
/** @var SplDoublyLinkedList<string> */
$templated_list = new SplDoublyLinkedList();
$templated_list->add(5, "hello");
$a = $templated_list->bottom();',
@ -3937,7 +3937,7 @@ class ClassTemplateTest extends TestCase
],
'doublyLinkedListBadParam' => [
'code' => '<?php
/** @var SplDoublyLinkedList<int, string> */
/** @var SplDoublyLinkedList<string> */
$templated_list = new SplDoublyLinkedList();
$templated_list->add(5, []);',
'error_message' => 'InvalidArgument',