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

field initializer should win over implicit optional-argument null #2160

Closed
floitschG opened this issue Mar 14, 2012 · 6 comments
Closed

field initializer should win over implicit optional-argument null #2160

floitschG opened this issue Mar 14, 2012 · 6 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

@floitschG
Copy link
Contributor

given the following class A, an instantiation of the form new A() should have its field initialized with 499.
===
class A {
  var x = 499;
  A([this.x]);
}
===
Currently the x-field is initialized with null, since [this.x] must be interpreted as if it was [this.x = null].

@gbracha
Copy link
Contributor

gbracha commented Mar 14, 2012

"given the following class A, an instantiation of the form new A() should have its field initialized with 499."

I assume this is the behavior you are asking for, as opposed to the specified behavior. This is very much a matter of opinion, and so I'm changing this to a feature request.

I would rather issue a warning in such cases (or even make it an error).

I was very much against allowing initializing formals as optional parameters in the first case. Each time you try and push this little sugar further, you get into a deeper mess than before. I am against this feature request.

The this.x syntax started as a simple sugar for a common case. Every time someone has a more complex case, the answer should be that they should revert to the unsugared form - not that the sugar should have more involved rules.


Removed Type-Defect label.
Added Type-Enhancement, Accepted labels.

@gbracha
Copy link
Contributor

gbracha commented Apr 12, 2012

Issue #2159 has been merged into this issue.

@gbracha
Copy link
Contributor

gbracha commented May 9, 2012

Set owner to @gbracha.

@whesse
Copy link
Contributor

whesse commented May 14, 2012

Just to clarify, would the unsugared case be

  A([this.x = 499]);
or
  A([x_param]) : x = (x_param == null)? 499 : x_param;
?

Also, assume x is final, since that is the tricky case.

@floitschG
Copy link
Contributor Author

I would expect A([this.x = 499]).
When entering the function without a value you basically ask if the parameter (which in this case is a field) has a default value.

@gbracha
Copy link
Contributor

gbracha commented May 24, 2012

class A {
  var x = 499;
  A([x]){ this.x = x};
}

Or

class A {
  final x;
  A([xp = 499]): x = xp;
}


Added WontFix label.

@floitschG floitschG added Type-Enhancement area-language Dart language related items (some items might be better tracked at github.com/dart-lang/language). labels May 24, 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 Jul 10, 2023
…ctor, browser_launcher, characters, cli_util, clock, collection, convert, crypto, csslib, dartdoc, ecosystem, ffi, fixnum, glob, html, http, http_multi_server, http_parser, json_rpc_2, leak_tracker, lints, logging, markdown, matcher, mime, mockito, native, package_config, path, pool, protobuf, pub_semver, shelf, source_map_stack_trace, source_maps, source_span, sse, stack_trace, stream_channel, string_scanner, term_glyph, test, test_descriptor, test_process, test_reflective_loader, tools, typed_data, usage, watcher, web_socket_channel, webdev, yaml

Revisions updated by `dart tools/rev_sdk_deps.dart`.

args (https://github.com/dart-lang/args/compare/a9543c0..da56b18):
  da56b18  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#249)

async (https://github.com/dart-lang/async/compare/a506993..b65622a):
  b65622a  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#247)

bazel_worker (https://github.com/dart-lang/bazel_worker/compare/f7b714e..c29d162):
  c29d162  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#77)

benchmark_harness (https://github.com/dart-lang/benchmark_harness/compare/e717ad4..fde73cb):
  fde73cb  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#91)

boolean_selector (https://github.com/dart-lang/boolean_selector/compare/3a1c982..303635d):
  303635d  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#49)

browser_launcher (https://github.com/dart-lang/browser_launcher/compare/40e4315..27ec600):
  27ec600  2023-07-05  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#46)
  dd8df9c  2023-07-05  Devon Carew  update formatting for recent lints (#47)

characters (https://github.com/dart-lang/characters/compare/3ef8883..ec844db):
  ec844db  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#84)

cli_util (https://github.com/dart-lang/cli_util/compare/5a49947..9b7ce78):
  9b7ce78  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#84)

clock (https://github.com/dart-lang/clock/compare/21caac1..263e508):
  263e508  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#54)

collection (https://github.com/dart-lang/collection/compare/a37bd51..db343da):
  db343da  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#295)

convert (https://github.com/dart-lang/convert/compare/9a387f0..79ee174):
  79ee174  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#84)

crypto (https://github.com/dart-lang/crypto/compare/216931a..8b704c6):
  8b704c6  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#150)

csslib (https://github.com/dart-lang/csslib/compare/be2e11e..7e91228):
  7e91228  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#187)

dartdoc (https://github.com/dart-lang/dartdoc/compare/c2ed703..2522559):
  25225596  2023-06-29  Sam Rawlins  Migrate some simple tasks to a simple package:args command (#3456)

ecosystem (https://github.com/dart-lang/ecosystem/compare/19fa443..b34db4f):
  b34db4f  2023-07-10  Moritz  Allow empty coverage (#128)
  5944328  2023-07-04  Moritz  Prepare for publish (#127)
  c0701c9  2023-07-04  dependabot[bot]  Bump dart-lang/setup-dart from 1.4.0 to 1.5.0 (#122)
  9bf3a10  2023-07-03  Moritz  Fix bug by switching `reduce` to `fold` (#126)
  fdfa528  2023-07-01  dependabot[bot]  Bump actions/cache from 3.2.6 to 3.3.1 (#121)
  238444c  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.3.0 to 3.5.3 (#123)
  ca1e1ae  2023-06-30  Moritz  Add coverage workflow (#119)
  cf02b4a  2023-06-30  Lasse R.H. Nielsen  Make Changelog class eagerly load and parse file. (#120)

ffi (https://github.com/dart-lang/ffi/compare/f582ca0..f01dfca):
  f01dfca  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#199)

fixnum (https://github.com/dart-lang/fixnum/compare/d9b9a2a..00fa120):
  00fa120  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#113)

glob (https://github.com/dart-lang/glob/compare/109121d..5b24393):
  5b24393  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#79)

html (https://github.com/dart-lang/html/compare/b3b820b..4060496):
  4060496  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#218)
  8cb99e4  2023-07-01  Devon Carew  address new analysis issues (#219)

http (https://github.com/dart-lang/http/compare/d68081f..c148a3a):
  c148a3a  2023-07-07  Alex James  Java http BaseClient implementation (#980)
  474999f  2023-07-05  Brian Quinlan  Document that the network entitlement is required when running in the macOS sandbox (#979)
  98e4112  2023-07-05  Brian Quinlan  Fix a bug where ...WebSocketClosed had two different initializer signatures (#981)
  9833a20  2023-07-05  Brian Quinlan  Support Steam<List<int>> as a provider of request data (#975)
  d3e78a0  2023-07-01  dependabot[bot]  Bump actions/labeler from 4.0.4 to 4.2.0 (#976)

http_multi_server (https://github.com/dart-lang/http_multi_server/compare/a209cd5..aa128cf):
  aa128cf  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#56)

http_parser (https://github.com/dart-lang/http_parser/compare/19466c0..c14fbf6):
  c14fbf6  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#75)

json_rpc_2 (https://github.com/dart-lang/json_rpc_2/compare/73467f3..509f71e):
  509f71e  2023-07-05  Nate Bosch  Fix the example to act as a server (#100)
  d80cbd0  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#99)

leak_tracker (https://github.com/dart-lang/leak_tracker/compare/c75b0a7..85bd7fb):
  85bd7fb  2023-07-05  Polina Cherkasova  - (#87)

lints (https://github.com/dart-lang/lints/compare/89f9519..e03dc04):
  e03dc04  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#138)

logging (https://github.com/dart-lang/logging/compare/f2fe2ac..5214987):
  5214987  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#144)

markdown (https://github.com/dart-lang/markdown/compare/4674d09..b4bdde2):
  b4bdde2  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#549)

matcher (https://github.com/dart-lang/matcher/compare/7e10117..ce8f409):
  ce8f409  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#225)

mime (https://github.com/dart-lang/mime/compare/2444840..bdb66bd):
  bdb66bd  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#99)

mockito (https://github.com/dart-lang/mockito/compare/974226e..451f756):
  451f756  2023-07-10  Nate Bosch  Add example of mocking callbacks
  c13496c  2023-07-05  Googler  Rollback of "Use `FunctionTypedElement.type` while generating method overrides"
  60e619a  2023-07-05  Ilya Yanok  Use `FunctionTypedElement.type` while generating method overrides
  93b69ef  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#669)
  a926a63  2023-06-30  Ilya Yanok  Add a note on only running codegen on files under `test/` by default
  9f40189  2023-06-30  Ilya Yanok  Require analyzer 5.12.0

native (https://github.com/dart-lang/native/compare/e12d3e6..de1b0cc):
  de1b0cc  2023-07-10  Daco Harkes  [c_compiler] Pass the correct SDK for iOS simulator builds (#77)
  21d7270  2023-07-01  dependabot[bot]  Bump coverallsapp/github-action from 2.1.2 to 2.2.0 (#72)
  23a9b62  2023-07-01  dependabot[bot]  Bump nttld/setup-ndk (#74)
  44073a8  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#75)
  6f01604  2023-07-01  dependabot[bot]  Bump actions/labeler from 4.0.4 to 4.2.0 (#73)

package_config (https://github.com/dart-lang/package_config/compare/203de20..be0c441):
  be0c441  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#138)

path (https://github.com/dart-lang/path/compare/592505f..282dd18):
  282dd18  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#147)

pool (https://github.com/dart-lang/pool/compare/c6b1b2c..7700102):
  7700102  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#72)

protobuf (https://github.com/dart-lang/protobuf/compare/7bebbc6..a912f76):
  a912f76  2023-07-04  Ömer Sinan Ağacan  Add more message set tests, fix a bug (#859)

pub_semver (https://github.com/dart-lang/pub_semver/compare/3930557..028b435):
  028b435  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#90)

shelf (https://github.com/dart-lang/shelf/compare/ce379aa..bd59ead):
  bd59ead  2023-07-06  Kevin Moore  router_generator: allow latest pkg:analyzer, request Dart 3 (#368)
  bebc801  2023-07-06  Jonas Finnemann Jensen  Fix 244 (#268)
  1617efa  2023-07-02  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#366)
  c037bb6  2023-07-02  dependabot[bot]  Bump actions/labeler from 4.0.4 to 4.2.0 (#365)
  1ae4d4e  2023-07-01  Devon Carew  address a new lint (#367)

source_map_stack_trace (https://github.com/dart-lang/source_map_stack_trace/compare/b83af01..16e54fd):
  16e54fd  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#40)

source_maps (https://github.com/dart-lang/source_maps/compare/58eef30..97c4833):
  97c4833  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#80)

source_span (https://github.com/dart-lang/source_span/compare/4dc78fb..37735ae):
  37735ae  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#99)

sse (https://github.com/dart-lang/sse/compare/bfcbcd7..e241085):
  e241085  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#85)

stack_trace (https://github.com/dart-lang/stack_trace/compare/8b2046e..4ddd86d):
  4ddd86d  2023-07-05  Slava Egorov  Prepare 1.11.1 release (#137)
  d3e4c4d  2023-07-04  Slava Egorov  Use awaiter-link pragma to guide VM's builtin awaiter stack unwinding (#135)
  44aafa3  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#136)

stream_channel (https://github.com/dart-lang/stream_channel/compare/34804a1..e54234f):
  e54234f  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#93)

string_scanner (https://github.com/dart-lang/string_scanner/compare/6bb314f..35657e2):
  35657e2  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#59)

term_glyph (https://github.com/dart-lang/term_glyph/compare/4daa34e..423700a):
  423700a  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#40)

test (https://github.com/dart-lang/test/compare/021667a..3429712):
  3429712b  2023-07-06  Nate Bosch  Drop usage of window.testRunner (#2059)
  dc6b8236  2023-06-29  dependabot[bot]  Bump actions/checkout from 3.1.0 to 3.5.3 (#2051)
  b6dc3f8d  2023-06-29  dependabot[bot]  Bump dart-lang/setup-dart from 1.3.0 to 1.5.0 (#2052)
  5fa2572f  2023-06-29  Jacob MacDonald  regenerate mono_repo with the latest (#2055)
  56584627  2023-06-29  dependabot[bot]  Bump github/codeql-action from 2.3.5 to 2.20.1 (#2053)
  050fe2d6  2023-06-29  dependabot[bot]  Bump ossf/scorecard-action from 2.1.3 to 2.2.0 (#2054)
  ba6ccfc2  2023-06-29  Devon Carew  config dependabot to send daily PRs for major version bumps (#2050)

test_descriptor (https://github.com/dart-lang/test_descriptor/compare/be7ce07..54a4c59):
  54a4c59  2023-07-03  Devon Carew  update formatting for recent lints (#54)

test_process (https://github.com/dart-lang/test_process/compare/5ff2122..b360784):
  b360784  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#46)

test_reflective_loader (https://github.com/dart-lang/test_reflective_loader/compare/40d61b1..0bfaad9):
  0bfaad9  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#50)

tools (https://github.com/dart-lang/tools/compare/8db0aa1..af38b2b):
  af38b2b  2023-07-02  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#119)
  8b8ccab  2023-07-01  Devon Carew  update formatting based on the recent lints (#121)
  30b50ff  2023-07-01  dependabot[bot]  Bump coverallsapp/github-action from 2.1.2 to 2.2.0 (#118)
  74979c1  2023-07-01  dependabot[bot]  Bump actions/labeler from 4.0.4 to 4.2.0 (#120)

typed_data (https://github.com/dart-lang/typed_data/compare/8d29573..a20be90):
  a20be90  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#69)

usage (https://github.com/dart-lang/usage/compare/6ee0908..09bb847):
  09bb847  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#196)

watcher (https://github.com/dart-lang/watcher/compare/3f17faa..7457413):
  7457413  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#148)

web_socket_channel (https://github.com/dart-lang/web_socket_channel/compare/7fb82f2..7ae4d0f):
  7ae4d0f  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#274)

webdev (https://github.com/dart-lang/webdev/compare/8360d50..f0ba743):
  f0ba7438  2023-07-07  Elliott Brooks  Reset webdev to version 3.0.7-wip (#2170)
  2fcc1ba9  2023-07-06  Anna Gringauze  Add option of running frontend server tests in canary mode (#2169)
  632763a5  2023-07-06  Elliott Brooks  Prepare webdev for release to 3.0.6 (#2167)
  fa7b6d44  2023-07-05  dependabot[bot]  Bump actions/checkout from 3.5.0 to 3.5.3 (#2163)
  2a6a457b  2023-07-05  Devon Carew  regenerate from the latest mono_repo (#2165)
  cbb0d76a  2023-07-05  Anna Gringauze  Run instance tests with frontend server (#2160)
  b672e98a  2023-07-05  Elliott Brooks  Reset DWDS after release (#2168)
  8ef92d71  2023-07-05  Elliott Brooks  Prepare DWDS for release to version 19.0.2 (#2166)
  77e5b373  2023-07-05  Elliott Brooks  Handle potential `null` value in `setUpChromeConsoleListeners` (#2162)
  5081dff0  2023-07-01  dependabot[bot]  Bump actions/labeler from 4.0.4 to 4.2.0 (#2164)

yaml (https://github.com/dart-lang/yaml/compare/0b9041d..7930148):
  7930148  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#148)

Change-Id: I095a2479946e13d8499f1b3a58dc5a82688063f6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/313020
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
copybara-service bot pushed a commit that referenced this issue Jan 8, 2024
matcher (https://github.com/dart-lang/matcher/compare/fcbd361..d9cf4f6):
  d9cf4f6  2024-01-01  dependabot[bot]  Bump actions/stale from 8.0.0 to 9.0.0 (#240)
  7ea9047  2023-12-13  Kevin Moore  Update test_api dependency, bump & fix lints, prepare release (#237)
  050fdda  2023-12-13  Kevin Moore  blast_repo fixes (#238)

mockito (https://github.com/dart-lang/mockito/compare/57a7c82..e15e000):
  e15e000  2023-12-14  Sam Rawlins  Bump mockito to 5.4.4
  a2a6566  2023-12-14  Copybara-Service  Merge pull request #726 from provokateurin:chore/deps/test_api-0.7
  bda332c  2023-12-14  jld3103  chore(deps): Allow test_api 0.7
  9bd6fb0  2023-12-12  Paul Berry  Remove mockito pre-null-safety tests.

test (https://github.com/dart-lang/test/compare/43ff5bf..846d73e):
  846d73ee  2024-01-01  dependabot[bot]  Bump actions/upload-artifact from 3.1.3 to 4.0.0 (#2165)
  0ab56790  2024-01-01  dependabot[bot]  Bump actions/stale from 8.0.0 to 9.0.0 (#2167)
  3b960c3e  2024-01-01  dependabot[bot]  Bump github/codeql-action from 2.22.8 to 3.22.12 (#2166)
  30543cae  2023-12-19  Nate Bosch  Add more logging around iframe startup (#2160)
  e56a5e22  2023-12-13  Jacob MacDonald  small cleanup in catch (#2159)
  15b39372  2023-12-13  Jacob MacDonald  handle missing package config files (#2158)
  9667cca8  2023-12-13  Jacob MacDonald  release test_api 7.0.0, test_core 6.0.0, and test 1.25.0 (#2156)
  b3fb1486  2023-12-13  Nate Bosch  Remove support for Internet Explorer (#2114)
  48a2bc3d  2023-12-13  Derek Xu  Update the package:vm_service constraint to allow version 14.x (#2157)

Change-Id: I386444652c47cd14a61665599d86dc3a7669a2fc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/345341
Reviewed-by: Nate Bosch <nbosch@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
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

4 participants