-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Allow default parameter values in interfaces #2207
Comments
The current spec does not allow specifying default values in interfaces, but it is likely that the spec will change in that regard. Until then the only option is to 'specify' default values in the comment. |
Added Area-Language, Triaged labels. |
This comment was originally written by ladicek@gmail.com This should probably be called "Allow default values for optional arguments in interfaces" or something like that. I was thinking about it too and I think that in a lot of cases, it makes sense to prescribe default values for all implementations of the interface. The implementations shouldn't be allowed to change the defaults then. |
We are considering this. No promises. Removed Type-Defect label. |
Set owner to @gbracha. |
Fixed in 0.09 draft. Added Done label. |
Issue #2955 has been merged into this issue. |
Now that interface declarations are headed for the guillotine, this is a moot point. Added WontFix label. |
Revisions updated by `dart tools/rev_sdk_deps.dart`. dartdoc (https://github.com/dart-lang/dartdoc/compare/f5750f5..dd28f4c): dd28f4ce 2023-09-11 dependabot[bot] Bump actions/cache from 3.3.1 to 3.3.2 (#3497) 2ac7e323 2023-09-11 dependabot[bot] Bump actions/upload-artifact from 3.1.2 to 3.1.3 (#3496) ecosystem (https://github.com/dart-lang/ecosystem/compare/2e6c3ec..e96fbdb): e96fbdb 2023-09-12 Moritz Try a fix for the health check socket issues (#164) 4cc5005 2023-09-11 Alexander Thomas Add missing license header to license.dart (#166) 3fbab6c 2023-09-10 Moritz Fix boolean condition in `publish.yaml` (#163) http (https://github.com/dart-lang/http/compare/7fb6fd6..de19214): de19214 2023-09-12 Sam Rawlins Avoid passing a nullable value to Completer<nn-type>.complete (#1015) native (https://github.com/dart-lang/native/compare/a2dfedc..5177659): 5177659 2023-09-12 Daco Harkes [native_assets_builder] Speedup builds for 0 or 1 packages with native assets (#129) 7f30f4b 2023-09-12 Daco Harkes [native_assets_builder] Take packageLayout for build and dryRun (#127) a7cd31e 2023-09-12 Daco Harkes `PackageLayout` constructor for already parsed `PackageConfig` (#126) 9f24b64 2023-09-11 Daco Harkes [native_toolchain_c] Fix MSVC x86 toolchain resolution (#124) 07e1de5 2023-09-06 Daco Harkes Reenable example on CI + roll dep (#122) 387f894 2023-09-06 Gabriel Terwesten [native_toolchain_c] Default handling for PIC/PIE compiler flags (#121) 0a4e5f8 2023-09-06 Gabriel Terwesten Add support for defines to `CBuilder` (#120) test (https://github.com/dart-lang/test/compare/27dcae1..6449495): 64494959 2023-09-11 Jacob MacDonald skip failing wasm tests (#2091) 83ae0d9f 2023-09-07 Jacob MacDonald Fix running browser tests that use deferred loading (#2090) tools (https://github.com/dart-lang/tools/compare/2c8cbd6..fa01f9b): fa01f9b 2023-09-11 Elias Yishak `--disable-telemetry` --> `--disable-analytics` (#145) webdev (https://github.com/dart-lang/webdev/compare/9487a45..6b21ecf): 6b21ecf0 2023-09-11 dependabot[bot] Bump actions/labeler from 4.2.0 to 4.3.0 (#2177) 78a5fece 2023-09-11 Sam Rawlins Avoid passing a nullable value to Future<nn-type>.value or Completer<nn-type>.completer. (#2205) 6f282432 2023-09-11 Parker Lougheed [webdev] Hide `--null-safety` option (#2206) 1c5a7bc7 2023-09-11 Parker Lougheed Replace deprecated lints (#2208) f0656b4a 2023-09-11 Parker Lougheed Fix a few minor spelling mistakes (#2209) 158223b2 2023-09-11 Parker Lougheed Update old dartlang.org links to new .dev equivalents (#2210) a8d114c5 2023-09-11 Elliott Brooks Update the comment for lookupResolvedPackageUris 76e050c6 2023-09-11 Elliott Brooks Clear the map of relative URIs on DartUri.clear() 38a17ced 2023-09-11 dependabot[bot] Bump dart-lang/setup-dart from 1.3.0 to 1.5.0 (#2212) cca9e56d 2023-09-11 Elliott Brooks Reset Webdev after release (#2227) 824dcef7 2023-09-11 Elliott Brooks Reset DWDS after release (#2225) 45c09a80 2023-09-08 Elliott Brooks Prepare Webdev for release to 3.0.8 (#2224) 805d3b7e 2023-09-08 dependabot[bot] Bump actions/cache from 3.2.2 to 3.3.2 (#2223) 85d4e760 2023-09-08 Elliott Brooks Prepare DWDS for release to version 21.0.0 (#2221) a3757f06 2023-09-08 Anna Gringauze Run monorepo generate (#2222) c991e85a 2023-09-07 dependabot[bot] Bump actions/checkout from 3.2.0 to 4.0.0 (#2219) 9851c23c 2023-09-07 Parker Lougheed Update SDK constraints for Dart 3.0 and 3.1 stable releases (#2207) Change-Id: I0caf74af171916d30eb8ee2ab78c15acaebaa229 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/325560 Auto-Submit: Devon Carew <devoncarew@google.com> Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Commit-Queue: Devon Carew <devoncarew@google.com>
This issue was originally filed by @rbeeger
Browsing through the Dart libraries I found
/**
* Constructs a regular expression. The default implementation of a
* [RegExp] sets [multiLine] and [ignoreCase] to false.
*/
const RegExp(String pattern, [bool multiLine, bool ignoreCase]);
Then I thought, that could be replaced by a more readable form
/**
* Constructs a regular expression.
*/
const RegExp(String pattern, [bool multiLine = false, bool ignoreCase = false]);
OK, now the default values are set to false for the default implementation and for any implementation out there, but is that really a problem? When I see the interface I will expect each implementation to use the same default values. Otherwise you always have to take a look at the used implementation to make sure you know how it behaves.
I always prefer clear code over documentation. Documentation gets out of date, code doesn't.
Cheers,
Robert
The text was updated successfully, but these errors were encountered: