Version 2.16.0-29.0.dev
Merge commit 'ace61705720cf076b56d69d92e27c9d30c525d2a' into 'dev'
diff --git a/pkg/analyzer/CHANGELOG.md b/pkg/analyzer/CHANGELOG.md
index d9a4742..2aa64b4 100644
--- a/pkg/analyzer/CHANGELOG.md
+++ b/pkg/analyzer/CHANGELOG.md
@@ -4,6 +4,7 @@
* Deprecated `path` and `uri` from `AnalysisResult`.
* Deprecated `UriResolver.restoreAbsolute`, use `pathToUri` instead.
* Deprecated `SourceFactory.restoreAbsolute`, use `pathToUri` instead.
+* Fixed #47715.
## 2.7.0
* Updated `ConstructorElement.displayName` to either `Class` or `Class.constructor`.
diff --git a/pkg/analyzer/lib/src/dart/analysis/driver.dart b/pkg/analyzer/lib/src/dart/analysis/driver.dart
index 686137d..ca52c6f 100644
--- a/pkg/analyzer/lib/src/dart/analysis/driver.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/driver.dart
@@ -1293,6 +1293,7 @@
return;
}
if (file_paths.isDart(resourceProvider.pathContext, path)) {
+ _lastProducedSignatures.remove(path);
_priorityResults.clear();
_removePotentiallyAffectedLibraries(path);
_fileTracker.removeFile(path);
diff --git a/pkg/analyzer/test/src/dart/analysis/driver_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
index b04f7f3..252bab2 100644
--- a/pkg/analyzer/test/src/dart/analysis/driver_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
@@ -2922,6 +2922,24 @@
expect(result.unit, isNotNull);
}
+ test_removeFile_addFile_results() async {
+ var a = convertPath('/test/lib/a.dart');
+ newFile(a, content: 'class A {}');
+
+ driver.addFile(a);
+
+ await waitForIdleWithoutExceptions();
+ expect(allResults.map((e) => e.path).toSet(), {a});
+ allResults.clear();
+
+ driver.removeFile(a);
+ driver.addFile(a);
+
+ // a.dart should be produced again
+ await waitForIdleWithoutExceptions();
+ expect(allResults.map((e) => e.path).toSet(), {a});
+ }
+
test_removeFile_changeFile_implicitlyAnalyzed() async {
var a = convertPath('/test/lib/a.dart');
var b = convertPath('/test/lib/b.dart');
diff --git a/tools/VERSION b/tools/VERSION
index 6de95d5..81577f0 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 16
PATCH 0
-PRERELEASE 28
+PRERELEASE 29
PRERELEASE_PATCH 0
\ No newline at end of file