| OLD | NEW |
| 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'; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 import 'package:analyzer/src/generated/source.dart'; | 23 import 'package:analyzer/src/generated/source.dart'; |
| 24 import 'package:analyzer/src/task/driver.dart'; | 24 import 'package:analyzer/src/task/driver.dart'; |
| 25 import 'package:analyzer/src/task/general.dart'; | 25 import 'package:analyzer/src/task/general.dart'; |
| 26 import 'package:analyzer/src/task/html.dart'; | 26 import 'package:analyzer/src/task/html.dart'; |
| 27 import 'package:analyzer/src/task/inputs.dart'; | 27 import 'package:analyzer/src/task/inputs.dart'; |
| 28 import 'package:analyzer/src/task/model.dart'; | 28 import 'package:analyzer/src/task/model.dart'; |
| 29 import 'package:analyzer/src/task/strong_mode.dart'; | 29 import 'package:analyzer/src/task/strong_mode.dart'; |
| 30 import 'package:analyzer/task/dart.dart'; | 30 import 'package:analyzer/task/dart.dart'; |
| 31 import 'package:analyzer/task/general.dart'; | 31 import 'package:analyzer/task/general.dart'; |
| 32 import 'package:analyzer/task/model.dart'; | 32 import 'package:analyzer/task/model.dart'; |
| 33 import 'package:analyzer/src/plugin/engine_plugin.dart'; |
| 33 | 34 |
| 34 /** | 35 /** |
| 35 * The [ResultCachingPolicy] for ASTs. | 36 * The [ResultCachingPolicy] for ASTs. |
| 36 */ | 37 */ |
| 37 const ResultCachingPolicy AST_CACHING_POLICY = | 38 const ResultCachingPolicy AST_CACHING_POLICY = |
| 38 const SimpleResultCachingPolicy(8192, 8192); | 39 const SimpleResultCachingPolicy(8192, 8192); |
| 39 | 40 |
| 40 /** | 41 /** |
| 41 * The [ResultCachingPolicy] for [Element]s. | 42 * The [ResultCachingPolicy] for [Element]s. |
| 42 */ | 43 */ |
| (...skipping 1872 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1915 return DeltaResult.INVALIDATE; | 1916 return DeltaResult.INVALIDATE; |
| 1916 } | 1917 } |
| 1917 } | 1918 } |
| 1918 | 1919 |
| 1919 /** | 1920 /** |
| 1920 * A task that merges all of the errors for a single source into a single list | 1921 * A task that merges all of the errors for a single source into a single list |
| 1921 * of errors. | 1922 * of errors. |
| 1922 */ | 1923 */ |
| 1923 class DartErrorsTask extends SourceBasedAnalysisTask { | 1924 class DartErrorsTask extends SourceBasedAnalysisTask { |
| 1924 /** | 1925 /** |
| 1925 * The name of the [BUILD_DIRECTIVES_ERRORS] input. | |
| 1926 */ | |
| 1927 static const String BUILD_DIRECTIVES_ERRORS_INPUT = 'BUILD_DIRECTIVES_ERRORS'; | |
| 1928 | |
| 1929 /** | |
| 1930 * The name of the [BUILD_LIBRARY_ERRORS] input. | |
| 1931 */ | |
| 1932 static const String BUILD_LIBRARY_ERRORS_INPUT = 'BUILD_LIBRARY_ERRORS'; | |
| 1933 | |
| 1934 /** | |
| 1935 * The name of the [LIBRARY_UNIT_ERRORS] input. | |
| 1936 */ | |
| 1937 static const String LIBRARY_UNIT_ERRORS_INPUT = 'LIBRARY_UNIT_ERRORS'; | |
| 1938 | |
| 1939 /** | |
| 1940 * The name of the [PARSE_ERRORS] input. | |
| 1941 */ | |
| 1942 static const String PARSE_ERRORS_INPUT = 'PARSE_ERRORS'; | |
| 1943 | |
| 1944 /** | |
| 1945 * The name of the [SCAN_ERRORS] input. | |
| 1946 */ | |
| 1947 static const String SCAN_ERRORS_INPUT = 'SCAN_ERRORS'; | |
| 1948 | |
| 1949 /** | |
| 1950 * The task descriptor describing this kind of task. | 1926 * The task descriptor describing this kind of task. |
| 1951 */ | 1927 */ |
| 1952 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor('DartErrorsTask', | 1928 static final TaskDescriptor DESCRIPTOR = new TaskDescriptor('DartErrorsTask', |
| 1953 createTask, buildInputs, <ResultDescriptor>[DART_ERRORS]); | 1929 createTask, buildInputs, <ResultDescriptor>[DART_ERRORS]); |
| 1954 | 1930 |
| 1955 DartErrorsTask(InternalAnalysisContext context, AnalysisTarget target) | 1931 DartErrorsTask(InternalAnalysisContext context, AnalysisTarget target) |
| 1956 : super(context, target); | 1932 : super(context, target); |
| 1957 | 1933 |
| 1958 @override | 1934 @override |
| 1959 TaskDescriptor get descriptor => DESCRIPTOR; | 1935 TaskDescriptor get descriptor => DESCRIPTOR; |
| 1960 | 1936 |
| 1961 @override | 1937 @override |
| 1962 void internalPerform() { | 1938 void internalPerform() { |
| 1939 List<List<AnalysisError>> errorLists = <List<AnalysisError>>[]; |
| 1963 // | 1940 // |
| 1964 // Prepare inputs. | 1941 // Prepare inputs. |
| 1965 // | 1942 // |
| 1966 List<List<AnalysisError>> errorLists = <List<AnalysisError>>[]; | 1943 EnginePlugin enginePlugin = AnalysisEngine.instance.enginePlugin; |
| 1967 errorLists.add(getRequiredInput(BUILD_DIRECTIVES_ERRORS_INPUT)); | 1944 for (ResultDescriptor result in enginePlugin.dartErrorsForSource) { |
| 1968 errorLists.add(getRequiredInput(BUILD_LIBRARY_ERRORS_INPUT)); | 1945 String inputName = result.name + '_input'; |
| 1969 errorLists.add(getRequiredInput(PARSE_ERRORS_INPUT)); | 1946 errorLists.add(getRequiredInput(inputName)); |
| 1970 errorLists.add(getRequiredInput(SCAN_ERRORS_INPUT)); | 1947 } |
| 1971 Map<Source, List<AnalysisError>> unitErrors = | 1948 for (ResultDescriptor result in enginePlugin.dartErrorsForUnit) { |
| 1972 getRequiredInput(LIBRARY_UNIT_ERRORS_INPUT); | 1949 String inputName = result.name + '_input'; |
| 1973 for (List<AnalysisError> errors in unitErrors.values) { | 1950 Map<Source, List<AnalysisError>> errorMap = getRequiredInput(inputName); |
| 1974 errorLists.add(errors); | 1951 for (List<AnalysisError> errors in errorMap.values) { |
| 1952 errorLists.add(errors); |
| 1953 } |
| 1975 } | 1954 } |
| 1976 // | 1955 // |
| 1977 // Record outputs. | 1956 // Record outputs. |
| 1978 // | 1957 // |
| 1979 outputs[DART_ERRORS] = AnalysisError.mergeLists(errorLists); | 1958 outputs[DART_ERRORS] = AnalysisError.mergeLists(errorLists); |
| 1980 } | 1959 } |
| 1981 | 1960 |
| 1982 /** | 1961 /** |
| 1983 * Return a map from the names of the inputs of this kind of task to the task | 1962 * Return a map from the names of the inputs of this kind of task to the task |
| 1984 * input descriptors describing those inputs for a task with the | 1963 * input descriptors describing those inputs for a task with the |
| 1985 * given [target]. | 1964 * given [target]. |
| 1986 */ | 1965 */ |
| 1987 static Map<String, TaskInput> buildInputs(AnalysisTarget target) { | 1966 static Map<String, TaskInput> buildInputs(AnalysisTarget target) { |
| 1988 Source source = target; | 1967 Source source = target; |
| 1989 return <String, TaskInput>{ | 1968 Map<String, TaskInput> inputs = <String, TaskInput>{}; |
| 1990 BUILD_DIRECTIVES_ERRORS_INPUT: BUILD_DIRECTIVES_ERRORS.of(source), | 1969 EnginePlugin enginePlugin = AnalysisEngine.instance.enginePlugin; |
| 1991 BUILD_LIBRARY_ERRORS_INPUT: BUILD_LIBRARY_ERRORS.of(source), | 1970 // for Source |
| 1992 PARSE_ERRORS_INPUT: PARSE_ERRORS.of(source), | 1971 for (ResultDescriptor result in enginePlugin.dartErrorsForSource) { |
| 1993 SCAN_ERRORS_INPUT: SCAN_ERRORS.of(source), | 1972 String inputName = result.name + '_input'; |
| 1994 LIBRARY_UNIT_ERRORS_INPUT: | 1973 inputs[inputName] = result.of(source); |
| 1974 } |
| 1975 // for LibrarySpecificUnit |
| 1976 for (ResultDescriptor result in enginePlugin.dartErrorsForUnit) { |
| 1977 String inputName = result.name + '_input'; |
| 1978 inputs[inputName] = |
| 1995 CONTAINING_LIBRARIES.of(source).toMap((Source library) { | 1979 CONTAINING_LIBRARIES.of(source).toMap((Source library) { |
| 1996 LibrarySpecificUnit unit = new LibrarySpecificUnit(library, source); | 1980 LibrarySpecificUnit unit = new LibrarySpecificUnit(library, source); |
| 1997 return LIBRARY_UNIT_ERRORS.of(unit); | 1981 return result.of(unit); |
| 1998 }) | 1982 }); |
| 1999 }; | 1983 } |
| 1984 return inputs; |
| 2000 } | 1985 } |
| 2001 | 1986 |
| 2002 /** | 1987 /** |
| 2003 * Create a [DartErrorsTask] based on the given [target] in the given | 1988 * Create a [DartErrorsTask] based on the given [target] in the given |
| 2004 * [context]. | 1989 * [context]. |
| 2005 */ | 1990 */ |
| 2006 static DartErrorsTask createTask( | 1991 static DartErrorsTask createTask( |
| 2007 AnalysisContext context, AnalysisTarget target) { | 1992 AnalysisContext context, AnalysisTarget target) { |
| 2008 return new DartErrorsTask(context, target); | 1993 return new DartErrorsTask(context, target); |
| 2009 } | 1994 } |
| (...skipping 2099 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4109 | 4094 |
| 4110 @override | 4095 @override |
| 4111 bool moveNext() { | 4096 bool moveNext() { |
| 4112 if (_newSources.isEmpty) { | 4097 if (_newSources.isEmpty) { |
| 4113 return false; | 4098 return false; |
| 4114 } | 4099 } |
| 4115 currentTarget = _newSources.removeLast(); | 4100 currentTarget = _newSources.removeLast(); |
| 4116 return true; | 4101 return true; |
| 4117 } | 4102 } |
| 4118 } | 4103 } |
| OLD | NEW |