| 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.all_the_rest_test; | 5 library analyzer.test.generated.all_the_rest_test; |
| 6 | 6 |
| 7 import 'package:analyzer/dart/ast/ast.dart'; | 7 import 'package:analyzer/dart/ast/ast.dart'; |
| 8 import 'package:analyzer/dart/ast/token.dart'; | 8 import 'package:analyzer/dart/ast/token.dart'; |
| 9 import 'package:analyzer/dart/element/element.dart'; | 9 import 'package:analyzer/dart/element/element.dart'; |
| 10 import 'package:analyzer/dart/element/type.dart'; | 10 import 'package:analyzer/dart/element/type.dart'; |
| (...skipping 599 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 610 checkMetadata(parameterElement); | 610 checkMetadata(parameterElement); |
| 611 } | 611 } |
| 612 | 612 |
| 613 void test_metadata_visitTypeParameter() { | 613 void test_metadata_visitTypeParameter() { |
| 614 TypeParameterElement typeParameterElement = | 614 TypeParameterElement typeParameterElement = |
| 615 buildElementsForText('class C<@a T> {}').types[0].typeParameters[0]; | 615 buildElementsForText('class C<@a T> {}').types[0].typeParameters[0]; |
| 616 checkMetadata(typeParameterElement); | 616 checkMetadata(typeParameterElement); |
| 617 } | 617 } |
| 618 | 618 |
| 619 void test_visitCatchClause() { | 619 void test_visitCatchClause() { |
| 620 // } catch (e, s) { | 620 List<LocalVariableElement> variables = |
| 621 ElementHolder holder = new ElementHolder(); | 621 buildElementsForText('f() { try {} catch (e, s) {} }') |
| 622 ElementBuilder builder = _makeBuilder(holder); | 622 .functions[0] |
| 623 .localVariables; |
| 623 String exceptionParameterName = "e"; | 624 String exceptionParameterName = "e"; |
| 624 String stackParameterName = "s"; | 625 String stackParameterName = "s"; |
| 625 CatchClause clause = | |
| 626 AstFactory.catchClause2(exceptionParameterName, stackParameterName); | |
| 627 _setNodeSourceRange(clause, 100, 110); | |
| 628 clause.accept(builder); | |
| 629 | |
| 630 List<LocalVariableElement> variables = holder.localVariables; | |
| 631 expect(variables, hasLength(2)); | 626 expect(variables, hasLength(2)); |
| 632 | 627 |
| 633 LocalVariableElement exceptionVariable = variables[0]; | 628 LocalVariableElement exceptionVariable = variables[0]; |
| 634 expect(exceptionVariable, isNotNull); | 629 expect(exceptionVariable, isNotNull); |
| 635 expect(exceptionVariable.name, exceptionParameterName); | 630 expect(exceptionVariable.name, exceptionParameterName); |
| 636 expect(exceptionVariable.hasImplicitType, isTrue); | 631 expect(exceptionVariable.hasImplicitType, isTrue); |
| 637 expect(exceptionVariable.isSynthetic, isFalse); | 632 expect(exceptionVariable.isSynthetic, isFalse); |
| 638 expect(exceptionVariable.isConst, isFalse); | 633 expect(exceptionVariable.isConst, isFalse); |
| 639 expect(exceptionVariable.isFinal, isFalse); | 634 expect(exceptionVariable.isFinal, isFalse); |
| 640 expect(exceptionVariable.initializer, isNull); | 635 expect(exceptionVariable.initializer, isNull); |
| 641 _assertVisibleRange(exceptionVariable, 100, 110); | 636 _assertVisibleRange(exceptionVariable, 13, 28); |
| 642 | 637 |
| 643 LocalVariableElement stackVariable = variables[1]; | 638 LocalVariableElement stackVariable = variables[1]; |
| 644 expect(stackVariable, isNotNull); | 639 expect(stackVariable, isNotNull); |
| 645 expect(stackVariable.name, stackParameterName); | 640 expect(stackVariable.name, stackParameterName); |
| 646 expect(stackVariable.isSynthetic, isFalse); | 641 expect(stackVariable.isSynthetic, isFalse); |
| 647 expect(stackVariable.isConst, isFalse); | 642 expect(stackVariable.isConst, isFalse); |
| 648 expect(stackVariable.isFinal, isFalse); | 643 expect(stackVariable.isFinal, isFalse); |
| 649 expect(stackVariable.initializer, isNull); | 644 expect(stackVariable.initializer, isNull); |
| 650 _assertVisibleRange(stackVariable, 100, 110); | 645 _assertVisibleRange(stackVariable, 13, 28); |
| 651 } | 646 } |
| 652 | 647 |
| 653 void test_visitCatchClause_withType() { | 648 void test_visitCatchClause_withType() { |
| 654 // } on E catch (e) { | 649 List<LocalVariableElement> variables = |
| 655 ElementHolder holder = new ElementHolder(); | 650 buildElementsForText('f() { try {} on E catch (e) {} }') |
| 656 ElementBuilder builder = _makeBuilder(holder); | 651 .functions[0] |
| 652 .localVariables; |
| 657 String exceptionParameterName = "e"; | 653 String exceptionParameterName = "e"; |
| 658 CatchClause clause = AstFactory.catchClause4( | |
| 659 AstFactory.typeName4('E'), exceptionParameterName); | |
| 660 clause.accept(builder); | |
| 661 | |
| 662 List<LocalVariableElement> variables = holder.localVariables; | |
| 663 expect(variables, hasLength(1)); | 654 expect(variables, hasLength(1)); |
| 664 VariableElement exceptionVariable = variables[0]; | 655 VariableElement exceptionVariable = variables[0]; |
| 665 expect(exceptionVariable, isNotNull); | 656 expect(exceptionVariable, isNotNull); |
| 666 expect(exceptionVariable.name, exceptionParameterName); | 657 expect(exceptionVariable.name, exceptionParameterName); |
| 667 expect(exceptionVariable.hasImplicitType, isFalse); | 658 expect(exceptionVariable.hasImplicitType, isFalse); |
| 668 } | 659 } |
| 669 | 660 |
| 670 void test_visitClassDeclaration_abstract() { | 661 void test_visitClassDeclaration_abstract() { |
| 671 ElementHolder holder = new ElementHolder(); | 662 ElementHolder holder = new ElementHolder(); |
| 672 ElementBuilder builder = _makeBuilder(holder); | 663 ElementBuilder builder = _makeBuilder(holder); |
| (...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1066 expect(constructor.isFactory, isFalse); | 1057 expect(constructor.isFactory, isFalse); |
| 1067 expect(constructor.name, ""); | 1058 expect(constructor.name, ""); |
| 1068 expect(constructor.functions, hasLength(0)); | 1059 expect(constructor.functions, hasLength(0)); |
| 1069 expect(constructor.labels, hasLength(0)); | 1060 expect(constructor.labels, hasLength(0)); |
| 1070 expect(constructor.localVariables, hasLength(0)); | 1061 expect(constructor.localVariables, hasLength(0)); |
| 1071 expect(constructor.parameters, hasLength(0)); | 1062 expect(constructor.parameters, hasLength(0)); |
| 1072 expect(constructorDeclaration.element, same(constructor)); | 1063 expect(constructorDeclaration.element, same(constructor)); |
| 1073 } | 1064 } |
| 1074 | 1065 |
| 1075 void test_visitDeclaredIdentifier_noType() { | 1066 void test_visitDeclaredIdentifier_noType() { |
| 1076 // var i | 1067 LocalVariableElement variable = |
| 1077 ElementHolder holder = new ElementHolder(); | 1068 buildElementsForText('f() { for (var i in []) {} }') |
| 1078 ElementBuilder builder = _makeBuilder(holder); | 1069 .functions[0] |
| 1079 var variableName = 'i'; | 1070 .localVariables[0]; |
| 1080 DeclaredIdentifier identifier = | 1071 _assertHasCodeRange(variable, 11, 5); |
| 1081 AstFactory.declaredIdentifier3(variableName); | |
| 1082 AstFactory.forEachStatement( | |
| 1083 identifier, AstFactory.nullLiteral(), AstFactory.emptyStatement()); | |
| 1084 identifier.beginToken.offset = 50; | |
| 1085 identifier.endToken.offset = 80; | |
| 1086 identifier.accept(builder); | |
| 1087 | |
| 1088 List<LocalVariableElement> variables = holder.localVariables; | |
| 1089 expect(variables, hasLength(1)); | |
| 1090 LocalVariableElement variable = variables[0]; | |
| 1091 _assertHasCodeRange(variable, 50, 31); | |
| 1092 expect(variable, isNotNull); | 1072 expect(variable, isNotNull); |
| 1093 expect(variable.hasImplicitType, isTrue); | 1073 expect(variable.hasImplicitType, isTrue); |
| 1094 expect(variable.isConst, isFalse); | 1074 expect(variable.isConst, isFalse); |
| 1095 expect(variable.isDeprecated, isFalse); | 1075 expect(variable.isDeprecated, isFalse); |
| 1096 expect(variable.isFinal, isFalse); | 1076 expect(variable.isFinal, isFalse); |
| 1097 expect(variable.isOverride, isFalse); | 1077 expect(variable.isOverride, isFalse); |
| 1098 expect(variable.isPrivate, isFalse); | 1078 expect(variable.isPrivate, isFalse); |
| 1099 expect(variable.isPublic, isTrue); | 1079 expect(variable.isPublic, isTrue); |
| 1100 expect(variable.isSynthetic, isFalse); | 1080 expect(variable.isSynthetic, isFalse); |
| 1101 expect(variable.name, variableName); | 1081 expect(variable.name, 'i'); |
| 1102 } | 1082 } |
| 1103 | 1083 |
| 1104 void test_visitDeclaredIdentifier_type() { | 1084 void test_visitDeclaredIdentifier_type() { |
| 1105 // E i | 1085 LocalVariableElement variable = |
| 1106 ElementHolder holder = new ElementHolder(); | 1086 buildElementsForText('f() { for (int i in []) {} }') |
| 1107 ElementBuilder builder = _makeBuilder(holder); | 1087 .functions[0] |
| 1108 var variableName = 'i'; | 1088 .localVariables[0]; |
| 1109 DeclaredIdentifier identifier = | 1089 _assertHasCodeRange(variable, 11, 5); |
| 1110 AstFactory.declaredIdentifier4(AstFactory.typeName4('E'), variableName); | |
| 1111 AstFactory.forEachStatement( | |
| 1112 identifier, AstFactory.nullLiteral(), AstFactory.emptyStatement()); | |
| 1113 identifier.beginToken.offset = 50; | |
| 1114 identifier.endToken.offset = 80; | |
| 1115 identifier.accept(builder); | |
| 1116 | |
| 1117 List<LocalVariableElement> variables = holder.localVariables; | |
| 1118 expect(variables, hasLength(1)); | |
| 1119 LocalVariableElement variable = variables[0]; | |
| 1120 expect(variable, isNotNull); | |
| 1121 _assertHasCodeRange(variable, 50, 31); | |
| 1122 expect(variable.hasImplicitType, isFalse); | 1090 expect(variable.hasImplicitType, isFalse); |
| 1123 expect(variable.isConst, isFalse); | 1091 expect(variable.isConst, isFalse); |
| 1124 expect(variable.isDeprecated, isFalse); | 1092 expect(variable.isDeprecated, isFalse); |
| 1125 expect(variable.isFinal, isFalse); | 1093 expect(variable.isFinal, isFalse); |
| 1126 expect(variable.isOverride, isFalse); | 1094 expect(variable.isOverride, isFalse); |
| 1127 expect(variable.isPrivate, isFalse); | 1095 expect(variable.isPrivate, isFalse); |
| 1128 expect(variable.isPublic, isTrue); | 1096 expect(variable.isPublic, isTrue); |
| 1129 expect(variable.isSynthetic, isFalse); | 1097 expect(variable.isSynthetic, isFalse); |
| 1130 expect(variable.name, variableName); | 1098 expect(variable.name, 'i'); |
| 1131 } | 1099 } |
| 1132 | 1100 |
| 1133 void test_visitDefaultFormalParameter_noType() { | 1101 void test_visitDefaultFormalParameter_noType() { |
| 1134 // p = 0 | 1102 // p = 0 |
| 1135 ElementHolder holder = new ElementHolder(); | 1103 ElementHolder holder = new ElementHolder(); |
| 1136 ElementBuilder builder = _makeBuilder(holder); | 1104 ElementBuilder builder = _makeBuilder(holder); |
| 1137 String parameterName = 'p'; | 1105 String parameterName = 'p'; |
| 1138 DefaultFormalParameter formalParameter = | 1106 DefaultFormalParameter formalParameter = |
| 1139 AstFactory.positionalFormalParameter( | 1107 AstFactory.positionalFormalParameter( |
| 1140 AstFactory.simpleFormalParameter3(parameterName), | 1108 AstFactory.simpleFormalParameter3(parameterName), |
| (...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1485 List<FunctionElement> functions = holder.functions; | 1453 List<FunctionElement> functions = holder.functions; |
| 1486 expect(functions, hasLength(1)); | 1454 expect(functions, hasLength(1)); |
| 1487 FunctionElement function = functions[0]; | 1455 FunctionElement function = functions[0]; |
| 1488 expect(function, isNotNull); | 1456 expect(function, isNotNull); |
| 1489 expect(expression.element, same(function)); | 1457 expect(expression.element, same(function)); |
| 1490 expect(function.hasImplicitReturnType, isTrue); | 1458 expect(function.hasImplicitReturnType, isTrue); |
| 1491 expect(function.isSynthetic, isFalse); | 1459 expect(function.isSynthetic, isFalse); |
| 1492 expect(function.typeParameters, hasLength(0)); | 1460 expect(function.typeParameters, hasLength(0)); |
| 1493 } | 1461 } |
| 1494 | 1462 |
| 1463 void test_visitFunctionExpression_inBlockBody() { |
| 1464 List<FunctionElement> functions = |
| 1465 buildElementsForText('f() { return () => 42; }').functions[0].functions; |
| 1466 expect(functions, hasLength(1)); |
| 1467 FunctionElement function = functions[0]; |
| 1468 expect(function, isNotNull); |
| 1469 expect(function.hasImplicitReturnType, isTrue); |
| 1470 expect(function.isSynthetic, isFalse); |
| 1471 expect(function.typeParameters, hasLength(0)); |
| 1472 } |
| 1473 |
| 1474 void test_visitFunctionExpression_inExpressionBody() { |
| 1475 List<FunctionElement> functions = |
| 1476 buildElementsForText('f() => () => 42;').functions[0].functions; |
| 1477 expect(functions, hasLength(1)); |
| 1478 FunctionElement function = functions[0]; |
| 1479 expect(function, isNotNull); |
| 1480 expect(function.hasImplicitReturnType, isTrue); |
| 1481 expect(function.isSynthetic, isFalse); |
| 1482 expect(function.typeParameters, hasLength(0)); |
| 1483 } |
| 1484 |
| 1495 void test_visitFunctionTypeAlias() { | 1485 void test_visitFunctionTypeAlias() { |
| 1496 ElementHolder holder = new ElementHolder(); | 1486 ElementHolder holder = new ElementHolder(); |
| 1497 ElementBuilder builder = _makeBuilder(holder); | 1487 ElementBuilder builder = _makeBuilder(holder); |
| 1498 String aliasName = "F"; | 1488 String aliasName = "F"; |
| 1499 String parameterName = "E"; | 1489 String parameterName = "E"; |
| 1500 FunctionTypeAlias aliasNode = AstFactory.typeAlias( | 1490 FunctionTypeAlias aliasNode = AstFactory.typeAlias( |
| 1501 null, aliasName, AstFactory.typeParameterList([parameterName]), null); | 1491 null, aliasName, AstFactory.typeParameterList([parameterName]), null); |
| 1502 aliasNode.documentationComment = AstFactory.documentationComment( | 1492 aliasNode.documentationComment = AstFactory.documentationComment( |
| 1503 [TokenFactory.tokenFromString('/// aaa')..offset = 50], []); | 1493 [TokenFactory.tokenFromString('/// aaa')..offset = 50], []); |
| 1504 aliasNode.endToken.offset = 80; | 1494 aliasNode.endToken.offset = 80; |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1557 expect(parameter.initializer, isNull); | 1547 expect(parameter.initializer, isNull); |
| 1558 expect(parameter.isConst, isFalse); | 1548 expect(parameter.isConst, isFalse); |
| 1559 expect(parameter.isFinal, isFalse); | 1549 expect(parameter.isFinal, isFalse); |
| 1560 expect(parameter.isSynthetic, isFalse); | 1550 expect(parameter.isSynthetic, isFalse); |
| 1561 expect(parameter.parameterKind, ParameterKind.REQUIRED); | 1551 expect(parameter.parameterKind, ParameterKind.REQUIRED); |
| 1562 expect(parameter.typeParameters, hasLength(1)); | 1552 expect(parameter.typeParameters, hasLength(1)); |
| 1563 _assertVisibleRange(parameter, 100, 110); | 1553 _assertVisibleRange(parameter, 100, 110); |
| 1564 } | 1554 } |
| 1565 | 1555 |
| 1566 void test_visitLabeledStatement() { | 1556 void test_visitLabeledStatement() { |
| 1567 ElementHolder holder = new ElementHolder(); | 1557 List<LabelElement> labels = |
| 1568 ElementBuilder builder = _makeBuilder(holder); | 1558 buildElementsForText('f() { l: print(42); }').functions[0].labels; |
| 1569 String labelName = "l"; | |
| 1570 LabeledStatement statement = AstFactory.labeledStatement( | |
| 1571 [AstFactory.label2(labelName)], AstFactory.breakStatement()); | |
| 1572 statement.accept(builder); | |
| 1573 List<LabelElement> labels = holder.labels; | |
| 1574 expect(labels, hasLength(1)); | 1559 expect(labels, hasLength(1)); |
| 1575 LabelElement label = labels[0]; | 1560 LabelElement label = labels[0]; |
| 1576 expect(label, isNotNull); | 1561 expect(label, isNotNull); |
| 1577 expect(label.name, labelName); | 1562 expect(label.name, 'l'); |
| 1578 expect(label.isSynthetic, isFalse); | 1563 expect(label.isSynthetic, isFalse); |
| 1579 } | 1564 } |
| 1580 | 1565 |
| 1581 void test_visitMethodDeclaration_abstract() { | 1566 void test_visitMethodDeclaration_abstract() { |
| 1582 // m(); | 1567 // m(); |
| 1583 ElementHolder holder = new ElementHolder(); | 1568 ElementHolder holder = new ElementHolder(); |
| 1584 ElementBuilder builder = _makeBuilder(holder); | 1569 ElementBuilder builder = _makeBuilder(holder); |
| 1585 String methodName = "m"; | 1570 String methodName = "m"; |
| 1586 MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2( | 1571 MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2( |
| 1587 null, | 1572 null, |
| (...skipping 459 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2047 expect(method.localVariables, hasLength(0)); | 2032 expect(method.localVariables, hasLength(0)); |
| 2048 expect(method.parameters, hasLength(0)); | 2033 expect(method.parameters, hasLength(0)); |
| 2049 expect(method.typeParameters, hasLength(1)); | 2034 expect(method.typeParameters, hasLength(1)); |
| 2050 expect(method.isAbstract, isFalse); | 2035 expect(method.isAbstract, isFalse); |
| 2051 expect(method.isExternal, isFalse); | 2036 expect(method.isExternal, isFalse); |
| 2052 expect(method.isStatic, isFalse); | 2037 expect(method.isStatic, isFalse); |
| 2053 expect(method.isSynthetic, isFalse); | 2038 expect(method.isSynthetic, isFalse); |
| 2054 } | 2039 } |
| 2055 | 2040 |
| 2056 void test_visitMethodDeclaration_withMembers() { | 2041 void test_visitMethodDeclaration_withMembers() { |
| 2057 // m(p) { var v; try { l: return; } catch (e) {} } | 2042 MethodElement method = buildElementsForText( |
| 2058 ElementHolder holder = new ElementHolder(); | 2043 'class C { m(p) { var v; try { l: return; } catch (e) {} } }') |
| 2059 ElementBuilder builder = _makeBuilder(holder); | 2044 .types[0] |
| 2045 .methods[0]; |
| 2060 String methodName = "m"; | 2046 String methodName = "m"; |
| 2061 String parameterName = "p"; | 2047 String parameterName = "p"; |
| 2062 String localVariableName = "v"; | 2048 String localVariableName = "v"; |
| 2063 String labelName = "l"; | 2049 String labelName = "l"; |
| 2064 String exceptionParameterName = "e"; | 2050 String exceptionParameterName = "e"; |
| 2065 MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2( | |
| 2066 null, | |
| 2067 null, | |
| 2068 null, | |
| 2069 null, | |
| 2070 AstFactory.identifier3(methodName), | |
| 2071 AstFactory.formalParameterList( | |
| 2072 [AstFactory.simpleFormalParameter3(parameterName)]), | |
| 2073 AstFactory.blockFunctionBody2([ | |
| 2074 AstFactory.variableDeclarationStatement2( | |
| 2075 Keyword.VAR, [AstFactory.variableDeclaration(localVariableName)]), | |
| 2076 AstFactory.tryStatement2( | |
| 2077 AstFactory.block([ | |
| 2078 AstFactory.labeledStatement([AstFactory.label2(labelName)], | |
| 2079 AstFactory.returnStatement()) | |
| 2080 ]), | |
| 2081 [AstFactory.catchClause(exceptionParameterName)]) | |
| 2082 ])); | |
| 2083 methodDeclaration.accept(builder); | |
| 2084 | |
| 2085 List<MethodElement> methods = holder.methods; | |
| 2086 expect(methods, hasLength(1)); | |
| 2087 MethodElement method = methods[0]; | |
| 2088 expect(method, isNotNull); | 2051 expect(method, isNotNull); |
| 2089 expect(method.hasImplicitReturnType, isTrue); | 2052 expect(method.hasImplicitReturnType, isTrue); |
| 2090 expect(method.name, methodName); | 2053 expect(method.name, methodName); |
| 2091 expect(method.typeParameters, hasLength(0)); | 2054 expect(method.typeParameters, hasLength(0)); |
| 2092 expect(method.isAbstract, isFalse); | 2055 expect(method.isAbstract, isFalse); |
| 2093 expect(method.isExternal, isFalse); | 2056 expect(method.isExternal, isFalse); |
| 2094 expect(method.isStatic, isFalse); | 2057 expect(method.isStatic, isFalse); |
| 2095 expect(method.isSynthetic, isFalse); | 2058 expect(method.isSynthetic, isFalse); |
| 2096 List<VariableElement> parameters = method.parameters; | 2059 List<VariableElement> parameters = method.parameters; |
| 2097 expect(parameters, hasLength(1)); | 2060 expect(parameters, hasLength(1)); |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2281 expect(typeParameters, hasLength(1)); | 2244 expect(typeParameters, hasLength(1)); |
| 2282 TypeParameterElement typeParameterElement = typeParameters[0]; | 2245 TypeParameterElement typeParameterElement = typeParameters[0]; |
| 2283 expect(typeParameterElement, isNotNull); | 2246 expect(typeParameterElement, isNotNull); |
| 2284 _assertHasCodeRange(typeParameterElement, 50, 1); | 2247 _assertHasCodeRange(typeParameterElement, 50, 1); |
| 2285 expect(typeParameterElement.name, parameterName); | 2248 expect(typeParameterElement.name, parameterName); |
| 2286 expect(typeParameterElement.bound, isNull); | 2249 expect(typeParameterElement.bound, isNull); |
| 2287 expect(typeParameterElement.isSynthetic, isFalse); | 2250 expect(typeParameterElement.isSynthetic, isFalse); |
| 2288 } | 2251 } |
| 2289 | 2252 |
| 2290 void test_visitVariableDeclaration_inConstructor() { | 2253 void test_visitVariableDeclaration_inConstructor() { |
| 2291 ElementHolder holder = new ElementHolder(); | 2254 List<ConstructorElement> constructors = |
| 2292 ElementBuilder builder = _makeBuilder(holder); | 2255 buildElementsForText('class C { C() { var v = 1; } }') |
| 2293 // | 2256 .types[0] |
| 2294 // C() {var v;} | 2257 .constructors; |
| 2295 // | |
| 2296 String variableName = "v"; | |
| 2297 VariableDeclaration variable = | |
| 2298 AstFactory.variableDeclaration2(variableName, null); | |
| 2299 VariableDeclarationStatement statement = | |
| 2300 AstFactory.variableDeclarationStatement2(Keyword.VAR, [variable]); | |
| 2301 ConstructorDeclaration constructor = AstFactory.constructorDeclaration2( | |
| 2302 null, | |
| 2303 null, | |
| 2304 AstFactory.identifier3("C"), | |
| 2305 "C", | |
| 2306 AstFactory.formalParameterList(), | |
| 2307 null, | |
| 2308 AstFactory.blockFunctionBody2([statement])); | |
| 2309 statement.beginToken.offset = 50; | |
| 2310 statement.endToken.offset = 80; | |
| 2311 _setBlockBodySourceRange(constructor.body, 100, 110); | |
| 2312 constructor.accept(builder); | |
| 2313 | |
| 2314 List<ConstructorElement> constructors = holder.constructors; | |
| 2315 expect(constructors, hasLength(1)); | 2258 expect(constructors, hasLength(1)); |
| 2316 List<LocalVariableElement> variableElements = | 2259 List<LocalVariableElement> variableElements = |
| 2317 constructors[0].localVariables; | 2260 constructors[0].localVariables; |
| 2318 expect(variableElements, hasLength(1)); | 2261 expect(variableElements, hasLength(1)); |
| 2319 LocalVariableElement variableElement = variableElements[0]; | 2262 LocalVariableElement variableElement = variableElements[0]; |
| 2320 _assertHasCodeRange(variableElement, 50, 31); | 2263 _assertHasCodeRange(variableElement, 16, 10); |
| 2321 expect(variableElement.hasImplicitType, isTrue); | 2264 expect(variableElement.hasImplicitType, isTrue); |
| 2322 expect(variableElement.name, variableName); | 2265 expect(variableElement.name, 'v'); |
| 2323 _assertVisibleRange(variableElement, 100, 110); | 2266 _assertVisibleRange(variableElement, 14, 28); |
| 2324 } | 2267 } |
| 2325 | 2268 |
| 2326 void test_visitVariableDeclaration_inForEachStatement() { | 2269 void test_visitVariableDeclaration_inForEachStatement() { |
| 2327 ElementHolder holder = new ElementHolder(); | 2270 ElementHolder holder = new ElementHolder(); |
| 2328 ElementBuilder builder = _makeBuilder(holder); | 2271 ElementBuilder builder = _makeBuilder(holder); |
| 2329 // | 2272 // |
| 2330 // m() { for (var v in []) } | 2273 // m() { for (var v in []) } |
| 2331 // | 2274 // |
| 2332 String variableName = "v"; | 2275 String variableName = "v"; |
| 2333 Statement statement = AstFactory.forEachStatement( | 2276 Statement statement = AstFactory.forEachStatement( |
| (...skipping 2191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4525 expect(UriKind.fromEncoding(0x70), same(UriKind.PACKAGE_URI)); | 4468 expect(UriKind.fromEncoding(0x70), same(UriKind.PACKAGE_URI)); |
| 4526 expect(UriKind.fromEncoding(0x58), same(null)); | 4469 expect(UriKind.fromEncoding(0x58), same(null)); |
| 4527 } | 4470 } |
| 4528 | 4471 |
| 4529 void test_getEncoding() { | 4472 void test_getEncoding() { |
| 4530 expect(UriKind.DART_URI.encoding, 0x64); | 4473 expect(UriKind.DART_URI.encoding, 0x64); |
| 4531 expect(UriKind.FILE_URI.encoding, 0x66); | 4474 expect(UriKind.FILE_URI.encoding, 0x66); |
| 4532 expect(UriKind.PACKAGE_URI.encoding, 0x70); | 4475 expect(UriKind.PACKAGE_URI.encoding, 0x70); |
| 4533 } | 4476 } |
| 4534 } | 4477 } |
| OLD | NEW |