| Index: pkg/analyzer/lib/src/kernel/resynthesize.dart | 
| diff --git a/pkg/analyzer/lib/src/kernel/resynthesize.dart b/pkg/analyzer/lib/src/kernel/resynthesize.dart | 
| index fe5ff65d0f35ef0817f555c7061d49b0e0e1aa40..cd0900ff2408307ca17057854b7e996964923d91 100644 | 
| --- a/pkg/analyzer/lib/src/kernel/resynthesize.dart | 
| +++ b/pkg/analyzer/lib/src/kernel/resynthesize.dart | 
| @@ -418,14 +418,40 @@ class _KernelLibraryResynthesizerContextImpl | 
| DartType getType(ElementImpl context, kernel.DartType kernelType) { | 
| if (kernelType is kernel.DynamicType) return DynamicTypeImpl.instance; | 
| if (kernelType is kernel.VoidType) return VoidTypeImpl.instance; | 
| + | 
| if (kernelType is kernel.InterfaceType) { | 
| return _getInterfaceType(context, kernelType.className.canonicalName, | 
| kernelType.typeArguments); | 
| } | 
| + | 
| if (kernelType is kernel.TypeParameterType) { | 
| kernel.TypeParameter kTypeParameter = kernelType.parameter; | 
| return _getTypeParameter(context, kTypeParameter).type; | 
| } | 
| + | 
| +    if (kernelType is kernel.FunctionType) { | 
| +      var functionElement = new FunctionElementImpl.synthetic([], null); | 
| +      functionElement.enclosingElement = context; | 
| + | 
| +      functionElement.typeParameters = kernelType.typeParameters.map((k) { | 
| +        return new TypeParameterElementImpl.forKernel(functionElement, k); | 
| +      }).toList(growable: false); | 
| + | 
| +      functionElement.parameters = ParameterElementImpl.forKernelParameters( | 
| +          functionElement, | 
| +          kernelType.requiredParameterCount, | 
| +          kernelType.positionalParameters | 
| +              .map((t) => new kernel.VariableDeclaration(null, type: t)) | 
| +              .toList(), | 
| +          kernelType.namedParameters | 
| +              .map((t) => new kernel.VariableDeclaration(t.name, type: t.type)) | 
| +              .toList()); | 
| + | 
| +      functionElement.returnType = | 
| +          getType(functionElement, kernelType.returnType); | 
| +      return functionElement.type; | 
| +    } | 
| + | 
| // TODO(scheglov) Support other kernel types. | 
| throw new UnimplementedError('For ${kernelType.runtimeType}'); | 
| } | 
|  |