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

The default implementation of an interface must not over-specify generic paramaters #3279

Closed
kevmoo opened this issue May 29, 2012 · 3 comments
Assignees
Labels
area-language Deprecated: New language issues should be filed at https://github.com/dart-lang/language closed-not-planned type-enhancement

Comments

@kevmoo
Copy link
Member

kevmoo commented May 29, 2012

This is a generalization of the issue raised in http://code.google.com/p/dart/issues/detail?id=472 - Underspecified Set<T> and Map<K,V> semantics

A silly example: it should be illegal for the default implementation of the Zoo interface (for managing any animal) be LionCage (where you can manage any animal you want, as long as it's a Lion).

Not only should issue #472 be fixed in the library, I'd argue the current implementation should be forbidden by the runtime.

@kasperl
Copy link

kasperl commented May 29, 2012

Added Area-Language, Triaged labels.

@gbracha
Copy link
Contributor

gbracha commented May 29, 2012

Unless we extensively revisit default implementations, this won't change. The flexibility is valuable.


Set owner to @gbracha.
Removed Type-Defect label.
Added Type-Enhancement, WontFix labels.

@kevmoo
Copy link
Member Author

kevmoo commented May 29, 2012

At this point, I realize enforcing such a rule in the tools might be impractical.

At a minimum, I would strongly argue for a best practice strongly discouraging the practice.

Flexibility is great, but it must be balanced with the principle of least surprise.

...I was VERY surprised. :-)

I love the quick replies to these issues. Blown away by the opennesses of the project. Cheers.

@kevmoo kevmoo added Type-Enhancement area-language Deprecated: New language issues should be filed at https://github.com/dart-lang/language labels May 29, 2012
copybara-service bot pushed a commit that referenced this issue Jan 27, 2022
Changes:
```
> git log --format="%C(auto) %h %s" dcb6aba..8f5ab7b
 https://dart.googlesource.com/pub.git/+/8f5ab7b1 Avoid raceconditions in `global activate`, `run` and `global run` (#3285)
 https://dart.googlesource.com/pub.git/+/6e03ec02 Support multiple packages in 'dart pub add' (#3283)
 https://dart.googlesource.com/pub.git/+/1a298f4d Fix --verbose doc, and accept verboseness setting from embedder (#3279)
 https://dart.googlesource.com/pub.git/+/5bda798c Avoid race condition for hosted source on package extraction (#3277)
 https://dart.googlesource.com/pub.git/+/17c5addb Error on acquireDependencies when the root pubspec has an unknown sdk in the environment. (#3271)
 https://dart.googlesource.com/pub.git/+/0a32ae4a folder/* should not ignore the folder itself, only the contents (#3267)
 https://dart.googlesource.com/pub.git/+/44b785aa Normalize file names for tar.gz (#3268)
 https://dart.googlesource.com/pub.git/+/2fd6b5f0 Fix repository specification: isRetracted -> retracted (#3249)
 https://dart.googlesource.com/pub.git/+/0fc71db4 Write log trace to $PUB_CACHE/log/pub_log.txt when crashing (#3240)

```

Diff: https://dart.googlesource.com/pub.git/+/dcb6abac2d7d43258c03b348be42bf4aab9529b1~..8f5ab7b1aba3b9f66b56246d77e167990339d317/
Change-Id: I54f1fde0f50ca19ca036bb1e6d9b166455031183
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/229542
Reviewed-by: Jonas Jensen <jonasfj@google.com>
Commit-Queue: Sigurd Meldgaard <sigurdm@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 Deprecated: New language issues should be filed at https://github.com/dart-lang/language closed-not-planned type-enhancement
Projects
None yet
Development

No branches or pull requests

3 participants