OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 engine.resolver_test; | 5 library engine.resolver_test; |
6 | 6 |
7 import 'dart:collection'; | 7 import 'dart:collection'; |
8 import 'package:analyzer/src/generated/java_core.dart'; | 8 import 'package:analyzer/src/generated/java_core.dart'; |
9 import 'package:analyzer/src/generated/java_junit.dart'; | 9 import 'package:analyzer/src/generated/java_junit.dart'; |
10 import 'package:analyzer/src/generated/java_engine.dart'; | 10 import 'package:analyzer/src/generated/java_engine.dart'; |
(...skipping 4140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4151 | 4151 |
4152 void test_lookupOverrides_overrideBaseClass() { | 4152 void test_lookupOverrides_overrideBaseClass() { |
4153 ClassElementImpl classA = ElementFactory.classElement2("A", []); | 4153 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
4154 String methodName = "m"; | 4154 String methodName = "m"; |
4155 MethodElementImpl methodMinA = ElementFactory.methodElement(methodName, _typ
eProvider.intType, []); | 4155 MethodElementImpl methodMinA = ElementFactory.methodElement(methodName, _typ
eProvider.intType, []); |
4156 classA.methods = <MethodElement> [methodMinA]; | 4156 classA.methods = <MethodElement> [methodMinA]; |
4157 ClassElementImpl classB = ElementFactory.classElement("B", classA.type, []); | 4157 ClassElementImpl classB = ElementFactory.classElement("B", classA.type, []); |
4158 MethodElementImpl methodMinB = ElementFactory.methodElement(methodName, _typ
eProvider.intType, []); | 4158 MethodElementImpl methodMinB = ElementFactory.methodElement(methodName, _typ
eProvider.intType, []); |
4159 classB.methods = <MethodElement> [methodMinB]; | 4159 classB.methods = <MethodElement> [methodMinB]; |
4160 List<ExecutableElement> overrides = _inheritanceManager.lookupOverrides(clas
sB, methodName); | 4160 List<ExecutableElement> overrides = _inheritanceManager.lookupOverrides(clas
sB, methodName); |
4161 EngineTestCase.assertEqualsIgnoreOrder(<Object> [methodMinA], new List.from(
overrides)); | 4161 EngineTestCase.assertEqualsIgnoreOrder(<Object> [methodMinA], overrides); |
4162 _assertNoErrors(classA); | 4162 _assertNoErrors(classA); |
4163 _assertNoErrors(classB); | 4163 _assertNoErrors(classB); |
4164 } | 4164 } |
4165 | 4165 |
4166 void test_lookupOverrides_overrideInterface() { | 4166 void test_lookupOverrides_overrideInterface() { |
4167 ClassElementImpl classA = ElementFactory.classElement2("A", []); | 4167 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
4168 String methodName = "m"; | 4168 String methodName = "m"; |
4169 MethodElementImpl methodMinA = ElementFactory.methodElement(methodName, _typ
eProvider.intType, []); | 4169 MethodElementImpl methodMinA = ElementFactory.methodElement(methodName, _typ
eProvider.intType, []); |
4170 classA.methods = <MethodElement> [methodMinA]; | 4170 classA.methods = <MethodElement> [methodMinA]; |
4171 ClassElementImpl classB = ElementFactory.classElement2("B", []); | 4171 ClassElementImpl classB = ElementFactory.classElement2("B", []); |
4172 classB.interfaces = <InterfaceType> [classA.type]; | 4172 classB.interfaces = <InterfaceType> [classA.type]; |
4173 MethodElementImpl methodMinB = ElementFactory.methodElement(methodName, _typ
eProvider.intType, []); | 4173 MethodElementImpl methodMinB = ElementFactory.methodElement(methodName, _typ
eProvider.intType, []); |
4174 classB.methods = <MethodElement> [methodMinB]; | 4174 classB.methods = <MethodElement> [methodMinB]; |
4175 List<ExecutableElement> overrides = _inheritanceManager.lookupOverrides(clas
sB, methodName); | 4175 List<ExecutableElement> overrides = _inheritanceManager.lookupOverrides(clas
sB, methodName); |
4176 EngineTestCase.assertEqualsIgnoreOrder(<Object> [methodMinA], new List.from(
overrides)); | 4176 EngineTestCase.assertEqualsIgnoreOrder(<Object> [methodMinA], overrides); |
4177 _assertNoErrors(classA); | 4177 _assertNoErrors(classA); |
4178 _assertNoErrors(classB); | 4178 _assertNoErrors(classB); |
4179 } | 4179 } |
4180 | 4180 |
4181 void test_lookupOverrides_overrideTwoInterfaces() { | 4181 void test_lookupOverrides_overrideTwoInterfaces() { |
4182 ClassElementImpl classA = ElementFactory.classElement2("A", []); | 4182 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
4183 String methodName = "m"; | 4183 String methodName = "m"; |
4184 MethodElementImpl methodMinA = ElementFactory.methodElement(methodName, _typ
eProvider.intType, []); | 4184 MethodElementImpl methodMinA = ElementFactory.methodElement(methodName, _typ
eProvider.intType, []); |
4185 classA.methods = <MethodElement> [methodMinA]; | 4185 classA.methods = <MethodElement> [methodMinA]; |
4186 ClassElementImpl classB = ElementFactory.classElement2("B", []); | 4186 ClassElementImpl classB = ElementFactory.classElement2("B", []); |
4187 MethodElementImpl methodMinB = ElementFactory.methodElement(methodName, _typ
eProvider.doubleType, []); | 4187 MethodElementImpl methodMinB = ElementFactory.methodElement(methodName, _typ
eProvider.doubleType, []); |
4188 classB.methods = <MethodElement> [methodMinB]; | 4188 classB.methods = <MethodElement> [methodMinB]; |
4189 ClassElementImpl classC = ElementFactory.classElement2("C", []); | 4189 ClassElementImpl classC = ElementFactory.classElement2("C", []); |
4190 classC.interfaces = <InterfaceType> [classA.type, classB.type]; | 4190 classC.interfaces = <InterfaceType> [classA.type, classB.type]; |
4191 MethodElementImpl methodMinC = ElementFactory.methodElement(methodName, _typ
eProvider.numType, []); | 4191 MethodElementImpl methodMinC = ElementFactory.methodElement(methodName, _typ
eProvider.numType, []); |
4192 classC.methods = <MethodElement> [methodMinC]; | 4192 classC.methods = <MethodElement> [methodMinC]; |
4193 List<ExecutableElement> overrides = _inheritanceManager.lookupOverrides(clas
sC, methodName); | 4193 List<ExecutableElement> overrides = _inheritanceManager.lookupOverrides(clas
sC, methodName); |
4194 EngineTestCase.assertEqualsIgnoreOrder(<Object> [methodMinA, methodMinB], ne
w List.from(overrides)); | 4194 EngineTestCase.assertEqualsIgnoreOrder(<Object> [methodMinA, methodMinB], ov
errides); |
4195 _assertNoErrors(classA); | 4195 _assertNoErrors(classA); |
4196 _assertNoErrors(classB); | 4196 _assertNoErrors(classB); |
4197 _assertNoErrors(classC); | 4197 _assertNoErrors(classC); |
4198 } | 4198 } |
4199 | 4199 |
4200 void _assertErrors(ClassElement classElt, List<ErrorCode> expectedErrorCodes)
{ | 4200 void _assertErrors(ClassElement classElt, List<ErrorCode> expectedErrorCodes)
{ |
4201 GatheringErrorListener errorListener = new GatheringErrorListener(); | 4201 GatheringErrorListener errorListener = new GatheringErrorListener(); |
4202 HashSet<AnalysisError> actualErrors = _inheritanceManager.getErrors(classElt
); | 4202 HashSet<AnalysisError> actualErrors = _inheritanceManager.getErrors(classElt
); |
4203 if (actualErrors != null) { | 4203 if (actualErrors != null) { |
4204 for (AnalysisError error in actualErrors) { | 4204 for (AnalysisError error in actualErrors) { |
(...skipping 4171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8376 List<ParameterElement> parameterElements = new List<ParameterElement>(); | 8376 List<ParameterElement> parameterElements = new List<ParameterElement>(); |
8377 for (FormalParameter parameter in parameters.parameters) { | 8377 for (FormalParameter parameter in parameters.parameters) { |
8378 ParameterElementImpl element = new ParameterElementImpl.forNode(parameter.
identifier); | 8378 ParameterElementImpl element = new ParameterElementImpl.forNode(parameter.
identifier); |
8379 element.parameterKind = parameter.kind; | 8379 element.parameterKind = parameter.kind; |
8380 element.type = _typeProvider.dynamicType; | 8380 element.type = _typeProvider.dynamicType; |
8381 parameter.identifier.staticElement = element; | 8381 parameter.identifier.staticElement = element; |
8382 parameterElements.add(element); | 8382 parameterElements.add(element); |
8383 } | 8383 } |
8384 FunctionExpression node = AstFactory.functionExpression2(parameters, body); | 8384 FunctionExpression node = AstFactory.functionExpression2(parameters, body); |
8385 FunctionElementImpl element = new FunctionElementImpl.forNode(null); | 8385 FunctionElementImpl element = new FunctionElementImpl.forNode(null); |
8386 element.parameters = new List.from(parameterElements); | 8386 element.parameters = parameterElements; |
8387 element.type = new FunctionTypeImpl.con1(element); | 8387 element.type = new FunctionTypeImpl.con1(element); |
8388 node.element = element; | 8388 node.element = element; |
8389 return node; | 8389 return node; |
8390 } | 8390 } |
8391 | 8391 |
8392 /** | 8392 /** |
8393 * Return an integer literal that has been resolved to the correct type. | 8393 * Return an integer literal that has been resolved to the correct type. |
8394 * | 8394 * |
8395 * @param value the value of the literal | 8395 * @param value the value of the literal |
8396 * @return an integer literal that has been resolved to the correct type | 8396 * @return an integer literal that has been resolved to the correct type |
(...skipping 2760 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11157 runReflectiveTests(TypeResolverVisitorTest); | 11157 runReflectiveTests(TypeResolverVisitorTest); |
11158 runReflectiveTests(CheckedModeCompileTimeErrorCodeTest); | 11158 runReflectiveTests(CheckedModeCompileTimeErrorCodeTest); |
11159 runReflectiveTests(ErrorResolverTest); | 11159 runReflectiveTests(ErrorResolverTest); |
11160 runReflectiveTests(HintCodeTest); | 11160 runReflectiveTests(HintCodeTest); |
11161 runReflectiveTests(MemberMapTest); | 11161 runReflectiveTests(MemberMapTest); |
11162 runReflectiveTests(NonHintCodeTest); | 11162 runReflectiveTests(NonHintCodeTest); |
11163 runReflectiveTests(SimpleResolverTest); | 11163 runReflectiveTests(SimpleResolverTest); |
11164 runReflectiveTests(StrictModeTest); | 11164 runReflectiveTests(StrictModeTest); |
11165 runReflectiveTests(TypePropagationTest); | 11165 runReflectiveTests(TypePropagationTest); |
11166 } | 11166 } |
OLD | NEW |