Skip to content

Add isSorted and related matchers #2490

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 11 commits into from
Jun 4, 2025
Merged

Conversation

AgamAgarwal
Copy link
Contributor

@AgamAgarwal AgamAgarwal commented Apr 25, 2025

Add sorting related matchers for iterables.

  • isSorted
  • isSortedUsing
  • isSortedBy
  • isSortedByCompare

These match the functions available in https://github.com/dart-lang/core/blob/main/pkgs/collection/lib/src/iterable_extensions.dart


  • [✅ ] I’ve reviewed the contributor guide and applied the relevant portions to this PR.

@AgamAgarwal AgamAgarwal requested a review from a team as a code owner April 25, 2025 10:25
@AgamAgarwal
Copy link
Contributor Author

Requesting one of the admins to take a look at this PR.

Copy link

github-actions bot commented May 6, 2025

PR Health

Changelog Entry ✔️
Package Changed Files

Changes to files need to be accounted for in their respective changelogs.

@AgamAgarwal AgamAgarwal force-pushed the is_sorted branch 2 times, most recently from 5f77ab9 to e43a1d2 Compare May 7, 2025 15:36
@AgamAgarwal
Copy link
Contributor Author

Updated the code to fix the failures which came up in dart analyze.

This ensures that a single iteration happens.
This is also how iterable_extensions.dart implements the corresponding methods.

Also, rename the parameter from `comparator` to `compare` to match those functions.
@iinozemtsev iinozemtsev requested a review from lrhn May 9, 2025 14:11
Copy link
Member

@lrhn lrhn left a comment

Choose a reason for hiding this comment

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

It looks fine to me.
I'm not an owner of/expert on the test package, so we'll need one of those too.

This will give more information about where the actual mismatch happened.
Handle errors from keyOf and compare functions and construct the mismatch description
accordingly.
@lrhn
Copy link
Member

lrhn commented May 28, 2025

@dart-lang/core-package-admins We need someone with actual test-package experience to review this too.

@lrhn lrhn requested a review from biggs0125 May 28, 2025 17:19
@biggs0125 biggs0125 requested review from natebosch and removed request for biggs0125 May 28, 2025 22:44
@natebosch natebosch merged commit 0793a2b into dart-lang:master Jun 4, 2025
56 checks passed
@AgamAgarwal AgamAgarwal deleted the is_sorted branch June 5, 2025 06:53
copybara-service bot pushed a commit to dart-lang/sdk that referenced this pull request Jun 5, 2025
Revisions updated by `dart tools/rev_sdk_deps.dart`.

ai (https://github.com/dart-lang/ai/compare/6a71aeb..1d9d60c):
  1d9d60c  2025-06-05  Jacob MacDonald  handle relative paths under roots without trailing slashes (dart-lang/ai#152)

ecosystem (https://github.com/dart-lang/ecosystem/compare/8cebaf0..64aac3a):
  64aac3a  2025-06-03  Daco Harkes  [health] Bump dart_apitool (dart-lang/ecosystem#360)

i18n (https://github.com/dart-lang/i18n/compare/e44af54..43214dd):
  43214dde  2025-06-04  Moritz  Upgrade to new native_assets (dart-lang/i18n#964)

protobuf (https://github.com/dart-lang/protobuf/compare/c69077d..32d53da):
  32d53da  2025-06-05  Devon Carew  Refactor the test goldens so they have standard file name extensions (google/protobuf.dart#1014)

test (https://github.com/dart-lang/test/compare/e2ddae9..0793a2b):
  0793a2b3  2025-06-05  Agam Agarwal  Add isSorted and related matchers (dart-lang/test#2490)

tools (https://github.com/dart-lang/tools/compare/04c6849..e84cbd9):
  e84cbd9e  2025-06-04  Christophe Coevoet  [source_span] Add a test covering the highlighting of non-contiguous spans (dart-lang/tools#1666)
  700a3c4d  2025-06-04  Liam Appelbe  [coverage] Fix remaining ~0.1% flakiness (dart-lang/tools#2102)

webdev (https://github.com/dart-lang/webdev/compare/64492b2..55941b0):
  55941b0c  2025-06-05  Kevin Moore  [dwds] DRY up MD5/etag logic (dart-lang/webdev#2625)
  ab7c4d68  2025-06-05  dependabot[bot]  Bump the github-actions group across 1 directory with 3 updates (dart-lang/webdev#2593)
  f149e43f  2025-06-05  Nate Biggs  Update e2e_test expectation to look for more consistent message. (dart-lang/webdev#2630)
  80b1686b  2025-06-03  Nicholas Shahan  Fix e2e_test to work with current DDC output (dart-lang/webdev#2626)

Change-Id: I4802d7c4a7e39ba238f2f4ce0748dfa6dba9d8c4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/433240
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants