This repository has been archived by the owner on Dec 9, 2024. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Make ForwardingDirectory generic. (#74)
Due to an upcoming change in Dart 2.0 (dart-lang/sdk#32148), it will no longer be allowed for a class to implement the same generic interface in different ways. (E.g. a class cannot implement/extend/mixin both A<int> and A<String>). This causes problems with _LocalDirectory. It extends _LocalFileSystemEntity<_LocalDirectory, Directory>, which extends ForwardingFileSystemEntity<_LocalDirectory, Directory>, but it mixes in ForwardingDirectory, which extends ForwardingFileSystemEntity<Directory, io.Directory>. The solution is to make ForwardingDirectory a generic mixin, with ForwardingDirectory<T> extending ForwardingFileSystemEntity<T, io.Directory>. Type inference automatically fills in the type argument T=_LocalDirectory at the site of the declaration of _LocalDirectory.
- Loading branch information