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

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

Issue 1124703005: Use memento in ParseDartTask. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 8 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/lib/src/task/dart.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 a99912d1097712c3e690ad2cc99a7f0036371089..c2a5ea5350c6cef6aba5de584734f4e818bbed52 100644
--- a/pkg/analyzer/test/src/task/dart_test.dart
+++ b/pkg/analyzer/test/src/task/dart_test.dart
@@ -4,6 +4,7 @@
library test.src.task.dart_test;
+import 'package:analyzer/src/context/cache.dart';
import 'package:analyzer/src/generated/ast.dart';
import 'package:analyzer/src/generated/element.dart';
import 'package:analyzer/src/generated/error.dart';
@@ -1513,6 +1514,25 @@ class A {''');
expect(outputs[UNITS], hasLength(2));
}
+ test_perform_useMemento() {
+ String content = r'''
+library lib;
+import 'lib2.dart';
+export 'lib3.dart';
+part 'part.dart';
+class A {''';
+ AnalysisTarget target = newSource('/test.dart', content);
+ _computeResult(target, PARSED_UNIT);
+ // update content
+ context.setContents(target, content);
+ assertIsInvalid(target, PARSED_UNIT);
+ // recompute
+ _computeResult(target, PARSED_UNIT);
+ assertIsValid(target, PARSED_UNIT);
+ // values from the memento are returned
+ assertSameResults(ParseDartTask.DESCRIPTOR.results);
+ }
+
void _performParseTask(String content) {
AnalysisTarget target = newSource('/test.dart', content);
_computeResult(target, PARSED_UNIT);
@@ -1807,10 +1827,12 @@ class ScanDartTaskTest extends _AbstractDartTaskTest {
_computeResult(target, TOKEN_STREAM);
// update content
context.setContents(target, 'main() {}');
+ assertIsInvalid(target, TOKEN_STREAM);
// recompute
_computeResult(target, TOKEN_STREAM);
- // values from the mememto are returned
- assertSameResults([LINE_INFO, SCAN_ERRORS, TOKEN_STREAM]);
+ assertIsValid(target, TOKEN_STREAM);
+ // values from the memento are returned
+ assertSameResults(ScanDartTask.DESCRIPTOR.results);
}
void _performScanTask(String content) {
@@ -1848,6 +1870,16 @@ class _AbstractDartTaskTest extends AbstractContextTest {
Map<ResultDescriptor<dynamic>, dynamic> outputs;
GatheringErrorListener errorListener = new GatheringErrorListener();
+ void assertIsInvalid(AnalysisTarget target, ResultDescriptor descriptor) {
+ CacheEntry entry = context.getCacheEntry(target);
+ expect(entry.isInvalid(descriptor), isTrue);
+ }
+
+ void assertIsValid(AnalysisTarget target, ResultDescriptor descriptor) {
+ CacheEntry entry = context.getCacheEntry(target);
+ expect(entry.isValid(descriptor), isTrue);
+ }
+
void assertSameResults(List<ResultDescriptor> descriptors) {
descriptors.forEach((descriptor) {
var oldResult = oldOutputs[descriptor];
« no previous file with comments | « pkg/analyzer/lib/src/task/dart.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698