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_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 3684 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3695 class C { | 3695 class C { |
3696 C([this.x() = foo]); | 3696 C([this.x() = foo]); |
3697 final x; | 3697 final x; |
3698 } | 3698 } |
3699 int foo() => 0; | 3699 int foo() => 0; |
3700 ''').executables); | 3700 ''').executables); |
3701 UnlinkedParam param = executable.parameters[0]; | 3701 UnlinkedParam param = executable.parameters[0]; |
3702 expect(param.isFunctionTyped, isTrue); | 3702 expect(param.isFunctionTyped, isTrue); |
3703 expect(param.kind, UnlinkedParamKind.positional); | 3703 expect(param.kind, UnlinkedParamKind.positional); |
3704 expect(param.defaultValueCode, 'foo'); | 3704 expect(param.defaultValueCode, 'foo'); |
3705 _assertUnlinkedConst(param.defaultValue, operators: [ | 3705 _assertUnlinkedConst(param.initializer.bodyExpr, operators: [ |
3706 UnlinkedConstOperation.pushReference | 3706 UnlinkedConstOperation.pushReference |
3707 ], referenceValidators: [ | 3707 ], referenceValidators: [ |
3708 (EntityRef r) => checkTypeRef(r, null, null, 'foo', | 3708 (EntityRef r) => checkTypeRef(r, null, null, 'foo', |
3709 expectedKind: ReferenceKind.topLevelFunction) | 3709 expectedKind: ReferenceKind.topLevelFunction) |
3710 ]); | 3710 ]); |
3711 } | 3711 } |
3712 | 3712 |
3713 test_constructor_initializing_formal_implicit_type() { | 3713 test_constructor_initializing_formal_implicit_type() { |
3714 // Note: the implicit type of an initializing formal is the type of the | 3714 // Note: the implicit type of an initializing formal is the type of the |
3715 // field. | 3715 // field. |
(...skipping 11 matching lines...) Expand all Loading... |
3727 UnlinkedParam parameter = executable.parameters[0]; | 3727 UnlinkedParam parameter = executable.parameters[0]; |
3728 expect(parameter.name, 'x'); | 3728 expect(parameter.name, 'x'); |
3729 } | 3729 } |
3730 | 3730 |
3731 test_constructor_initializing_formal_named() { | 3731 test_constructor_initializing_formal_named() { |
3732 UnlinkedExecutable executable = findExecutable('', | 3732 UnlinkedExecutable executable = findExecutable('', |
3733 executables: serializeClassText('class C { C({this.x}); final x; }') | 3733 executables: serializeClassText('class C { C({this.x}); final x; }') |
3734 .executables); | 3734 .executables); |
3735 UnlinkedParam parameter = executable.parameters[0]; | 3735 UnlinkedParam parameter = executable.parameters[0]; |
3736 expect(parameter.kind, UnlinkedParamKind.named); | 3736 expect(parameter.kind, UnlinkedParamKind.named); |
3737 expect(parameter.defaultValue, isNull); | 3737 expect(parameter.initializer, isNull); |
3738 expect(parameter.defaultValueCode, isEmpty); | 3738 expect(parameter.defaultValueCode, isEmpty); |
3739 } | 3739 } |
3740 | 3740 |
3741 test_constructor_initializing_formal_named_withDefault() { | 3741 test_constructor_initializing_formal_named_withDefault() { |
3742 UnlinkedExecutable executable = findExecutable('', | 3742 UnlinkedExecutable executable = findExecutable('', |
3743 executables: serializeClassText('class C { C({this.x: 42}); final x; }') | 3743 executables: serializeClassText('class C { C({this.x: 42}); final x; }') |
3744 .executables); | 3744 .executables); |
3745 UnlinkedParam parameter = executable.parameters[0]; | 3745 UnlinkedParam parameter = executable.parameters[0]; |
3746 expect(parameter.kind, UnlinkedParamKind.named); | 3746 expect(parameter.kind, UnlinkedParamKind.named); |
3747 expect(parameter.initializer, isNotNull); | 3747 expect(parameter.initializer, isNotNull); |
3748 expect(parameter.defaultValueCode, '42'); | 3748 expect(parameter.defaultValueCode, '42'); |
3749 _assertCodeRange(parameter.codeRange, 13, 10); | 3749 _assertCodeRange(parameter.codeRange, 13, 10); |
3750 _assertUnlinkedConst(parameter.defaultValue, | 3750 _assertUnlinkedConst(parameter.initializer.bodyExpr, |
3751 operators: [UnlinkedConstOperation.pushInt], ints: [42]); | 3751 operators: [UnlinkedConstOperation.pushInt], ints: [42]); |
3752 } | 3752 } |
3753 | 3753 |
3754 test_constructor_initializing_formal_non_function_typed() { | 3754 test_constructor_initializing_formal_non_function_typed() { |
3755 UnlinkedExecutable executable = findExecutable('', | 3755 UnlinkedExecutable executable = findExecutable('', |
3756 executables: | 3756 executables: |
3757 serializeClassText('class C { C(this.x); final x; }').executables); | 3757 serializeClassText('class C { C(this.x); final x; }').executables); |
3758 UnlinkedParam parameter = executable.parameters[0]; | 3758 UnlinkedParam parameter = executable.parameters[0]; |
3759 expect(parameter.isFunctionTyped, isFalse); | 3759 expect(parameter.isFunctionTyped, isFalse); |
3760 } | 3760 } |
3761 | 3761 |
3762 test_constructor_initializing_formal_positional() { | 3762 test_constructor_initializing_formal_positional() { |
3763 UnlinkedExecutable executable = findExecutable('', | 3763 UnlinkedExecutable executable = findExecutable('', |
3764 executables: serializeClassText('class C { C([this.x]); final x; }') | 3764 executables: serializeClassText('class C { C([this.x]); final x; }') |
3765 .executables); | 3765 .executables); |
3766 UnlinkedParam parameter = executable.parameters[0]; | 3766 UnlinkedParam parameter = executable.parameters[0]; |
3767 expect(parameter.kind, UnlinkedParamKind.positional); | 3767 expect(parameter.kind, UnlinkedParamKind.positional); |
3768 expect(parameter.defaultValue, isNull); | 3768 expect(parameter.initializer, isNull); |
3769 expect(parameter.defaultValueCode, isEmpty); | 3769 expect(parameter.defaultValueCode, isEmpty); |
3770 } | 3770 } |
3771 | 3771 |
3772 test_constructor_initializing_formal_positional_withDefault() { | 3772 test_constructor_initializing_formal_positional_withDefault() { |
3773 UnlinkedExecutable executable = findExecutable('', | 3773 UnlinkedExecutable executable = findExecutable('', |
3774 executables: | 3774 executables: |
3775 serializeClassText('class C { C([this.x = 42]); final x; }') | 3775 serializeClassText('class C { C([this.x = 42]); final x; }') |
3776 .executables); | 3776 .executables); |
3777 UnlinkedParam parameter = executable.parameters[0]; | 3777 UnlinkedParam parameter = executable.parameters[0]; |
3778 expect(parameter.kind, UnlinkedParamKind.positional); | 3778 expect(parameter.kind, UnlinkedParamKind.positional); |
3779 expect(parameter.initializer, isNotNull); | 3779 expect(parameter.initializer, isNotNull); |
3780 expect(parameter.defaultValueCode, '42'); | 3780 expect(parameter.defaultValueCode, '42'); |
3781 _assertCodeRange(parameter.codeRange, 13, 11); | 3781 _assertCodeRange(parameter.codeRange, 13, 11); |
3782 _assertUnlinkedConst(parameter.defaultValue, | 3782 _assertUnlinkedConst(parameter.initializer.bodyExpr, |
3783 operators: [UnlinkedConstOperation.pushInt], ints: [42]); | 3783 operators: [UnlinkedConstOperation.pushInt], ints: [42]); |
3784 } | 3784 } |
3785 | 3785 |
3786 test_constructor_initializing_formal_required() { | 3786 test_constructor_initializing_formal_required() { |
3787 UnlinkedExecutable executable = findExecutable('', | 3787 UnlinkedExecutable executable = findExecutable('', |
3788 executables: | 3788 executables: |
3789 serializeClassText('class C { C(this.x); final x; }').executables); | 3789 serializeClassText('class C { C(this.x); final x; }').executables); |
3790 UnlinkedParam parameter = executable.parameters[0]; | 3790 UnlinkedParam parameter = executable.parameters[0]; |
3791 expect(parameter.kind, UnlinkedParamKind.required); | 3791 expect(parameter.kind, UnlinkedParamKind.required); |
3792 } | 3792 } |
(...skipping 11 matching lines...) Expand all Loading... |
3804 test_constructor_initializing_formal_withDefault() { | 3804 test_constructor_initializing_formal_withDefault() { |
3805 UnlinkedExecutable executable = | 3805 UnlinkedExecutable executable = |
3806 findExecutable('', executables: serializeClassText(r''' | 3806 findExecutable('', executables: serializeClassText(r''' |
3807 class C { | 3807 class C { |
3808 C([this.x = 42]); | 3808 C([this.x = 42]); |
3809 final int x; | 3809 final int x; |
3810 }''').executables); | 3810 }''').executables); |
3811 UnlinkedParam param = executable.parameters[0]; | 3811 UnlinkedParam param = executable.parameters[0]; |
3812 expect(param.kind, UnlinkedParamKind.positional); | 3812 expect(param.kind, UnlinkedParamKind.positional); |
3813 expect(param.defaultValueCode, '42'); | 3813 expect(param.defaultValueCode, '42'); |
3814 _assertUnlinkedConst(param.defaultValue, | 3814 _assertUnlinkedConst(param.initializer.bodyExpr, |
3815 operators: [UnlinkedConstOperation.pushInt], ints: [42]); | 3815 operators: [UnlinkedConstOperation.pushInt], ints: [42]); |
3816 } | 3816 } |
3817 | 3817 |
3818 test_constructor_named() { | 3818 test_constructor_named() { |
3819 String text = 'class C { C.foo(); }'; | 3819 String text = 'class C { C.foo(); }'; |
3820 UnlinkedExecutable executable = findExecutable('foo', | 3820 UnlinkedExecutable executable = findExecutable('foo', |
3821 executables: serializeClassText(text).executables); | 3821 executables: serializeClassText(text).executables); |
3822 expect(executable.name, 'foo'); | 3822 expect(executable.name, 'foo'); |
3823 expect(executable.nameOffset, text.indexOf('foo')); | 3823 expect(executable.nameOffset, text.indexOf('foo')); |
3824 expect(executable.periodOffset, text.indexOf('.foo')); | 3824 expect(executable.periodOffset, text.indexOf('.foo')); |
(...skipping 1974 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5799 | 5799 |
5800 test_executable_param_function_typed_withDefault() { | 5800 test_executable_param_function_typed_withDefault() { |
5801 UnlinkedExecutable executable = serializeExecutableText(r''' | 5801 UnlinkedExecutable executable = serializeExecutableText(r''' |
5802 f([int p(int a2, String b2) = foo]) {} | 5802 f([int p(int a2, String b2) = foo]) {} |
5803 int foo(int a, String b) => 0; | 5803 int foo(int a, String b) => 0; |
5804 '''); | 5804 '''); |
5805 UnlinkedParam param = executable.parameters[0]; | 5805 UnlinkedParam param = executable.parameters[0]; |
5806 expect(param.kind, UnlinkedParamKind.positional); | 5806 expect(param.kind, UnlinkedParamKind.positional); |
5807 expect(param.initializer, isNotNull); | 5807 expect(param.initializer, isNotNull); |
5808 expect(param.defaultValueCode, 'foo'); | 5808 expect(param.defaultValueCode, 'foo'); |
5809 _assertUnlinkedConst(param.defaultValue, operators: [ | 5809 _assertUnlinkedConst(param.initializer.bodyExpr, operators: [ |
5810 UnlinkedConstOperation.pushReference | 5810 UnlinkedConstOperation.pushReference |
5811 ], referenceValidators: [ | 5811 ], referenceValidators: [ |
5812 (EntityRef r) => checkTypeRef(r, null, null, 'foo', | 5812 (EntityRef r) => checkTypeRef(r, null, null, 'foo', |
5813 expectedKind: ReferenceKind.topLevelFunction) | 5813 expectedKind: ReferenceKind.topLevelFunction) |
5814 ]); | 5814 ]); |
5815 } | 5815 } |
5816 | 5816 |
5817 test_executable_param_kind_named() { | 5817 test_executable_param_kind_named() { |
5818 UnlinkedExecutable executable = serializeExecutableText('f({x}) {}'); | 5818 UnlinkedExecutable executable = serializeExecutableText('f({x}) {}'); |
5819 UnlinkedParam param = executable.parameters[0]; | 5819 UnlinkedParam param = executable.parameters[0]; |
5820 expect(param.kind, UnlinkedParamKind.named); | 5820 expect(param.kind, UnlinkedParamKind.named); |
5821 expect(param.initializer, isNull); | 5821 expect(param.initializer, isNull); |
5822 expect(param.defaultValue, isNull); | |
5823 expect(param.defaultValueCode, isEmpty); | 5822 expect(param.defaultValueCode, isEmpty); |
5824 } | 5823 } |
5825 | 5824 |
5826 test_executable_param_kind_named_withDefault() { | 5825 test_executable_param_kind_named_withDefault() { |
5827 UnlinkedExecutable executable = serializeExecutableText('f({x: 42}) {}'); | 5826 UnlinkedExecutable executable = serializeExecutableText('f({x: 42}) {}'); |
5828 UnlinkedParam param = executable.parameters[0]; | 5827 UnlinkedParam param = executable.parameters[0]; |
5829 expect(param.kind, UnlinkedParamKind.named); | 5828 expect(param.kind, UnlinkedParamKind.named); |
5830 expect(param.initializer, isNotNull); | 5829 expect(param.initializer, isNotNull); |
5831 expect(param.defaultValueCode, '42'); | 5830 expect(param.defaultValueCode, '42'); |
5832 _assertCodeRange(param.codeRange, 3, 5); | 5831 _assertCodeRange(param.codeRange, 3, 5); |
5833 _assertUnlinkedConst(param.defaultValue, | 5832 _assertUnlinkedConst(param.initializer.bodyExpr, |
5834 operators: [UnlinkedConstOperation.pushInt], ints: [42]); | 5833 operators: [UnlinkedConstOperation.pushInt], ints: [42]); |
5835 } | 5834 } |
5836 | 5835 |
5837 test_executable_param_kind_positional() { | 5836 test_executable_param_kind_positional() { |
5838 UnlinkedExecutable executable = serializeExecutableText('f([x]) {}'); | 5837 UnlinkedExecutable executable = serializeExecutableText('f([x]) {}'); |
5839 UnlinkedParam param = executable.parameters[0]; | 5838 UnlinkedParam param = executable.parameters[0]; |
5840 expect(param.kind, UnlinkedParamKind.positional); | 5839 expect(param.kind, UnlinkedParamKind.positional); |
5841 expect(param.initializer, isNull); | 5840 expect(param.initializer, isNull); |
5842 expect(param.defaultValue, isNull); | |
5843 expect(param.defaultValueCode, isEmpty); | 5841 expect(param.defaultValueCode, isEmpty); |
5844 } | 5842 } |
5845 | 5843 |
5846 test_executable_param_kind_positional_withDefault() { | 5844 test_executable_param_kind_positional_withDefault() { |
5847 UnlinkedExecutable executable = serializeExecutableText('f([x = 42]) {}'); | 5845 UnlinkedExecutable executable = serializeExecutableText('f([x = 42]) {}'); |
5848 UnlinkedParam param = executable.parameters[0]; | 5846 UnlinkedParam param = executable.parameters[0]; |
5849 expect(param.kind, UnlinkedParamKind.positional); | 5847 expect(param.kind, UnlinkedParamKind.positional); |
5850 expect(param.initializer, isNotNull); | 5848 expect(param.initializer, isNotNull); |
5851 expect(param.defaultValueCode, '42'); | 5849 expect(param.defaultValueCode, '42'); |
5852 _assertCodeRange(param.codeRange, 3, 6); | 5850 _assertCodeRange(param.codeRange, 3, 6); |
5853 _assertUnlinkedConst(param.defaultValue, | 5851 _assertUnlinkedConst(param.initializer.bodyExpr, |
5854 operators: [UnlinkedConstOperation.pushInt], ints: [42]); | 5852 operators: [UnlinkedConstOperation.pushInt], ints: [42]); |
5855 } | 5853 } |
5856 | 5854 |
5857 test_executable_param_kind_required() { | 5855 test_executable_param_kind_required() { |
5858 UnlinkedExecutable executable = serializeExecutableText('f(x) {}'); | 5856 UnlinkedExecutable executable = serializeExecutableText('f(x) {}'); |
5859 UnlinkedParam param = executable.parameters[0]; | 5857 UnlinkedParam param = executable.parameters[0]; |
5860 expect(param.kind, UnlinkedParamKind.required); | 5858 expect(param.kind, UnlinkedParamKind.required); |
5861 expect(param.initializer, isNull); | 5859 expect(param.initializer, isNull); |
5862 expect(param.defaultValue, isNull); | |
5863 expect(param.defaultValueCode, isEmpty); | 5860 expect(param.defaultValueCode, isEmpty); |
5864 } | 5861 } |
5865 | 5862 |
5866 test_executable_param_name() { | 5863 test_executable_param_name() { |
5867 String text = 'f(x) {}'; | 5864 String text = 'f(x) {}'; |
5868 UnlinkedExecutable executable = serializeExecutableText(text); | 5865 UnlinkedExecutable executable = serializeExecutableText(text); |
5869 expect(executable.parameters, hasLength(1)); | 5866 expect(executable.parameters, hasLength(1)); |
5870 expect(executable.parameters[0].name, 'x'); | 5867 expect(executable.parameters[0].name, 'x'); |
5871 expect(executable.parameters[0].nameOffset, text.indexOf('x')); | 5868 expect(executable.parameters[0].nameOffset, text.indexOf('x')); |
5872 } | 5869 } |
(...skipping 4398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10271 class _PrefixExpectation { | 10268 class _PrefixExpectation { |
10272 final ReferenceKind kind; | 10269 final ReferenceKind kind; |
10273 final String name; | 10270 final String name; |
10274 final String absoluteUri; | 10271 final String absoluteUri; |
10275 final String relativeUri; | 10272 final String relativeUri; |
10276 final int numTypeParameters; | 10273 final int numTypeParameters; |
10277 | 10274 |
10278 _PrefixExpectation(this.kind, this.name, | 10275 _PrefixExpectation(this.kind, this.name, |
10279 {this.absoluteUri, this.relativeUri, this.numTypeParameters: 0}); | 10276 {this.absoluteUri, this.relativeUri, this.numTypeParameters: 0}); |
10280 } | 10277 } |
OLD | NEW |