Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(203)

Unified Diff: pkg/analyzer/test/src/task/dart_test.dart

Issue 1148153002: Reuse CompilationUnitElement in BuildCompilationUnitElementTask. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/analyzer/test/src/context/abstract_context.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/test/src/task/dart_test.dart
diff --git a/pkg/analyzer/test/src/task/dart_test.dart b/pkg/analyzer/test/src/task/dart_test.dart
index a44021e38ce3858c2cf9d2fe27531247ac4de6e2..d5abbbfe8001568d2d2b27c7a030fcbc8f6ca8b2 100644
--- a/pkg/analyzer/test/src/task/dart_test.dart
+++ b/pkg/analyzer/test/src/task/dart_test.dart
@@ -8,6 +8,7 @@ import 'package:analyzer/src/context/cache.dart';
import 'package:analyzer/src/generated/ast.dart';
import 'package:analyzer/src/generated/constant.dart';
import 'package:analyzer/src/generated/element.dart';
+import 'package:analyzer/src/generated/engine.dart' show CacheState;
import 'package:analyzer/src/generated/error.dart';
import 'package:analyzer/src/generated/resolver.dart';
import 'package:analyzer/src/generated/source.dart';
@@ -162,6 +163,7 @@ class C = B with M;
@reflectiveTest
class BuildCompilationUnitElementTaskTest extends _AbstractDartTaskTest {
Source source;
+ LibrarySpecificUnit target;
test_buildInputs() {
LibrarySpecificUnit target =
@@ -244,9 +246,28 @@ class B = Object with A;
expect(outputs[COMPILATION_UNIT_CONSTANTS], isNotNull);
}
+ test_perform_reuseElement() {
+ _performBuildTask(r'''
+library lib;
+class A {}
+class B = Object with A;
+''');
+ CompilationUnit unit = outputs[RESOLVED_UNIT1];
+ CompilationUnitElement unitElement = outputs[COMPILATION_UNIT_ELEMENT];
+ expect(unit, isNotNull);
+ expect(unitElement, isNotNull);
+ // invalidate RESOLVED_UNIT1
+ CacheEntry cacheEntry = analysisCache.get(target);
+ cacheEntry.setState(RESOLVED_UNIT1, CacheState.INVALID);
+ // compute again
+ _computeResult(target, RESOLVED_UNIT1);
+ expect(outputs[COMPILATION_UNIT_ELEMENT], same(unitElement));
+ expect(outputs[RESOLVED_UNIT1], isNot(same(unit)));
+ }
+
void _performBuildTask(String content) {
source = newSource('/test.dart', content);
- AnalysisTarget target = new LibrarySpecificUnit(source, source);
+ target = new LibrarySpecificUnit(source, source);
_computeResult(target, RESOLVED_UNIT1);
expect(task, new isInstanceOf<BuildCompilationUnitElementTask>());
}
« no previous file with comments | « pkg/analyzer/test/src/context/abstract_context.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698