Index: pkg/analyzer/lib/src/dart/analysis/driver.dart |
diff --git a/pkg/analyzer/lib/src/dart/analysis/driver.dart b/pkg/analyzer/lib/src/dart/analysis/driver.dart |
index b4bac8b4eb193b553bdad46a7077179bb23856c6..62894326be018b30c0a6bdfc17e5d06b7c6266fc 100644 |
--- a/pkg/analyzer/lib/src/dart/analysis/driver.dart |
+++ b/pkg/analyzer/lib/src/dart/analysis/driver.dart |
@@ -31,6 +31,7 @@ import 'package:analyzer/src/lint/registry.dart' as linter; |
import 'package:analyzer/src/summary/format.dart'; |
import 'package:analyzer/src/summary/idl.dart'; |
import 'package:analyzer/src/summary/package_bundle_reader.dart'; |
+import 'package:analyzer/src/task/driver.dart'; |
import 'package:front_end/src/base/api_signature.dart'; |
import 'package:front_end/src/base/performace_logger.dart'; |
import 'package:front_end/src/incremental/byte_store.dart'; |
@@ -978,9 +979,14 @@ class AnalysisDriver implements AnalysisDriverGeneric { |
// If we don't need the fully resolved unit, check for the cached result. |
if (!withUnit) { |
- List<int> bytes = _byteStore.get(key); |
- if (bytes != null) { |
- return _getAnalysisResultFromBytes(file, signature, bytes); |
+ AnalysisResult result = driverCacheTag.makeCurrentWhile(() { |
+ List<int> bytes = _byteStore.get(key); |
scheglov
2017/06/04 00:30:44
Maybe wrap with measuring only this statement.
Als
|
+ if (bytes != null) { |
+ return _getAnalysisResultFromBytes(file, signature, bytes); |
+ } |
+ }); |
+ if (result != null) { |
+ return result; |
} |
} |