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

Side by Side Diff: pkg/analyzer/test/src/summary/summary_common.dart

Issue 1948123003: Replace 'allowTypeParameters' with 'numTypeArguments'. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 7 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 | « no previous file | 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) 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_common; 5 library analyzer.test.src.summary.summary_common;
6 6
7 import 'package:analyzer/analyzer.dart'; 7 import 'package:analyzer/analyzer.dart';
8 import 'package:analyzer/dart/ast/ast.dart'; 8 import 'package:analyzer/dart/ast/ast.dart';
9 import 'package:analyzer/dart/element/element.dart'; 9 import 'package:analyzer/dart/element/element.dart';
10 import 'package:analyzer/src/dart/scanner/reader.dart'; 10 import 'package:analyzer/src/dart/scanner/reader.dart';
(...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after
566 expect(referenceResolution.unit, expectedTargetUnit); 566 expect(referenceResolution.unit, expectedTargetUnit);
567 expect(referenceResolution.numTypeParameters, numTypeParameters); 567 expect(referenceResolution.numTypeParameters, numTypeParameters);
568 expect(referenceResolution.localIndex, localIndex); 568 expect(referenceResolution.localIndex, localIndex);
569 return reference; 569 return reference;
570 } 570 }
571 571
572 /** 572 /**
573 * Verify that the given [typeRef] represents a reference to a type declared 573 * Verify that the given [typeRef] represents a reference to a type declared
574 * in a file reachable via [absoluteUri] and [relativeUri], having name 574 * in a file reachable via [absoluteUri] and [relativeUri], having name
575 * [expectedName]. If [expectedPrefix] is supplied, verify that the type is 575 * [expectedName]. If [expectedPrefix] is supplied, verify that the type is
576 * reached via the given prefix. If [allowTypeParameters] is true, allow the 576 * reached via the given prefix. If [allowTypeArguments] is true, allow the
Paul Berry 2016/05/05 17:25:01 This sentence isn't accurate--there's no "allowTyp
577 * type reference to supply type parameters. [expectedKind] is the kind of 577 * type reference to supply type arguments. [expectedKind] is the kind of
578 * object referenced. [linkedSourceUnit] and [unlinkedSourceUnit] refer 578 * object referenced. [linkedSourceUnit] and [unlinkedSourceUnit] refer
579 * to the compilation unit within which the [typeRef] appears; if not 579 * to the compilation unit within which the [typeRef] appears; if not
580 * specified they are assumed to refer to the defining compilation unit. 580 * specified they are assumed to refer to the defining compilation unit.
581 * [expectedTargetUnit] is the index of the compilation unit in which the 581 * [expectedTargetUnit] is the index of the compilation unit in which the
582 * target of the [typeRef] is expected to appear; if not specified it is 582 * target of the [typeRef] is expected to appear; if not specified it is
583 * assumed to be the defining compilation unit. [numTypeParameters] is the 583 * assumed to be the defining compilation unit. [numTypeParameters] is the
584 * number of type parameters of the thing being referred to. 584 * number of type parameters of the thing being referred to.
585 * 585 *
586 * TODO(scheglov) remove [checkAstDerivedDataOverride] once elements-based 586 * TODO(scheglov) remove [checkAstDerivedDataOverride] once elements-based
587 * serializer can record unresolved information. 587 * serializer can record unresolved information.
588 */ 588 */
589 void checkTypeRef(EntityRef typeRef, String absoluteUri, String relativeUri, 589 void checkTypeRef(EntityRef typeRef, String absoluteUri, String relativeUri,
590 String expectedName, 590 String expectedName,
591 {String expectedPrefix, 591 {String expectedPrefix,
592 List<_PrefixExpectation> prefixExpectations, 592 List<_PrefixExpectation> prefixExpectations,
593 bool allowTypeParameters: false, 593 int numTypeArguments: 0,
594 ReferenceKind expectedKind: ReferenceKind.classOrEnum, 594 ReferenceKind expectedKind: ReferenceKind.classOrEnum,
595 int expectedTargetUnit: 0, 595 int expectedTargetUnit: 0,
596 LinkedUnit linkedSourceUnit, 596 LinkedUnit linkedSourceUnit,
597 UnlinkedUnit unlinkedSourceUnit, 597 UnlinkedUnit unlinkedSourceUnit,
598 int numTypeParameters: 0, 598 int numTypeParameters: 0,
599 bool checkAstDerivedDataOverride: false, 599 bool checkAstDerivedDataOverride: false,
600 bool unresolvedHasName: false}) { 600 bool unresolvedHasName: false}) {
601 linkedSourceUnit ??= definingUnit; 601 linkedSourceUnit ??= definingUnit;
602 expect(typeRef, new isInstanceOf<EntityRef>()); 602 expect(typeRef, new isInstanceOf<EntityRef>());
603 expect(typeRef.paramReference, 0); 603 expect(typeRef.paramReference, 0);
604 int index = typeRef.reference; 604 int index = typeRef.reference;
605 if (!allowTypeParameters) { 605 expect(typeRef.typeArguments, hasLength(numTypeArguments));
606 expect(typeRef.typeArguments, isEmpty);
607 }
608 UnlinkedReference reference = checkReferenceIndex( 606 UnlinkedReference reference = checkReferenceIndex(
609 index, absoluteUri, relativeUri, expectedName, 607 index, absoluteUri, relativeUri, expectedName,
610 expectedKind: expectedKind, 608 expectedKind: expectedKind,
611 expectedTargetUnit: expectedTargetUnit, 609 expectedTargetUnit: expectedTargetUnit,
612 linkedSourceUnit: linkedSourceUnit, 610 linkedSourceUnit: linkedSourceUnit,
613 unlinkedSourceUnit: unlinkedSourceUnit, 611 unlinkedSourceUnit: unlinkedSourceUnit,
614 numTypeParameters: numTypeParameters, 612 numTypeParameters: numTypeParameters,
615 checkAstDerivedDataOverride: checkAstDerivedDataOverride, 613 checkAstDerivedDataOverride: checkAstDerivedDataOverride,
616 unresolvedHasName: unresolvedHasName); 614 unresolvedHasName: unresolvedHasName);
617 expect(reference, isNotNull, 615 expect(reference, isNotNull,
(...skipping 725 matching lines...) Expand 10 before | Expand all | Expand 10 after
1343 checkTypeRef(cls.supertype, null, null, 'D'); 1341 checkTypeRef(cls.supertype, null, null, 'D');
1344 expect(cls.hasNoSupertype, isFalse); 1342 expect(cls.hasNoSupertype, isFalse);
1345 } 1343 }
1346 1344
1347 test_class_type_param_bound() { 1345 test_class_type_param_bound() {
1348 UnlinkedClass cls = serializeClassText('class C<T extends List> {}'); 1346 UnlinkedClass cls = serializeClassText('class C<T extends List> {}');
1349 expect(cls.typeParameters, hasLength(1)); 1347 expect(cls.typeParameters, hasLength(1));
1350 expect(cls.typeParameters[0].name, 'T'); 1348 expect(cls.typeParameters[0].name, 'T');
1351 expect(cls.typeParameters[0].bound, isNotNull); 1349 expect(cls.typeParameters[0].bound, isNotNull);
1352 checkTypeRef(cls.typeParameters[0].bound, 'dart:core', 'dart:core', 'List', 1350 checkTypeRef(cls.typeParameters[0].bound, 'dart:core', 'dart:core', 'List',
1353 allowTypeParameters: true, numTypeParameters: 1); 1351 numTypeParameters: 1);
1354 } 1352 }
1355 1353
1356 test_class_type_param_f_bound() { 1354 test_class_type_param_f_bound() {
1357 UnlinkedClass cls = serializeClassText('class C<T, U extends List<T>> {}'); 1355 UnlinkedClass cls = serializeClassText('class C<T, U extends List<T>> {}');
1358 EntityRef typeArgument = cls.typeParameters[1].bound.typeArguments[0]; 1356 EntityRef typeArgument = cls.typeParameters[1].bound.typeArguments[0];
1359 checkParamTypeRef(typeArgument, 2); 1357 checkParamTypeRef(typeArgument, 2);
1360 } 1358 }
1361 1359
1362 test_class_type_param_f_bound_self_ref() { 1360 test_class_type_param_f_bound_self_ref() {
1363 UnlinkedClass cls = serializeClassText('class C<T, U extends List<U>> {}'); 1361 UnlinkedClass cls = serializeClassText('class C<T, U extends List<U>> {}');
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after
1758 0, 1756 0,
1759 0 1757 0
1760 ], referenceValidators: [ 1758 ], referenceValidators: [
1761 (EntityRef r) { 1759 (EntityRef r) {
1762 checkTypeRef(r, null, null, 'named', 1760 checkTypeRef(r, null, null, 'named',
1763 expectedKind: ReferenceKind.constructor, 1761 expectedKind: ReferenceKind.constructor,
1764 prefixExpectations: [ 1762 prefixExpectations: [
1765 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C', 1763 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C',
1766 numTypeParameters: 2) 1764 numTypeParameters: 2)
1767 ], 1765 ],
1768 allowTypeParameters: true); 1766 numTypeArguments: 2);
1769 checkTypeRef(r.typeArguments[0], 'dart:core', 'dart:core', 'int'); 1767 checkTypeRef(r.typeArguments[0], 'dart:core', 'dart:core', 'int');
1770 checkTypeRef(r.typeArguments[1], 'dart:core', 'dart:core', 'String'); 1768 checkTypeRef(r.typeArguments[1], 'dart:core', 'dart:core', 'String');
1771 } 1769 }
1772 ]); 1770 ]);
1773 } 1771 }
1774 1772
1775 test_constExpr_invokeConstructor_generic_named_imported() { 1773 test_constExpr_invokeConstructor_generic_named_imported() {
1776 addNamedSource( 1774 addNamedSource(
1777 '/a.dart', 1775 '/a.dart',
1778 ''' 1776 '''
(...skipping 13 matching lines...) Expand all
1792 ], referenceValidators: [ 1790 ], referenceValidators: [
1793 (EntityRef r) { 1791 (EntityRef r) {
1794 checkTypeRef(r, null, null, 'named', 1792 checkTypeRef(r, null, null, 'named',
1795 expectedKind: ReferenceKind.constructor, 1793 expectedKind: ReferenceKind.constructor,
1796 prefixExpectations: [ 1794 prefixExpectations: [
1797 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C', 1795 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C',
1798 absoluteUri: absUri('/a.dart'), 1796 absoluteUri: absUri('/a.dart'),
1799 relativeUri: 'a.dart', 1797 relativeUri: 'a.dart',
1800 numTypeParameters: 2) 1798 numTypeParameters: 2)
1801 ], 1799 ],
1802 allowTypeParameters: true); 1800 numTypeArguments: 2);
1803 checkTypeRef(r.typeArguments[0], 'dart:core', 'dart:core', 'int'); 1801 checkTypeRef(r.typeArguments[0], 'dart:core', 'dart:core', 'int');
1804 checkTypeRef(r.typeArguments[1], 'dart:core', 'dart:core', 'String'); 1802 checkTypeRef(r.typeArguments[1], 'dart:core', 'dart:core', 'String');
1805 } 1803 }
1806 ]); 1804 ]);
1807 } 1805 }
1808 1806
1809 test_constExpr_invokeConstructor_generic_named_imported_withPrefix() { 1807 test_constExpr_invokeConstructor_generic_named_imported_withPrefix() {
1810 addNamedSource( 1808 addNamedSource(
1811 '/a.dart', 1809 '/a.dart',
1812 ''' 1810 '''
(...skipping 14 matching lines...) Expand all
1827 (EntityRef r) { 1825 (EntityRef r) {
1828 checkTypeRef(r, null, null, 'named', 1826 checkTypeRef(r, null, null, 'named',
1829 expectedKind: ReferenceKind.constructor, 1827 expectedKind: ReferenceKind.constructor,
1830 prefixExpectations: [ 1828 prefixExpectations: [
1831 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C', 1829 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C',
1832 absoluteUri: absUri('/a.dart'), 1830 absoluteUri: absUri('/a.dart'),
1833 relativeUri: 'a.dart', 1831 relativeUri: 'a.dart',
1834 numTypeParameters: 2), 1832 numTypeParameters: 2),
1835 new _PrefixExpectation(ReferenceKind.prefix, 'p') 1833 new _PrefixExpectation(ReferenceKind.prefix, 'p')
1836 ], 1834 ],
1837 allowTypeParameters: true); 1835 numTypeArguments: 2);
1838 checkTypeRef(r.typeArguments[0], 'dart:core', 'dart:core', 'int'); 1836 checkTypeRef(r.typeArguments[0], 'dart:core', 'dart:core', 'int');
1839 checkTypeRef(r.typeArguments[1], 'dart:core', 'dart:core', 'String'); 1837 checkTypeRef(r.typeArguments[1], 'dart:core', 'dart:core', 'String');
1840 } 1838 }
1841 ]); 1839 ]);
1842 } 1840 }
1843 1841
1844 test_constExpr_invokeConstructor_generic_unnamed() { 1842 test_constExpr_invokeConstructor_generic_unnamed() {
1845 UnlinkedVariable variable = serializeVariableText(''' 1843 UnlinkedVariable variable = serializeVariableText('''
1846 class C<K, V> { 1844 class C<K, V> {
1847 const C(); 1845 const C();
1848 } 1846 }
1849 const v = const C<int, String>(); 1847 const v = const C<int, String>();
1850 '''); 1848 ''');
1851 _assertUnlinkedConst(variable.constExpr, operators: [ 1849 _assertUnlinkedConst(variable.constExpr, operators: [
1852 UnlinkedConstOperation.invokeConstructor, 1850 UnlinkedConstOperation.invokeConstructor,
1853 ], ints: [ 1851 ], ints: [
1854 0, 1852 0,
1855 0 1853 0
1856 ], referenceValidators: [ 1854 ], referenceValidators: [
1857 (EntityRef r) { 1855 (EntityRef r) {
1858 checkTypeRef(r, null, null, 'C', 1856 checkTypeRef(r, null, null, 'C',
1859 expectedKind: ReferenceKind.classOrEnum, 1857 expectedKind: ReferenceKind.classOrEnum,
1860 numTypeParameters: 2, 1858 numTypeParameters: 2,
1861 allowTypeParameters: true); 1859 numTypeArguments: 2);
1862 checkTypeRef(r.typeArguments[0], 'dart:core', 'dart:core', 'int'); 1860 checkTypeRef(r.typeArguments[0], 'dart:core', 'dart:core', 'int');
1863 checkTypeRef(r.typeArguments[1], 'dart:core', 'dart:core', 'String'); 1861 checkTypeRef(r.typeArguments[1], 'dart:core', 'dart:core', 'String');
1864 } 1862 }
1865 ]); 1863 ]);
1866 } 1864 }
1867 1865
1868 test_constExpr_invokeConstructor_generic_unnamed_imported() { 1866 test_constExpr_invokeConstructor_generic_unnamed_imported() {
1869 addNamedSource( 1867 addNamedSource(
1870 '/a.dart', 1868 '/a.dart',
1871 ''' 1869 '''
1872 class C<K, V> { 1870 class C<K, V> {
1873 const C(); 1871 const C();
1874 } 1872 }
1875 '''); 1873 ''');
1876 UnlinkedVariable variable = serializeVariableText(''' 1874 UnlinkedVariable variable = serializeVariableText('''
1877 import 'a.dart'; 1875 import 'a.dart';
1878 const v = const C<int, String>(); 1876 const v = const C<int, String>();
1879 '''); 1877 ''');
1880 _assertUnlinkedConst(variable.constExpr, operators: [ 1878 _assertUnlinkedConst(variable.constExpr, operators: [
1881 UnlinkedConstOperation.invokeConstructor, 1879 UnlinkedConstOperation.invokeConstructor,
1882 ], ints: [ 1880 ], ints: [
1883 0, 1881 0,
1884 0 1882 0
1885 ], referenceValidators: [ 1883 ], referenceValidators: [
1886 (EntityRef r) { 1884 (EntityRef r) {
1887 checkTypeRef(r, absUri('/a.dart'), 'a.dart', 'C', 1885 checkTypeRef(r, absUri('/a.dart'), 'a.dart', 'C',
1888 expectedKind: ReferenceKind.classOrEnum, 1886 expectedKind: ReferenceKind.classOrEnum,
1889 numTypeParameters: 2, 1887 numTypeParameters: 2,
1890 allowTypeParameters: true); 1888 numTypeArguments: 2);
1891 checkTypeRef(r.typeArguments[0], 'dart:core', 'dart:core', 'int'); 1889 checkTypeRef(r.typeArguments[0], 'dart:core', 'dart:core', 'int');
1892 checkTypeRef(r.typeArguments[1], 'dart:core', 'dart:core', 'String'); 1890 checkTypeRef(r.typeArguments[1], 'dart:core', 'dart:core', 'String');
1893 } 1891 }
1894 ]); 1892 ]);
1895 } 1893 }
1896 1894
1897 test_constExpr_invokeConstructor_generic_unnamed_imported_withPrefix() { 1895 test_constExpr_invokeConstructor_generic_unnamed_imported_withPrefix() {
1898 addNamedSource( 1896 addNamedSource(
1899 '/a.dart', 1897 '/a.dart',
1900 ''' 1898 '''
1901 class C<K, V> { 1899 class C<K, V> {
1902 const C(); 1900 const C();
1903 } 1901 }
1904 '''); 1902 ''');
1905 UnlinkedVariable variable = serializeVariableText(''' 1903 UnlinkedVariable variable = serializeVariableText('''
1906 import 'a.dart' as p; 1904 import 'a.dart' as p;
1907 const v = const p.C<int, String>(); 1905 const v = const p.C<int, String>();
1908 '''); 1906 ''');
1909 _assertUnlinkedConst(variable.constExpr, operators: [ 1907 _assertUnlinkedConst(variable.constExpr, operators: [
1910 UnlinkedConstOperation.invokeConstructor, 1908 UnlinkedConstOperation.invokeConstructor,
1911 ], ints: [ 1909 ], ints: [
1912 0, 1910 0,
1913 0 1911 0
1914 ], referenceValidators: [ 1912 ], referenceValidators: [
1915 (EntityRef r) { 1913 (EntityRef r) {
1916 checkTypeRef(r, absUri('/a.dart'), 'a.dart', 'C', 1914 checkTypeRef(r, absUri('/a.dart'), 'a.dart', 'C',
1917 expectedKind: ReferenceKind.classOrEnum, 1915 expectedKind: ReferenceKind.classOrEnum,
1918 numTypeParameters: 2, 1916 numTypeParameters: 2,
1919 allowTypeParameters: true, 1917 numTypeArguments: 2,
1920 prefixExpectations: [ 1918 prefixExpectations: [
1921 new _PrefixExpectation(ReferenceKind.prefix, 'p') 1919 new _PrefixExpectation(ReferenceKind.prefix, 'p')
1922 ]); 1920 ]);
1923 checkTypeRef(r.typeArguments[0], 'dart:core', 'dart:core', 'int'); 1921 checkTypeRef(r.typeArguments[0], 'dart:core', 'dart:core', 'int');
1924 checkTypeRef(r.typeArguments[1], 'dart:core', 'dart:core', 'String'); 1922 checkTypeRef(r.typeArguments[1], 'dart:core', 'dart:core', 'String');
1925 } 1923 }
1926 ]); 1924 ]);
1927 } 1925 }
1928 1926
1929 test_constExpr_invokeConstructor_named() { 1927 test_constExpr_invokeConstructor_named() {
(...skipping 1800 matching lines...) Expand 10 before | Expand all | Expand 10 after
3730 serializeClassText(text, className: 'C').executables[0]; 3728 serializeClassText(text, className: 'C').executables[0];
3731 expect(executable.isRedirectedConstructor, isTrue); 3729 expect(executable.isRedirectedConstructor, isTrue);
3732 expect(executable.isFactory, isTrue); 3730 expect(executable.isFactory, isTrue);
3733 expect(executable.redirectedConstructorName, isEmpty); 3731 expect(executable.redirectedConstructorName, isEmpty);
3734 checkTypeRef(executable.redirectedConstructor, null, null, 'named', 3732 checkTypeRef(executable.redirectedConstructor, null, null, 'named',
3735 expectedKind: ReferenceKind.constructor, 3733 expectedKind: ReferenceKind.constructor,
3736 prefixExpectations: [ 3734 prefixExpectations: [
3737 new _PrefixExpectation(ReferenceKind.classOrEnum, 'D', 3735 new _PrefixExpectation(ReferenceKind.classOrEnum, 'D',
3738 numTypeParameters: 2) 3736 numTypeParameters: 2)
3739 ], 3737 ],
3740 allowTypeParameters: true); 3738 numTypeArguments: 2);
3741 checkParamTypeRef(executable.redirectedConstructor.typeArguments[0], 1); 3739 checkParamTypeRef(executable.redirectedConstructor.typeArguments[0], 1);
3742 checkParamTypeRef(executable.redirectedConstructor.typeArguments[1], 2); 3740 checkParamTypeRef(executable.redirectedConstructor.typeArguments[1], 2);
3743 } 3741 }
3744 3742
3745 test_constructor_redirected_factory_named_imported() { 3743 test_constructor_redirected_factory_named_imported() {
3746 addNamedSource( 3744 addNamedSource(
3747 '/foo.dart', 3745 '/foo.dart',
3748 ''' 3746 '''
3749 import 'test.dart'; 3747 import 'test.dart';
3750 class D extends C { 3748 class D extends C {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
3793 expect(executable.isFactory, isTrue); 3791 expect(executable.isFactory, isTrue);
3794 expect(executable.redirectedConstructorName, isEmpty); 3792 expect(executable.redirectedConstructorName, isEmpty);
3795 checkTypeRef(executable.redirectedConstructor, null, null, 'named', 3793 checkTypeRef(executable.redirectedConstructor, null, null, 'named',
3796 expectedKind: ReferenceKind.constructor, 3794 expectedKind: ReferenceKind.constructor,
3797 prefixExpectations: [ 3795 prefixExpectations: [
3798 new _PrefixExpectation(ReferenceKind.classOrEnum, 'D', 3796 new _PrefixExpectation(ReferenceKind.classOrEnum, 'D',
3799 numTypeParameters: 2, 3797 numTypeParameters: 2,
3800 absoluteUri: absUri('/foo.dart'), 3798 absoluteUri: absUri('/foo.dart'),
3801 relativeUri: 'foo.dart') 3799 relativeUri: 'foo.dart')
3802 ], 3800 ],
3803 allowTypeParameters: true); 3801 numTypeArguments: 2);
3804 checkParamTypeRef(executable.redirectedConstructor.typeArguments[0], 1); 3802 checkParamTypeRef(executable.redirectedConstructor.typeArguments[0], 1);
3805 checkParamTypeRef(executable.redirectedConstructor.typeArguments[1], 2); 3803 checkParamTypeRef(executable.redirectedConstructor.typeArguments[1], 2);
3806 } 3804 }
3807 3805
3808 test_constructor_redirected_factory_named_prefixed() { 3806 test_constructor_redirected_factory_named_prefixed() {
3809 addNamedSource( 3807 addNamedSource(
3810 '/foo.dart', 3808 '/foo.dart',
3811 ''' 3809 '''
3812 import 'test.dart'; 3810 import 'test.dart';
3813 class D extends C { 3811 class D extends C {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
3858 expect(executable.redirectedConstructorName, isEmpty); 3856 expect(executable.redirectedConstructorName, isEmpty);
3859 checkTypeRef(executable.redirectedConstructor, null, null, 'named', 3857 checkTypeRef(executable.redirectedConstructor, null, null, 'named',
3860 expectedKind: ReferenceKind.constructor, 3858 expectedKind: ReferenceKind.constructor,
3861 prefixExpectations: [ 3859 prefixExpectations: [
3862 new _PrefixExpectation(ReferenceKind.classOrEnum, 'D', 3860 new _PrefixExpectation(ReferenceKind.classOrEnum, 'D',
3863 numTypeParameters: 2, 3861 numTypeParameters: 2,
3864 absoluteUri: absUri('/foo.dart'), 3862 absoluteUri: absUri('/foo.dart'),
3865 relativeUri: 'foo.dart'), 3863 relativeUri: 'foo.dart'),
3866 new _PrefixExpectation(ReferenceKind.prefix, 'foo') 3864 new _PrefixExpectation(ReferenceKind.prefix, 'foo')
3867 ], 3865 ],
3868 allowTypeParameters: true); 3866 numTypeArguments: 2);
3869 checkParamTypeRef(executable.redirectedConstructor.typeArguments[0], 1); 3867 checkParamTypeRef(executable.redirectedConstructor.typeArguments[0], 1);
3870 checkParamTypeRef(executable.redirectedConstructor.typeArguments[1], 2); 3868 checkParamTypeRef(executable.redirectedConstructor.typeArguments[1], 2);
3871 } 3869 }
3872 3870
3873 test_constructor_redirected_factory_unnamed() { 3871 test_constructor_redirected_factory_unnamed() {
3874 String text = ''' 3872 String text = '''
3875 class C { 3873 class C {
3876 factory C() = D; 3874 factory C() = D;
3877 C._(); 3875 C._();
3878 } 3876 }
(...skipping 18 matching lines...) Expand all
3897 class D<T, U> extends C<U, T> { 3895 class D<T, U> extends C<U, T> {
3898 D() : super._(); 3896 D() : super._();
3899 } 3897 }
3900 '''; 3898 ''';
3901 UnlinkedExecutable executable = 3899 UnlinkedExecutable executable =
3902 serializeClassText(text, className: 'C').executables[0]; 3900 serializeClassText(text, className: 'C').executables[0];
3903 expect(executable.isRedirectedConstructor, isTrue); 3901 expect(executable.isRedirectedConstructor, isTrue);
3904 expect(executable.isFactory, isTrue); 3902 expect(executable.isFactory, isTrue);
3905 expect(executable.redirectedConstructorName, isEmpty); 3903 expect(executable.redirectedConstructorName, isEmpty);
3906 checkTypeRef(executable.redirectedConstructor, null, null, 'D', 3904 checkTypeRef(executable.redirectedConstructor, null, null, 'D',
3907 allowTypeParameters: true, numTypeParameters: 2); 3905 numTypeParameters: 2, numTypeArguments: 2);
3908 checkParamTypeRef(executable.redirectedConstructor.typeArguments[0], 1); 3906 checkParamTypeRef(executable.redirectedConstructor.typeArguments[0], 1);
3909 checkParamTypeRef(executable.redirectedConstructor.typeArguments[1], 2); 3907 checkParamTypeRef(executable.redirectedConstructor.typeArguments[1], 2);
3910 } 3908 }
3911 3909
3912 test_constructor_redirected_factory_unnamed_imported() { 3910 test_constructor_redirected_factory_unnamed_imported() {
3913 addNamedSource( 3911 addNamedSource(
3914 '/foo.dart', 3912 '/foo.dart',
3915 ''' 3913 '''
3916 import 'test.dart'; 3914 import 'test.dart';
3917 class D extends C { 3915 class D extends C {
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
3950 C._(); 3948 C._();
3951 } 3949 }
3952 '''; 3950 ''';
3953 UnlinkedExecutable executable = 3951 UnlinkedExecutable executable =
3954 serializeClassText(text, className: 'C').executables[0]; 3952 serializeClassText(text, className: 'C').executables[0];
3955 expect(executable.isRedirectedConstructor, isTrue); 3953 expect(executable.isRedirectedConstructor, isTrue);
3956 expect(executable.isFactory, isTrue); 3954 expect(executable.isFactory, isTrue);
3957 expect(executable.redirectedConstructorName, isEmpty); 3955 expect(executable.redirectedConstructorName, isEmpty);
3958 checkTypeRef( 3956 checkTypeRef(
3959 executable.redirectedConstructor, absUri('/foo.dart'), 'foo.dart', 'D', 3957 executable.redirectedConstructor, absUri('/foo.dart'), 'foo.dart', 'D',
3960 allowTypeParameters: true, numTypeParameters: 2); 3958 numTypeParameters: 2, numTypeArguments: 2);
3961 checkParamTypeRef(executable.redirectedConstructor.typeArguments[0], 1); 3959 checkParamTypeRef(executable.redirectedConstructor.typeArguments[0], 1);
3962 checkParamTypeRef(executable.redirectedConstructor.typeArguments[1], 2); 3960 checkParamTypeRef(executable.redirectedConstructor.typeArguments[1], 2);
3963 } 3961 }
3964 3962
3965 test_constructor_redirected_factory_unnamed_prefixed() { 3963 test_constructor_redirected_factory_unnamed_prefixed() {
3966 addNamedSource( 3964 addNamedSource(
3967 '/foo.dart', 3965 '/foo.dart',
3968 ''' 3966 '''
3969 import 'test.dart'; 3967 import 'test.dart';
3970 class D extends C { 3968 class D extends C {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
4004 C._(); 4002 C._();
4005 } 4003 }
4006 '''; 4004 ''';
4007 UnlinkedExecutable executable = 4005 UnlinkedExecutable executable =
4008 serializeClassText(text, className: 'C').executables[0]; 4006 serializeClassText(text, className: 'C').executables[0];
4009 expect(executable.isRedirectedConstructor, isTrue); 4007 expect(executable.isRedirectedConstructor, isTrue);
4010 expect(executable.isFactory, isTrue); 4008 expect(executable.isFactory, isTrue);
4011 expect(executable.redirectedConstructorName, isEmpty); 4009 expect(executable.redirectedConstructorName, isEmpty);
4012 checkTypeRef( 4010 checkTypeRef(
4013 executable.redirectedConstructor, absUri('/foo.dart'), 'foo.dart', 'D', 4011 executable.redirectedConstructor, absUri('/foo.dart'), 'foo.dart', 'D',
4014 allowTypeParameters: true, numTypeParameters: 2, expectedPrefix: 'foo'); 4012 numTypeParameters: 2, expectedPrefix: 'foo', numTypeArguments: 2);
4015 checkParamTypeRef(executable.redirectedConstructor.typeArguments[0], 1); 4013 checkParamTypeRef(executable.redirectedConstructor.typeArguments[0], 1);
4016 checkParamTypeRef(executable.redirectedConstructor.typeArguments[1], 2); 4014 checkParamTypeRef(executable.redirectedConstructor.typeArguments[1], 2);
4017 } 4015 }
4018 4016
4019 test_constructor_redirected_thisInvocation_named() { 4017 test_constructor_redirected_thisInvocation_named() {
4020 String text = ''' 4018 String text = '''
4021 class C { 4019 class C {
4022 C() : this.named(); 4020 C() : this.named();
4023 C.named(); 4021 C.named();
4024 } 4022 }
(...skipping 4806 matching lines...) Expand 10 before | Expand all | Expand 10 after
8831 expect(propagatedType.syntheticParams, hasLength(2)); 8829 expect(propagatedType.syntheticParams, hasLength(2));
8832 checkTypeRef(propagatedType.syntheticParams[0].type, 'dart:core', 8830 checkTypeRef(propagatedType.syntheticParams[0].type, 'dart:core',
8833 'dart:core', 'int'); 8831 'dart:core', 'int');
8834 checkTypeRef(propagatedType.syntheticParams[1].type, 'dart:core', 8832 checkTypeRef(propagatedType.syntheticParams[1].type, 'dart:core',
8835 'dart:core', 'String'); 8833 'dart:core', 'String');
8836 } 8834 }
8837 8835
8838 test_type_arguments_explicit() { 8836 test_type_arguments_explicit() {
8839 EntityRef typeRef = serializeTypeText('List<int>'); 8837 EntityRef typeRef = serializeTypeText('List<int>');
8840 checkTypeRef(typeRef, 'dart:core', 'dart:core', 'List', 8838 checkTypeRef(typeRef, 'dart:core', 'dart:core', 'List',
8841 allowTypeParameters: true, numTypeParameters: 1); 8839 numTypeParameters: 1, numTypeArguments: 1);
8842 expect(typeRef.typeArguments, hasLength(1)); 8840 expect(typeRef.typeArguments, hasLength(1));
8843 checkTypeRef(typeRef.typeArguments[0], 'dart:core', 'dart:core', 'int'); 8841 checkTypeRef(typeRef.typeArguments[0], 'dart:core', 'dart:core', 'int');
8844 } 8842 }
8845 8843
8846 test_type_arguments_explicit_dynamic() { 8844 test_type_arguments_explicit_dynamic() {
8847 EntityRef typeRef = serializeTypeText('List<dynamic>'); 8845 EntityRef typeRef = serializeTypeText('List<dynamic>');
8848 checkTypeRef(typeRef, 'dart:core', 'dart:core', 'List', 8846 checkTypeRef(typeRef, 'dart:core', 'dart:core', 'List',
8849 allowTypeParameters: true, numTypeParameters: 1); 8847 numTypeParameters: 1);
8850 expect(typeRef.typeArguments, isEmpty); 8848 expect(typeRef.typeArguments, isEmpty);
8851 } 8849 }
8852 8850
8853 test_type_arguments_explicit_dynamic_dynamic() { 8851 test_type_arguments_explicit_dynamic_dynamic() {
8854 EntityRef typeRef = serializeTypeText('Map<dynamic, dynamic>'); 8852 EntityRef typeRef = serializeTypeText('Map<dynamic, dynamic>');
8855 checkTypeRef(typeRef, 'dart:core', 'dart:core', 'Map', 8853 checkTypeRef(typeRef, 'dart:core', 'dart:core', 'Map',
8856 allowTypeParameters: true, numTypeParameters: 2); 8854 numTypeParameters: 2);
8857 // Trailing type arguments of type `dynamic` are omitted. 8855 // Trailing type arguments of type `dynamic` are omitted.
8858 expect(typeRef.typeArguments, isEmpty); 8856 expect(typeRef.typeArguments, isEmpty);
8859 } 8857 }
8860 8858
8861 test_type_arguments_explicit_dynamic_int() { 8859 test_type_arguments_explicit_dynamic_int() {
8862 EntityRef typeRef = serializeTypeText('Map<dynamic, int>'); 8860 EntityRef typeRef = serializeTypeText('Map<dynamic, int>');
8863 checkTypeRef(typeRef, 'dart:core', 'dart:core', 'Map', 8861 checkTypeRef(typeRef, 'dart:core', 'dart:core', 'Map',
8864 allowTypeParameters: true, numTypeParameters: 2); 8862 numTypeParameters: 2, numTypeArguments: 2);
8865 // Leading type arguments of type `dynamic` are not omitted. 8863 // Leading type arguments of type `dynamic` are not omitted.
8866 expect(typeRef.typeArguments.length, 2); 8864 expect(typeRef.typeArguments.length, 2);
8867 checkDynamicTypeRef(typeRef.typeArguments[0]); 8865 checkDynamicTypeRef(typeRef.typeArguments[0]);
8868 checkTypeRef(typeRef.typeArguments[1], 'dart:core', 'dart:core', 'int'); 8866 checkTypeRef(typeRef.typeArguments[1], 'dart:core', 'dart:core', 'int');
8869 } 8867 }
8870 8868
8871 test_type_arguments_explicit_dynamic_typedef() { 8869 test_type_arguments_explicit_dynamic_typedef() {
8872 EntityRef typeRef = 8870 EntityRef typeRef =
8873 serializeTypeText('F<dynamic>', otherDeclarations: 'typedef T F<T>();'); 8871 serializeTypeText('F<dynamic>', otherDeclarations: 'typedef T F<T>();');
8874 checkTypeRef(typeRef, null, null, 'F', 8872 checkTypeRef(typeRef, null, null, 'F',
8875 allowTypeParameters: true,
8876 expectedKind: ReferenceKind.typedef, 8873 expectedKind: ReferenceKind.typedef,
8877 numTypeParameters: 1); 8874 numTypeParameters: 1,
8875 numTypeArguments: 0);
8878 expect(typeRef.typeArguments, isEmpty); 8876 expect(typeRef.typeArguments, isEmpty);
8879 } 8877 }
8880 8878
8881 test_type_arguments_explicit_String_dynamic() { 8879 test_type_arguments_explicit_String_dynamic() {
8882 EntityRef typeRef = serializeTypeText('Map<String, dynamic>'); 8880 EntityRef typeRef = serializeTypeText('Map<String, dynamic>');
8883 checkTypeRef(typeRef, 'dart:core', 'dart:core', 'Map', 8881 checkTypeRef(typeRef, 'dart:core', 'dart:core', 'Map',
8884 allowTypeParameters: true, numTypeParameters: 2); 8882 numTypeParameters: 2, numTypeArguments: 1);
8885 // Trailing type arguments of type `dynamic` are omitted. 8883 // Trailing type arguments of type `dynamic` are omitted.
8886 expect(typeRef.typeArguments.length, 1); 8884 expect(typeRef.typeArguments.length, 1);
8887 checkTypeRef(typeRef.typeArguments[0], 'dart:core', 'dart:core', 'String'); 8885 checkTypeRef(typeRef.typeArguments[0], 'dart:core', 'dart:core', 'String');
8888 } 8886 }
8889 8887
8890 test_type_arguments_explicit_String_int() { 8888 test_type_arguments_explicit_String_int() {
8891 EntityRef typeRef = serializeTypeText('Map<String, int>'); 8889 EntityRef typeRef = serializeTypeText('Map<String, int>');
8892 checkTypeRef(typeRef, 'dart:core', 'dart:core', 'Map', 8890 checkTypeRef(typeRef, 'dart:core', 'dart:core', 'Map',
8893 allowTypeParameters: true, numTypeParameters: 2); 8891 numTypeParameters: 2, numTypeArguments: 2);
8894 expect(typeRef.typeArguments.length, 2); 8892 expect(typeRef.typeArguments.length, 2);
8895 checkTypeRef(typeRef.typeArguments[0], 'dart:core', 'dart:core', 'String'); 8893 checkTypeRef(typeRef.typeArguments[0], 'dart:core', 'dart:core', 'String');
8896 checkTypeRef(typeRef.typeArguments[1], 'dart:core', 'dart:core', 'int'); 8894 checkTypeRef(typeRef.typeArguments[1], 'dart:core', 'dart:core', 'int');
8897 } 8895 }
8898 8896
8899 test_type_arguments_explicit_typedef() { 8897 test_type_arguments_explicit_typedef() {
8900 EntityRef typeRef = 8898 EntityRef typeRef =
8901 serializeTypeText('F<int>', otherDeclarations: 'typedef T F<T>();'); 8899 serializeTypeText('F<int>', otherDeclarations: 'typedef T F<T>();');
8902 checkTypeRef(typeRef, null, null, 'F', 8900 checkTypeRef(typeRef, null, null, 'F',
8903 allowTypeParameters: true,
8904 expectedKind: ReferenceKind.typedef, 8901 expectedKind: ReferenceKind.typedef,
8905 numTypeParameters: 1); 8902 numTypeParameters: 1,
8903 numTypeArguments: 1);
8906 expect(typeRef.typeArguments, hasLength(1)); 8904 expect(typeRef.typeArguments, hasLength(1));
8907 checkTypeRef(typeRef.typeArguments[0], 'dart:core', 'dart:core', 'int'); 8905 checkTypeRef(typeRef.typeArguments[0], 'dart:core', 'dart:core', 'int');
8908 } 8906 }
8909 8907
8910 test_type_arguments_implicit() { 8908 test_type_arguments_implicit() {
8911 EntityRef typeRef = serializeTypeText('List'); 8909 EntityRef typeRef = serializeTypeText('List');
8912 checkTypeRef(typeRef, 'dart:core', 'dart:core', 'List', 8910 checkTypeRef(typeRef, 'dart:core', 'dart:core', 'List',
8913 allowTypeParameters: true, numTypeParameters: 1); 8911 numTypeParameters: 1);
8914 expect(typeRef.typeArguments, isEmpty); 8912 expect(typeRef.typeArguments, isEmpty);
8915 } 8913 }
8916 8914
8917 test_type_arguments_implicit_typedef() { 8915 test_type_arguments_implicit_typedef() {
8918 EntityRef typeRef = 8916 EntityRef typeRef =
8919 serializeTypeText('F', otherDeclarations: 'typedef T F<T>();'); 8917 serializeTypeText('F', otherDeclarations: 'typedef T F<T>();');
8920 checkTypeRef(typeRef, null, null, 'F', 8918 checkTypeRef(typeRef, null, null, 'F',
8921 allowTypeParameters: true,
8922 expectedKind: ReferenceKind.typedef, 8919 expectedKind: ReferenceKind.typedef,
8923 numTypeParameters: 1); 8920 numTypeParameters: 1,
8921 numTypeArguments: 0);
8924 expect(typeRef.typeArguments, isEmpty); 8922 expect(typeRef.typeArguments, isEmpty);
8925 } 8923 }
8926 8924
8927 test_type_arguments_order() { 8925 test_type_arguments_order() {
8928 EntityRef typeRef = serializeTypeText('Map<int, Object>'); 8926 EntityRef typeRef = serializeTypeText('Map<int, Object>');
8929 checkTypeRef(typeRef, 'dart:core', 'dart:core', 'Map', 8927 checkTypeRef(typeRef, 'dart:core', 'dart:core', 'Map',
8930 allowTypeParameters: true, numTypeParameters: 2); 8928 numTypeParameters: 2, numTypeArguments: 2);
8931 expect(typeRef.typeArguments, hasLength(2)); 8929 expect(typeRef.typeArguments, hasLength(2));
8932 checkTypeRef(typeRef.typeArguments[0], 'dart:core', 'dart:core', 'int'); 8930 checkTypeRef(typeRef.typeArguments[0], 'dart:core', 'dart:core', 'int');
8933 checkTypeRef(typeRef.typeArguments[1], 'dart:core', 'dart:core', 'Object'); 8931 checkTypeRef(typeRef.typeArguments[1], 'dart:core', 'dart:core', 'Object');
8934 } 8932 }
8935 8933
8936 test_type_dynamic() { 8934 test_type_dynamic() {
8937 checkDynamicTypeRef(serializeTypeText('dynamic')); 8935 checkDynamicTypeRef(serializeTypeText('dynamic'));
8938 } 8936 }
8939 8937
8940 test_type_param_codeRange() { 8938 test_type_param_codeRange() {
(...skipping 811 matching lines...) Expand 10 before | Expand all | Expand 10 after
9752 class _PrefixExpectation { 9750 class _PrefixExpectation {
9753 final ReferenceKind kind; 9751 final ReferenceKind kind;
9754 final String name; 9752 final String name;
9755 final String absoluteUri; 9753 final String absoluteUri;
9756 final String relativeUri; 9754 final String relativeUri;
9757 final int numTypeParameters; 9755 final int numTypeParameters;
9758 9756
9759 _PrefixExpectation(this.kind, this.name, 9757 _PrefixExpectation(this.kind, this.name,
9760 {this.absoluteUri, this.relativeUri, this.numTypeParameters: 0}); 9758 {this.absoluteUri, this.relativeUri, this.numTypeParameters: 0});
9761 } 9759 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698