blob: fbcc5d49884585876f17b1b898f0c6cfe931d8b2 [file] [log] [blame]
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// SharedOptions=--supermixin
import "package:expect/expect.dart";
class io_FileSystemEntity {}
class io_Directory extends io_FileSystemEntity {}
class _LocalDirectory
extends _LocalFileSystemEntity<_LocalDirectory, io_Directory>
with ForwardingDirectory, DirectoryAddOnsMixin {
noSuchMethod(invocation) => null;
}
abstract class _LocalFileSystemEntity<T extends FileSystemEntity,
D extends io_FileSystemEntity> extends ForwardingFileSystemEntity<T, D> {}
abstract class FileSystemEntity implements io_FileSystemEntity {}
abstract class ForwardingFileSystemEntity<T extends FileSystemEntity,
D extends io_FileSystemEntity> implements FileSystemEntity {}
abstract class ForwardingDirectory<T extends Directory>
extends ForwardingFileSystemEntity<T, io_Directory> implements Directory {
get t => T;
}
abstract class Directory implements FileSystemEntity, io_Directory {}
abstract class DirectoryAddOnsMixin implements Directory {}
main() {
var x = new _LocalDirectory();
Expect.equals(x.t, _LocalDirectory);
}