Index: utils/kernel-service/kernel-service.dart |
diff --git a/utils/kernel-service/kernel-service.dart b/utils/kernel-service/kernel-service.dart |
index 0e989dbba83602280c414e41e86ff5d1ef526ec2..957613bee19664e17fb17e0e295639227e5dc70a 100644 |
--- a/utils/kernel-service/kernel-service.dart |
+++ b/utils/kernel-service/kernel-service.dart |
@@ -29,6 +29,7 @@ import 'package:front_end/memory_file_system.dart'; |
import 'package:front_end/physical_file_system.dart'; |
import 'package:front_end/src/fasta/vm.dart' |
show CompilationResult, Status, parseScriptInFileSystem; |
+import 'package:front_end/src/testing/hybrid_file_system.dart'; |
const bool verbose = const bool.fromEnvironment('DFE_VERBOSE'); |
@@ -114,48 +115,6 @@ FileSystem _buildFileSystem(List namedSources) { |
return new HybridFileSystem(fileSystem); |
} |
-/// A file system that mixes files from memory and a physical file system. All |
-/// memory entities take priotity over file system entities. |
-class HybridFileSystem implements FileSystem { |
- final MemoryFileSystem memory; |
- final PhysicalFileSystem physical = PhysicalFileSystem.instance; |
- |
- HybridFileSystem(this.memory); |
- |
- @override |
- FileSystemEntity entityForUri(Uri uri) => new HybridFileSystemEntity( |
- memory.entityForUri(uri), physical.entityForUri(uri)); |
-} |
- |
-/// Entity that delegates to an underlying memory or phisical file system |
-/// entity. |
-class HybridFileSystemEntity implements FileSystemEntity { |
- final FileSystemEntity memory; |
- final FileSystemEntity physical; |
- |
- HybridFileSystemEntity(this.memory, this.physical); |
- |
- FileSystemEntity _delegate; |
- Future<FileSystemEntity> get delegate async { |
- return _delegate ??= (await memory.exists()) ? memory : physical; |
- } |
- |
- @override |
- Uri get uri => memory.uri; |
- |
- @override |
- Future<bool> exists() async => (await delegate).exists(); |
- |
- @override |
- Future<DateTime> lastModified() async => (await delegate).lastModified(); |
- |
- @override |
- Future<List<int>> readAsBytes() async => (await delegate).readAsBytes(); |
- |
- @override |
- Future<String> readAsString() async => (await delegate).readAsString(); |
-} |
- |
train(String scriptUri) { |
// TODO(28532): Enable on Windows. |
if (Platform.isWindows) return; |