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

Side by Side Diff: pkg/analyzer/test/src/task/driver_test.dart

Issue 913483002: First cut at analysis driver (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 10 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 library test.src.task.driver_test;
6
7 import 'dart:async';
8 import 'dart:collection';
9
10 import 'package:analyzer/src/cancelable_future.dart';
11 import 'package:analyzer/src/context/cache.dart';
12 import 'package:analyzer/src/generated/ast.dart';
13 import 'package:analyzer/src/generated/constant.dart';
14 import 'package:analyzer/src/generated/element.dart';
15 import 'package:analyzer/src/generated/engine.dart' hide AnalysisTask;
16 import 'package:analyzer/src/generated/error.dart';
17 import 'package:analyzer/src/generated/html.dart';
18 import 'package:analyzer/src/generated/java_engine.dart';
19 import 'package:analyzer/src/generated/resolver.dart';
20 import 'package:analyzer/src/generated/source.dart';
21 import 'package:analyzer/src/task/driver.dart';
22 import 'package:analyzer/src/task/manager.dart';
23 import 'package:analyzer/task/model.dart';
24 import 'package:unittest/unittest.dart';
25
26 import '../../generated/resolver_test.dart';
27 import '../../generated/test_support.dart';
28 import '../../reflective_tests.dart';
29 import 'test_support.dart';
30
31 main() {
32 groupSep = ' | ';
33 runReflectiveTests(AnalysisDriverTest);
34 runReflectiveTests(WorkOrderTest);
35 runReflectiveTests(WorkItemTest);
36 }
37
38 @reflectiveTest
39 class AnalysisDriverTest extends EngineTestCase {
40 TaskManager manager;
41 _TestContext context;
42 AnalysisDriver driver;
43
44 void setUp() {
45 manager = new TaskManager();
46 context = new _TestContext();
47 driver = new AnalysisDriver(manager, context);
48 }
49
50 test_computeResult() {
51 AnalysisTarget target = new TestSource();
52 ResultDescriptor result = new ResultDescriptor('result', null);
53 TestAnalysisTask task;
54 TaskDescriptor descriptor = new TaskDescriptor(
55 'task',
56 (context, target) => task,
57 (target) => {},
58 [result]);
59 task = new TestAnalysisTask(context, target, descriptor: descriptor);
60 manager.addTaskDescriptor(descriptor);
61
62 driver.computeResult(target, result);
63 expect(context.getCacheEntry(target).getValue(result), 1);
64 }
65
66 test_create() {
67 expect(driver, isNotNull);
68 expect(driver.context, context);
69 expect(driver.currentWorkOrder, isNull);
70 expect(driver.taskManager, manager);
71 }
72
73 test_createNextWorkOrder_complete() {
74 AnalysisTarget priorityTarget = new TestSource();
75 AnalysisTarget normalTarget = new TestSource();
76 ResultDescriptor result = new ResultDescriptor('result', null);
77 TaskDescriptor descriptor = new TaskDescriptor(
78 'task',
79 (context, target) => new TestAnalysisTask(context, target),
80 (target) => {},
81 [result]);
82 manager.addGeneralResult(result);
83 manager.addTaskDescriptor(descriptor);
84 context.priorityTargets.add(priorityTarget);
85 context.getCacheEntry(priorityTarget).setValue(result, '');
86 context.explicitTargets.add(normalTarget);
87 context.getCacheEntry(priorityTarget).setValue(result, '');
88
89 expect(driver.createNextWorkOrder(), isNull);
90 }
91
92 test_createNextWorkOrder_normalTarget() {
93 AnalysisTarget priorityTarget = new TestSource();
94 AnalysisTarget normalTarget = new TestSource();
95 ResultDescriptor result = new ResultDescriptor('result', null);
96 TaskDescriptor descriptor = new TaskDescriptor(
97 'task',
98 (context, target) => new TestAnalysisTask(context, target),
99 (target) => {},
100 [result]);
101 manager.addGeneralResult(result);
102 manager.addTaskDescriptor(descriptor);
103 context.priorityTargets.add(priorityTarget);
104 context.getCacheEntry(priorityTarget).setValue(result, '');
105 context.explicitTargets.add(normalTarget);
106 context.getCacheEntry(normalTarget).setState(result, CacheState.INVALID);
107
108 WorkOrder workOrder = driver.createNextWorkOrder();
109 expect(workOrder, isNotNull);
110 expect(workOrder.moveNext(), true);
111 expect(workOrder.currentItem.target, normalTarget);
112 }
113
114 test_createNextWorkOrder_noTargets() {
115 ResultDescriptor result = new ResultDescriptor('result', null);
116 TaskDescriptor descriptor = new TaskDescriptor(
117 'task',
118 (context, target) => new TestAnalysisTask(context, target),
119 (target) => {},
120 [result]);
121 manager.addGeneralResult(result);
122 manager.addTaskDescriptor(descriptor);
123
124 expect(driver.createNextWorkOrder(), isNull);
125 }
126
127 test_createNextWorkOrder_priorityTarget() {
128 AnalysisTarget priorityTarget = new TestSource();
129 AnalysisTarget normalTarget = new TestSource();
130 ResultDescriptor result = new ResultDescriptor('result', null);
131 TaskDescriptor descriptor = new TaskDescriptor(
132 'task',
133 (context, target) => new TestAnalysisTask(context, target),
134 (target) => {},
135 [result]);
136 manager.addGeneralResult(result);
137 manager.addTaskDescriptor(descriptor);
138 context.priorityTargets.add(priorityTarget);
139 context.getCacheEntry(priorityTarget).setState(result, CacheState.INVALID);
140 context.explicitTargets.add(normalTarget);
141 context.getCacheEntry(normalTarget).setState(result, CacheState.INVALID);
142
143 WorkOrder workOrder = driver.createNextWorkOrder();
144 expect(workOrder, isNotNull);
145 expect(workOrder.moveNext(), true);
146 expect(workOrder.currentItem.target, priorityTarget);
147 }
148
149 test_createWorkOrderForResult_error() {
150 AnalysisTarget target = new TestSource();
151 ResultDescriptor result = new ResultDescriptor('result', null);
152 context.getCacheEntry(target).setState(result, CacheState.ERROR);
153
154 expect(driver.createWorkOrderForResult(target, result), isNull);
155 }
156
157 test_createWorkOrderForResult_inProcess() {
158 AnalysisTarget target = new TestSource();
159 ResultDescriptor result = new ResultDescriptor('result', null);
160 context.getCacheEntry(target).setState(result, CacheState.IN_PROCESS);
161
162 expect(driver.createWorkOrderForResult(target, result), isNull);
163 }
164
165 test_createWorkOrderForResult_invalid() {
166 AnalysisTarget target = new TestSource();
167 ResultDescriptor result = new ResultDescriptor('result', null);
168 TaskDescriptor descriptor = new TaskDescriptor(
169 'task',
170 (context, target) => new TestAnalysisTask(context, target),
171 (target) => {},
172 [result]);
173 manager.addTaskDescriptor(descriptor);
174 context.getCacheEntry(target).setState(result, CacheState.INVALID);
175
176 WorkOrder workOrder = driver.createWorkOrderForResult(target, result);
177 expect(workOrder, isNotNull);
178 }
179
180 test_createWorkOrderForResult_valid() {
181 AnalysisTarget target = new TestSource();
182 ResultDescriptor result = new ResultDescriptor('result', null);
183 context.getCacheEntry(target).setValue(result, '');
184
185 expect(driver.createWorkOrderForResult(target, result), isNull);
186 }
187
188 test_createWorkOrderForTarget_complete_generalTarget_generalResult() {
189 _createWorkOrderForTarget(true, false, false);
190 }
191
192 test_createWorkOrderForTarget_complete_generalTarget_priorityResult() {
193 _createWorkOrderForTarget(true, false, true);
194 }
195
196 test_createWorkOrderForTarget_complete_priorityTarget_generalResult() {
197 _createWorkOrderForTarget(true, true, false);
198 }
199
200 test_createWorkOrderForTarget_complete_priorityTarget_priorityResult() {
201 _createWorkOrderForTarget(true, true, true);
202 }
203
204 test_createWorkOrderForTarget_incomplete_generalTarget_generalResult() {
205 _createWorkOrderForTarget(false, false, false);
206 }
207
208 test_createWorkOrderForTarget_incomplete_generalTarget_priorityResult() {
209 _createWorkOrderForTarget(false, false, true);
210 }
211
212 test_createWorkOrderForTarget_incomplete_priorityTarget_generalResult() {
213 _createWorkOrderForTarget(false, true, false);
214 }
215
216 test_createWorkOrderForTarget_incomplete_priorityTarget_priorityResult() {
217 _createWorkOrderForTarget(false, true, true);
218 }
219
220 test_performAnalysisTask() {
221 AnalysisTarget target = new TestSource();
222 ResultDescriptor result = new ResultDescriptor('result', null);
223 TestAnalysisTask task;
224 TaskDescriptor descriptor = new TaskDescriptor(
225 'task',
226 (context, target) => task,
227 (target) => {},
228 [result]);
229 task = new TestAnalysisTask(context, target, descriptor: descriptor);
230 manager.addTaskDescriptor(descriptor);
231 manager.addGeneralResult(result);
232 context.priorityTargets.add(target);
233
234 expect(driver.performAnalysisTask(), true);
235 expect(driver.performAnalysisTask(), true);
236 expect(driver.performAnalysisTask(), false);
237 }
238
239 test_performWorkItem_exceptionInTask() {
240 AnalysisTarget target = new TestSource();
241 ResultDescriptor result = new ResultDescriptor('result', null);
242 CaughtException exception =
243 new CaughtException(new AnalysisException(), null);
244 TestAnalysisTask task;
245 TaskDescriptor descriptor = new TaskDescriptor(
246 'task',
247 (context, target) => task,
248 (target) => {},
249 [result]);
250 task = new TestAnalysisTask(
251 context,
252 target,
253 descriptor: descriptor,
254 exception: exception);
255 WorkItem item = new WorkItem(context, target, descriptor);
256
257 driver.performWorkItem(item);
258 CacheEntry targetEntry = context.getCacheEntry(item.target);
259 expect(targetEntry.exception, exception);
260 expect(targetEntry.getState(result), CacheState.ERROR);
261 }
262
263 test_performWorkItem_noException() {
264 AnalysisTarget target = new TestSource();
265 ResultDescriptor result = new ResultDescriptor('result', null);
266 TestAnalysisTask task;
267 TaskDescriptor descriptor = new TaskDescriptor(
268 'task',
269 (context, target) => task,
270 (target) => {},
271 [result]);
272 task = new TestAnalysisTask(context, target, descriptor: descriptor);
273 WorkItem item = new WorkItem(context, target, descriptor);
274
275 driver.performWorkItem(item);
276 CacheEntry targetEntry = context.getCacheEntry(item.target);
277 expect(targetEntry.exception, isNull);
278 expect(targetEntry.getState(result), CacheState.VALID);
279 }
280
281 test_performWorkItem_preExistingException() {
282 AnalysisTarget target = new TestSource();
283 ResultDescriptor result = new ResultDescriptor('result', null);
284 TaskDescriptor descriptor = new TaskDescriptor(
285 'task',
286 (context, target) => new TestAnalysisTask(context, target),
287 (target) => {},
288 [result]);
289 CaughtException exception =
290 new CaughtException(new AnalysisException(), null);
291 WorkItem item = new WorkItem(context, target, descriptor);
292 item.exception = exception;
293
294 driver.performWorkItem(item);
295 CacheEntry targetEntry = context.getCacheEntry(item.target);
296 expect(targetEntry.exception, exception);
297 expect(targetEntry.getState(result), CacheState.ERROR);
298 }
299
300 test_reset() {
301 ResultDescriptor inputResult = new ResultDescriptor('input', null);
302 TaskDescriptor descriptor = new TaskDescriptor(
303 'task',
304 (context, target) => new TestAnalysisTask(context, target),
305 (target) => {
306 'one': inputResult.inputFor(target)
307 }, [new ResultDescriptor('output', null)]);
308 driver.currentWorkOrder =
309 new WorkOrder(manager, new WorkItem(null, null, descriptor));
310
311 driver.reset();
312 expect(driver.currentWorkOrder, isNull);
313 }
314
315 /**
316 * [complete] is `true` if the value of the result has already been computed.
317 * [priorityTarget] is `true` if the target is in the list of priority
318 * targets.
319 * [priorityResult] is `true` if the result should only be computed for
320 * priority targets.
321 */
322 _createWorkOrderForTarget(bool complete, bool priorityTarget,
323 bool priorityResult) {
324 AnalysisTarget target = new TestSource();
325 ResultDescriptor result = new ResultDescriptor('result', null);
326 TaskDescriptor descriptor = new TaskDescriptor(
327 'task',
328 (context, target) => new TestAnalysisTask(context, target),
329 (target) => {},
330 [result]);
331 if (priorityResult) {
332 manager.addPriorityResult(result);
333 } else {
334 manager.addGeneralResult(result);
335 }
336 manager.addTaskDescriptor(descriptor);
337 if (priorityTarget) {
338 context.priorityTargets.add(target);
339 } else {
340 context.explicitTargets.add(target);
341 }
342 if (complete) {
343 context.getCacheEntry(target).setValue(result, '');
344 } else {
345 context.getCacheEntry(target).setState(result, CacheState.INVALID);
346 }
347
348 WorkOrder workOrder =
349 driver.createWorkOrderForTarget(target, priorityTarget);
350 if (complete) {
351 expect(workOrder, isNull);
352 } else if (priorityResult) {
353 expect(workOrder, priorityTarget ? isNotNull : isNull);
354 } else {
355 expect(workOrder, isNotNull);
356 }
357 }
358 }
359
360 @reflectiveTest
361 class WorkItemTest extends EngineTestCase {
362 test_buildTask_complete() {
363 AnalysisContext context = new _TestContext();
364 AnalysisTarget target = new TestSource();
365 TaskDescriptor descriptor = new TaskDescriptor(
366 'task',
367 (context, target) => new TestAnalysisTask(context, target),
368 (target) => {},
369 [new ResultDescriptor('output', null)]);
370 WorkItem item = new WorkItem(context, target, descriptor);
371 AnalysisTask task = item.buildTask();
372 expect(task, isNotNull);
373 }
374
375 test_buildTask_incomplete() {
376 AnalysisContext context = new _TestContext();
377 AnalysisTarget target = new TestSource();
378 ResultDescriptor inputResult = new ResultDescriptor('input', null);
379 List<ResultDescriptor> outputResults = <ResultDescriptor>[
380 new ResultDescriptor('output', null)];
381 TaskDescriptor descriptor = new TaskDescriptor(
382 'task',
383 (context, target) =>
384 new TestAnalysisTask(context, target, results: outputResults),
385 (target) => {
386 'one': inputResult.inputFor(target)
387 }, outputResults);
388 WorkItem item = new WorkItem(context, target, descriptor);
389 expect(() => item.buildTask(), throwsStateError);
390 }
391
392 test_create() {
393 AnalysisContext context = new _TestContext();
394 AnalysisTarget target = new TestSource();
395 TaskDescriptor descriptor = new TaskDescriptor(
396 'task',
397 null,
398 (target) => {},
399 [new ResultDescriptor('result', null)]);
400 WorkItem item = new WorkItem(context, target, descriptor);
401 expect(item, isNotNull);
402 expect(item.context, context);
403 expect(item.descriptor, descriptor);
404 expect(item.target, target);
405 }
406
407 test_gatherInputs_complete() {
408 TaskManager manager = new TaskManager();
409 AnalysisContext context = new _TestContext();
410 AnalysisTarget target = new TestSource();
411 TaskDescriptor descriptor = new TaskDescriptor(
412 'task',
413 (context, target) => new TestAnalysisTask(context, target),
414 (target) => {},
415 [new ResultDescriptor('output', null)]);
416 WorkItem item = new WorkItem(context, target, descriptor);
417 WorkItem result = item.gatherInputs(manager);
418 expect(result, isNull);
419 expect(item.exception, isNull);
420 }
421
422 test_gatherInputs_incomplete() {
423 TaskManager manager = new TaskManager();
424 AnalysisContext context = new _TestContext();
425 AnalysisTarget target = new TestSource();
426 ResultDescriptor resultA = new ResultDescriptor('resultA', null);
427 ResultDescriptor resultB = new ResultDescriptor('resultB', null);
428 TaskDescriptor task1 = new TaskDescriptor(
429 'task',
430 (context, target) => new TestAnalysisTask(context, target, results: [res ultA]),
431 (target) => {},
432 [resultA]);
433 TaskDescriptor task2 = new TaskDescriptor(
434 'task',
435 (context, target) => new TestAnalysisTask(context, target),
436 (target) => {
437 'one': resultA.inputFor(target)
438 }, [resultB]);
439 manager.addTaskDescriptor(task1);
440 manager.addTaskDescriptor(task2);
441 WorkItem item = new WorkItem(context, target, task2);
442 expect(item.gatherInputs(manager), isNotNull);
443 }
444
445 test_gatherInputs_invalid() {
446 TaskManager manager = new TaskManager();
447 AnalysisContext context = new _TestContext();
448 AnalysisTarget target = new TestSource();
449 ResultDescriptor inputResult = new ResultDescriptor('input', null);
450 TaskDescriptor descriptor = new TaskDescriptor(
451 'task',
452 (context, target) => new TestAnalysisTask(context, target),
453 (target) => {
454 'one': inputResult.inputFor(target)
455 }, [new ResultDescriptor('output', null)]);
456 WorkItem item = new WorkItem(context, target, descriptor);
457 WorkItem result = item.gatherInputs(manager);
458 expect(result, isNull);
459 expect(item.exception, isNotNull);
460 }
461 }
462
463 @reflectiveTest
464 class WorkOrderTest extends EngineTestCase {
465 test_create() {
466 TaskManager manager = new TaskManager();
467 TaskDescriptor descriptor = new TaskDescriptor(
468 'task',
469 null,
470 (_) => {},
471 [new ResultDescriptor('result', null)]);
472 WorkOrder order =
473 new WorkOrder(manager, new WorkItem(null, null, descriptor));
474 expect(order, isNotNull);
475 expect(order.currentItem, isNull);
476 expect(order.pendingItems, hasLength(1));
477 expect(order.taskManager, manager);
478 }
479
480 test_moveNext() {
481 TaskManager manager = new TaskManager();
482 TaskDescriptor descriptor = new TaskDescriptor(
483 'task',
484 null,
485 (_) => {},
486 [new ResultDescriptor('result', null)]);
487 WorkItem workItem = new WorkItem(null, null, descriptor);
488 WorkOrder order = new WorkOrder(manager, workItem);
489 expect(order.moveNext(), true);
490 expect(order.current, workItem);
491 }
492 }
493
494 class _TestContext implements ExtendedAnalysisContext {
495 InternalAnalysisContext baseContext =
496 AnalysisContextFactory.contextWithCore();
497
498 @override
499 List<AnalysisTarget> explicitTargets = <AnalysisTarget>[];
500
501 Map<AnalysisTarget, CacheEntry> entryMap =
502 new HashMap<AnalysisTarget, CacheEntry>();
503
504 @override
505 List<AnalysisTarget> priorityTargets = <AnalysisTarget>[];
506
507 _TestContext();
508
509 AnalysisOptions get analysisOptions => baseContext.analysisOptions;
510
511 void set analysisOptions(AnalysisOptions options) {
512 baseContext.analysisOptions = options;
513 }
514
515 @override
516 void set analysisPriorityOrder(List<Source> sources) {
517 baseContext.analysisPriorityOrder = sources;
518 }
519
520 @override
521 set contentCache(ContentCache value) {
522 baseContext.contentCache = value;
523 }
524
525 @override
526 DeclaredVariables get declaredVariables => baseContext.declaredVariables;
527
528 @override
529 List<Source> get htmlSources => baseContext.htmlSources;
530
531 @override
532 bool get isDisposed => baseContext.isDisposed;
533
534 @override
535 List<Source> get launchableClientLibrarySources =>
536 baseContext.launchableClientLibrarySources;
537
538 @override
539 List<Source> get launchableServerLibrarySources =>
540 baseContext.launchableServerLibrarySources;
541
542 @override
543 List<Source> get librarySources => baseContext.librarySources;
544
545 @override
546 Stream<SourcesChangedEvent> get onSourcesChanged =>
547 baseContext.onSourcesChanged;
548
549 @override
550 List<Source> get prioritySources => baseContext.prioritySources;
551
552 @override
553 List<Source> get refactoringUnsafeSources =>
554 baseContext.refactoringUnsafeSources;
555
556 SourceFactory get sourceFactory => baseContext.sourceFactory;
557
558 void set sourceFactory(SourceFactory factory) {
559 baseContext.sourceFactory = factory;
560 }
561
562 @override
563 AnalysisContextStatistics get statistics => baseContext.statistics;
564
565 @override
566 TypeProvider get typeProvider => baseContext.typeProvider;
567
568 @override
569 void addListener(AnalysisListener listener) {
570 baseContext.addListener(listener);
571 }
572
573 @override
574 void addSourceInfo(Source source, SourceEntry info) {
575 baseContext.addSourceInfo(source, info);
576 }
577
578 @override
579 void applyAnalysisDelta(AnalysisDelta delta) {
580 baseContext.applyAnalysisDelta(delta);
581 }
582
583 @override
584 void applyChanges(ChangeSet changeSet) {
585 baseContext.applyChanges(changeSet);
586 }
587
588 @override
589 String computeDocumentationComment(Element element) {
590 return baseContext.computeDocumentationComment(element);
591 }
592
593 @override
594 List<AnalysisError> computeErrors(Source source) {
595 return baseContext.computeErrors(source);
596 }
597
598 @override
599 List<Source> computeExportedLibraries(Source source) {
600 return baseContext.computeExportedLibraries(source);
601 }
602
603 @override
604 HtmlElement computeHtmlElement(Source source) {
605 return baseContext.computeHtmlElement(source);
606 }
607
608 @override
609 List<Source> computeImportedLibraries(Source source) {
610 return baseContext.computeImportedLibraries(source);
611 }
612
613 @override
614 SourceKind computeKindOf(Source source) {
615 return baseContext.computeKindOf(source);
616 }
617
618 @override
619 LibraryElement computeLibraryElement(Source source) {
620 return baseContext.computeLibraryElement(source);
621 }
622
623 @override
624 LineInfo computeLineInfo(Source source) {
625 return baseContext.computeLineInfo(source);
626 }
627
628 @override
629 CompilationUnit computeResolvableCompilationUnit(Source source) {
630 return baseContext.computeResolvableCompilationUnit(source);
631 }
632
633 @override
634 CancelableFuture<CompilationUnit>
635 computeResolvedCompilationUnitAsync(Source source, Source librarySource) {
636 return baseContext.computeResolvedCompilationUnitAsync(
637 source,
638 librarySource);
639 }
640
641 @override
642 void dispose() {
643 baseContext.dispose();
644 }
645
646 @override
647 CompilationUnit ensureAnyResolvedDartUnit(Source source) {
648 return baseContext.ensureAnyResolvedDartUnit(source);
649 }
650
651 @override
652 bool exists(Source source) {
653 return baseContext.exists(source);
654 }
655
656 @override
657 CacheEntry getCacheEntry(AnalysisTarget target) {
658 return entryMap.putIfAbsent(target, () => new CacheEntry());
659 }
660
661 @override
662 CompilationUnitElement getCompilationUnitElement(Source unitSource,
663 Source librarySource) {
664 return baseContext.getCompilationUnitElement(unitSource, librarySource);
665 }
666
667 @override
668 TimestampedData<String> getContents(Source source) {
669 return baseContext.getContents(source);
670 }
671
672 @override
673 InternalAnalysisContext getContextFor(Source source) {
674 return baseContext.getContextFor(source);
675 }
676
677 @override
678 Element getElement(ElementLocation location) {
679 return baseContext.getElement(location);
680 }
681
682 @override
683 AnalysisErrorInfo getErrors(Source source) {
684 return baseContext.getErrors(source);
685 }
686
687 @override
688 HtmlElement getHtmlElement(Source source) {
689 return baseContext.getHtmlElement(source);
690 }
691
692 @override
693 List<Source> getHtmlFilesReferencing(Source source) {
694 return baseContext.getHtmlFilesReferencing(source);
695 }
696
697 @override
698 SourceKind getKindOf(Source source) {
699 return baseContext.getKindOf(source);
700 }
701
702 @override
703 List<Source> getLibrariesContaining(Source source) {
704 return baseContext.getLibrariesContaining(source);
705 }
706
707 @override
708 List<Source> getLibrariesDependingOn(Source librarySource) {
709 return baseContext.getLibrariesDependingOn(librarySource);
710 }
711
712 @override
713 List<Source> getLibrariesReferencedFromHtml(Source htmlSource) {
714 return baseContext.getLibrariesReferencedFromHtml(htmlSource);
715 }
716
717 @override
718 LibraryElement getLibraryElement(Source source) {
719 return baseContext.getLibraryElement(source);
720 }
721
722 @override
723 LineInfo getLineInfo(Source source) {
724 return baseContext.getLineInfo(source);
725 }
726
727 @override
728 int getModificationStamp(Source source) {
729 return baseContext.getModificationStamp(source);
730 }
731
732 @override
733 Namespace getPublicNamespace(LibraryElement library) {
734 return baseContext.getPublicNamespace(library);
735 }
736
737 @override
738 CompilationUnit getResolvedCompilationUnit(Source unitSource,
739 LibraryElement library) {
740 return baseContext.getResolvedCompilationUnit(unitSource, library);
741 }
742
743 @override
744 CompilationUnit getResolvedCompilationUnit2(Source unitSource,
745 Source librarySource) {
746 return baseContext.getResolvedCompilationUnit2(unitSource, librarySource);
747 }
748
749 @override
750 HtmlUnit getResolvedHtmlUnit(Source htmlSource) {
751 return baseContext.getResolvedHtmlUnit(htmlSource);
752 }
753
754 @override
755 bool handleContentsChanged(Source source, String originalContents,
756 String newContents, bool notify) {
757 return baseContext.handleContentsChanged(
758 source,
759 originalContents,
760 newContents,
761 notify);
762 }
763
764 @override
765 bool isClientLibrary(Source librarySource) {
766 return baseContext.isClientLibrary(librarySource);
767 }
768
769 @override
770 bool isServerLibrary(Source librarySource) {
771 return baseContext.isServerLibrary(librarySource);
772 }
773
774 @override
775 CompilationUnit parseCompilationUnit(Source source) {
776 return baseContext.parseCompilationUnit(source);
777 }
778
779 @override
780 HtmlUnit parseHtmlUnit(Source source) {
781 return baseContext.parseHtmlUnit(source);
782 }
783
784 @override
785 AnalysisResult performAnalysisTask() {
786 return baseContext.performAnalysisTask();
787 }
788
789 @override
790 void recordLibraryElements(Map<Source, LibraryElement> elementMap) {
791 baseContext.recordLibraryElements(elementMap);
792 }
793
794 @override
795 void removeListener(AnalysisListener listener) {
796 baseContext.removeListener(listener);
797 }
798
799 @override
800 CompilationUnit resolveCompilationUnit(Source unitSource,
801 LibraryElement library) {
802 return baseContext.resolveCompilationUnit(unitSource, library);
803 }
804
805 @override
806 CompilationUnit resolveCompilationUnit2(Source unitSource,
807 Source librarySource) {
808 return baseContext.resolveCompilationUnit2(unitSource, librarySource);
809 }
810
811 @override
812 HtmlUnit resolveHtmlUnit(Source htmlSource) {
813 return baseContext.resolveHtmlUnit(htmlSource);
814 }
815
816 @override
817 void setChangedContents(Source source, String contents, int offset,
818 int oldLength, int newLength) {
819 baseContext.setChangedContents(
820 source,
821 contents,
822 offset,
823 oldLength,
824 newLength);
825 }
826
827 @override
828 void setContents(Source source, String contents) {
829 baseContext.setContents(source, contents);
830 }
831
832 @override
833 void visitCacheItems(void callback(Source source, SourceEntry dartEntry,
834 DataDescriptor rowDesc, CacheState state)) {
835 baseContext.visitCacheItems(callback);
836 }
837 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698