| Index: pkg/compiler/lib/src/kernel/element_map_mixins.dart
|
| diff --git a/pkg/compiler/lib/src/kernel/element_map_mixins.dart b/pkg/compiler/lib/src/kernel/element_map_mixins.dart
|
| index 78a1a9a79e05d2ef9645f5d36e2361d5555e25b7..6f39411ee043e98b8c1d5403450c905377bd3005 100644
|
| --- a/pkg/compiler/lib/src/kernel/element_map_mixins.dart
|
| +++ b/pkg/compiler/lib/src/kernel/element_map_mixins.dart
|
| @@ -624,16 +624,26 @@ class Constantifier extends ir.ExpressionVisitor<ConstantExpression> {
|
|
|
| @override
|
| ConstantExpression visitTypeLiteral(ir.TypeLiteral node) {
|
| - DartType type = elementMap.getDartType(node.type);
|
| String name;
|
| + DartType type = elementMap.getDartType(node.type);
|
| if (type.isDynamic) {
|
| name = 'dynamic';
|
| } else if (type is InterfaceType) {
|
| name = type.element.name;
|
| - } else if (type.isFunctionType || type.isTypedef) {
|
| + } else if (type.isTypedef) {
|
| // TODO(johnniwinther): Compute a name for the type literal? It is only
|
| // used in error messages in the old SSA builder.
|
| name = '?';
|
| + } else if (node.type is ir.FunctionType) {
|
| + ir.FunctionType functionType = node.type;
|
| + if (functionType.typedef != null) {
|
| + type = elementMap.getTypedefType(functionType.typedef);
|
| + name = functionType.typedef.name;
|
| + } else {
|
| + // TODO(johnniwinther): Remove branch when [KernelAstAdapter] is
|
| + // removed.
|
| + name = '?';
|
| + }
|
| } else {
|
| return defaultExpression(node);
|
| }
|
|
|