Specification: wrong definition of super closurization equality #24661
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
Dart Language Specification (3-rd Edition / June 2015) reads (16.18.10 Super Closurization):
"Except that iff two closurizations were created by code declared in the same class with identical bindings of this then super1#m == super2#m, super1.m == super2.m, super1#m == super2.m and super1.m == super2#m."
First, it is unclear what "...with identical bindings..." means. Specification should be more clear on that.
Second, consider the following program:
The current Dart implementation (Dart VM version: 1.13.0-dev.6.0 (Wed Oct 7 08:09:59 2015) on "linux_x64") prints true. And it is what I expect. But in this example closurizations were not created by code declared in the same class and therefore, according the spec, should not be equal.
Either specification either implementation is wrong. I think spec should be changed.
The text was updated successfully, but these errors were encountered: