| Index: pkg/analyzer/test/src/dart/constant/evaluation_test.dart
|
| diff --git a/pkg/analyzer/test/src/dart/constant/evaluation_test.dart b/pkg/analyzer/test/src/dart/constant/evaluation_test.dart
|
| index 2be471d17a7f437fc8a6a329c9557773767ac698..f789be8340f91fa0dd0d56ebd0269f86db4e214c 100644
|
| --- a/pkg/analyzer/test/src/dart/constant/evaluation_test.dart
|
| +++ b/pkg/analyzer/test/src/dart/constant/evaluation_test.dart
|
| @@ -1181,6 +1181,69 @@ const A a = const A();
|
| expect(value.toSymbolValue(), "void");
|
| }
|
|
|
| + test_getConstructor_withArgs() async {
|
| + CompilationUnit compilationUnit = await resolveSource(r'''
|
| +class A {
|
| + final int i;
|
| + const A(this.i);
|
| +}
|
| +
|
| +class C {
|
| + @A(5)
|
| + f() {}
|
| +}
|
| +''');
|
| + EvaluationResultImpl result =
|
| + _evaluateAnnotation(compilationUnit, "C", "f");
|
| + DartObjectImpl value = result.value;
|
| + expect(value.getConstructor(), isNotNull);
|
| + expect(value.getPositionalArguments(), hasLength(1));
|
| + expect(value.getPositionalArguments().single.toIntValue(), 5);
|
| + expect(value.getNamedArguments(), isEmpty);
|
| + }
|
| +
|
| + test_getConstructor_withNamedArgs() async {
|
| + CompilationUnit compilationUnit = await resolveSource(r'''
|
| +class A {
|
| + final int i;
|
| + const A({this.i});
|
| +}
|
| +
|
| +class C {
|
| + @A(i: 5)
|
| + f() {}
|
| +}
|
| +''');
|
| + EvaluationResultImpl result =
|
| + _evaluateAnnotation(compilationUnit, "C", "f");
|
| + DartObjectImpl value = result.value;
|
| + expect(value.getConstructor(), isNotNull);
|
| + expect(value.getPositionalArguments(), isEmpty);
|
| + expect(value.getNamedArguments(), isNotEmpty);
|
| + expect(value.getNamedArguments()['i'].toIntValue(), 5);
|
| + }
|
| +
|
| + test_getConstructor_redirectingFactory() async {
|
| + CompilationUnit compilationUnit = await resolveSource(r'''
|
| +class A {
|
| + factory const A() = B;
|
| +}
|
| +
|
| +class B implements A {
|
| + const B();
|
| +}
|
| +
|
| +class C {
|
| + @A()
|
| + f() {}
|
| +}
|
| +''');
|
| + EvaluationResultImpl result =
|
| + _evaluateAnnotation(compilationUnit, "C", "f");
|
| + DartObjectImpl value = result.value;
|
| + expect(value.getConstructor().isFactory, isTrue);
|
| + }
|
| +
|
| Map<String, DartObjectImpl> _assertFieldType(
|
| Map<String, DartObjectImpl> fields,
|
| String fieldName,
|
|
|