Skip to content
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

Closed
DartBot opened this issue Mar 16, 2012 · 10 comments
Closed

Allow default parameter values in interfaces #2207

DartBot opened this issue Mar 16, 2012 · 10 comments
Assignees
Labels
area-language Dart language related items (some items might be better tracked at github.com/dart-lang/language). closed-not-planned Closed as we don't intend to take action on the reported issue type-enhancement A request for a change that isn't a bug

Comments

@DartBot
Copy link

DartBot commented Mar 16, 2012

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

@ghost
Copy link

ghost commented Mar 16, 2012

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.

@iposva-google
Copy link
Contributor

Added Area-Language, Triaged labels.

@DartBot
Copy link
Author

DartBot commented Mar 17, 2012

This comment was originally written by [email protected]


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.

@gbracha
Copy link
Contributor

gbracha commented Apr 12, 2012

We are considering this. No promises.


Removed Type-Defect label.
Added Type-Enhancement, Accepted labels.
Changed the title to: "Allow default parameter values in interfaces".

@gbracha
Copy link
Contributor

gbracha commented Apr 13, 2012

Set owner to @gbracha.

@gbracha
Copy link
Contributor

gbracha commented Apr 18, 2012

Fixed in 0.09 draft.


Added Done label.

@anders-sandholm
Copy link
Contributor

Issue #2955 has been merged into this issue.

@anders-sandholm
Copy link
Contributor

Implementation of this change is tracked in
issue #3447 (VM)
issue #3448 (Dart2JS)
issue #3449 (Analyzer)

@anders-sandholm
Copy link
Contributor

Issue #2628 has been merged into this issue.


cc @mhausner.

@gbracha
Copy link
Contributor

gbracha commented Jul 3, 2012

Now that interface declarations are headed for the guillotine, this is a moot point.


Added WontFix label.

@DartBot DartBot added Type-Enhancement area-language Dart language related items (some items might be better tracked at github.com/dart-lang/language). labels Jul 3, 2012
@kevmoo kevmoo added closed-not-planned Closed as we don't intend to take action on the reported issue type-enhancement A request for a change that isn't a bug and removed resolution-wont_fix labels Mar 1, 2016
copybara-service bot pushed a commit that referenced this issue Sep 12, 2023
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 <[email protected]>
Reviewed-by: Konstantin Shcheglov <[email protected]>
Commit-Queue: Devon Carew <[email protected]>
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-language Dart language related items (some items might be better tracked at github.com/dart-lang/language). closed-not-planned Closed as we don't intend to take action on the reported issue type-enhancement A request for a change that isn't a bug
Projects
None yet
Development

No branches or pull requests

5 participants