Repository navigation
[json_syntax_generator] Pass the parameter name to ArgumentError.value - #3787
Merged
dcharkes merged 1 commit intoNov 11, 2026
Merged
Conversation
ArgumentError.value takes (value, [name, message]). The two map argument checks in the helper library passed the message as the second argument, so it landed in the name slot: Invalid argument (Unexpected key 'x'. Expected a key satisfying ...): _Map len:1 Pass 'map' as the name so the message reads as a message: Invalid argument (map): Unexpected key 'x'. Expected a key satisfying ...: _Map len:1 The helper library is copied verbatim into every generated syntax file, so the same change is applied to the ten generated syntax.g.dart files.
dcharkes
approved these changes
Nov 9, 2026
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3787 +/- ##
=======================================
Coverage 85.88% 85.88%
=======================================
Files 322 322
Lines 20855 20855
=======================================
Hits 17911 17911
Misses 2944 2944
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
copybara-service Bot
pushed a commit
to dart-lang/sdk
that referenced
this pull request
Nov 12, 2026
Revisions updated by `dart tools/rev_sdk_deps.dart`. core (https://github.com/dart-lang/core/compare/36f57a9..fa0c6b7): fa0c6b77 Fri Nov 6 12:56:58 2026 +0100 Michael Thomsen Release os_detect 2.0.4 (dart-lang/core#1038) dartdoc (https://github.com/dart-lang/dartdoc/compare/03ec6df..7e2508c): 7e2508c6 Wed Nov 11 14:52:22 2026 +0200 Sergey G. Grekhov Add constructor doc comment tests for enums and extension types (dart-lang/dartdoc#4316) 03dfb467 Mon Nov 9 11:00:32 2026 +0200 Sergey G. Grekhov `#3330`. Split test for parameters to separate tests (dart-lang/dartdoc#4314) 23302d53 Mon Nov 9 10:56:34 2026 +0200 Sergey G. Grekhov Add tests for primary constructors (dart-lang/dartdoc#4313) ecosystem (https://github.com/dart-lang/ecosystem/compare/54e1673..1d2b5ff): 1d2b5ff Tue Nov 10 09:04:24 2026 -0800 Kevin Moore feat(repo_manage): add --replace-pattern to report changelog (dart-lang/ecosystem#482) http (https://github.com/dart-lang/http/compare/4646fe6..2bac218): 2bac218 Fri Nov 6 17:49:23 2026 -0800 dart-ecosystem-bot[bot] Tidy: package:cronet_http cdf967c Fri Nov 6 15:40:49 2026 -0800 Brian Quinlan chore(groundkeeper): use stable for flutter (dart-lang/http#2066) 6582177 Thu Nov 5 13:04:35 2026 -0800 Brian Quinlan doc: use timeout as an abort example (dart-lang/http#2062) native (https://github.com/dart-lang/native/compare/6287745..b21ef2d): b21ef2da3 Wed Nov 11 16:07:34 2026 +0530 dhairya05 [json_syntax_generator] Pass the parameter name to ArgumentError.value (dart-lang/native#3787) 20a607e48 Wed Nov 11 07:28:03 2026 -0300 Daco Harkes [code_assets] [hooks] [hooks_runner] Adopt `.g.dart` for generated files (dart-lang/native#3790) cc974ddec Wed Nov 11 19:59:39 2026 +1100 Liam Appelbe [objective_c] Fix `isValidObject` bug on iOS simulator (dart-lang/native#3788) f7edbdee3 Sun Nov 8 13:18:25 2026 +1100 Liam Appelbe [jni] Fix possible receiver NPEs (dart-lang/native#3784) 0ca7d6745 Fri Nov 6 10:20:21 2026 -0300 Daco Harkes [code_assets] [hooks_runner] [native_toolchain_c] Prepare for release (dart-lang/native#3781) baad15ab4 Fri Nov 6 02:56:52 2026 +0100 Kravchenko Igor [objective_c] Link Foundation in the native support library (dart-lang/native#3782) shelf (https://github.com/dart-lang/shelf/compare/9946de5..b175e9f): b175e9f Tue Nov 10 09:14:31 2026 +0530 Muhammad Uvesh shelf_static: ignore invalid If-Modified-Since headers (dart-lang/shelf#557) 02b5f94 Sat Nov 7 23:09:28 2026 +0530 dhairya05 Fix typo in shelf_router docs (dart-lang/shelf#556) test (https://github.com/dart-lang/test/compare/2a9e017..3533ae1): 3533ae1e Tue Nov 10 15:06:08 2026 -0800 Nate Bosch Never retry tearDownAll (dart-lang/test#2815) 5680b0b1 Fri Nov 6 12:52:11 2026 +0100 Sigurd Meldgaard Add globalSetup and addGlobalTearDown APIs for cross-suite setup and teardown (dart-lang/test#2714) b8dc888a Thu Nov 5 18:11:37 2026 -0800 Nate Bosch [checks_codegen] Skip private fields and fields referencing private types (dart-lang/test#2782) 66e062c4 Thu Nov 5 16:05:36 2026 -0800 Nate Bosch [checks_codegen] Generate full field types with imports (dart-lang/test#2781) tools (https://github.com/dart-lang/tools/compare/727fd9c..589d844): 589d844c4 Wed Nov 11 20:27:32 2026 +0300 Hasan Armoush fix(markdown): combine adjacent Text nodes when the element is last in its list (dart-lang/tools#2598) Change-Id: I13acaa7378c86f2c33d88f3c4b163acf2b48ff08 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/576820 Commit-Queue: Nate Bosch <[email protected]> Reviewed-by: Nicholas Shahan <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ArgumentError.valuetakes(value, [name, message]). The two map argument checks in the helper library,_checkArgumentMapKeysand_checkArgumentMapStringElements, pass the message as the second argument, so it ends up in thenameslot and the error has no message of its own.With a key that doesn't match
keyPattern, the error currently reads:The explanation sits inside the parentheses where the parameter name belongs. With
'map'passed as the name:Both lines come from running the old and new helper on Dart 3.13.7. I didn't work them out from the docs.
These checks run in every generated map setter (
_checkArgumentMapKeys(value, ...)), so the change affects users ofpackage:hooks,code_assets,data_assets,hooks_runner,web_assets,record_useandpub_formatswho assign a map with an invalid key or value.Generated files
helperLibis written into each generated file verbatim, and before this change the two functions were byte-identical in the template and in all tensyntax.g.dartfiles. So the same edit is applied to the template and to the ten generated copies. I could not run thetool/generate*.dartscripts in my environment. For each file I compareddart formatoutput against the untouched original, and the edits add no new formatting differences: the continuation line of each message moves 4 spaces in, which the formatter needs now that there are three arguments.hooks_runnerandrecord_usealready show differences under my formatter version, which looks like an SDK version difference, and I left those alone. Running--set-exit-if-changedin CI should confirm the generated files are in sync.Changelog
This follows earlier
[json_syntax_generator]PRs such as #2443 and #3293, which regenerated the.g.dartfiles without changelog entries and carried theskip-changelog-checklabel.code_assetsandhooks_runnerwere just released, so adding entries would also mean bumping their versions, and I didn't want to make that call in this PR. I don't have permission to add labels, so the changelog check will need a maintainer.