| 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..6f642311ca67f476069c68ae3f1dc4ca405f7f38 100644
|
| --- a/pkg/analyzer/test/src/dart/constant/evaluation_test.dart
|
| +++ b/pkg/analyzer/test/src/dart/constant/evaluation_test.dart
|
| @@ -1181,6 +1181,68 @@ 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");
|
| + ConstructorInvocation invocation = result.value.getInvocation();
|
| + expect(invocation.constructor, isNotNull);
|
| + expect(invocation.positionalArguments, hasLength(1));
|
| + expect(invocation.positionalArguments.single.toIntValue(), 5);
|
| + expect(invocation.namedArguments, 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");
|
| + ConstructorInvocation invocation = result.value.getInvocation();
|
| + expect(invocation.constructor, isNotNull);
|
| + expect(invocation.positionalArguments, isEmpty);
|
| + expect(invocation.namedArguments, isNotEmpty);
|
| + expect(invocation.namedArguments['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");
|
| + expect(result.value.getInvocation().constructor.isFactory, isTrue);
|
| + }
|
| +
|
| Map<String, DartObjectImpl> _assertFieldType(
|
| Map<String, DartObjectImpl> fields,
|
| String fieldName,
|
|
|