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

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

Issue 1289283004: Initial steps toward adding strong mode to the new task model (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 5 years, 4 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
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.task.dart; 5 library analyzer.src.task.dart;
6 6
7 import 'dart:collection'; 7 import 'dart:collection';
8 8
9 import 'package:analyzer/src/context/cache.dart'; 9 import 'package:analyzer/src/context/cache.dart';
10 import 'package:analyzer/src/generated/ast.dart'; 10 import 'package:analyzer/src/generated/ast.dart';
11 import 'package:analyzer/src/generated/constant.dart'; 11 import 'package:analyzer/src/generated/constant.dart';
12 import 'package:analyzer/src/generated/element.dart'; 12 import 'package:analyzer/src/generated/element.dart';
13 import 'package:analyzer/src/generated/engine.dart' 13 import 'package:analyzer/src/generated/engine.dart'
14 hide AnalysisCache, AnalysisTask; 14 hide AnalysisCache, AnalysisTask;
15 import 'package:analyzer/src/generated/error.dart'; 15 import 'package:analyzer/src/generated/error.dart';
16 import 'package:analyzer/src/generated/error_verifier.dart'; 16 import 'package:analyzer/src/generated/error_verifier.dart';
17 import 'package:analyzer/src/generated/java_engine.dart'; 17 import 'package:analyzer/src/generated/java_engine.dart';
18 import 'package:analyzer/src/generated/parser.dart'; 18 import 'package:analyzer/src/generated/parser.dart';
19 import 'package:analyzer/src/generated/resolver.dart'; 19 import 'package:analyzer/src/generated/resolver.dart';
20 import 'package:analyzer/src/generated/scanner.dart'; 20 import 'package:analyzer/src/generated/scanner.dart';
21 import 'package:analyzer/src/generated/sdk.dart'; 21 import 'package:analyzer/src/generated/sdk.dart';
22 import 'package:analyzer/src/generated/source.dart'; 22 import 'package:analyzer/src/generated/source.dart';
23 import 'package:analyzer/src/task/driver.dart'; 23 import 'package:analyzer/src/task/driver.dart';
24 import 'package:analyzer/src/task/general.dart'; 24 import 'package:analyzer/src/task/general.dart';
25 import 'package:analyzer/src/task/html.dart'; 25 import 'package:analyzer/src/task/html.dart';
26 import 'package:analyzer/src/task/inputs.dart'; 26 import 'package:analyzer/src/task/inputs.dart';
27 import 'package:analyzer/src/task/model.dart'; 27 import 'package:analyzer/src/task/model.dart';
28 import 'package:analyzer/src/task/strong_mode.dart';
28 import 'package:analyzer/task/dart.dart'; 29 import 'package:analyzer/task/dart.dart';
29 import 'package:analyzer/task/general.dart'; 30 import 'package:analyzer/task/general.dart';
30 import 'package:analyzer/task/model.dart'; 31 import 'package:analyzer/task/model.dart';
31 32
32 /** 33 /**
33 * The [ResultCachingPolicy] for ASTs. 34 * The [ResultCachingPolicy] for ASTs.
34 */ 35 */
35 const ResultCachingPolicy AST_CACHING_POLICY = 36 const ResultCachingPolicy AST_CACHING_POLICY =
36 const SimpleResultCachingPolicy(8192, 8192); 37 const SimpleResultCachingPolicy(8192, 8192);
37 38
(...skipping 13 matching lines...) Expand all
51 * 52 *
52 * The list will be empty if there were no errors, but will not be `null`. 53 * The list will be empty if there were no errors, but will not be `null`.
53 * 54 *
54 * The result is only available for [Source]s representing a library. 55 * The result is only available for [Source]s representing a library.
55 */ 56 */
56 final ListResultDescriptor<AnalysisError> BUILD_LIBRARY_ERRORS = 57 final ListResultDescriptor<AnalysisError> BUILD_LIBRARY_ERRORS =
57 new ListResultDescriptor<AnalysisError>( 58 new ListResultDescriptor<AnalysisError>(
58 'BUILD_LIBRARY_ERRORS', AnalysisError.NO_ERRORS); 59 'BUILD_LIBRARY_ERRORS', AnalysisError.NO_ERRORS);
59 60
60 /** 61 /**
62 * A list of the [ClassElement]s representing the classes defined in a
63 * compilation unit.
64 *
65 * The result is only available for [LibrarySpecificUnit]s, and only when strong
66 * mode is enabled.
67 */
68 final ListResultDescriptor<ClassElement> CLASSES_IN_UNIT =
69 new ListResultDescriptor<ClassElement>('CLASSES_IN_UNIT', null);
70
71 /**
61 * A list of the [ConstantEvaluationTarget]s defined in a unit. This includes 72 * A list of the [ConstantEvaluationTarget]s defined in a unit. This includes
62 * constants defined at top level, statically inside classes, and local to 73 * constants defined at top level, statically inside classes, and local to
63 * functions, as well as constant constructors, annotations, and default values 74 * functions, as well as constant constructors, annotations, and default values
64 * of parameters to constant constructors. 75 * of parameters to constant constructors.
65 */ 76 */
66 final ListResultDescriptor<ConstantEvaluationTarget> COMPILATION_UNIT_CONSTANTS = 77 final ListResultDescriptor<
78 ConstantEvaluationTarget> COMPILATION_UNIT_CONSTANTS =
scheglov 2015/08/17 20:08:49 OMG, why does it format it this way?... Also, it
Brian Wilkerson 2015/08/18 00:07:04 That would be a question for Bob.
67 new ListResultDescriptor<ConstantEvaluationTarget>( 79 new ListResultDescriptor<ConstantEvaluationTarget>(
68 'COMPILATION_UNIT_CONSTANTS', null, 80 'COMPILATION_UNIT_CONSTANTS', null,
69 cachingPolicy: ELEMENT_CACHING_POLICY); 81 cachingPolicy: ELEMENT_CACHING_POLICY);
70 82
71 /** 83 /**
72 * The element model associated with a single compilation unit. 84 * The element model associated with a single compilation unit.
73 * 85 *
74 * The result is only available for [LibrarySpecificUnit]s. 86 * The result is only available for [LibrarySpecificUnit]s.
75 */ 87 */
76 final ResultDescriptor<CompilationUnitElement> COMPILATION_UNIT_ELEMENT = 88 final ResultDescriptor<CompilationUnitElement> COMPILATION_UNIT_ELEMENT =
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 /** 148 /**
137 * The sources representing the combined import/export closure of a library. 149 * The sources representing the combined import/export closure of a library.
138 * The [Source]s include only library sources, not their units. 150 * The [Source]s include only library sources, not their units.
139 * 151 *
140 * The result is only available for [Source]s representing a library. 152 * The result is only available for [Source]s representing a library.
141 */ 153 */
142 final ListResultDescriptor<Source> IMPORT_EXPORT_SOURCE_CLOSURE = 154 final ListResultDescriptor<Source> IMPORT_EXPORT_SOURCE_CLOSURE =
143 new ListResultDescriptor<Source>('IMPORT_EXPORT_SOURCE_CLOSURE', null); 155 new ListResultDescriptor<Source>('IMPORT_EXPORT_SOURCE_CLOSURE', null);
144 156
145 /** 157 /**
158 * A list of the [VariableElement]s defined in a unit whose type should be
159 * inferred. This includes variables defined at the library level as well as
160 * static members inside classes.
161 *
162 * The result is only available for [LibrarySpecificUnit]s, and only when strong
163 * mode is enabled.
164 */
165 final ListResultDescriptor<VariableElement> INFERABLE_STATIC_VARIABLES_IN_UNIT =
166 new ListResultDescriptor<VariableElement>(
167 'INFERABLE_STATIC_VARIABLES_IN_UNIT', null);
168
169 /**
146 * The partial [LibraryElement] associated with a library. 170 * The partial [LibraryElement] associated with a library.
147 * 171 *
148 * The [LibraryElement] and its [CompilationUnitElement]s are attached to each 172 * The [LibraryElement] and its [CompilationUnitElement]s are attached to each
149 * other. Directives 'library', 'part' and 'part of' are resolved. 173 * other. Directives 'library', 'part' and 'part of' are resolved.
150 * 174 *
151 * The result is only available for [Source]s representing a library. 175 * The result is only available for [Source]s representing a library.
152 */ 176 */
153 final ResultDescriptor<LibraryElement> LIBRARY_ELEMENT1 = 177 final ResultDescriptor<LibraryElement> LIBRARY_ELEMENT1 =
154 new ResultDescriptor<LibraryElement>('LIBRARY_ELEMENT1', null, 178 new ResultDescriptor<LibraryElement>('LIBRARY_ELEMENT1', null,
155 cachingPolicy: ELEMENT_CACHING_POLICY); 179 cachingPolicy: ELEMENT_CACHING_POLICY);
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 class BuildCompilationUnitElementTask extends SourceBasedAnalysisTask { 416 class BuildCompilationUnitElementTask extends SourceBasedAnalysisTask {
393 /** 417 /**
394 * The name of the input whose value is the AST for the compilation unit. 418 * The name of the input whose value is the AST for the compilation unit.
395 */ 419 */
396 static const String PARSED_UNIT_INPUT_NAME = 'PARSED_UNIT_INPUT_NAME'; 420 static const String PARSED_UNIT_INPUT_NAME = 'PARSED_UNIT_INPUT_NAME';
397 421
398 /** 422 /**
399 * The task descriptor describing this kind of task. 423 * The task descriptor describing this kind of task.
400 */ 424 */
401 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor( 425 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
402 'BuildCompilationUnitElementTask', createTask, buildInputs, 426 'BuildCompilationUnitElementTask',
403 <ResultDescriptor>[ 427 createTask,
428 buildInputs, <ResultDescriptor>[
429 CLASSES_IN_UNIT,
430 COMPILATION_UNIT_CONSTANTS,
404 COMPILATION_UNIT_ELEMENT, 431 COMPILATION_UNIT_ELEMENT,
405 RESOLVED_UNIT1, 432 INFERABLE_STATIC_VARIABLES_IN_UNIT,
406 COMPILATION_UNIT_CONSTANTS 433 RESOLVED_UNIT1
407 ]); 434 ]);
408 435
409 /** 436 /**
410 * Initialize a newly created task to build a compilation unit element for 437 * Initialize a newly created task to build a compilation unit element for
411 * the given [target] in the given [context]. 438 * the given [target] in the given [context].
412 */ 439 */
413 BuildCompilationUnitElementTask( 440 BuildCompilationUnitElementTask(
414 InternalAnalysisContext context, AnalysisTarget target) 441 InternalAnalysisContext context, AnalysisTarget target)
415 : super(context, target); 442 : super(context, target);
416 443
(...skipping 22 matching lines...) Expand all
439 source, unit, librarySpecificUnit.library); 466 source, unit, librarySpecificUnit.library);
440 } else { 467 } else {
441 new DeclarationResolver().resolve(unit, element); 468 new DeclarationResolver().resolve(unit, element);
442 } 469 }
443 // 470 //
444 // Prepare constants. 471 // Prepare constants.
445 // 472 //
446 ConstantFinder constantFinder = 473 ConstantFinder constantFinder =
447 new ConstantFinder(context, source, librarySpecificUnit.library); 474 new ConstantFinder(context, source, librarySpecificUnit.library);
448 unit.accept(constantFinder); 475 unit.accept(constantFinder);
449 List<ConstantEvaluationTarget> constants = 476 List<ConstantEvaluationTarget> constants = new List<
450 new List<ConstantEvaluationTarget>.from( 477 ConstantEvaluationTarget>.from(constantFinder.constantsToCompute);
451 constantFinder.constantsToCompute); 478 //
479 // Prepare targets for inference.
480 //
481 List<VariableElement> staticVariables = <VariableElement>[];
482 List<ClassElement> classes = <ClassElement>[];
483 if (context.analysisOptions.strongMode) {
484 InferrenceFinder inferrenceFinder = new InferrenceFinder();
485 unit.accept(inferrenceFinder);
486 staticVariables = inferrenceFinder.staticVariables;
487 classes = inferrenceFinder.classes;
488 }
452 // 489 //
453 // Record outputs. 490 // Record outputs.
454 // 491 //
492 outputs[CLASSES_IN_UNIT] = classes;
493 outputs[COMPILATION_UNIT_CONSTANTS] = constants;
455 outputs[COMPILATION_UNIT_ELEMENT] = element; 494 outputs[COMPILATION_UNIT_ELEMENT] = element;
495 outputs[INFERABLE_STATIC_VARIABLES_IN_UNIT] = staticVariables;
456 outputs[RESOLVED_UNIT1] = unit; 496 outputs[RESOLVED_UNIT1] = unit;
457 outputs[COMPILATION_UNIT_CONSTANTS] = constants;
458 } 497 }
459 498
460 /** 499 /**
461 * Return a map from the names of the inputs of this kind of task to the task 500 * Return a map from the names of the inputs of this kind of task to the task
462 * input descriptors describing those inputs for a task with the given 501 * input descriptors describing those inputs for a task with the given
463 * [target]. 502 * [target].
464 */ 503 */
465 static Map<String, TaskInput> buildInputs(AnalysisTarget target) { 504 static Map<String, TaskInput> buildInputs(AnalysisTarget target) {
466 LibrarySpecificUnit unit = target; 505 LibrarySpecificUnit unit = target;
467 return <String, TaskInput>{ 506 return <String, TaskInput>{
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
514 /** 553 /**
515 * The input with a list of [SOURCE_KIND]s of exported libraries. 554 * The input with a list of [SOURCE_KIND]s of exported libraries.
516 */ 555 */
517 static const String EXPORTS_SOURCE_KIND_INPUT_NAME = 556 static const String EXPORTS_SOURCE_KIND_INPUT_NAME =
518 'EXPORTS_SOURCE_KIND_INPUT_NAME'; 557 'EXPORTS_SOURCE_KIND_INPUT_NAME';
519 558
520 /** 559 /**
521 * The task descriptor describing this kind of task. 560 * The task descriptor describing this kind of task.
522 */ 561 */
523 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor( 562 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
524 'BuildDirectiveElementsTask', createTask, buildInputs, <ResultDescriptor>[ 563 'BuildDirectiveElementsTask',
525 LIBRARY_ELEMENT2, 564 createTask,
526 BUILD_DIRECTIVES_ERRORS 565 buildInputs,
527 ]); 566 <ResultDescriptor>[LIBRARY_ELEMENT2, BUILD_DIRECTIVES_ERRORS]);
528 567
529 BuildDirectiveElementsTask( 568 BuildDirectiveElementsTask(
530 InternalAnalysisContext context, AnalysisTarget target) 569 InternalAnalysisContext context, AnalysisTarget target)
531 : super(context, target); 570 : super(context, target);
532 571
533 @override 572 @override
534 TaskDescriptor get descriptor => DESCRIPTOR; 573 TaskDescriptor get descriptor => DESCRIPTOR;
535 574
536 @override 575 @override
537 void internalPerform() { 576 void internalPerform() {
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
622 if (uriLiteral != null) { 661 if (uriLiteral != null) {
623 exportElement.uriOffset = uriLiteral.offset; 662 exportElement.uriOffset = uriLiteral.offset;
624 exportElement.uriEnd = uriLiteral.end; 663 exportElement.uriEnd = uriLiteral.end;
625 } 664 }
626 exportElement.uri = exportDirective.uriContent; 665 exportElement.uri = exportDirective.uriContent;
627 exportElement.combinators = _buildCombinators(exportDirective); 666 exportElement.combinators = _buildCombinators(exportDirective);
628 exportElement.exportedLibrary = exportedLibrary; 667 exportElement.exportedLibrary = exportedLibrary;
629 directive.element = exportElement; 668 directive.element = exportElement;
630 exports.add(exportElement); 669 exports.add(exportElement);
631 if (exportSourceKindMap[exportedSource] != SourceKind.LIBRARY) { 670 if (exportSourceKindMap[exportedSource] != SourceKind.LIBRARY) {
632 errors.add(new AnalysisError(exportedSource, uriLiteral.offset, 671 errors.add(new AnalysisError(
633 uriLiteral.length, CompileTimeErrorCode.EXPORT_OF_NON_LIBRARY, 672 exportedSource,
673 uriLiteral.offset,
674 uriLiteral.length,
675 CompileTimeErrorCode.EXPORT_OF_NON_LIBRARY,
634 [uriLiteral.toSource()])); 676 [uriLiteral.toSource()]));
635 } 677 }
636 } 678 }
637 } 679 }
638 } 680 }
639 } 681 }
640 // 682 //
641 // Ensure "dart:core" import. 683 // Ensure "dart:core" import.
642 // 684 //
643 Source coreLibrarySource = context.sourceFactory.forUri(DartSdk.DART_CORE); 685 Source coreLibrarySource = context.sourceFactory.forUri(DartSdk.DART_CORE);
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
733 775
734 /** 776 /**
735 * The name of the [RESOLVED_UNIT1] input. 777 * The name of the [RESOLVED_UNIT1] input.
736 */ 778 */
737 static const String UNIT_INPUT = 'UNIT_INPUT'; 779 static const String UNIT_INPUT = 'UNIT_INPUT';
738 780
739 /** 781 /**
740 * The task descriptor describing this kind of task. 782 * The task descriptor describing this kind of task.
741 */ 783 */
742 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor( 784 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
743 'BuildEnumMemberElementsTask', createTask, buildInputs, 785 'BuildEnumMemberElementsTask',
786 createTask,
787 buildInputs,
744 <ResultDescriptor>[RESOLVED_UNIT2]); 788 <ResultDescriptor>[RESOLVED_UNIT2]);
745 789
746 BuildEnumMemberElementsTask( 790 BuildEnumMemberElementsTask(
747 InternalAnalysisContext context, AnalysisTarget target) 791 InternalAnalysisContext context, AnalysisTarget target)
748 : super(context, target); 792 : super(context, target);
749 793
750 @override 794 @override
751 TaskDescriptor get descriptor => DESCRIPTOR; 795 TaskDescriptor get descriptor => DESCRIPTOR;
752 796
753 @override 797 @override
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
794 class BuildExportNamespaceTask extends SourceBasedAnalysisTask { 838 class BuildExportNamespaceTask extends SourceBasedAnalysisTask {
795 /** 839 /**
796 * The name of the input for [LIBRARY_ELEMENT3] of a library. 840 * The name of the input for [LIBRARY_ELEMENT3] of a library.
797 */ 841 */
798 static const String LIBRARY_INPUT = 'LIBRARY_INPUT'; 842 static const String LIBRARY_INPUT = 'LIBRARY_INPUT';
799 843
800 /** 844 /**
801 * The task descriptor describing this kind of task. 845 * The task descriptor describing this kind of task.
802 */ 846 */
803 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor( 847 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
804 'BuildExportNamespaceTask', createTask, buildInputs, 848 'BuildExportNamespaceTask',
849 createTask,
850 buildInputs,
805 <ResultDescriptor>[LIBRARY_ELEMENT4]); 851 <ResultDescriptor>[LIBRARY_ELEMENT4]);
806 852
807 BuildExportNamespaceTask( 853 BuildExportNamespaceTask(
808 InternalAnalysisContext context, AnalysisTarget target) 854 InternalAnalysisContext context, AnalysisTarget target)
809 : super(context, target); 855 : super(context, target);
810 856
811 @override 857 @override
812 TaskDescriptor get descriptor => DESCRIPTOR; 858 TaskDescriptor get descriptor => DESCRIPTOR;
813 859
814 @override 860 @override
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
950 partElement.uriEnd = partUri.end; 996 partElement.uriEnd = partUri.end;
951 partElement.uri = partDirective.uriContent; 997 partElement.uri = partDirective.uriContent;
952 // 998 //
953 // Validate that the part contains a part-of directive with the same 999 // Validate that the part contains a part-of directive with the same
954 // name as the library. 1000 // name as the library.
955 // 1001 //
956 if (context.exists(partSource)) { 1002 if (context.exists(partSource)) {
957 String partLibraryName = 1003 String partLibraryName =
958 _getPartLibraryName(partSource, partUnit, directivesToResolve); 1004 _getPartLibraryName(partSource, partUnit, directivesToResolve);
959 if (partLibraryName == null) { 1005 if (partLibraryName == null) {
960 errors.add(new AnalysisError(librarySource, partUri.offset, 1006 errors.add(new AnalysisError(
961 partUri.length, CompileTimeErrorCode.PART_OF_NON_PART, 1007 librarySource,
1008 partUri.offset,
1009 partUri.length,
1010 CompileTimeErrorCode.PART_OF_NON_PART,
962 [partUri.toSource()])); 1011 [partUri.toSource()]));
963 } else if (libraryNameNode == null) { 1012 } else if (libraryNameNode == null) {
964 if (partsLibraryName == _UNKNOWN_LIBRARY_NAME) { 1013 if (partsLibraryName == _UNKNOWN_LIBRARY_NAME) {
965 partsLibraryName = partLibraryName; 1014 partsLibraryName = partLibraryName;
966 } else if (partsLibraryName != partLibraryName) { 1015 } else if (partsLibraryName != partLibraryName) {
967 partsLibraryName = null; 1016 partsLibraryName = null;
968 } 1017 }
969 } else if (libraryNameNode.name != partLibraryName) { 1018 } else if (libraryNameNode.name != partLibraryName) {
970 errors.add(new AnalysisError(librarySource, partUri.offset, 1019 errors.add(new AnalysisError(
971 partUri.length, StaticWarningCode.PART_OF_DIFFERENT_LIBRARY, [ 1020 librarySource,
972 libraryNameNode.name, 1021 partUri.offset,
973 partLibraryName 1022 partUri.length,
974 ])); 1023 StaticWarningCode.PART_OF_DIFFERENT_LIBRARY,
1024 [libraryNameNode.name, partLibraryName]));
975 } 1025 }
976 } 1026 }
977 if (entryPoint == null) { 1027 if (entryPoint == null) {
978 entryPoint = _findEntryPoint(partElement); 1028 entryPoint = _findEntryPoint(partElement);
979 } 1029 }
980 directive.element = partElement; 1030 directive.element = partElement;
981 sourcedCompilationUnits.add(partElement); 1031 sourcedCompilationUnits.add(partElement);
982 } 1032 }
983 } 1033 }
984 } 1034 }
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
1131 class BuildPublicNamespaceTask extends SourceBasedAnalysisTask { 1181 class BuildPublicNamespaceTask extends SourceBasedAnalysisTask {
1132 /** 1182 /**
1133 * The name of the input for [LIBRARY_ELEMENT2] of a library. 1183 * The name of the input for [LIBRARY_ELEMENT2] of a library.
1134 */ 1184 */
1135 static const String LIBRARY_INPUT = 'LIBRARY_INPUT'; 1185 static const String LIBRARY_INPUT = 'LIBRARY_INPUT';
1136 1186
1137 /** 1187 /**
1138 * The task descriptor describing this kind of task. 1188 * The task descriptor describing this kind of task.
1139 */ 1189 */
1140 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor( 1190 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
1141 'BuildPublicNamespaceTask', createTask, buildInputs, 1191 'BuildPublicNamespaceTask',
1192 createTask,
1193 buildInputs,
1142 <ResultDescriptor>[LIBRARY_ELEMENT3]); 1194 <ResultDescriptor>[LIBRARY_ELEMENT3]);
1143 1195
1144 BuildPublicNamespaceTask( 1196 BuildPublicNamespaceTask(
1145 InternalAnalysisContext context, AnalysisTarget target) 1197 InternalAnalysisContext context, AnalysisTarget target)
1146 : super(context, target); 1198 : super(context, target);
1147 1199
1148 @override 1200 @override
1149 TaskDescriptor get descriptor => DESCRIPTOR; 1201 TaskDescriptor get descriptor => DESCRIPTOR;
1150 1202
1151 @override 1203 @override
(...skipping 29 matching lines...) Expand all
1181 class BuildSourceExportClosureTask extends SourceBasedAnalysisTask { 1233 class BuildSourceExportClosureTask extends SourceBasedAnalysisTask {
1182 /** 1234 /**
1183 * The name of the export closure. 1235 * The name of the export closure.
1184 */ 1236 */
1185 static const String EXPORT_INPUT = 'EXPORT_INPUT'; 1237 static const String EXPORT_INPUT = 'EXPORT_INPUT';
1186 1238
1187 /** 1239 /**
1188 * The task descriptor describing this kind of task. 1240 * The task descriptor describing this kind of task.
1189 */ 1241 */
1190 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor( 1242 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
1191 'BuildSourceExportClosureTask', createTask, buildInputs, 1243 'BuildSourceExportClosureTask',
1244 createTask,
1245 buildInputs,
1192 <ResultDescriptor>[EXPORT_SOURCE_CLOSURE]); 1246 <ResultDescriptor>[EXPORT_SOURCE_CLOSURE]);
1193 1247
1194 BuildSourceExportClosureTask( 1248 BuildSourceExportClosureTask(
1195 InternalAnalysisContext context, AnalysisTarget target) 1249 InternalAnalysisContext context, AnalysisTarget target)
1196 : super(context, target); 1250 : super(context, target);
1197 1251
1198 @override 1252 @override
1199 TaskDescriptor get descriptor => DESCRIPTOR; 1253 TaskDescriptor get descriptor => DESCRIPTOR;
1200 1254
1201 @override 1255 @override
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1236 class BuildSourceImportExportClosureTask extends SourceBasedAnalysisTask { 1290 class BuildSourceImportExportClosureTask extends SourceBasedAnalysisTask {
1237 /** 1291 /**
1238 * The name of the import/export closure. 1292 * The name of the import/export closure.
1239 */ 1293 */
1240 static const String IMPORT_EXPORT_INPUT = 'IMPORT_EXPORT_INPUT'; 1294 static const String IMPORT_EXPORT_INPUT = 'IMPORT_EXPORT_INPUT';
1241 1295
1242 /** 1296 /**
1243 * The task descriptor describing this kind of task. 1297 * The task descriptor describing this kind of task.
1244 */ 1298 */
1245 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor( 1299 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
1246 'BuildSourceImportExportClosureTask', createTask, buildInputs, 1300 'BuildSourceImportExportClosureTask',
1301 createTask,
1302 buildInputs,
1247 <ResultDescriptor>[IMPORT_EXPORT_SOURCE_CLOSURE, IS_CLIENT]); 1303 <ResultDescriptor>[IMPORT_EXPORT_SOURCE_CLOSURE, IS_CLIENT]);
1248 1304
1249 BuildSourceImportExportClosureTask( 1305 BuildSourceImportExportClosureTask(
1250 InternalAnalysisContext context, AnalysisTarget target) 1306 InternalAnalysisContext context, AnalysisTarget target)
1251 : super(context, target); 1307 : super(context, target);
1252 1308
1253 @override 1309 @override
1254 TaskDescriptor get descriptor => DESCRIPTOR; 1310 TaskDescriptor get descriptor => DESCRIPTOR;
1255 1311
1256 @override 1312 @override
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
1298 1354
1299 /** 1355 /**
1300 * The [PUBLIC_NAMESPACE] input of the `dart:async` library. 1356 * The [PUBLIC_NAMESPACE] input of the `dart:async` library.
1301 */ 1357 */
1302 static const String ASYNC_INPUT = 'ASYNC_INPUT'; 1358 static const String ASYNC_INPUT = 'ASYNC_INPUT';
1303 1359
1304 /** 1360 /**
1305 * The task descriptor describing this kind of task. 1361 * The task descriptor describing this kind of task.
1306 */ 1362 */
1307 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor( 1363 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
1308 'BuildTypeProviderTask', createTask, buildInputs, 1364 'BuildTypeProviderTask',
1365 createTask,
1366 buildInputs,
1309 <ResultDescriptor>[TYPE_PROVIDER]); 1367 <ResultDescriptor>[TYPE_PROVIDER]);
1310 1368
1311 BuildTypeProviderTask( 1369 BuildTypeProviderTask(
1312 InternalAnalysisContext context, AnalysisContextTarget target) 1370 InternalAnalysisContext context, AnalysisContextTarget target)
1313 : super(context, target); 1371 : super(context, target);
1314 1372
1315 @override 1373 @override
1316 TaskDescriptor get descriptor => DESCRIPTOR; 1374 TaskDescriptor get descriptor => DESCRIPTOR;
1317 1375
1318 @override 1376 @override
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1358 * The name of the [RESOLVED_UNIT5] input. 1416 * The name of the [RESOLVED_UNIT5] input.
1359 */ 1417 */
1360 static const String UNIT_INPUT = 'UNIT_INPUT'; 1418 static const String UNIT_INPUT = 'UNIT_INPUT';
1361 1419
1362 /** 1420 /**
1363 * The name of the [TYPE_PROVIDER] input. 1421 * The name of the [TYPE_PROVIDER] input.
1364 */ 1422 */
1365 static const String TYPE_PROVIDER_INPUT = 'TYPE_PROVIDER_INPUT'; 1423 static const String TYPE_PROVIDER_INPUT = 'TYPE_PROVIDER_INPUT';
1366 1424
1367 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor( 1425 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
1368 'ComputeConstantDependenciesTask', createTask, buildInputs, 1426 'ComputeConstantDependenciesTask',
1427 createTask,
1428 buildInputs,
1369 <ResultDescriptor>[CONSTANT_DEPENDENCIES]); 1429 <ResultDescriptor>[CONSTANT_DEPENDENCIES]);
1370 1430
1371 ComputeConstantDependenciesTask( 1431 ComputeConstantDependenciesTask(
1372 InternalAnalysisContext context, ConstantEvaluationTarget constant) 1432 InternalAnalysisContext context, ConstantEvaluationTarget constant)
1373 : super(context, constant); 1433 : super(context, constant);
1374 1434
1375 @override 1435 @override
1376 TaskDescriptor get descriptor => DESCRIPTOR; 1436 TaskDescriptor get descriptor => DESCRIPTOR;
1377 1437
1378 @override 1438 @override
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
1444 * before the target. 1504 * before the target.
1445 */ 1505 */
1446 static const String DEPENDENCIES_INPUT = 'DEPENDENCIES_INPUT'; 1506 static const String DEPENDENCIES_INPUT = 'DEPENDENCIES_INPUT';
1447 1507
1448 /** 1508 /**
1449 * The name of the [TYPE_PROVIDER] input. 1509 * The name of the [TYPE_PROVIDER] input.
1450 */ 1510 */
1451 static const String TYPE_PROVIDER_INPUT = 'TYPE_PROVIDER_INPUT'; 1511 static const String TYPE_PROVIDER_INPUT = 'TYPE_PROVIDER_INPUT';
1452 1512
1453 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor( 1513 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
1454 'ComputeConstantValueTask', createTask, buildInputs, 1514 'ComputeConstantValueTask',
1515 createTask,
1516 buildInputs,
1455 <ResultDescriptor>[CONSTANT_VALUE]); 1517 <ResultDescriptor>[CONSTANT_VALUE]);
1456 1518
1457 ComputeConstantValueTask( 1519 ComputeConstantValueTask(
1458 InternalAnalysisContext context, ConstantEvaluationTarget constant) 1520 InternalAnalysisContext context, ConstantEvaluationTarget constant)
1459 : super(context, constant); 1521 : super(context, constant);
1460 1522
1461 @override 1523 @override
1462 TaskDescriptor get descriptor => DESCRIPTOR; 1524 TaskDescriptor get descriptor => DESCRIPTOR;
1463 1525
1464 @override 1526 @override
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
1558 } 1620 }
1559 1621
1560 /** 1622 /**
1561 * A task that computes a list of the libraries containing the target source. 1623 * A task that computes a list of the libraries containing the target source.
1562 */ 1624 */
1563 class ContainingLibrariesTask extends SourceBasedAnalysisTask { 1625 class ContainingLibrariesTask extends SourceBasedAnalysisTask {
1564 /** 1626 /**
1565 * The task descriptor describing this kind of task. 1627 * The task descriptor describing this kind of task.
1566 */ 1628 */
1567 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor( 1629 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
1568 'ContainingLibrariesTask', createTask, buildInputs, 1630 'ContainingLibrariesTask',
1631 createTask,
1632 buildInputs,
1569 <ResultDescriptor>[CONTAINING_LIBRARIES]); 1633 <ResultDescriptor>[CONTAINING_LIBRARIES]);
1570 1634
1571 ContainingLibrariesTask( 1635 ContainingLibrariesTask(
1572 InternalAnalysisContext context, AnalysisTarget target) 1636 InternalAnalysisContext context, AnalysisTarget target)
1573 : super(context, target); 1637 : super(context, target);
1574 1638
1575 @override 1639 @override
1576 TaskDescriptor get descriptor => DESCRIPTOR; 1640 TaskDescriptor get descriptor => DESCRIPTOR;
1577 1641
1578 @override 1642 @override
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
1767 * input descriptors describing those inputs for a task with the 1831 * input descriptors describing those inputs for a task with the
1768 * given [target]. 1832 * given [target].
1769 */ 1833 */
1770 static Map<String, TaskInput> buildInputs(AnalysisTarget target) { 1834 static Map<String, TaskInput> buildInputs(AnalysisTarget target) {
1771 Source source = target; 1835 Source source = target;
1772 return <String, TaskInput>{ 1836 return <String, TaskInput>{
1773 BUILD_DIRECTIVES_ERRORS_INPUT: BUILD_DIRECTIVES_ERRORS.of(source), 1837 BUILD_DIRECTIVES_ERRORS_INPUT: BUILD_DIRECTIVES_ERRORS.of(source),
1774 BUILD_LIBRARY_ERRORS_INPUT: BUILD_LIBRARY_ERRORS.of(source), 1838 BUILD_LIBRARY_ERRORS_INPUT: BUILD_LIBRARY_ERRORS.of(source),
1775 PARSE_ERRORS_INPUT: PARSE_ERRORS.of(source), 1839 PARSE_ERRORS_INPUT: PARSE_ERRORS.of(source),
1776 SCAN_ERRORS_INPUT: SCAN_ERRORS.of(source), 1840 SCAN_ERRORS_INPUT: SCAN_ERRORS.of(source),
1777 LIBRARY_UNIT_ERRORS_INPUT: CONTAINING_LIBRARIES 1841 LIBRARY_UNIT_ERRORS_INPUT:
1778 .of(source) 1842 CONTAINING_LIBRARIES.of(source).toMap((Source library) {
1779 .toMap((Source library) {
1780 LibrarySpecificUnit unit = new LibrarySpecificUnit(library, source); 1843 LibrarySpecificUnit unit = new LibrarySpecificUnit(library, source);
1781 return LIBRARY_UNIT_ERRORS.of(unit); 1844 return LIBRARY_UNIT_ERRORS.of(unit);
1782 }) 1845 })
1783 }; 1846 };
1784 } 1847 }
1785 1848
1786 /** 1849 /**
1787 * Create a [DartErrorsTask] based on the given [target] in the given 1850 * Create a [DartErrorsTask] based on the given [target] in the given
1788 * [context]. 1851 * [context].
1789 */ 1852 */
(...skipping 14 matching lines...) Expand all
1804 1867
1805 /** 1868 /**
1806 * The name of the [CONSTANT_VALUE] input. 1869 * The name of the [CONSTANT_VALUE] input.
1807 */ 1870 */
1808 static const String CONSTANT_VALUES = 'CONSTANT_VALUES'; 1871 static const String CONSTANT_VALUES = 'CONSTANT_VALUES';
1809 1872
1810 /** 1873 /**
1811 * The task descriptor describing this kind of task. 1874 * The task descriptor describing this kind of task.
1812 */ 1875 */
1813 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor( 1876 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
1814 'EvaluateUnitConstantsTask', createTask, buildInputs, 1877 'EvaluateUnitConstantsTask',
1878 createTask,
1879 buildInputs,
1815 <ResultDescriptor>[RESOLVED_UNIT]); 1880 <ResultDescriptor>[RESOLVED_UNIT]);
1816 1881
1817 EvaluateUnitConstantsTask(AnalysisContext context, LibrarySpecificUnit target) 1882 EvaluateUnitConstantsTask(AnalysisContext context, LibrarySpecificUnit target)
1818 : super(context, target); 1883 : super(context, target);
1819 1884
1820 @override 1885 @override
1821 TaskDescriptor get descriptor => DESCRIPTOR; 1886 TaskDescriptor get descriptor => DESCRIPTOR;
1822 1887
1823 @override 1888 @override
1824 void internalPerform() { 1889 void internalPerform() {
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
1962 class GatherUsedImportedElementsTask extends SourceBasedAnalysisTask { 2027 class GatherUsedImportedElementsTask extends SourceBasedAnalysisTask {
1963 /** 2028 /**
1964 * The name of the [RESOLVED_UNIT5] input. 2029 * The name of the [RESOLVED_UNIT5] input.
1965 */ 2030 */
1966 static const String UNIT_INPUT = 'UNIT_INPUT'; 2031 static const String UNIT_INPUT = 'UNIT_INPUT';
1967 2032
1968 /** 2033 /**
1969 * The task descriptor describing this kind of task. 2034 * The task descriptor describing this kind of task.
1970 */ 2035 */
1971 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor( 2036 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
1972 'GatherUsedImportedElementsTask', createTask, buildInputs, 2037 'GatherUsedImportedElementsTask',
2038 createTask,
2039 buildInputs,
1973 <ResultDescriptor>[USED_IMPORTED_ELEMENTS]); 2040 <ResultDescriptor>[USED_IMPORTED_ELEMENTS]);
1974 2041
1975 GatherUsedImportedElementsTask( 2042 GatherUsedImportedElementsTask(
1976 InternalAnalysisContext context, AnalysisTarget target) 2043 InternalAnalysisContext context, AnalysisTarget target)
1977 : super(context, target); 2044 : super(context, target);
1978 2045
1979 @override 2046 @override
1980 TaskDescriptor get descriptor => DESCRIPTOR; 2047 TaskDescriptor get descriptor => DESCRIPTOR;
1981 2048
1982 @override 2049 @override
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
2022 class GatherUsedLocalElementsTask extends SourceBasedAnalysisTask { 2089 class GatherUsedLocalElementsTask extends SourceBasedAnalysisTask {
2023 /** 2090 /**
2024 * The name of the [RESOLVED_UNIT5] input. 2091 * The name of the [RESOLVED_UNIT5] input.
2025 */ 2092 */
2026 static const String UNIT_INPUT = 'UNIT_INPUT'; 2093 static const String UNIT_INPUT = 'UNIT_INPUT';
2027 2094
2028 /** 2095 /**
2029 * The task descriptor describing this kind of task. 2096 * The task descriptor describing this kind of task.
2030 */ 2097 */
2031 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor( 2098 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
2032 'GatherUsedLocalElementsTask', createTask, buildInputs, 2099 'GatherUsedLocalElementsTask',
2100 createTask,
2101 buildInputs,
2033 <ResultDescriptor>[USED_LOCAL_ELEMENTS]); 2102 <ResultDescriptor>[USED_LOCAL_ELEMENTS]);
2034 2103
2035 GatherUsedLocalElementsTask( 2104 GatherUsedLocalElementsTask(
2036 InternalAnalysisContext context, AnalysisTarget target) 2105 InternalAnalysisContext context, AnalysisTarget target)
2037 : super(context, target); 2106 : super(context, target);
2038 2107
2039 @override 2108 @override
2040 TaskDescriptor get descriptor => DESCRIPTOR; 2109 TaskDescriptor get descriptor => DESCRIPTOR;
2041 2110
2042 @override 2111 @override
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
2207 2276
2208 /** 2277 /**
2209 * A task computes all of the errors of all of the units for a single 2278 * A task computes all of the errors of all of the units for a single
2210 * library source and sets the [LIBRARY_ERRORS_READY] flag. 2279 * library source and sets the [LIBRARY_ERRORS_READY] flag.
2211 */ 2280 */
2212 class LibraryErrorsReadyTask extends SourceBasedAnalysisTask { 2281 class LibraryErrorsReadyTask extends SourceBasedAnalysisTask {
2213 /** 2282 /**
2214 * The task descriptor describing this kind of task. 2283 * The task descriptor describing this kind of task.
2215 */ 2284 */
2216 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor( 2285 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
2217 'LibraryErrorsReadyTask', createTask, buildInputs, 2286 'LibraryErrorsReadyTask',
2287 createTask,
2288 buildInputs,
2218 <ResultDescriptor>[LIBRARY_ERRORS_READY]); 2289 <ResultDescriptor>[LIBRARY_ERRORS_READY]);
2219 2290
2220 LibraryErrorsReadyTask(InternalAnalysisContext context, AnalysisTarget target) 2291 LibraryErrorsReadyTask(InternalAnalysisContext context, AnalysisTarget target)
2221 : super(context, target); 2292 : super(context, target);
2222 2293
2223 @override 2294 @override
2224 TaskDescriptor get descriptor => DESCRIPTOR; 2295 TaskDescriptor get descriptor => DESCRIPTOR;
2225 2296
2226 @override 2297 @override
2227 void internalPerform() { 2298 void internalPerform() {
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
2280 2351
2281 /** 2352 /**
2282 * The name of the [VERIFY_ERRORS] input. 2353 * The name of the [VERIFY_ERRORS] input.
2283 */ 2354 */
2284 static const String VERIFY_ERRORS_INPUT = 'VERIFY_ERRORS'; 2355 static const String VERIFY_ERRORS_INPUT = 'VERIFY_ERRORS';
2285 2356
2286 /** 2357 /**
2287 * The task descriptor describing this kind of task. 2358 * The task descriptor describing this kind of task.
2288 */ 2359 */
2289 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor( 2360 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
2290 'LibraryUnitErrorsTask', createTask, buildInputs, 2361 'LibraryUnitErrorsTask',
2362 createTask,
2363 buildInputs,
2291 <ResultDescriptor>[LIBRARY_UNIT_ERRORS]); 2364 <ResultDescriptor>[LIBRARY_UNIT_ERRORS]);
2292 2365
2293 LibraryUnitErrorsTask(InternalAnalysisContext context, AnalysisTarget target) 2366 LibraryUnitErrorsTask(InternalAnalysisContext context, AnalysisTarget target)
2294 : super(context, target); 2367 : super(context, target);
2295 2368
2296 @override 2369 @override
2297 TaskDescriptor get descriptor => DESCRIPTOR; 2370 TaskDescriptor get descriptor => DESCRIPTOR;
2298 2371
2299 @override 2372 @override
2300 void internalPerform() { 2373 void internalPerform() {
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
2356 'MODIFICATION_TIME_INPUT_NAME'; 2429 'MODIFICATION_TIME_INPUT_NAME';
2357 2430
2358 /** 2431 /**
2359 * The name of the input whose value is the token stream produced for the file . 2432 * The name of the input whose value is the token stream produced for the file .
2360 */ 2433 */
2361 static const String TOKEN_STREAM_INPUT_NAME = 'TOKEN_STREAM_INPUT_NAME'; 2434 static const String TOKEN_STREAM_INPUT_NAME = 'TOKEN_STREAM_INPUT_NAME';
2362 2435
2363 /** 2436 /**
2364 * The task descriptor describing this kind of task. 2437 * The task descriptor describing this kind of task.
2365 */ 2438 */
2366 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor('ParseDartTask', 2439 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
2367 createTask, buildInputs, <ResultDescriptor>[ 2440 'ParseDartTask', createTask, buildInputs, <ResultDescriptor>[
2368 EXPLICITLY_IMPORTED_LIBRARIES, 2441 EXPLICITLY_IMPORTED_LIBRARIES,
2369 EXPORTED_LIBRARIES, 2442 EXPORTED_LIBRARIES,
2370 IMPORTED_LIBRARIES, 2443 IMPORTED_LIBRARIES,
2371 INCLUDED_PARTS, 2444 INCLUDED_PARTS,
2372 PARSE_ERRORS, 2445 PARSE_ERRORS,
2373 PARSED_UNIT, 2446 PARSED_UNIT,
2374 SOURCE_KIND, 2447 SOURCE_KIND,
2375 UNITS 2448 UNITS
2376 ]); 2449 ]);
2377 2450
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
2676 2749
2677 /** 2750 /**
2678 * The name of the list of [RESOLVED_UNIT5] input. 2751 * The name of the list of [RESOLVED_UNIT5] input.
2679 */ 2752 */
2680 static const String UNITS_INPUT = 'UNITS_INPUT'; 2753 static const String UNITS_INPUT = 'UNITS_INPUT';
2681 2754
2682 /** 2755 /**
2683 * The task descriptor describing this kind of task. 2756 * The task descriptor describing this kind of task.
2684 */ 2757 */
2685 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor( 2758 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
2686 'ResolveLibraryReferencesTask', createTask, buildInputs, 2759 'ResolveLibraryReferencesTask',
2760 createTask,
2761 buildInputs,
2687 <ResultDescriptor>[LIBRARY_ELEMENT, REFERENCED_NAMES]); 2762 <ResultDescriptor>[LIBRARY_ELEMENT, REFERENCED_NAMES]);
2688 2763
2689 ResolveLibraryReferencesTask( 2764 ResolveLibraryReferencesTask(
2690 InternalAnalysisContext context, AnalysisTarget target) 2765 InternalAnalysisContext context, AnalysisTarget target)
2691 : super(context, target); 2766 : super(context, target);
2692 2767
2693 @override 2768 @override
2694 TaskDescriptor get descriptor => DESCRIPTOR; 2769 TaskDescriptor get descriptor => DESCRIPTOR;
2695 2770
2696 @override 2771 @override
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
2748 class ResolveLibraryTypeNamesTask extends SourceBasedAnalysisTask { 2823 class ResolveLibraryTypeNamesTask extends SourceBasedAnalysisTask {
2749 /** 2824 /**
2750 * The name of the [LIBRARY_ELEMENT4] input. 2825 * The name of the [LIBRARY_ELEMENT4] input.
2751 */ 2826 */
2752 static const String LIBRARY_INPUT = 'LIBRARY_INPUT'; 2827 static const String LIBRARY_INPUT = 'LIBRARY_INPUT';
2753 2828
2754 /** 2829 /**
2755 * The task descriptor describing this kind of task. 2830 * The task descriptor describing this kind of task.
2756 */ 2831 */
2757 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor( 2832 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
2758 'ResolveLibraryTypeNamesTask', createTask, buildInputs, 2833 'ResolveLibraryTypeNamesTask',
2834 createTask,
2835 buildInputs,
2759 <ResultDescriptor>[LIBRARY_ELEMENT5]); 2836 <ResultDescriptor>[LIBRARY_ELEMENT5]);
2760 2837
2761 ResolveLibraryTypeNamesTask( 2838 ResolveLibraryTypeNamesTask(
2762 InternalAnalysisContext context, AnalysisTarget target) 2839 InternalAnalysisContext context, AnalysisTarget target)
2763 : super(context, target); 2840 : super(context, target);
2764 2841
2765 @override 2842 @override
2766 TaskDescriptor get descriptor => DESCRIPTOR; 2843 TaskDescriptor get descriptor => DESCRIPTOR;
2767 2844
2768 @override 2845 @override
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
2811 2888
2812 /** 2889 /**
2813 * The name of the [TYPE_PROVIDER] input. 2890 * The name of the [TYPE_PROVIDER] input.
2814 */ 2891 */
2815 static const String TYPE_PROVIDER_INPUT = 'TYPE_PROVIDER_INPUT'; 2892 static const String TYPE_PROVIDER_INPUT = 'TYPE_PROVIDER_INPUT';
2816 2893
2817 /** 2894 /**
2818 * The task descriptor describing this kind of task. 2895 * The task descriptor describing this kind of task.
2819 */ 2896 */
2820 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor( 2897 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
2821 'ResolveUnitReferencesTask', createTask, buildInputs, <ResultDescriptor>[ 2898 'ResolveUnitReferencesTask',
2822 RESOLVE_REFERENCES_ERRORS, 2899 createTask,
2823 RESOLVED_UNIT5 2900 buildInputs,
2824 ]); 2901 <ResultDescriptor>[RESOLVE_REFERENCES_ERRORS, RESOLVED_UNIT5]);
2825 2902
2826 ResolveUnitReferencesTask( 2903 ResolveUnitReferencesTask(
2827 InternalAnalysisContext context, AnalysisTarget target) 2904 InternalAnalysisContext context, AnalysisTarget target)
2828 : super(context, target); 2905 : super(context, target);
2829 2906
2830 @override 2907 @override
2831 TaskDescriptor get descriptor => DESCRIPTOR; 2908 TaskDescriptor get descriptor => DESCRIPTOR;
2832 2909
2833 @override 2910 @override
2834 void internalPerform() { 2911 void internalPerform() {
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
2900 2977
2901 /** 2978 /**
2902 * The name of the [TYPE_PROVIDER] input. 2979 * The name of the [TYPE_PROVIDER] input.
2903 */ 2980 */
2904 static const String TYPE_PROVIDER_INPUT = 'TYPE_PROVIDER_INPUT'; 2981 static const String TYPE_PROVIDER_INPUT = 'TYPE_PROVIDER_INPUT';
2905 2982
2906 /** 2983 /**
2907 * The task descriptor describing this kind of task. 2984 * The task descriptor describing this kind of task.
2908 */ 2985 */
2909 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor( 2986 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
2910 'ResolveUnitTypeNamesTask', createTask, buildInputs, <ResultDescriptor>[ 2987 'ResolveUnitTypeNamesTask',
2911 RESOLVE_TYPE_NAMES_ERRORS, 2988 createTask,
2912 RESOLVED_UNIT3 2989 buildInputs,
2913 ]); 2990 <ResultDescriptor>[RESOLVE_TYPE_NAMES_ERRORS, RESOLVED_UNIT3]);
2914 2991
2915 ResolveUnitTypeNamesTask( 2992 ResolveUnitTypeNamesTask(
2916 InternalAnalysisContext context, AnalysisTarget target) 2993 InternalAnalysisContext context, AnalysisTarget target)
2917 : super(context, target); 2994 : super(context, target);
2918 2995
2919 @override 2996 @override
2920 TaskDescriptor get descriptor => DESCRIPTOR; 2997 TaskDescriptor get descriptor => DESCRIPTOR;
2921 2998
2922 @override 2999 @override
2923 void internalPerform() { 3000 void internalPerform() {
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
2985 3062
2986 /** 3063 /**
2987 * The name of the [TYPE_PROVIDER] input. 3064 * The name of the [TYPE_PROVIDER] input.
2988 */ 3065 */
2989 static const String TYPE_PROVIDER_INPUT = 'TYPE_PROVIDER_INPUT'; 3066 static const String TYPE_PROVIDER_INPUT = 'TYPE_PROVIDER_INPUT';
2990 3067
2991 /** 3068 /**
2992 * The task descriptor describing this kind of task. 3069 * The task descriptor describing this kind of task.
2993 */ 3070 */
2994 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor( 3071 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
2995 'ResolveVariableReferencesTask', createTask, buildInputs, 3072 'ResolveVariableReferencesTask',
3073 createTask,
3074 buildInputs,
2996 <ResultDescriptor>[RESOLVED_UNIT4, VARIABLE_REFERENCE_ERRORS]); 3075 <ResultDescriptor>[RESOLVED_UNIT4, VARIABLE_REFERENCE_ERRORS]);
2997 3076
2998 ResolveVariableReferencesTask( 3077 ResolveVariableReferencesTask(
2999 InternalAnalysisContext context, AnalysisTarget target) 3078 InternalAnalysisContext context, AnalysisTarget target)
3000 : super(context, target); 3079 : super(context, target);
3001 3080
3002 @override 3081 @override
3003 TaskDescriptor get descriptor => DESCRIPTOR; 3082 TaskDescriptor get descriptor => DESCRIPTOR;
3004 3083
3005 @override 3084 @override
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
3057 */ 3136 */
3058 class ScanDartTask extends SourceBasedAnalysisTask { 3137 class ScanDartTask extends SourceBasedAnalysisTask {
3059 /** 3138 /**
3060 * The name of the input whose value is the content of the file. 3139 * The name of the input whose value is the content of the file.
3061 */ 3140 */
3062 static const String CONTENT_INPUT_NAME = 'CONTENT_INPUT_NAME'; 3141 static const String CONTENT_INPUT_NAME = 'CONTENT_INPUT_NAME';
3063 3142
3064 /** 3143 /**
3065 * The task descriptor describing this kind of task. 3144 * The task descriptor describing this kind of task.
3066 */ 3145 */
3067 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor('ScanDartTask', 3146 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
3068 createTask, buildInputs, <ResultDescriptor>[ 3147 'ScanDartTask',
3069 LINE_INFO, 3148 createTask,
3070 SCAN_ERRORS, 3149 buildInputs,
3071 TOKEN_STREAM 3150 <ResultDescriptor>[LINE_INFO, SCAN_ERRORS, TOKEN_STREAM]);
3072 ]);
3073 3151
3074 /** 3152 /**
3075 * Initialize a newly created task to access the content of the source 3153 * Initialize a newly created task to access the content of the source
3076 * associated with the given [target] in the given [context]. 3154 * associated with the given [target] in the given [context].
3077 */ 3155 */
3078 ScanDartTask(InternalAnalysisContext context, AnalysisTarget target) 3156 ScanDartTask(InternalAnalysisContext context, AnalysisTarget target)
3079 : super(context, target); 3157 : super(context, target);
3080 3158
3081 @override 3159 @override
3082 TaskDescriptor get descriptor => DESCRIPTOR; 3160 TaskDescriptor get descriptor => DESCRIPTOR;
(...skipping 20 matching lines...) Expand all
3103 DartScript script = target; 3181 DartScript script = target;
3104 List<ScriptFragment> fragments = script.fragments; 3182 List<ScriptFragment> fragments = script.fragments;
3105 if (fragments.length < 1) { 3183 if (fragments.length < 1) {
3106 throw new AnalysisException('Cannot scan scripts with no fragments'); 3184 throw new AnalysisException('Cannot scan scripts with no fragments');
3107 } else if (fragments.length > 1) { 3185 } else if (fragments.length > 1) {
3108 throw new AnalysisException( 3186 throw new AnalysisException(
3109 'Cannot scan scripts with multiple fragments'); 3187 'Cannot scan scripts with multiple fragments');
3110 } 3188 }
3111 ScriptFragment fragment = fragments[0]; 3189 ScriptFragment fragment = fragments[0];
3112 3190
3113 Scanner scanner = new Scanner(source, 3191 Scanner scanner = new Scanner(
3192 source,
3114 new SubSequenceReader(fragment.content, fragment.offset), 3193 new SubSequenceReader(fragment.content, fragment.offset),
3115 errorListener); 3194 errorListener);
3116 scanner.setSourceStart(fragment.line, fragment.column); 3195 scanner.setSourceStart(fragment.line, fragment.column);
3117 scanner.preserveComments = context.analysisOptions.preserveComments; 3196 scanner.preserveComments = context.analysisOptions.preserveComments;
3118 3197
3119 outputs[TOKEN_STREAM] = scanner.tokenize(); 3198 outputs[TOKEN_STREAM] = scanner.tokenize();
3120 outputs[LINE_INFO] = new LineInfo(scanner.lineStarts); 3199 outputs[LINE_INFO] = new LineInfo(scanner.lineStarts);
3121 outputs[SCAN_ERRORS] = removeDuplicateErrors(errorListener.errors); 3200 outputs[SCAN_ERRORS] = removeDuplicateErrors(errorListener.errors);
3122 } else if (target is Source) { 3201 } else if (target is Source) {
3123 String content = getRequiredInput(CONTENT_INPUT_NAME); 3202 String content = getRequiredInput(CONTENT_INPUT_NAME);
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
3211 validateDirectives(unit); 3290 validateDirectives(unit);
3212 // 3291 //
3213 // Use the ConstantVerifier to compute errors. 3292 // Use the ConstantVerifier to compute errors.
3214 // 3293 //
3215 ConstantVerifier constantVerifier = new ConstantVerifier( 3294 ConstantVerifier constantVerifier = new ConstantVerifier(
3216 errorReporter, libraryElement, typeProvider, context.declaredVariables); 3295 errorReporter, libraryElement, typeProvider, context.declaredVariables);
3217 unit.accept(constantVerifier); 3296 unit.accept(constantVerifier);
3218 // 3297 //
3219 // Use the ErrorVerifier to compute errors. 3298 // Use the ErrorVerifier to compute errors.
3220 // 3299 //
3221 ErrorVerifier errorVerifier = new ErrorVerifier(errorReporter, 3300 ErrorVerifier errorVerifier = new ErrorVerifier(
3222 libraryElement, typeProvider, new InheritanceManager(libraryElement), 3301 errorReporter,
3302 libraryElement,
3303 typeProvider,
3304 new InheritanceManager(libraryElement),
3223 context.analysisOptions.enableSuperMixins); 3305 context.analysisOptions.enableSuperMixins);
3224 unit.accept(errorVerifier); 3306 unit.accept(errorVerifier);
3225 // 3307 //
3226 // Record outputs. 3308 // Record outputs.
3227 // 3309 //
3228 outputs[VERIFY_ERRORS] = removeDuplicateErrors(errorListener.errors); 3310 outputs[VERIFY_ERRORS] = removeDuplicateErrors(errorListener.errors);
3229 } 3311 }
3230 3312
3231 /** 3313 /**
3232 * Check each directive in the given [unit] to see if the referenced source 3314 * Check each directive in the given [unit] to see if the referenced source
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
3403 3485
3404 @override 3486 @override
3405 bool moveNext() { 3487 bool moveNext() {
3406 if (_newSources.isEmpty) { 3488 if (_newSources.isEmpty) {
3407 return false; 3489 return false;
3408 } 3490 }
3409 currentTarget = _newSources.removeLast(); 3491 currentTarget = _newSources.removeLast();
3410 return true; 3492 return true;
3411 } 3493 }
3412 } 3494 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698