Throw FileSystemException from _FileSystemEntityAdaptor when the file does not exist.
According to the `FileSystemEntity.readAsBytes` documentation, we
should throw this exception. This breaks some tests, but it is OK.
R=brianwilkerson@google.com, paulberry@google.com
Bug: https://github.com/dart-lang/sdk/issues/33719
Change-Id: Iddd0a7291fc87dbd43bfb2083e5dc46d5b007495
Reviewed-on: https://dart-review.googlesource.com/64021
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analyzer/lib/src/dart/analysis/frontend_resolution.dart b/pkg/analyzer/lib/src/dart/analysis/frontend_resolution.dart
index 5d1c2b2..f5801cd 100644
--- a/pkg/analyzer/lib/src/dart/analysis/frontend_resolution.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/frontend_resolution.dart
@@ -477,23 +477,25 @@
@override
Future<bool> exists() async {
- // TODO(brianwilkerson) Determine whether this await is necessary.
- await null;
return file.exists;
}
@override
Future<List<int>> readAsBytes() async {
- // TODO(brianwilkerson) Determine whether this await is necessary.
- await null;
+ _throwIfDoesNotExist();
// TODO(scheglov) Optimize.
return utf8.encode(file.content);
}
@override
Future<String> readAsString() async {
- // TODO(brianwilkerson) Determine whether this await is necessary.
- await null;
+ _throwIfDoesNotExist();
return file.content;
}
+
+ void _throwIfDoesNotExist() {
+ if (!file.exists) {
+ throw new front_end.FileSystemException(uri, 'File not found');
+ }
+ }
}
diff --git a/pkg/analyzer/test/src/dart/analysis/driver_kernel_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_kernel_test.dart
index a78089a..b793f1b 100644
--- a/pkg/analyzer/test/src/dart/analysis/driver_kernel_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/driver_kernel_test.dart
@@ -80,30 +80,30 @@
await super.test_const_implicitSuperConstructorInvocation();
}
- @failingTest
- @potentialAnalyzerProblem
@override
+ @failingTest
+ @FastaProblem('https://github.com/dart-lang/sdk/issues/33719')
test_errors_uriDoesNotExist_export() async {
await super.test_errors_uriDoesNotExist_export();
}
- @failingTest
- @potentialAnalyzerProblem
@override
+ @failingTest
+ @FastaProblem('https://github.com/dart-lang/sdk/issues/33719')
test_errors_uriDoesNotExist_import() async {
await super.test_errors_uriDoesNotExist_import();
}
- @failingTest
- @potentialAnalyzerProblem
@override
+ @failingTest
+ @FastaProblem('https://github.com/dart-lang/sdk/issues/33719')
test_errors_uriDoesNotExist_import_deferred() async {
await super.test_errors_uriDoesNotExist_import_deferred();
}
- @failingTest
- @potentialAnalyzerProblem
@override
+ @failingTest
+ @FastaProblem('https://github.com/dart-lang/sdk/issues/33719')
test_errors_uriDoesNotExist_part() async {
await super.test_errors_uriDoesNotExist_part();
}
@@ -125,6 +125,13 @@
await super.test_getErrors();
}
+ @override
+ @failingTest
+ @FastaProblem('https://github.com/dart-lang/sdk/issues/33719')
+ test_getResult_doesNotExist() async {
+ await super.test_getResult_doesNotExist();
+ }
+
@failingTest
@potentialAnalyzerProblem
@override
diff --git a/pkg/analyzer/test/src/summary/resynthesize_kernel_test.dart b/pkg/analyzer/test/src/summary/resynthesize_kernel_test.dart
index 86116af..1f19003 100644
--- a/pkg/analyzer/test/src/summary/resynthesize_kernel_test.dart
+++ b/pkg/analyzer/test/src/summary/resynthesize_kernel_test.dart
@@ -228,6 +228,13 @@
await super.test_parameter_checked_inherited();
}
+ @override
+ @failingTest
+ @FastaProblem('https://github.com/dart-lang/sdk/issues/33719')
+ test_parts_invalidUri() async {
+ await super.test_parts_invalidUri();
+ }
+
@failingTest
@potentialAnalyzerProblem
test_setter_inferred_type_conflictingInheritance() async {
@@ -246,6 +253,27 @@
await super.test_unresolved_annotation_instanceCreation_argument_super();
}
+ @override
+ @failingTest
+ @FastaProblem('https://github.com/dart-lang/sdk/issues/33719')
+ test_unresolved_export() async {
+ await super.test_unresolved_export();
+ }
+
+ @override
+ @failingTest
+ @FastaProblem('https://github.com/dart-lang/sdk/issues/33719')
+ test_unresolved_import() async {
+ await super.test_unresolved_import();
+ }
+
+ @override
+ @failingTest
+ @FastaProblem('https://github.com/dart-lang/sdk/issues/33719')
+ test_unresolved_part() async {
+ await super.test_unresolved_part();
+ }
+
Future<KernelResynthesizer> _createResynthesizer(Uri testUri) async {
var logger = new PerformanceLog(null);
var byteStore = new MemoryByteStore();