| Index: pkg/analyzer/lib/src/summary/resynthesize.dart
|
| diff --git a/pkg/analyzer/lib/src/summary/resynthesize.dart b/pkg/analyzer/lib/src/summary/resynthesize.dart
|
| index a6620cc6f5b8f6920815ab98cf92b9ebfb2964e1..61955d0494364a4c23d49780ae3adfbb03981cce 100644
|
| --- a/pkg/analyzer/lib/src/summary/resynthesize.dart
|
| +++ b/pkg/analyzer/lib/src/summary/resynthesize.dart
|
| @@ -938,6 +938,9 @@ class _LibraryResynthesizer {
|
| case ReferenceKind.typedef:
|
| return new FunctionTypeAliasElementHandle(
|
| summaryResynthesizer, location);
|
| + case ReferenceKind.genericFunctionTypedef:
|
| + return new GenericTypeAliasElementHandle(
|
| + summaryResynthesizer, location);
|
| case ReferenceKind.topLevelFunction:
|
| return new FunctionElementHandle(summaryResynthesizer, location);
|
| case ReferenceKind.topLevelPropertyAccessor:
|
| @@ -1314,6 +1317,11 @@ class _ReferenceInfo {
|
| }
|
| // Done.
|
| return type;
|
| + } else if (element is GenericTypeAliasElementHandle) {
|
| + GenericTypeAliasElementImpl actualElement = element.actualElement;
|
| + List<DartType> argumentTypes =
|
| + new List.generate(numTypeArguments, getTypeArgument);
|
| + return actualElement.typeAfterSubstitution(argumentTypes);
|
| } else if (element is FunctionTypedElement) {
|
| if (element is FunctionTypeAliasElementHandle) {
|
| List<DartType> typeArguments;
|
| @@ -1839,6 +1847,11 @@ class _UnitResynthesizer {
|
| summaryResynthesizer, location);
|
| isDeclarableType = true;
|
| break;
|
| + case ReferenceKind.genericFunctionTypedef:
|
| + element = new GenericTypeAliasElementHandle(
|
| + summaryResynthesizer, location);
|
| + isDeclarableType = true;
|
| + break;
|
| case ReferenceKind.variable:
|
| Element enclosingElement = enclosingInfo.element;
|
| if (enclosingElement is ExecutableElement) {
|
|
|