| Index: pkg/analyzer/test/src/dart/analysis/file_state_test.dart | 
| diff --git a/pkg/analyzer/test/src/dart/analysis/file_state_test.dart b/pkg/analyzer/test/src/dart/analysis/file_state_test.dart | 
| index 7869d5a42321dbeb79428648a98825c70cba1c9a..7308a02e793dbff5f85cf80acc6c7573290edb51 100644 | 
| --- a/pkg/analyzer/test/src/dart/analysis/file_state_test.dart | 
| +++ b/pkg/analyzer/test/src/dart/analysis/file_state_test.dart | 
| @@ -314,6 +314,22 @@ class A2 {} | 
| expect(file.unlinked.classes, isEmpty); | 
| } | 
|  | 
| +  test_getFileForPath_emptyUri() { | 
| +    String path = _p('/test.dart'); | 
| +    provider.newFile( | 
| +        path, | 
| +        r''' | 
| +import ''; | 
| +export ''; | 
| +part ''; | 
| +'''); | 
| + | 
| +    FileState file = fileSystemState.getFileForPath(path); | 
| +    _assertIsUnresolvedFile(file.importedFiles[0]); | 
| +    _assertIsUnresolvedFile(file.exportedFiles[0]); | 
| +    _assertIsUnresolvedFile(file.partedFiles[0]); | 
| +  } | 
| + | 
| test_getFileForPath_hasLibraryDirective_hasPartOfDirective() { | 
| String a = _p('/test/lib/a.dart'); | 
| provider.newFile( | 
| @@ -326,7 +342,7 @@ part of L; | 
| expect(file.isPart, isFalse); | 
| } | 
|  | 
| -  test_getFileForPath_import_invalidUri() { | 
| +  test_getFileForPath_invalidUri() { | 
| String a = _p('/aaa/lib/a.dart'); | 
| String a1 = _p('/aaa/lib/a1.dart'); | 
| String a2 = _p('/aaa/lib/a2.dart'); | 
| @@ -335,8 +351,8 @@ part of L; | 
| import 'package:aaa/a1.dart'; | 
| import '[invalid uri]'; | 
|  | 
| -export '[invalid uri]'; | 
| export 'package:aaa/a2.dart'; | 
| +export '[invalid uri]'; | 
|  | 
| part 'a3.dart'; | 
| part '[invalid uri]'; | 
| @@ -345,20 +361,23 @@ part '[invalid uri]'; | 
|  | 
| FileState file = fileSystemState.getFileForPath(a); | 
|  | 
| -    expect(_excludeSdk(file.importedFiles), hasLength(1)); | 
| +    expect(_excludeSdk(file.importedFiles), hasLength(2)); | 
| expect(file.importedFiles[0].path, a1); | 
| expect(file.importedFiles[0].uri, Uri.parse('package:aaa/a1.dart')); | 
| expect(file.importedFiles[0].source, isNotNull); | 
| +    _assertIsUnresolvedFile(file.importedFiles[1]); | 
|  | 
| -    expect(_excludeSdk(file.exportedFiles), hasLength(1)); | 
| +    expect(_excludeSdk(file.exportedFiles), hasLength(2)); | 
| expect(file.exportedFiles[0].path, a2); | 
| expect(file.exportedFiles[0].uri, Uri.parse('package:aaa/a2.dart')); | 
| expect(file.exportedFiles[0].source, isNotNull); | 
| +    _assertIsUnresolvedFile(file.exportedFiles[1]); | 
|  | 
| -    expect(_excludeSdk(file.partedFiles), hasLength(1)); | 
| +    expect(_excludeSdk(file.partedFiles), hasLength(2)); | 
| expect(file.partedFiles[0].path, a3); | 
| expect(file.partedFiles[0].uri, Uri.parse('package:aaa/a3.dart')); | 
| expect(file.partedFiles[0].source, isNotNull); | 
| +    _assertIsUnresolvedFile(file.partedFiles[1]); | 
| } | 
|  | 
| test_getFileForPath_library() { | 
| @@ -789,6 +808,12 @@ set _V3(_) {} | 
| expect(_excludeSdk(actual), unorderedEquals(expected)); | 
| } | 
|  | 
| +  void _assertIsUnresolvedFile(FileState file) { | 
| +    expect(file.path, isNull); | 
| +    expect(file.uri, isNull); | 
| +    expect(file.source, isNull); | 
| +  } | 
| + | 
| void _assertTransitiveFiles(FileState file, List<FileState> expected) { | 
| expect(_excludeSdk(file.transitiveFiles), unorderedEquals(expected)); | 
| } | 
| @@ -796,7 +821,7 @@ set _V3(_) {} | 
| List<T> _excludeSdk<T>(Iterable<T> files) { | 
| return files.where((Object file) { | 
| if (file is FileState) { | 
| -        return file.uri.scheme != 'dart'; | 
| +        return file.uri?.scheme != 'dart'; | 
| } else { | 
| return !(file as String).startsWith(_p('/sdk')); | 
| } | 
|  |