| Index: pkg/analyzer/lib/src/summary/summarize_elements.dart
|
| diff --git a/pkg/analyzer/lib/src/summary/summarize_elements.dart b/pkg/analyzer/lib/src/summary/summarize_elements.dart
|
| index 353de09ea8a4eac2eed342757ab547bc3394721b..dee769f34f7de0f61cffbae69d1aed525993dc15 100644
|
| --- a/pkg/analyzer/lib/src/summary/summarize_elements.dart
|
| +++ b/pkg/analyzer/lib/src/summary/summarize_elements.dart
|
| @@ -1331,21 +1331,19 @@ class _ConstExprSerializer extends AbstractConstExprSerializer {
|
| EntityRefBuilder constructor;
|
| if (nameElement is ConstructorElement && name is PrefixedIdentifier) {
|
| assert(annotation.constructorName == null);
|
| - constructor = serializeConstructorName(
|
| - new TypeName(name.prefix, null)..type = nameElement.returnType,
|
| - name.identifier);
|
| + constructor = serializeConstructorRef(
|
| + nameElement.returnType, name.prefix, null, name.identifier);
|
| } else if (nameElement is TypeDefiningElement) {
|
| - constructor = serializeConstructorName(
|
| - new TypeName(annotation.name, null)..type = nameElement.type,
|
| - annotation.constructorName);
|
| + constructor = serializeConstructorRef(nameElement.type, annotation.name,
|
| + null, annotation.constructorName);
|
| } else if (nameElement == null) {
|
| // Unresolved annotation.
|
| if (name is PrefixedIdentifier && annotation.constructorName == null) {
|
| - constructor = serializeConstructorName(
|
| - new TypeName(name.prefix, null), name.identifier);
|
| + constructor =
|
| + serializeConstructorRef(null, name.prefix, null, name.identifier);
|
| } else {
|
| - constructor = serializeConstructorName(
|
| - new TypeName(annotation.name, null), annotation.constructorName);
|
| + constructor = serializeConstructorRef(
|
| + null, annotation.name, null, annotation.constructorName);
|
| }
|
| } else {
|
| throw new StateError('Unexpected annotation nameElement type:'
|
| @@ -1356,9 +1354,9 @@ class _ConstExprSerializer extends AbstractConstExprSerializer {
|
| }
|
|
|
| @override
|
| - EntityRefBuilder serializeConstructorName(
|
| - TypeName type, SimpleIdentifier name) {
|
| - EntityRefBuilder typeRef = serializeType(type);
|
| + EntityRefBuilder serializeConstructorRef(DartType type, Identifier typeName,
|
| + TypeArgumentList typeArguments, SimpleIdentifier name) {
|
| + EntityRefBuilder typeRef = serializeType(type, typeName, typeArguments);
|
| if (name == null) {
|
| return typeRef;
|
| } else {
|
| @@ -1433,15 +1431,15 @@ class _ConstExprSerializer extends AbstractConstExprSerializer {
|
| }
|
|
|
| @override
|
| - EntityRefBuilder serializeType(TypeName typeName) {
|
| - if (typeName != null) {
|
| - DartType type = typeName.type;
|
| + EntityRefBuilder serializeType(
|
| + DartType type, Identifier name, TypeArgumentList arguments) {
|
| + if (name != null) {
|
| if (type == null || type.isUndefined) {
|
| - return serializeIdentifier(typeName.name);
|
| + return serializeIdentifier(name);
|
| }
|
| }
|
| - DartType type = typeName != null ? typeName.type : DynamicTypeImpl.instance;
|
| - return serializer.serializeTypeRef(type, context);
|
| + DartType typeOrDynamic = type ?? DynamicTypeImpl.instance;
|
| + return serializer.serializeTypeRef(typeOrDynamic, context);
|
| }
|
|
|
| /**
|
|
|