Description
Some code checks that incoming objects are not user-created subclasses of a public interface, even when the interface is marked final
(fx Zone
code doing if (zone is! _Zone) throw ....
).
That's necessary if the program contains pre-3.0 code, which can ignore final
markers in platform libraries.
Most likely nobody is implementing the now final classes, and if they do, the code would break slightly later when it accesses a private memeber of the implementation class it assumes.
When Dart stops supporting pre-3.0 language versions, these tests can be removed.
(Quite possibly they can be removed sooner, and the only effect would be that things would crash in ugly ways if someone implemented Zone
from a pre-3.0 library.)
This issue can be used as TODO-target for "remove this check when ..." comments.