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

Side by Side Diff: pkg/analyzer/lib/src/context/context.dart

Issue 1212973003: Fix another new task model test (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 5 years, 6 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
« no previous file with comments | « no previous file | pkg/analyzer/test/src/context/context_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 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 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. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library analyzer.src.context.context; 5 library analyzer.src.context.context;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:collection'; 8 import 'dart:collection';
9 9
10 import 'package:analyzer/instrumentation/instrumentation.dart'; 10 import 'package:analyzer/instrumentation/instrumentation.dart';
(...skipping 548 matching lines...) Expand 10 before | Expand all | Expand 10 after
559 } 559 }
560 nameNode = nameNode.parent; 560 nameNode = nameNode.parent;
561 } 561 }
562 return null; 562 return null;
563 } 563 }
564 564
565 @override 565 @override
566 List<AnalysisError> computeErrors(Source source) { 566 List<AnalysisError> computeErrors(Source source) {
567 String name = source.shortName; 567 String name = source.shortName;
568 if (AnalysisEngine.isDartFileName(name)) { 568 if (AnalysisEngine.isDartFileName(name)) {
569 return _computeResult(source, DART_ERRORS); 569 return computeResult(source, DART_ERRORS);
570 } else if (AnalysisEngine.isHtmlFileName(name)) { 570 } else if (AnalysisEngine.isHtmlFileName(name)) {
571 return _computeResult(source, HTML_ERRORS); 571 return computeResult(source, HTML_ERRORS);
572 } 572 }
573 return AnalysisError.NO_ERRORS; 573 return AnalysisError.NO_ERRORS;
574 } 574 }
575 575
576 @override 576 @override
577 List<Source> computeExportedLibraries(Source source) => 577 List<Source> computeExportedLibraries(Source source) =>
578 _computeResult(source, EXPORTED_LIBRARIES); 578 computeResult(source, EXPORTED_LIBRARIES);
579 579
580 @override 580 @override
581 @deprecated 581 @deprecated
582 HtmlElement computeHtmlElement(Source source) { 582 HtmlElement computeHtmlElement(Source source) {
583 // TODO(brianwilkerson) Remove this method after switching to the new task 583 // TODO(brianwilkerson) Remove this method after switching to the new task
584 // model. 584 // model.
585 throw new UnimplementedError('Not supported in the new task model'); 585 throw new UnimplementedError('Not supported in the new task model');
586 } 586 }
587 587
588 @override 588 @override
589 List<Source> computeImportedLibraries(Source source) => 589 List<Source> computeImportedLibraries(Source source) =>
590 _computeResult(source, EXPLICITLY_IMPORTED_LIBRARIES); 590 computeResult(source, EXPLICITLY_IMPORTED_LIBRARIES);
591 591
592 @override 592 @override
593 SourceKind computeKindOf(Source source) { 593 SourceKind computeKindOf(Source source) {
594 String name = source.shortName; 594 String name = source.shortName;
595 if (AnalysisEngine.isDartFileName(name)) { 595 if (AnalysisEngine.isDartFileName(name)) {
596 return _computeResult(source, SOURCE_KIND); 596 return computeResult(source, SOURCE_KIND);
597 } else if (AnalysisEngine.isHtmlFileName(name)) { 597 } else if (AnalysisEngine.isHtmlFileName(name)) {
598 return SourceKind.HTML; 598 return SourceKind.HTML;
599 } 599 }
600 return SourceKind.UNKNOWN; 600 return SourceKind.UNKNOWN;
601 } 601 }
602 602
603 @override 603 @override
604 LibraryElement computeLibraryElement(Source source) { 604 LibraryElement computeLibraryElement(Source source) {
605 //_computeResult(source, HtmlEntry.ELEMENT); 605 //_computeResult(source, HtmlEntry.ELEMENT);
606 return _computeResult(source, LIBRARY_ELEMENT); 606 return computeResult(source, LIBRARY_ELEMENT);
607 } 607 }
608 608
609 @override 609 @override
610 LineInfo computeLineInfo(Source source) => _computeResult(source, LINE_INFO); 610 LineInfo computeLineInfo(Source source) => computeResult(source, LINE_INFO);
611 611
612 @override 612 @override
613 @deprecated 613 @deprecated
614 CompilationUnit computeResolvableCompilationUnit(Source source) { 614 CompilationUnit computeResolvableCompilationUnit(Source source) {
615 return null; 615 return null;
616 } 616 }
617 617
618 @override 618 @override
619 CancelableFuture<CompilationUnit> computeResolvedCompilationUnitAsync( 619 CancelableFuture<CompilationUnit> computeResolvedCompilationUnitAsync(
620 Source unitSource, Source librarySource) { 620 Source unitSource, Source librarySource) {
621 if (!AnalysisEngine.isDartFileName(unitSource.shortName) || 621 if (!AnalysisEngine.isDartFileName(unitSource.shortName) ||
622 !AnalysisEngine.isDartFileName(librarySource.shortName)) { 622 !AnalysisEngine.isDartFileName(librarySource.shortName)) {
623 return new CancelableFuture.error(new AnalysisNotScheduledError()); 623 return new CancelableFuture.error(new AnalysisNotScheduledError());
624 } 624 }
625 var unitTarget = new LibrarySpecificUnit(librarySource, unitSource); 625 var unitTarget = new LibrarySpecificUnit(librarySource, unitSource);
626 return new _AnalysisFutureHelper<CompilationUnit>(this).computeAsync( 626 return new _AnalysisFutureHelper<CompilationUnit>(this).computeAsync(
627 unitTarget, (CacheEntry entry) { 627 unitTarget, (CacheEntry entry) {
628 CacheState state = entry.getState(RESOLVED_UNIT); 628 CacheState state = entry.getState(RESOLVED_UNIT);
629 if (state == CacheState.ERROR) { 629 if (state == CacheState.ERROR) {
630 throw entry.exception; 630 throw entry.exception;
631 } else if (state == CacheState.INVALID) { 631 } else if (state == CacheState.INVALID) {
632 return null; 632 return null;
633 } 633 }
634 return entry.getValue(RESOLVED_UNIT); 634 return entry.getValue(RESOLVED_UNIT);
635 }, () { 635 }, () {
636 dartWorkManager.addPriorityResult(unitTarget, RESOLVED_UNIT); 636 dartWorkManager.addPriorityResult(unitTarget, RESOLVED_UNIT);
637 }); 637 });
638 } 638 }
639 639
640 Object /*V*/ computeResult(
641 AnalysisTarget target, ResultDescriptor /*<V>*/ descriptor) {
642 CacheEntry entry = getCacheEntry(target);
643 CacheState state = entry.getState(descriptor);
644 if (state == CacheState.FLUSHED || state == CacheState.INVALID) {
645 driver.computeResult(target, descriptor);
646 }
647 state = entry.getState(descriptor);
648 if (state == CacheState.ERROR) {
649 throw new AnalysisException(
650 'Cannot compute $descriptor for $target', entry.exception);
651 }
652 return entry.getValue(descriptor);
653 }
654
640 /** 655 /**
641 * Create an analysis cache based on the given source [factory]. 656 * Create an analysis cache based on the given source [factory].
642 */ 657 */
643 AnalysisCache createCacheFromSourceFactory(SourceFactory factory) { 658 AnalysisCache createCacheFromSourceFactory(SourceFactory factory) {
644 if (factory == null) { 659 if (factory == null) {
645 return new AnalysisCache(<CachePartition>[_privatePartition]); 660 return new AnalysisCache(<CachePartition>[_privatePartition]);
646 } 661 }
647 DartSdk sdk = factory.dartSdk; 662 DartSdk sdk = factory.dartSdk;
648 if (sdk == null) { 663 if (sdk == null) {
649 return new AnalysisCache(<CachePartition>[_privatePartition]); 664 return new AnalysisCache(<CachePartition>[_privatePartition]);
(...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after
1006 CompilationUnit parseCompilationUnit(Source source) { 1021 CompilationUnit parseCompilationUnit(Source source) {
1007 if (!AnalysisEngine.isDartFileName(source.shortName)) { 1022 if (!AnalysisEngine.isDartFileName(source.shortName)) {
1008 return null; 1023 return null;
1009 } 1024 }
1010 try { 1025 try {
1011 getContents(source); 1026 getContents(source);
1012 } catch (exception, stackTrace) { 1027 } catch (exception, stackTrace) {
1013 throw new AnalysisException('Could not get contents of $source', 1028 throw new AnalysisException('Could not get contents of $source',
1014 new CaughtException(exception, stackTrace)); 1029 new CaughtException(exception, stackTrace));
1015 } 1030 }
1016 return _computeResult(source, PARSED_UNIT); 1031 return computeResult(source, PARSED_UNIT);
1017 } 1032 }
1018 1033
1019 @override 1034 @override
1020 Document parseHtmlDocument(Source source) { 1035 Document parseHtmlDocument(Source source) {
1021 if (!AnalysisEngine.isHtmlFileName(source.shortName)) { 1036 if (!AnalysisEngine.isHtmlFileName(source.shortName)) {
1022 return null; 1037 return null;
1023 } 1038 }
1024 return _computeResult(source, HTML_DOCUMENT); 1039 return computeResult(source, HTML_DOCUMENT);
1025 } 1040 }
1026 1041
1027 @override 1042 @override
1028 @deprecated // use parseHtmlDocument(source) 1043 @deprecated // use parseHtmlDocument(source)
1029 ht.HtmlUnit parseHtmlUnit(Source source) { 1044 ht.HtmlUnit parseHtmlUnit(Source source) {
1030 // TODO(brianwilkerson) Remove this method after switching to the new task 1045 // TODO(brianwilkerson) Remove this method after switching to the new task
1031 // model. 1046 // model.
1032 throw new UnimplementedError('Not supported in the new task model'); 1047 throw new UnimplementedError('Not supported in the new task model');
1033 } 1048 }
1034 1049
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
1124 return resolveCompilationUnit2(unitSource, library.source); 1139 return resolveCompilationUnit2(unitSource, library.source);
1125 } 1140 }
1126 1141
1127 @override 1142 @override
1128 CompilationUnit resolveCompilationUnit2( 1143 CompilationUnit resolveCompilationUnit2(
1129 Source unitSource, Source librarySource) { 1144 Source unitSource, Source librarySource) {
1130 if (!AnalysisEngine.isDartFileName(unitSource.shortName) || 1145 if (!AnalysisEngine.isDartFileName(unitSource.shortName) ||
1131 !AnalysisEngine.isDartFileName(librarySource.shortName)) { 1146 !AnalysisEngine.isDartFileName(librarySource.shortName)) {
1132 return null; 1147 return null;
1133 } 1148 }
1134 return _computeResult( 1149 return computeResult(
1135 new LibrarySpecificUnit(librarySource, unitSource), RESOLVED_UNIT); 1150 new LibrarySpecificUnit(librarySource, unitSource), RESOLVED_UNIT);
1136 } 1151 }
1137 1152
1138 @override 1153 @override
1139 @deprecated 1154 @deprecated
1140 ht.HtmlUnit resolveHtmlUnit(Source htmlSource) { 1155 ht.HtmlUnit resolveHtmlUnit(Source htmlSource) {
1141 // TODO(brianwilkerson) Remove this method after switching to the new task 1156 // TODO(brianwilkerson) Remove this method after switching to the new task
1142 // model. 1157 // model.
1143 throw new UnimplementedError('Not supported in the new task model'); 1158 throw new UnimplementedError('Not supported in the new task model');
1144 } 1159 }
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
1324 List<PendingFuture> pendingFutures = 1339 List<PendingFuture> pendingFutures =
1325 _pendingFutureTargets[pendingFuture.target]; 1340 _pendingFutureTargets[pendingFuture.target];
1326 if (pendingFutures != null) { 1341 if (pendingFutures != null) {
1327 pendingFutures.remove(pendingFuture); 1342 pendingFutures.remove(pendingFuture);
1328 if (pendingFutures.isEmpty) { 1343 if (pendingFutures.isEmpty) {
1329 _pendingFutureTargets.remove(pendingFuture.target); 1344 _pendingFutureTargets.remove(pendingFuture.target);
1330 } 1345 }
1331 } 1346 }
1332 } 1347 }
1333 1348
1334 Object /*V*/ _computeResult(
1335 AnalysisTarget target, ResultDescriptor /*<V>*/ descriptor) {
1336 CacheEntry entry = getCacheEntry(target);
1337 CacheState state = entry.getState(descriptor);
1338 if (state == CacheState.FLUSHED || state == CacheState.INVALID) {
1339 driver.computeResult(target, descriptor);
1340 }
1341 state = entry.getState(descriptor);
1342 if (state == CacheState.ERROR) {
1343 throw new AnalysisException(
1344 'Cannot compute $descriptor for $target', entry.exception);
1345 }
1346 return entry.getValue(descriptor);
1347 }
1348
1349 /** 1349 /**
1350 * Given the encoded form of a source ([encoding]), use the source factory to 1350 * Given the encoded form of a source ([encoding]), use the source factory to
1351 * reconstitute the original source. 1351 * reconstitute the original source.
1352 */ 1352 */
1353 Source _computeSourceFromEncoding(String encoding) => 1353 Source _computeSourceFromEncoding(String encoding) =>
1354 _sourceFactory.fromEncoding(encoding); 1354 _sourceFactory.fromEncoding(encoding);
1355 1355
1356 /** 1356 /**
1357 * Return `true` if the given list of [sources] contains the given 1357 * Return `true` if the given list of [sources] contains the given
1358 * [targetSource]. 1358 * [targetSource].
(...skipping 674 matching lines...) Expand 10 before | Expand all | Expand 10 after
2033 new PendingFuture<T>(_context, target, computeValue); 2033 new PendingFuture<T>(_context, target, computeValue);
2034 if (!pendingFuture.evaluate(entry)) { 2034 if (!pendingFuture.evaluate(entry)) {
2035 _context._pendingFutureTargets 2035 _context._pendingFutureTargets
2036 .putIfAbsent(target, () => <PendingFuture>[]) 2036 .putIfAbsent(target, () => <PendingFuture>[])
2037 .add(pendingFuture); 2037 .add(pendingFuture);
2038 scheduleComputation(); 2038 scheduleComputation();
2039 } 2039 }
2040 return pendingFuture.future; 2040 return pendingFuture.future;
2041 } 2041 }
2042 } 2042 }
OLDNEW
« no previous file with comments | « no previous file | pkg/analyzer/test/src/context/context_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698