Chromium Code Reviews| Index: pkg/analyzer/lib/src/summary/summarize_ast.dart |
| diff --git a/pkg/analyzer/lib/src/summary/summarize_ast.dart b/pkg/analyzer/lib/src/summary/summarize_ast.dart |
| index f272fef3849cd7b6e4e381a2bd70b74779136353..f371257053a59f65a6321bcfe4f0c456200e138c 100644 |
| --- a/pkg/analyzer/lib/src/summary/summarize_ast.dart |
| +++ b/pkg/analyzer/lib/src/summary/summarize_ast.dart |
| @@ -28,6 +28,28 @@ class _ConstExprSerializer extends AbstractConstExprSerializer { |
| _ConstExprSerializer(this.visitor); |
| + @override |
| + EntityRefBuilder serializeConstructorName(ConstructorName constructor) { |
| + TypeName type = constructor.type; |
| + Identifier typeName = type.name; |
| + EntityRefBuilder typeBuilder = serializeType(type); |
| + if (typeName is SimpleIdentifier) { |
| + int nameRef = visitor.serializeReference(typeBuilder.reference, ''); |
| + return new EntityRefBuilder(reference: nameRef); |
|
Paul Berry
2016/01/26 00:47:21
I don't understand why there are three separate re
scheglov
2016/01/26 04:34:49
Fixed.
Now we record only explicit names and let t
|
| + } else if (typeName is PrefixedIdentifier) { |
| + if (constructor.name == null) { |
| + return typeBuilder; |
| + } else { |
| + String name = constructor.name.name; |
| + int nameRef = visitor.serializeReference(typeBuilder.reference, name); |
| + return new EntityRefBuilder(reference: nameRef); |
| + } |
| + } else { |
| + throw new StateError( |
| + 'Unexpected identifier type: ${typeName.runtimeType}'); |
| + } |
| + } |
| + |
| EntityRefBuilder serializeIdentifier(Identifier identifier) { |
| EntityRefBuilder b = new EntityRefBuilder(); |
| if (identifier is SimpleIdentifier) { |