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

Comments

Projects
None yet
3 participants
@kevmoo
Copy link
Member

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

This comment has been minimized.

Copy link
Contributor

commented May 29, 2012

Added Area-Language, Triaged labels.

@gbracha

This comment has been minimized.

Copy link
Contributor

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

This comment has been minimized.

Copy link
Member Author

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.

This issue was closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.