| 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.summary.summary_test; | 5 library analyzer.test.src.summary.summary_test; |
| 6 | 6 |
| 7 import 'package:analyzer/dart/element/element.dart'; | 7 import 'package:analyzer/dart/element/element.dart'; |
| 8 import 'package:analyzer/src/generated/ast.dart'; | 8 import 'package:analyzer/src/generated/ast.dart'; |
| 9 import 'package:analyzer/src/generated/engine.dart'; | 9 import 'package:analyzer/src/generated/engine.dart'; |
| 10 import 'package:analyzer/src/generated/error.dart'; | 10 import 'package:analyzer/src/generated/error.dart'; |
| (...skipping 822 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 833 '''); | 833 '''); |
| 834 expect(cls.mixins, hasLength(2)); | 834 expect(cls.mixins, hasLength(2)); |
| 835 checkTypeRef(cls.mixins[0], null, null, 'D'); | 835 checkTypeRef(cls.mixins[0], null, null, 'D'); |
| 836 checkTypeRef(cls.mixins[1], null, null, 'E'); | 836 checkTypeRef(cls.mixins[1], null, null, 'E'); |
| 837 } | 837 } |
| 838 | 838 |
| 839 test_class_name() { | 839 test_class_name() { |
| 840 var classText = 'class C {}'; | 840 var classText = 'class C {}'; |
| 841 UnlinkedClass cls = serializeClassText(classText); | 841 UnlinkedClass cls = serializeClassText(classText); |
| 842 expect(cls.name, 'C'); | 842 expect(cls.name, 'C'); |
| 843 expect(cls.nameOffset, classText.indexOf('C')); |
| 843 } | 844 } |
| 844 | 845 |
| 845 test_class_no_flags() { | 846 test_class_no_flags() { |
| 846 UnlinkedClass cls = serializeClassText('class C {}'); | 847 UnlinkedClass cls = serializeClassText('class C {}'); |
| 847 expect(cls.isAbstract, false); | 848 expect(cls.isAbstract, false); |
| 848 expect(cls.isMixinApplication, false); | 849 expect(cls.isMixinApplication, false); |
| 849 } | 850 } |
| 850 | 851 |
| 851 test_class_no_interface() { | 852 test_class_no_interface() { |
| 852 UnlinkedClass cls = serializeClassText('class C {}'); | 853 UnlinkedClass cls = serializeClassText('class C {}'); |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 915 checkParamTypeRef(typeArgument, 2); | 916 checkParamTypeRef(typeArgument, 2); |
| 916 } | 917 } |
| 917 | 918 |
| 918 test_class_type_param_f_bound_self_ref() { | 919 test_class_type_param_f_bound_self_ref() { |
| 919 UnlinkedClass cls = serializeClassText('class C<T, U extends List<U>> {}'); | 920 UnlinkedClass cls = serializeClassText('class C<T, U extends List<U>> {}'); |
| 920 UnlinkedTypeRef typeArgument = cls.typeParameters[1].bound.typeArguments[0]; | 921 UnlinkedTypeRef typeArgument = cls.typeParameters[1].bound.typeArguments[0]; |
| 921 checkParamTypeRef(typeArgument, 1); | 922 checkParamTypeRef(typeArgument, 1); |
| 922 } | 923 } |
| 923 | 924 |
| 924 test_class_type_param_no_bound() { | 925 test_class_type_param_no_bound() { |
| 925 UnlinkedClass cls = serializeClassText('class C<T> {}'); | 926 String text = 'class C<T> {}'; |
| 927 UnlinkedClass cls = serializeClassText(text); |
| 926 expect(cls.typeParameters, hasLength(1)); | 928 expect(cls.typeParameters, hasLength(1)); |
| 927 expect(cls.typeParameters[0].name, 'T'); | 929 expect(cls.typeParameters[0].name, 'T'); |
| 930 expect(cls.typeParameters[0].nameOffset, text.indexOf('T')); |
| 928 expect(cls.typeParameters[0].bound, isNull); | 931 expect(cls.typeParameters[0].bound, isNull); |
| 929 expect(unlinkedUnits[0].publicNamespace.names[0].numTypeParameters, 1); | 932 expect(unlinkedUnits[0].publicNamespace.names[0].numTypeParameters, 1); |
| 930 } | 933 } |
| 931 | 934 |
| 932 test_constructor() { | 935 test_constructor() { |
| 933 UnlinkedExecutable executable = findExecutable('', | 936 String text = 'class C { C(); }'; |
| 934 executables: serializeClassText('class C { C(); }').executables); | 937 UnlinkedExecutable executable = |
| 938 findExecutable('', executables: serializeClassText(text).executables); |
| 935 expect(executable.kind, UnlinkedExecutableKind.constructor); | 939 expect(executable.kind, UnlinkedExecutableKind.constructor); |
| 936 expect(executable.hasImplicitReturnType, isFalse); | 940 expect(executable.hasImplicitReturnType, isFalse); |
| 937 expect(executable.isExternal, isFalse); | 941 expect(executable.isExternal, isFalse); |
| 942 expect(executable.nameOffset, text.indexOf('C();')); |
| 938 } | 943 } |
| 939 | 944 |
| 940 test_constructor_anonymous() { | 945 test_constructor_anonymous() { |
| 941 UnlinkedExecutable executable = findExecutable('', | 946 UnlinkedExecutable executable = findExecutable('', |
| 942 executables: serializeClassText('class C { C(); }').executables); | 947 executables: serializeClassText('class C { C(); }').executables); |
| 943 expect(executable.name, isEmpty); | 948 expect(executable.name, isEmpty); |
| 944 } | 949 } |
| 945 | 950 |
| 946 test_constructor_const() { | 951 test_constructor_const() { |
| 947 UnlinkedExecutable executable = findExecutable('', | 952 UnlinkedExecutable executable = findExecutable('', |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1107 test_constructor_initializing_formal_typedef() { | 1112 test_constructor_initializing_formal_typedef() { |
| 1108 UnlinkedExecutable executable = findExecutable('', | 1113 UnlinkedExecutable executable = findExecutable('', |
| 1109 executables: serializeClassText( | 1114 executables: serializeClassText( |
| 1110 'typedef F<T>(T x); class C<X> { C(this.f); F<X> f; }') | 1115 'typedef F<T>(T x); class C<X> { C(this.f); F<X> f; }') |
| 1111 .executables); | 1116 .executables); |
| 1112 UnlinkedParam parameter = executable.parameters[0]; | 1117 UnlinkedParam parameter = executable.parameters[0]; |
| 1113 expect(parameter.parameters, hasLength(1)); | 1118 expect(parameter.parameters, hasLength(1)); |
| 1114 } | 1119 } |
| 1115 | 1120 |
| 1116 test_constructor_named() { | 1121 test_constructor_named() { |
| 1122 String text = 'class C { C.foo(); }'; |
| 1117 UnlinkedExecutable executable = findExecutable('foo', | 1123 UnlinkedExecutable executable = findExecutable('foo', |
| 1118 executables: serializeClassText('class C { C.foo(); }').executables); | 1124 executables: serializeClassText(text).executables); |
| 1119 expect(executable.name, 'foo'); | 1125 expect(executable.name, 'foo'); |
| 1126 expect(executable.nameOffset, text.indexOf('foo')); |
| 1120 } | 1127 } |
| 1121 | 1128 |
| 1122 test_constructor_non_const() { | 1129 test_constructor_non_const() { |
| 1123 UnlinkedExecutable executable = findExecutable('', | 1130 UnlinkedExecutable executable = findExecutable('', |
| 1124 executables: serializeClassText('class C { C(); }').executables); | 1131 executables: serializeClassText('class C { C(); }').executables); |
| 1125 expect(executable.isConst, isFalse); | 1132 expect(executable.isConst, isFalse); |
| 1126 } | 1133 } |
| 1127 | 1134 |
| 1128 test_constructor_non_factory() { | 1135 test_constructor_non_factory() { |
| 1129 UnlinkedExecutable executable = findExecutable('', | 1136 UnlinkedExecutable executable = findExecutable('', |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1241 serializeLibraryText('library my.lib; part "part1.dart";'); | 1248 serializeLibraryText('library my.lib; part "part1.dart";'); |
| 1242 UnlinkedUnit unit = unlinkedUnits[1]; | 1249 UnlinkedUnit unit = unlinkedUnits[1]; |
| 1243 expect(findClass('C', unit: unit), isNotNull); | 1250 expect(findClass('C', unit: unit), isNotNull); |
| 1244 expect(findEnum('E', unit: unit), isNotNull); | 1251 expect(findEnum('E', unit: unit), isNotNull); |
| 1245 expect(findVariable('v', variables: unit.variables), isNotNull); | 1252 expect(findVariable('v', variables: unit.variables), isNotNull); |
| 1246 expect(findExecutable('f', executables: unit.executables), isNotNull); | 1253 expect(findExecutable('f', executables: unit.executables), isNotNull); |
| 1247 expect(findTypedef('F', unit: unit), isNotNull); | 1254 expect(findTypedef('F', unit: unit), isNotNull); |
| 1248 } | 1255 } |
| 1249 | 1256 |
| 1250 test_enum() { | 1257 test_enum() { |
| 1251 UnlinkedEnum e = serializeEnumText('enum E { v1 }'); | 1258 String text = 'enum E { v1 }'; |
| 1259 UnlinkedEnum e = serializeEnumText(text); |
| 1252 expect(e.name, 'E'); | 1260 expect(e.name, 'E'); |
| 1261 expect(e.nameOffset, text.indexOf('E')); |
| 1253 expect(e.values, hasLength(1)); | 1262 expect(e.values, hasLength(1)); |
| 1254 expect(e.values[0].name, 'v1'); | 1263 expect(e.values[0].name, 'v1'); |
| 1264 expect(e.values[0].nameOffset, text.indexOf('v1')); |
| 1255 expect(unlinkedUnits[0].publicNamespace.names, hasLength(1)); | 1265 expect(unlinkedUnits[0].publicNamespace.names, hasLength(1)); |
| 1256 expect(unlinkedUnits[0].publicNamespace.names[0].kind, | 1266 expect(unlinkedUnits[0].publicNamespace.names[0].kind, |
| 1257 PrelinkedReferenceKind.classOrEnum); | 1267 PrelinkedReferenceKind.classOrEnum); |
| 1258 expect(unlinkedUnits[0].publicNamespace.names[0].name, 'E'); | 1268 expect(unlinkedUnits[0].publicNamespace.names[0].name, 'E'); |
| 1259 expect(unlinkedUnits[0].publicNamespace.names[0].numTypeParameters, 0); | 1269 expect(unlinkedUnits[0].publicNamespace.names[0].numTypeParameters, 0); |
| 1260 } | 1270 } |
| 1261 | 1271 |
| 1262 test_enum_order() { | 1272 test_enum_order() { |
| 1263 UnlinkedEnum e = serializeEnumText('enum E { v1, v2 }'); | 1273 UnlinkedEnum e = serializeEnumText('enum E { v1, v2 }'); |
| 1264 expect(e.values, hasLength(2)); | 1274 expect(e.values, hasLength(2)); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1277 expect(executable.isAbstract, isTrue); | 1287 expect(executable.isAbstract, isTrue); |
| 1278 } | 1288 } |
| 1279 | 1289 |
| 1280 test_executable_concrete() { | 1290 test_executable_concrete() { |
| 1281 UnlinkedExecutable executable = | 1291 UnlinkedExecutable executable = |
| 1282 serializeClassText('abstract class C { f() {} }').executables[0]; | 1292 serializeClassText('abstract class C { f() {} }').executables[0]; |
| 1283 expect(executable.isAbstract, isFalse); | 1293 expect(executable.isAbstract, isFalse); |
| 1284 } | 1294 } |
| 1285 | 1295 |
| 1286 test_executable_function() { | 1296 test_executable_function() { |
| 1287 UnlinkedExecutable executable = serializeExecutableText('f() {}'); | 1297 String text = ' f() {}'; |
| 1298 UnlinkedExecutable executable = serializeExecutableText(text); |
| 1288 expect(executable.kind, UnlinkedExecutableKind.functionOrMethod); | 1299 expect(executable.kind, UnlinkedExecutableKind.functionOrMethod); |
| 1289 expect(executable.hasImplicitReturnType, isTrue); | 1300 expect(executable.hasImplicitReturnType, isTrue); |
| 1290 checkDynamicTypeRef(executable.returnType); | 1301 checkDynamicTypeRef(executable.returnType); |
| 1291 expect(executable.isExternal, isFalse); | 1302 expect(executable.isExternal, isFalse); |
| 1303 expect(executable.nameOffset, text.indexOf('f')); |
| 1292 expect(unlinkedUnits[0].publicNamespace.names, hasLength(1)); | 1304 expect(unlinkedUnits[0].publicNamespace.names, hasLength(1)); |
| 1293 expect(unlinkedUnits[0].publicNamespace.names[0].kind, | 1305 expect(unlinkedUnits[0].publicNamespace.names[0].kind, |
| 1294 PrelinkedReferenceKind.other); | 1306 PrelinkedReferenceKind.other); |
| 1295 expect(unlinkedUnits[0].publicNamespace.names[0].name, 'f'); | 1307 expect(unlinkedUnits[0].publicNamespace.names[0].name, 'f'); |
| 1296 expect(unlinkedUnits[0].publicNamespace.names[0].numTypeParameters, 0); | 1308 expect(unlinkedUnits[0].publicNamespace.names[0].numTypeParameters, 0); |
| 1297 } | 1309 } |
| 1298 | 1310 |
| 1299 test_executable_function_explicit_return() { | 1311 test_executable_function_explicit_return() { |
| 1300 UnlinkedExecutable executable = | 1312 UnlinkedExecutable executable = |
| 1301 serializeExecutableText('dynamic f() => null;'); | 1313 serializeExecutableText('dynamic f() => null;'); |
| 1302 expect(executable.hasImplicitReturnType, isFalse); | 1314 expect(executable.hasImplicitReturnType, isFalse); |
| 1303 checkDynamicTypeRef(executable.returnType); | 1315 checkDynamicTypeRef(executable.returnType); |
| 1304 } | 1316 } |
| 1305 | 1317 |
| 1306 test_executable_function_external() { | 1318 test_executable_function_external() { |
| 1307 UnlinkedExecutable executable = serializeExecutableText('external f();'); | 1319 UnlinkedExecutable executable = serializeExecutableText('external f();'); |
| 1308 expect(executable.isExternal, isTrue); | 1320 expect(executable.isExternal, isTrue); |
| 1309 } | 1321 } |
| 1310 | 1322 |
| 1311 test_executable_function_private() { | 1323 test_executable_function_private() { |
| 1312 serializeExecutableText('_f() {}', '_f'); | 1324 serializeExecutableText('_f() {}', '_f'); |
| 1313 expect(unlinkedUnits[0].publicNamespace.names, isEmpty); | 1325 expect(unlinkedUnits[0].publicNamespace.names, isEmpty); |
| 1314 } | 1326 } |
| 1315 | 1327 |
| 1316 test_executable_getter() { | 1328 test_executable_getter() { |
| 1317 UnlinkedExecutable executable = serializeExecutableText('int get f => 1;'); | 1329 String text = 'int get f => 1;'; |
| 1330 UnlinkedExecutable executable = serializeExecutableText(text); |
| 1318 expect(executable.kind, UnlinkedExecutableKind.getter); | 1331 expect(executable.kind, UnlinkedExecutableKind.getter); |
| 1319 expect(executable.hasImplicitReturnType, isFalse); | 1332 expect(executable.hasImplicitReturnType, isFalse); |
| 1320 expect(executable.isExternal, isFalse); | 1333 expect(executable.isExternal, isFalse); |
| 1334 expect(executable.nameOffset, text.indexOf('f')); |
| 1321 expect(findVariable('f'), isNull); | 1335 expect(findVariable('f'), isNull); |
| 1322 expect(findExecutable('f='), isNull); | 1336 expect(findExecutable('f='), isNull); |
| 1323 expect(unlinkedUnits[0].publicNamespace.names, hasLength(1)); | 1337 expect(unlinkedUnits[0].publicNamespace.names, hasLength(1)); |
| 1324 expect(unlinkedUnits[0].publicNamespace.names[0].kind, | 1338 expect(unlinkedUnits[0].publicNamespace.names[0].kind, |
| 1325 PrelinkedReferenceKind.other); | 1339 PrelinkedReferenceKind.other); |
| 1326 expect(unlinkedUnits[0].publicNamespace.names[0].name, 'f'); | 1340 expect(unlinkedUnits[0].publicNamespace.names[0].name, 'f'); |
| 1327 } | 1341 } |
| 1328 | 1342 |
| 1329 test_executable_getter_external() { | 1343 test_executable_getter_external() { |
| 1330 UnlinkedExecutable executable = | 1344 UnlinkedExecutable executable = |
| (...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1576 UnlinkedExecutable executable = serializeExecutableText('f([x]) {}'); | 1590 UnlinkedExecutable executable = serializeExecutableText('f([x]) {}'); |
| 1577 expect(executable.parameters[0].kind, UnlinkedParamKind.positional); | 1591 expect(executable.parameters[0].kind, UnlinkedParamKind.positional); |
| 1578 } | 1592 } |
| 1579 | 1593 |
| 1580 test_executable_param_kind_required() { | 1594 test_executable_param_kind_required() { |
| 1581 UnlinkedExecutable executable = serializeExecutableText('f(x) {}'); | 1595 UnlinkedExecutable executable = serializeExecutableText('f(x) {}'); |
| 1582 expect(executable.parameters[0].kind, UnlinkedParamKind.required); | 1596 expect(executable.parameters[0].kind, UnlinkedParamKind.required); |
| 1583 } | 1597 } |
| 1584 | 1598 |
| 1585 test_executable_param_name() { | 1599 test_executable_param_name() { |
| 1586 UnlinkedExecutable executable = serializeExecutableText('f(x) {}'); | 1600 String text = 'f(x) {}'; |
| 1601 UnlinkedExecutable executable = serializeExecutableText(text); |
| 1587 expect(executable.parameters, hasLength(1)); | 1602 expect(executable.parameters, hasLength(1)); |
| 1588 expect(executable.parameters[0].name, 'x'); | 1603 expect(executable.parameters[0].name, 'x'); |
| 1604 expect(executable.parameters[0].nameOffset, text.indexOf('x')); |
| 1589 } | 1605 } |
| 1590 | 1606 |
| 1591 test_executable_param_no_flags() { | 1607 test_executable_param_no_flags() { |
| 1592 UnlinkedExecutable executable = serializeExecutableText('f(x) {}'); | 1608 UnlinkedExecutable executable = serializeExecutableText('f(x) {}'); |
| 1593 expect(executable.parameters[0].isFunctionTyped, isFalse); | 1609 expect(executable.parameters[0].isFunctionTyped, isFalse); |
| 1594 expect(executable.parameters[0].isInitializingFormal, isFalse); | 1610 expect(executable.parameters[0].isInitializingFormal, isFalse); |
| 1595 } | 1611 } |
| 1596 | 1612 |
| 1597 test_executable_param_non_function_typed() { | 1613 test_executable_param_non_function_typed() { |
| 1598 UnlinkedExecutable executable = serializeExecutableText('f(g) {}'); | 1614 UnlinkedExecutable executable = serializeExecutableText('f(g) {}'); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1634 checkDynamicTypeRef(executable.returnType); | 1650 checkDynamicTypeRef(executable.returnType); |
| 1635 expect(executable.hasImplicitReturnType, isTrue); | 1651 expect(executable.hasImplicitReturnType, isTrue); |
| 1636 } | 1652 } |
| 1637 | 1653 |
| 1638 test_executable_return_type_void() { | 1654 test_executable_return_type_void() { |
| 1639 UnlinkedExecutable executable = serializeExecutableText('void f() {}'); | 1655 UnlinkedExecutable executable = serializeExecutableText('void f() {}'); |
| 1640 expect(executable.returnType, isNull); | 1656 expect(executable.returnType, isNull); |
| 1641 } | 1657 } |
| 1642 | 1658 |
| 1643 test_executable_setter() { | 1659 test_executable_setter() { |
| 1644 UnlinkedExecutable executable = | 1660 String text = 'void set f(value) {}'; |
| 1645 serializeExecutableText('void set f(value) {}', 'f='); | 1661 UnlinkedExecutable executable = serializeExecutableText(text, 'f='); |
| 1646 expect(executable.kind, UnlinkedExecutableKind.setter); | 1662 expect(executable.kind, UnlinkedExecutableKind.setter); |
| 1647 expect(executable.hasImplicitReturnType, isFalse); | 1663 expect(executable.hasImplicitReturnType, isFalse); |
| 1648 expect(executable.isExternal, isFalse); | 1664 expect(executable.isExternal, isFalse); |
| 1665 expect(executable.nameOffset, text.indexOf('f')); |
| 1649 expect(findVariable('f'), isNull); | 1666 expect(findVariable('f'), isNull); |
| 1650 expect(findExecutable('f'), isNull); | 1667 expect(findExecutable('f'), isNull); |
| 1651 expect(unlinkedUnits[0].publicNamespace.names, hasLength(1)); | 1668 expect(unlinkedUnits[0].publicNamespace.names, hasLength(1)); |
| 1652 expect(unlinkedUnits[0].publicNamespace.names[0].kind, | 1669 expect(unlinkedUnits[0].publicNamespace.names[0].kind, |
| 1653 PrelinkedReferenceKind.other); | 1670 PrelinkedReferenceKind.other); |
| 1654 expect(unlinkedUnits[0].publicNamespace.names[0].name, 'f='); | 1671 expect(unlinkedUnits[0].publicNamespace.names[0].name, 'f='); |
| 1655 } | 1672 } |
| 1656 | 1673 |
| 1657 test_executable_setter_external() { | 1674 test_executable_setter_external() { |
| 1658 UnlinkedExecutable executable = | 1675 UnlinkedExecutable executable = |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1758 expect(unlinkedUnits[0].publicNamespace.exports, hasLength(1)); | 1775 expect(unlinkedUnits[0].publicNamespace.exports, hasLength(1)); |
| 1759 expect(unlinkedUnits[0].publicNamespace.exports[0].combinators, isEmpty); | 1776 expect(unlinkedUnits[0].publicNamespace.exports[0].combinators, isEmpty); |
| 1760 } | 1777 } |
| 1761 | 1778 |
| 1762 test_export_offset() { | 1779 test_export_offset() { |
| 1763 String libraryText = ' export "dart:async";'; | 1780 String libraryText = ' export "dart:async";'; |
| 1764 serializeLibraryText(libraryText); | 1781 serializeLibraryText(libraryText); |
| 1765 expect(unlinkedUnits[0].exports[0].uriOffset, | 1782 expect(unlinkedUnits[0].exports[0].uriOffset, |
| 1766 libraryText.indexOf('"dart:async"')); | 1783 libraryText.indexOf('"dart:async"')); |
| 1767 expect(unlinkedUnits[0].exports[0].uriEnd, libraryText.indexOf(';')); | 1784 expect(unlinkedUnits[0].exports[0].uriEnd, libraryText.indexOf(';')); |
| 1785 expect(unlinkedUnits[0].exports[0].offset, libraryText.indexOf('export')); |
| 1768 } | 1786 } |
| 1769 | 1787 |
| 1770 test_export_show_order() { | 1788 test_export_show_order() { |
| 1771 serializeLibraryText('export "dart:async" show Future, Stream;'); | 1789 serializeLibraryText('export "dart:async" show Future, Stream;'); |
| 1772 expect(unlinkedUnits[0].publicNamespace.exports, hasLength(1)); | 1790 expect(unlinkedUnits[0].publicNamespace.exports, hasLength(1)); |
| 1773 expect( | 1791 expect( |
| 1774 unlinkedUnits[0].publicNamespace.exports[0].combinators, hasLength(1)); | 1792 unlinkedUnits[0].publicNamespace.exports[0].combinators, hasLength(1)); |
| 1775 expect(unlinkedUnits[0].publicNamespace.exports[0].combinators[0].shows, | 1793 expect(unlinkedUnits[0].publicNamespace.exports[0].combinators[0].shows, |
| 1776 hasLength(2)); | 1794 hasLength(2)); |
| 1777 expect(unlinkedUnits[0].publicNamespace.exports[0].combinators[0].hides, | 1795 expect(unlinkedUnits[0].publicNamespace.exports[0].combinators[0].hides, |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1918 libraryText.indexOf('"dart:async"')); | 1936 libraryText.indexOf('"dart:async"')); |
| 1919 expect(unlinkedUnits[0].imports[0].uriEnd, libraryText.indexOf('; Future')); | 1937 expect(unlinkedUnits[0].imports[0].uriEnd, libraryText.indexOf('; Future')); |
| 1920 } | 1938 } |
| 1921 | 1939 |
| 1922 test_import_prefix_name() { | 1940 test_import_prefix_name() { |
| 1923 String libraryText = 'import "dart:async" as a; a.Future x;'; | 1941 String libraryText = 'import "dart:async" as a; a.Future x;'; |
| 1924 serializeLibraryText(libraryText); | 1942 serializeLibraryText(libraryText); |
| 1925 // Second import is the implicit import of dart:core | 1943 // Second import is the implicit import of dart:core |
| 1926 expect(unlinkedUnits[0].imports, hasLength(2)); | 1944 expect(unlinkedUnits[0].imports, hasLength(2)); |
| 1927 checkPrefix(unlinkedUnits[0].imports[0].prefixReference, 'a'); | 1945 checkPrefix(unlinkedUnits[0].imports[0].prefixReference, 'a'); |
| 1946 expect(unlinkedUnits[0].imports[0].prefixOffset, libraryText.indexOf('a;')); |
| 1928 } | 1947 } |
| 1929 | 1948 |
| 1930 test_import_prefix_none() { | 1949 test_import_prefix_none() { |
| 1931 serializeLibraryText('import "dart:async"; Future x;'); | 1950 serializeLibraryText('import "dart:async"; Future x;'); |
| 1932 // Second import is the implicit import of dart:core | 1951 // Second import is the implicit import of dart:core |
| 1933 expect(unlinkedUnits[0].imports, hasLength(2)); | 1952 expect(unlinkedUnits[0].imports, hasLength(2)); |
| 1934 expect(unlinkedUnits[0].imports[0].prefixReference, 0); | 1953 expect(unlinkedUnits[0].imports[0].prefixReference, 0); |
| 1935 } | 1954 } |
| 1936 | 1955 |
| 1937 test_import_prefix_not_in_public_namespace() { | 1956 test_import_prefix_not_in_public_namespace() { |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1998 | 2017 |
| 1999 test_import_uri() { | 2018 test_import_uri() { |
| 2000 String uriString = '"dart:async"'; | 2019 String uriString = '"dart:async"'; |
| 2001 String libraryText = 'import $uriString; Future x;'; | 2020 String libraryText = 'import $uriString; Future x;'; |
| 2002 serializeLibraryText(libraryText); | 2021 serializeLibraryText(libraryText); |
| 2003 // Second import is the implicit import of dart:core | 2022 // Second import is the implicit import of dart:core |
| 2004 expect(unlinkedUnits[0].imports, hasLength(2)); | 2023 expect(unlinkedUnits[0].imports, hasLength(2)); |
| 2005 expect(unlinkedUnits[0].imports[0].uri, 'dart:async'); | 2024 expect(unlinkedUnits[0].imports[0].uri, 'dart:async'); |
| 2006 } | 2025 } |
| 2007 | 2026 |
| 2027 test_library_name_with_spaces() { |
| 2028 String text = 'library foo . bar ;'; |
| 2029 serializeLibraryText(text); |
| 2030 expect(unlinkedUnits[0].libraryName, 'foo.bar'); |
| 2031 expect(unlinkedUnits[0].libraryNameOffset, text.indexOf('foo . bar')); |
| 2032 expect(unlinkedUnits[0].libraryNameLength, 'foo . bar'.length); |
| 2033 } |
| 2034 |
| 2008 test_library_named() { | 2035 test_library_named() { |
| 2009 String text = 'library foo.bar;'; | 2036 String text = 'library foo.bar;'; |
| 2010 serializeLibraryText(text); | 2037 serializeLibraryText(text); |
| 2011 expect(unlinkedUnits[0].libraryName, 'foo.bar'); | 2038 expect(unlinkedUnits[0].libraryName, 'foo.bar'); |
| 2039 expect(unlinkedUnits[0].libraryNameOffset, text.indexOf('foo.bar')); |
| 2040 expect(unlinkedUnits[0].libraryNameLength, 'foo.bar'.length); |
| 2012 } | 2041 } |
| 2013 | 2042 |
| 2014 test_library_unnamed() { | 2043 test_library_unnamed() { |
| 2015 serializeLibraryText(''); | 2044 serializeLibraryText(''); |
| 2016 expect(unlinkedUnits[0].libraryName, isEmpty); | 2045 expect(unlinkedUnits[0].libraryName, isEmpty); |
| 2046 expect(unlinkedUnits[0].libraryNameOffset, 0); |
| 2047 expect(unlinkedUnits[0].libraryNameLength, 0); |
| 2017 } | 2048 } |
| 2018 | 2049 |
| 2019 test_part_declaration() { | 2050 test_part_declaration() { |
| 2020 addNamedSource('/a.dart', 'part of my.lib;'); | 2051 addNamedSource('/a.dart', 'part of my.lib;'); |
| 2021 String text = 'library my.lib; part "a.dart"; // <-part'; | 2052 String text = 'library my.lib; part "a.dart"; // <-part'; |
| 2022 serializeLibraryText(text); | 2053 serializeLibraryText(text); |
| 2023 expect(unlinkedUnits[0].publicNamespace.parts, hasLength(1)); | 2054 expect(unlinkedUnits[0].publicNamespace.parts, hasLength(1)); |
| 2024 expect(unlinkedUnits[0].publicNamespace.parts[0], 'a.dart'); | 2055 expect(unlinkedUnits[0].publicNamespace.parts[0], 'a.dart'); |
| 2025 expect(unlinkedUnits[0].parts, hasLength(1)); | 2056 expect(unlinkedUnits[0].parts, hasLength(1)); |
| 2026 expect(unlinkedUnits[0].parts[0].uriOffset, text.indexOf('"a.dart"')); | 2057 expect(unlinkedUnits[0].parts[0].uriOffset, text.indexOf('"a.dart"')); |
| (...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2246 checkTypeRef(typeRef, absUri('/a.dart'), 'a.dart', 'C', | 2277 checkTypeRef(typeRef, absUri('/a.dart'), 'a.dart', 'C', |
| 2247 expectedTargetUnit: 2); | 2278 expectedTargetUnit: 2); |
| 2248 } | 2279 } |
| 2249 | 2280 |
| 2250 test_type_unresolved() { | 2281 test_type_unresolved() { |
| 2251 UnlinkedTypeRef typeRef = serializeTypeText('Foo', allowErrors: true); | 2282 UnlinkedTypeRef typeRef = serializeTypeText('Foo', allowErrors: true); |
| 2252 checkUnresolvedTypeRef(typeRef, null, 'Foo'); | 2283 checkUnresolvedTypeRef(typeRef, null, 'Foo'); |
| 2253 } | 2284 } |
| 2254 | 2285 |
| 2255 test_typedef_name() { | 2286 test_typedef_name() { |
| 2256 UnlinkedTypedef type = serializeTypedefText('typedef F();'); | 2287 String text = 'typedef F();'; |
| 2288 UnlinkedTypedef type = serializeTypedefText(text); |
| 2257 expect(type.name, 'F'); | 2289 expect(type.name, 'F'); |
| 2290 expect(type.nameOffset, text.indexOf('F')); |
| 2258 expect(unlinkedUnits[0].publicNamespace.names, hasLength(1)); | 2291 expect(unlinkedUnits[0].publicNamespace.names, hasLength(1)); |
| 2259 expect(unlinkedUnits[0].publicNamespace.names[0].kind, | 2292 expect(unlinkedUnits[0].publicNamespace.names[0].kind, |
| 2260 PrelinkedReferenceKind.typedef); | 2293 PrelinkedReferenceKind.typedef); |
| 2261 expect(unlinkedUnits[0].publicNamespace.names[0].name, 'F'); | 2294 expect(unlinkedUnits[0].publicNamespace.names[0].name, 'F'); |
| 2262 expect(unlinkedUnits[0].publicNamespace.names[0].numTypeParameters, 0); | 2295 expect(unlinkedUnits[0].publicNamespace.names[0].numTypeParameters, 0); |
| 2263 } | 2296 } |
| 2264 | 2297 |
| 2265 test_typedef_param_none() { | 2298 test_typedef_param_none() { |
| 2266 UnlinkedTypedef type = serializeTypedefText('typedef F();'); | 2299 UnlinkedTypedef type = serializeTypedefText('typedef F();'); |
| 2267 expect(type.parameters, isEmpty); | 2300 expect(type.parameters, isEmpty); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2316 } | 2349 } |
| 2317 | 2350 |
| 2318 test_typedef_type_param_order() { | 2351 test_typedef_type_param_order() { |
| 2319 UnlinkedTypedef type = serializeTypedefText('typedef F<T, U>();'); | 2352 UnlinkedTypedef type = serializeTypedefText('typedef F<T, U>();'); |
| 2320 expect(type.typeParameters, hasLength(2)); | 2353 expect(type.typeParameters, hasLength(2)); |
| 2321 expect(type.typeParameters[0].name, 'T'); | 2354 expect(type.typeParameters[0].name, 'T'); |
| 2322 expect(type.typeParameters[1].name, 'U'); | 2355 expect(type.typeParameters[1].name, 'U'); |
| 2323 } | 2356 } |
| 2324 | 2357 |
| 2325 test_variable() { | 2358 test_variable() { |
| 2326 serializeVariableText('int i;', variableName: 'i'); | 2359 String text = 'int i;'; |
| 2360 UnlinkedVariable v = serializeVariableText(text, variableName: 'i'); |
| 2361 expect(v.nameOffset, text.indexOf('i;')); |
| 2327 expect(findExecutable('i'), isNull); | 2362 expect(findExecutable('i'), isNull); |
| 2328 expect(findExecutable('i='), isNull); | 2363 expect(findExecutable('i='), isNull); |
| 2329 expect(unlinkedUnits[0].publicNamespace.names, hasLength(2)); | 2364 expect(unlinkedUnits[0].publicNamespace.names, hasLength(2)); |
| 2330 expect(unlinkedUnits[0].publicNamespace.names[0].kind, | 2365 expect(unlinkedUnits[0].publicNamespace.names[0].kind, |
| 2331 PrelinkedReferenceKind.other); | 2366 PrelinkedReferenceKind.other); |
| 2332 expect(unlinkedUnits[0].publicNamespace.names[0].name, 'i'); | 2367 expect(unlinkedUnits[0].publicNamespace.names[0].name, 'i'); |
| 2333 expect(unlinkedUnits[0].publicNamespace.names[0].numTypeParameters, 0); | 2368 expect(unlinkedUnits[0].publicNamespace.names[0].numTypeParameters, 0); |
| 2334 expect(unlinkedUnits[0].publicNamespace.names[1].kind, | 2369 expect(unlinkedUnits[0].publicNamespace.names[1].kind, |
| 2335 PrelinkedReferenceKind.other); | 2370 PrelinkedReferenceKind.other); |
| 2336 expect(unlinkedUnits[0].publicNamespace.names[1].name, 'i='); | 2371 expect(unlinkedUnits[0].publicNamespace.names[1].name, 'i='); |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2410 UnlinkedVariable variable = | 2445 UnlinkedVariable variable = |
| 2411 serializeVariableText('int i;', variableName: 'i'); | 2446 serializeVariableText('int i;', variableName: 'i'); |
| 2412 checkTypeRef(variable.type, 'dart:core', 'dart:core', 'int'); | 2447 checkTypeRef(variable.type, 'dart:core', 'dart:core', 'int'); |
| 2413 } | 2448 } |
| 2414 | 2449 |
| 2415 test_varible_private() { | 2450 test_varible_private() { |
| 2416 serializeVariableText('int _i;', variableName: '_i'); | 2451 serializeVariableText('int _i;', variableName: '_i'); |
| 2417 expect(unlinkedUnits[0].publicNamespace.names, isEmpty); | 2452 expect(unlinkedUnits[0].publicNamespace.names, isEmpty); |
| 2418 } | 2453 } |
| 2419 } | 2454 } |
| OLD | NEW |