Skip to content

PHPC-2140: Make tentative return types definitive #1658

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Sep 19, 2024

Conversation

alcaeus
Copy link
Member

@alcaeus alcaeus commented Sep 17, 2024

PHPC-2140

This PR removes the @tentative-return-type annotation in all stub files, making the return types definitive and causing errors if an extending or implementing class does not have a covariant return type.

It also changes the return types for various methods in MongoDB\Driver\Manager and MongoDB\Driver\Server from Cursor to CursorInterface.

Note: currently contains changes from #1653 to avoid fixing tests that will be removed.

@alcaeus alcaeus force-pushed the phpc-2140-return-types branch 3 times, most recently from 4aebdee to fc1f63f Compare September 18, 2024 13:57
@alcaeus alcaeus requested review from jmikola and GromNaN September 18, 2024 13:57
@alcaeus alcaeus marked this pull request as ready for review September 18, 2024 13:58
@@ -9,18 +9,17 @@

interface CursorInterface extends \Iterator
{
/** @tentative-return-type */
public function current(): array|object|null {}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do I assume correctly that only current() and key() are included here because those are the only methods where we'd narrowing the return type from the parent interface?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This methods are mentioned in the upgrade file:

The return types for the key and current methods have been narrowed to the types returned by cursor instances.

@alcaeus alcaeus force-pushed the phpc-2140-return-types branch from fc1f63f to ddf31af Compare September 19, 2024 05:47
@alcaeus alcaeus enabled auto-merge (squash) September 19, 2024 05:48
@alcaeus alcaeus merged commit 26a503a into mongodb:v2.x Sep 19, 2024
58 of 62 checks passed
@alcaeus alcaeus deleted the phpc-2140-return-types branch September 19, 2024 06:11
alcaeus added a commit that referenced this pull request Oct 29, 2024
* v2.x: (22 commits)
  PHPC-2441: Remove deprecated Manager constructor options (#1719)
  PHPC-990: Strict type validation for boolean URI options (#1713)
  PHPC-2440: Remove deprecated Query constructor options (#1707)
  PHPC-2459: Remove support for float arg in UTCDateTime ctor (#1709)
  Remove obsolete test
  PHPC-2344 Remove SSLConnectionException (#1696)
  PHPC-2144 Throw a LogicException when getting info from unacknowledged write result (#1687)
  PHPC-2454: Remove --enable-system-ciphers configure option (#1681)
  PHPC-2348 Remove `WriteException` and move `getWriteResult` to `BulkWriteException` (#1685)
  PHPC-2417 Add UTCDateTimeInterface::toDateTimeImmutable() (#1684)
  PHPC-2309: Remove --with-openssl-dir configure option (#1676)
  PHPC-2444: Remove support for string arguments in UTCDateTime constructor (#1662)
  PHPC-2248: Remove Serializable implementations (#1663)
  Update version for 2.x branch (#1672)
  PHPC-1021: Remove support for ReadPreference integer modes (#1666)
  PHPC-2342: Remove --with-libbson and --with-libmongoc configure options (#1667)
  PHPC-2351: Remove CursorId class (#1664)
  PHPC-2140: Make tentative return types definitive (#1658)
  PHPC-2402: Remove range_preview constants (#1665)
  PHPC-2346: Remove deprecated BSON functions (#1653)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants