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

Side by Side Diff: pkg/analyzer/test/generated/resolver_test.dart

Issue 2725013003: Support accessing the parameter element when there is no name (Closed)
Patch Set: Created 3 years, 9 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
« no previous file with comments | « pkg/analyzer/lib/src/generated/resolver.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/generated/resolver.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698