| 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.test.src.task.dart_test; | 5 library analyzer.test.src.task.dart_test; |
| 6 | 6 |
| 7 import 'package:analyzer/src/context/cache.dart'; | 7 import 'package:analyzer/src/context/cache.dart'; |
| 8 import 'package:analyzer/src/generated/ast.dart'; | 8 import 'package:analyzer/src/generated/ast.dart'; |
| 9 import 'package:analyzer/src/generated/constant.dart'; | 9 import 'package:analyzer/src/generated/constant.dart'; |
| 10 import 'package:analyzer/src/generated/element.dart'; | 10 import 'package:analyzer/src/generated/element.dart'; |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 runReflectiveTests(BuildPublicNamespaceTaskTest); | 40 runReflectiveTests(BuildPublicNamespaceTaskTest); |
| 41 runReflectiveTests(BuildSourceExportClosureTaskTest); | 41 runReflectiveTests(BuildSourceExportClosureTaskTest); |
| 42 runReflectiveTests(BuildTypeProviderTaskTest); | 42 runReflectiveTests(BuildTypeProviderTaskTest); |
| 43 runReflectiveTests(ComputeConstantDependenciesTaskTest); | 43 runReflectiveTests(ComputeConstantDependenciesTaskTest); |
| 44 runReflectiveTests(ComputeConstantValueTaskTest); | 44 runReflectiveTests(ComputeConstantValueTaskTest); |
| 45 runReflectiveTests(ComputeInferableStaticVariableDependenciesTaskTest); | 45 runReflectiveTests(ComputeInferableStaticVariableDependenciesTaskTest); |
| 46 runReflectiveTests(ComputeLibraryCycleTaskTest); | 46 runReflectiveTests(ComputeLibraryCycleTaskTest); |
| 47 runReflectiveTests(ComputePropagableVariableDependenciesTaskTest); | 47 runReflectiveTests(ComputePropagableVariableDependenciesTaskTest); |
| 48 runReflectiveTests(ContainingLibrariesTaskTest); | 48 runReflectiveTests(ContainingLibrariesTaskTest); |
| 49 runReflectiveTests(DartErrorsTaskTest); | 49 runReflectiveTests(DartErrorsTaskTest); |
| 50 runReflectiveTests(ErrorFilterTest); | |
| 51 runReflectiveTests(EvaluateUnitConstantsTaskTest); | 50 runReflectiveTests(EvaluateUnitConstantsTaskTest); |
| 52 runReflectiveTests(GatherUsedImportedElementsTaskTest); | 51 runReflectiveTests(GatherUsedImportedElementsTaskTest); |
| 53 runReflectiveTests(GatherUsedLocalElementsTaskTest); | 52 runReflectiveTests(GatherUsedLocalElementsTaskTest); |
| 54 runReflectiveTests(GenerateHintsTaskTest); | 53 runReflectiveTests(GenerateHintsTaskTest); |
| 55 runReflectiveTests(GenerateLintsTaskTest); | 54 runReflectiveTests(GenerateLintsTaskTest); |
| 56 runReflectiveTests(InferInstanceMembersInUnitTaskTest); | 55 runReflectiveTests(InferInstanceMembersInUnitTaskTest); |
| 57 runReflectiveTests(InferStaticVariableTypesInUnitTaskTest); | 56 runReflectiveTests(InferStaticVariableTypesInUnitTaskTest); |
| 58 runReflectiveTests(InferStaticVariableTypeTaskTest); | 57 runReflectiveTests(InferStaticVariableTypeTaskTest); |
| 59 runReflectiveTests(LibraryErrorsReadyTaskTest); | 58 runReflectiveTests(LibraryErrorsReadyTaskTest); |
| 60 runReflectiveTests(LibraryUnitErrorsTaskTest); | 59 runReflectiveTests(LibraryUnitErrorsTaskTest); |
| (...skipping 1048 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1109 for (CompilationUnitMember member in unit.declarations) { | 1108 for (CompilationUnitMember member in unit.declarations) { |
| 1110 if (member is ClassDeclaration && member.name.name == className) { | 1109 if (member is ClassDeclaration && member.name.name == className) { |
| 1111 expect(member.metadata, hasLength(1)); | 1110 expect(member.metadata, hasLength(1)); |
| 1112 Annotation annotation = member.metadata[0]; | 1111 Annotation annotation = member.metadata[0]; |
| 1113 ConstantEvaluationTarget_Annotation target = | 1112 ConstantEvaluationTarget_Annotation target = |
| 1114 new ConstantEvaluationTarget_Annotation( | 1113 new ConstantEvaluationTarget_Annotation( |
| 1115 context, source, source, annotation); | 1114 context, source, source, annotation); |
| 1116 computeResult(target, CONSTANT_VALUE, | 1115 computeResult(target, CONSTANT_VALUE, |
| 1117 matcher: isComputeConstantValueTask); | 1116 matcher: isComputeConstantValueTask); |
| 1118 expect(outputs[CONSTANT_VALUE], same(target)); | 1117 expect(outputs[CONSTANT_VALUE], same(target)); |
| 1119 EvaluationResultImpl evaluationResult = (annotation.elementAnnotation | 1118 EvaluationResultImpl evaluationResult = |
| 1120 as ElementAnnotationImpl).evaluationResult; | 1119 (annotation.elementAnnotation as ElementAnnotationImpl) |
| 1120 .evaluationResult; |
| 1121 return evaluationResult; | 1121 return evaluationResult; |
| 1122 } | 1122 } |
| 1123 } | 1123 } |
| 1124 fail('Annotation not found'); | 1124 fail('Annotation not found'); |
| 1125 return null; | 1125 return null; |
| 1126 } | 1126 } |
| 1127 | 1127 |
| 1128 test_annotation_non_const_constructor() { | 1128 test_annotation_non_const_constructor() { |
| 1129 // Calling a non-const constructor from an annotation that is illegal, but | 1129 // Calling a non-const constructor from an annotation that is illegal, but |
| 1130 // shouldn't crash analysis. | 1130 // shouldn't crash analysis. |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1278 void _checkCircularities( | 1278 void _checkCircularities( |
| 1279 String variableName, List<String> otherVariables, String content) { | 1279 String variableName, List<String> otherVariables, String content) { |
| 1280 // Evaluating the first constant should produce an error. | 1280 // Evaluating the first constant should produce an error. |
| 1281 CompilationUnit unit = _resolveUnit(content); | 1281 CompilationUnit unit = _resolveUnit(content); |
| 1282 _expectCircularityError(_evaluateConstant(unit, variableName)); | 1282 _expectCircularityError(_evaluateConstant(unit, variableName)); |
| 1283 // And all the other constants involved in the strongly connected component | 1283 // And all the other constants involved in the strongly connected component |
| 1284 // should be set to the same error state. | 1284 // should be set to the same error state. |
| 1285 for (String otherVariableName in otherVariables) { | 1285 for (String otherVariableName in otherVariables) { |
| 1286 PropertyInducingElement otherVariableElement = | 1286 PropertyInducingElement otherVariableElement = |
| 1287 AstFinder.getTopLevelVariableElement(unit, otherVariableName); | 1287 AstFinder.getTopLevelVariableElement(unit, otherVariableName); |
| 1288 _expectCircularityError((otherVariableElement | 1288 _expectCircularityError( |
| 1289 as TopLevelVariableElementImpl).evaluationResult); | 1289 (otherVariableElement as TopLevelVariableElementImpl) |
| 1290 .evaluationResult); |
| 1290 } | 1291 } |
| 1291 } | 1292 } |
| 1292 | 1293 |
| 1293 EvaluationResultImpl _computeTopLevelVariableConstValue( | 1294 EvaluationResultImpl _computeTopLevelVariableConstValue( |
| 1294 String variableName, String content) { | 1295 String variableName, String content) { |
| 1295 return _evaluateConstant(_resolveUnit(content), variableName); | 1296 return _evaluateConstant(_resolveUnit(content), variableName); |
| 1296 } | 1297 } |
| 1297 | 1298 |
| 1298 EvaluationResultImpl _evaluateConstant( | 1299 EvaluationResultImpl _evaluateConstant( |
| 1299 CompilationUnit unit, String variableName) { | 1300 CompilationUnit unit, String variableName) { |
| (...skipping 655 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1955 computeResult(part, DART_ERRORS, matcher: isDartErrorsTask); | 1956 computeResult(part, DART_ERRORS, matcher: isDartErrorsTask); |
| 1956 expect(outputs, hasLength(1)); | 1957 expect(outputs, hasLength(1)); |
| 1957 List<AnalysisError> errors = outputs[DART_ERRORS]; | 1958 List<AnalysisError> errors = outputs[DART_ERRORS]; |
| 1958 // This should contain only the errors in the part file, not the ones in the | 1959 // This should contain only the errors in the part file, not the ones in the |
| 1959 // library. | 1960 // library. |
| 1960 expect(errors, hasLength(1)); | 1961 expect(errors, hasLength(1)); |
| 1961 } | 1962 } |
| 1962 } | 1963 } |
| 1963 | 1964 |
| 1964 @reflectiveTest | 1965 @reflectiveTest |
| 1965 class ErrorFilterTest extends _AbstractDartTaskTest { | |
| 1966 @override | |
| 1967 setUp() { | |
| 1968 super.setUp(); | |
| 1969 context.setConfigurationData(CONFIGURED_ERROR_FILTERS, [ | |
| 1970 (AnalysisError error) => error.errorCode.name == 'INVALID_ASSIGNMENT' | |
| 1971 ]); | |
| 1972 } | |
| 1973 | |
| 1974 test_error_filters() { | |
| 1975 AnalysisTarget library = newSource( | |
| 1976 '/test.dart', | |
| 1977 ''' | |
| 1978 main() { | |
| 1979 int x = ""; // INVALID_ASSIGNMENT (suppressed) | |
| 1980 // UNUSED_LOCAL_VARIABLE | |
| 1981 }'''); | |
| 1982 computeResult(library, DART_ERRORS, matcher: isDartErrorsTask); | |
| 1983 expect(outputs, hasLength(1)); | |
| 1984 List<AnalysisError> errors = outputs[DART_ERRORS]; | |
| 1985 expect(errors, hasLength(1)); | |
| 1986 expect(errors.first.errorCode, HintCode.UNUSED_LOCAL_VARIABLE); | |
| 1987 } | |
| 1988 } | |
| 1989 | |
| 1990 @reflectiveTest | |
| 1991 class EvaluateUnitConstantsTaskTest extends _AbstractDartTaskTest { | 1966 class EvaluateUnitConstantsTaskTest extends _AbstractDartTaskTest { |
| 1992 test_perform() { | 1967 test_perform() { |
| 1993 Source source = newSource( | 1968 Source source = newSource( |
| 1994 '/test.dart', | 1969 '/test.dart', |
| 1995 ''' | 1970 ''' |
| 1996 class C { | 1971 class C { |
| 1997 const C(); | 1972 const C(); |
| 1998 } | 1973 } |
| 1999 | 1974 |
| 2000 @x | 1975 @x |
| (...skipping 1871 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3872 '''); | 3847 '''); |
| 3873 computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT10); | 3848 computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT10); |
| 3874 CompilationUnit unit = outputs[RESOLVED_UNIT10]; | 3849 CompilationUnit unit = outputs[RESOLVED_UNIT10]; |
| 3875 VariableElement piFirst = | 3850 VariableElement piFirst = |
| 3876 AstFinder.getTopLevelVariable(unit, 'piFirst').name.staticElement; | 3851 AstFinder.getTopLevelVariable(unit, 'piFirst').name.staticElement; |
| 3877 VariableElement pi = | 3852 VariableElement pi = |
| 3878 AstFinder.getTopLevelVariable(unit, 'pi').name.staticElement; | 3853 AstFinder.getTopLevelVariable(unit, 'pi').name.staticElement; |
| 3879 VariableElement tau = | 3854 VariableElement tau = |
| 3880 AstFinder.getTopLevelVariable(unit, 'tau').name.staticElement; | 3855 AstFinder.getTopLevelVariable(unit, 'tau').name.staticElement; |
| 3881 Expression piFirstUse = (AstFinder | 3856 Expression piFirstUse = (AstFinder |
| 3882 .getTopLevelVariable(unit, 'tau') | 3857 .getTopLevelVariable(unit, 'tau') |
| 3883 .initializer as ConditionalExpression).condition; | 3858 .initializer as ConditionalExpression) |
| 3859 .condition; |
| 3884 | 3860 |
| 3885 expect(piFirstUse.staticType, context.typeProvider.boolType); | 3861 expect(piFirstUse.staticType, context.typeProvider.boolType); |
| 3886 expect(piFirst.type, context.typeProvider.boolType); | 3862 expect(piFirst.type, context.typeProvider.boolType); |
| 3887 expect(pi.type.isDynamic, isTrue); | 3863 expect(pi.type.isDynamic, isTrue); |
| 3888 expect(tau.type.isDynamic, isTrue); | 3864 expect(tau.type.isDynamic, isTrue); |
| 3889 } | 3865 } |
| 3890 | 3866 |
| 3891 void test_perform_inference_cross_unit_cyclic() { | 3867 void test_perform_inference_cross_unit_cyclic() { |
| 3892 AnalysisTarget firstSource = newSource( | 3868 AnalysisTarget firstSource = newSource( |
| 3893 '/a.dart', | 3869 '/a.dart', |
| (...skipping 698 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4592 /** | 4568 /** |
| 4593 * Fill [errorListener] with [result] errors in the current [task]. | 4569 * Fill [errorListener] with [result] errors in the current [task]. |
| 4594 */ | 4570 */ |
| 4595 void _fillErrorListener(ResultDescriptor<List<AnalysisError>> result) { | 4571 void _fillErrorListener(ResultDescriptor<List<AnalysisError>> result) { |
| 4596 List<AnalysisError> errors = task.outputs[result]; | 4572 List<AnalysisError> errors = task.outputs[result]; |
| 4597 expect(errors, isNotNull, reason: result.name); | 4573 expect(errors, isNotNull, reason: result.name); |
| 4598 errorListener = new GatheringErrorListener(); | 4574 errorListener = new GatheringErrorListener(); |
| 4599 errorListener.addAll(errors); | 4575 errorListener.addAll(errors); |
| 4600 } | 4576 } |
| 4601 } | 4577 } |
| OLD | NEW |