| 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 analyzer.test.generated.resolver_test; | 5 library analyzer.test.generated.resolver_test; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'dart:collection'; | 8 import 'dart:collection'; |
| 9 | 9 |
| 10 import 'package:analyzer/dart/ast/ast.dart'; | 10 import 'package:analyzer/dart/ast/ast.dart'; |
| 11 import 'package:analyzer/dart/ast/standard_ast_factory.dart'; | 11 import 'package:analyzer/dart/ast/standard_ast_factory.dart'; |
| 12 import 'package:analyzer/dart/ast/standard_resolution_map.dart'; | 12 import 'package:analyzer/dart/ast/standard_resolution_map.dart'; |
| 13 import 'package:analyzer/dart/ast/token.dart'; | 13 import 'package:analyzer/dart/ast/token.dart'; |
| 14 import 'package:analyzer/dart/ast/visitor.dart'; | 14 import 'package:analyzer/dart/ast/visitor.dart'; |
| 15 import 'package:analyzer/dart/element/element.dart'; | 15 import 'package:analyzer/dart/element/element.dart'; |
| 16 import 'package:analyzer/dart/element/type.dart'; | 16 import 'package:analyzer/dart/element/type.dart'; |
| 17 import 'package:analyzer/file_system/memory_file_system.dart'; | 17 import 'package:analyzer/file_system/memory_file_system.dart'; |
| 18 import 'package:analyzer/src/dart/ast/ast.dart'; |
| 18 import 'package:analyzer/src/dart/element/builder.dart'; | 19 import 'package:analyzer/src/dart/element/builder.dart'; |
| 19 import 'package:analyzer/src/dart/element/element.dart'; | 20 import 'package:analyzer/src/dart/element/element.dart'; |
| 20 import 'package:analyzer/src/dart/element/type.dart'; | 21 import 'package:analyzer/src/dart/element/type.dart'; |
| 21 import 'package:analyzer/src/error/codes.dart'; | 22 import 'package:analyzer/src/error/codes.dart'; |
| 22 import 'package:analyzer/src/generated/engine.dart'; | 23 import 'package:analyzer/src/generated/engine.dart'; |
| 23 import 'package:analyzer/src/generated/parser.dart' show ParserErrorCode; | 24 import 'package:analyzer/src/generated/parser.dart' show ParserErrorCode; |
| 24 import 'package:analyzer/src/generated/resolver.dart'; | 25 import 'package:analyzer/src/generated/resolver.dart'; |
| 25 import 'package:analyzer/src/generated/source_io.dart'; | 26 import 'package:analyzer/src/generated/source_io.dart'; |
| 26 import 'package:analyzer/src/generated/testing/ast_test_factory.dart'; | 27 import 'package:analyzer/src/generated/testing/ast_test_factory.dart'; |
| 27 import 'package:analyzer/src/generated/testing/element_factory.dart'; | 28 import 'package:analyzer/src/generated/testing/element_factory.dart'; |
| (...skipping 3167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3195 expect(constructor.functions, hasLength(0)); | 3196 expect(constructor.functions, hasLength(0)); |
| 3196 expect(constructor.labels, hasLength(0)); | 3197 expect(constructor.labels, hasLength(0)); |
| 3197 expect(constructor.localVariables, hasLength(0)); | 3198 expect(constructor.localVariables, hasLength(0)); |
| 3198 expect(constructor.parameters, isEmpty); | 3199 expect(constructor.parameters, isEmpty); |
| 3199 } | 3200 } |
| 3200 | 3201 |
| 3201 test_visitFieldFormalParameter_functionType() async { | 3202 test_visitFieldFormalParameter_functionType() async { |
| 3202 InterfaceType intType = _typeProvider.intType; | 3203 InterfaceType intType = _typeProvider.intType; |
| 3203 TypeName intTypeName = AstTestFactory.typeName4("int"); | 3204 TypeName intTypeName = AstTestFactory.typeName4("int"); |
| 3204 String innerParameterName = "a"; | 3205 String innerParameterName = "a"; |
| 3205 SimpleFormalParameter parameter = | 3206 SimpleFormalParameterImpl parameter = |
| 3206 AstTestFactory.simpleFormalParameter3(innerParameterName); | 3207 AstTestFactory.simpleFormalParameter3(innerParameterName); |
| 3207 parameter.identifier.staticElement = | 3208 parameter.element = parameter.identifier.staticElement = |
| 3208 ElementFactory.requiredParameter(innerParameterName); | 3209 ElementFactory.requiredParameter(innerParameterName); |
| 3209 String outerParameterName = "p"; | 3210 String outerParameterName = "p"; |
| 3210 FormalParameter node = AstTestFactory.fieldFormalParameter( | 3211 FormalParameter node = AstTestFactory.fieldFormalParameter( |
| 3211 null, | 3212 null, |
| 3212 intTypeName, | 3213 intTypeName, |
| 3213 outerParameterName, | 3214 outerParameterName, |
| 3214 AstTestFactory.formalParameterList([parameter])); | 3215 AstTestFactory.formalParameterList([parameter])); |
| 3215 node.identifier.staticElement = | 3216 node.identifier.staticElement = |
| 3216 ElementFactory.requiredParameter(outerParameterName); | 3217 ElementFactory.requiredParameter(outerParameterName); |
| 3217 DartType parameterType = _resolveFormalParameter(node, [intType.element]); | 3218 DartType parameterType = _resolveFormalParameter(node, [intType.element]); |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3408 declaration.name.staticElement = elementM; | 3409 declaration.name.staticElement = elementM; |
| 3409 _resolveNode(declaration, [elementA]); | 3410 _resolveNode(declaration, [elementA]); |
| 3410 expect(declaration.returnType.type, elementE.type); | 3411 expect(declaration.returnType.type, elementE.type); |
| 3411 SimpleFormalParameter parameter = declaration.parameters.parameters[0]; | 3412 SimpleFormalParameter parameter = declaration.parameters.parameters[0]; |
| 3412 expect(parameter.type.type, elementE.type); | 3413 expect(parameter.type.type, elementE.type); |
| 3413 _listener.assertNoErrors(); | 3414 _listener.assertNoErrors(); |
| 3414 } | 3415 } |
| 3415 | 3416 |
| 3416 test_visitSimpleFormalParameter_noType() async { | 3417 test_visitSimpleFormalParameter_noType() async { |
| 3417 // p | 3418 // p |
| 3418 FormalParameter node = AstTestFactory.simpleFormalParameter3("p"); | 3419 SimpleFormalParameterImpl node = AstTestFactory.simpleFormalParameter3("p"); |
| 3419 node.identifier.staticElement = | 3420 node.element = node.identifier.staticElement = |
| 3420 new ParameterElementImpl.forNode(AstTestFactory.identifier3("p")); | 3421 new ParameterElementImpl.forNode(AstTestFactory.identifier3("p")); |
| 3421 expect(_resolveFormalParameter(node), same(_typeProvider.dynamicType)); | 3422 expect(_resolveFormalParameter(node), same(_typeProvider.dynamicType)); |
| 3422 _listener.assertNoErrors(); | 3423 _listener.assertNoErrors(); |
| 3423 } | 3424 } |
| 3424 | 3425 |
| 3425 test_visitSimpleFormalParameter_type() async { | 3426 test_visitSimpleFormalParameter_type() async { |
| 3426 // int p | 3427 // int p |
| 3427 InterfaceType intType = _typeProvider.intType; | 3428 InterfaceType intType = _typeProvider.intType; |
| 3428 ClassElement intElement = intType.element; | 3429 ClassElement intElement = intType.element; |
| 3429 FormalParameter node = AstTestFactory.simpleFormalParameter4( | 3430 SimpleFormalParameterImpl node = AstTestFactory.simpleFormalParameter4( |
| 3430 AstTestFactory.typeName(intElement), "p"); | 3431 AstTestFactory.typeName(intElement), "p"); |
| 3431 SimpleIdentifier identifier = node.identifier; | 3432 SimpleIdentifier identifier = node.identifier; |
| 3432 ParameterElementImpl element = new ParameterElementImpl.forNode(identifier); | 3433 ParameterElementImpl element = new ParameterElementImpl.forNode(identifier); |
| 3433 identifier.staticElement = element; | 3434 node.element = identifier.staticElement = element; |
| 3434 expect(_resolveFormalParameter(node, [intElement]), same(intType)); | 3435 expect(_resolveFormalParameter(node, [intElement]), same(intType)); |
| 3435 _listener.assertNoErrors(); | 3436 _listener.assertNoErrors(); |
| 3436 } | 3437 } |
| 3437 | 3438 |
| 3438 test_visitTypeName_noParameters_noArguments() async { | 3439 test_visitTypeName_noParameters_noArguments() async { |
| 3439 ClassElement classA = ElementFactory.classElement2("A"); | 3440 ClassElement classA = ElementFactory.classElement2("A"); |
| 3440 TypeName typeName = AstTestFactory.typeName(classA); | 3441 TypeName typeName = AstTestFactory.typeName(classA); |
| 3441 typeName.type = null; | 3442 typeName.type = null; |
| 3442 _resolveNode(typeName, [classA]); | 3443 _resolveNode(typeName, [classA]); |
| 3443 expect(typeName.type, same(classA.type)); | 3444 expect(typeName.type, same(classA.type)); |
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3618 */ | 3619 */ |
| 3619 class _StaleElement extends ElementImpl { | 3620 class _StaleElement extends ElementImpl { |
| 3620 _StaleElement() : super("_StaleElement", -1); | 3621 _StaleElement() : super("_StaleElement", -1); |
| 3621 | 3622 |
| 3622 @override | 3623 @override |
| 3623 get kind => throw "_StaleElement's kind shouldn't be accessed"; | 3624 get kind => throw "_StaleElement's kind shouldn't be accessed"; |
| 3624 | 3625 |
| 3625 @override | 3626 @override |
| 3626 /*=T*/ accept/*<T>*/(_) => throw "_StaleElement shouldn't be visited"; | 3627 /*=T*/ accept/*<T>*/(_) => throw "_StaleElement shouldn't be visited"; |
| 3627 } | 3628 } |
| OLD | NEW |