-
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
Named arguments don't work with constructor initializers #372
Comments
This is actually a language question. Is Set owner to @gbracha. |
The spec is buggy: it does not answer this question properly. The construction is allowed by the syntax, but there is no way such a parameter could be used, as its name is undefined. The name of this.x could be x, which would mean that it introduced deliberate shadowing (something we warn about) so that is not desirable. It could be this.x, which exposes to the world an implementation detail about how you chose to do initialization, so that too is not desired. So we should leave it undefined, which means it cannot be called. In which case, the spec should clearly state that the an initializing formal cannot be used as an optional parameter to a constructor. This means that if you want an optional parameter, you will have to take the trouble of assigning it to the instance variable manually. |
Spec has been modified accordingly. Added Done label. |
2019-06-11 [email protected] More fixes to cast response to Stream<List<int>> (#385) 2019-06-11 [email protected] Pass Uint8List to Datagram (#382) 2019-06-11 [email protected] Cast HttpRequest and HttpClientResponse streams to List<int> (#384) 2019-06-10 [email protected] Fixes #364. Change expected result to null for default values of clientMaxWindowBits and serverMaxWindowBits 2019-06-07 [email protected] Fixes #380. Added tests for logical and bitwise operations via type aliases 2019-06-07 [email protected] Additional fix for #373. Code style improved and more strict pattern checking 2019-06-06 [email protected] Fix for #380. Added tests for type aliases for built-in types. Test string concatenation and arithmetic operations 2019-06-05 [email protected] Fixes #380. Added tests for type aliases for built-in types initialization 2019-06-05 [email protected] Fixes #373. Expect reasonable file mode on Unix 2019-06-04 [email protected] Fixes #379. Numerous fixes for io/Process tests 2019-06-04 [email protected] Fixes #378. Use Platform.resolvedExecutable instead of 'dart' command 2019-06-04 [email protected] Fixed Issue #375: it's possible that IPv6 loopback does not exist. 2019-06-04 [email protected] Fixed Issue #236: host.host can be either "localhost" or Platform.localHostname. 2019-06-04 [email protected] Issue #370, instantiate-to-bounds: added static tests for non-function type aliases. 2019-06-04 [email protected] Fix for #377. Use correct network interface type name (IPvX) 2019-06-04 [email protected] Fixes #374. Change pattern for error messages 2019-06-04 [email protected] Issue #370, instantiate-to-bounds: added dynamic tests for non-function type aliases. 2019-06-04 [email protected] Fix for #372. Expect.fail() on timeout added 2019-06-04 [email protected] Fixes #371. Remove excessive asyncStart() 2019-06-03 [email protected] Issue #147, test super bounded types: added tests for non-function type aliases. 2019-05-30 [email protected] Fixes #369. Use correct type arguments to avoid errors 2019-05-30 [email protected] Fixes #368. Don't try to bind system port 2019-05-30 [email protected] Fixes #367. Remove excessive asyncStart() 2019-05-30 [email protected] Fixes #366. Change expected result to SocketException [email protected] Change-Id: I137689755907b3333e597d7d210db2b4d37d70d0 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/105641 Reviewed-by: Alexander Thomas <[email protected]> Reviewed-by: William Hesse <[email protected]>
If a constructor has optional initializer arguments, as in
Foo([int this.a = 1])
, using those as named arguments as innew Foo(a: 2)
fails:An unhandled exception has been thrown
NoSuchMethodException - receiver: 'Instance of 'Foo'' function name: 'Foo.' arguments: [-3737570]]
0. Function: 'Object.noSuchMethod' url: 'bootstrap' line:93 col:3
1. Function: 'Foo.Foo.' url: '/usr/local/google-old/home/goog/dart/dart/test.dart' line:-1 col:-1
2. Function: 'main' url: '/usr/local/google-old/home/goog/dart/dart/test.dart' line:7 col:13
The text was updated successfully, but these errors were encountered: