| Index: pkg/front_end/lib/src/fasta/kernel/kernel_function_type_builder.dart
|
| diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_function_type_builder.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_function_type_builder.dart
|
| index a1fe16acc6476fd1ea34479e634651b2aac17e9b..dfa36a8645065a299ee78b34298ab52608c2f32e 100644
|
| --- a/pkg/front_end/lib/src/fasta/kernel/kernel_function_type_builder.dart
|
| +++ b/pkg/front_end/lib/src/fasta/kernel/kernel_function_type_builder.dart
|
| @@ -34,7 +34,37 @@ class KernelFunctionTypeBuilder extends FunctionTypeBuilder
|
| : super(charOffset, fileUri, returnType, typeVariables, formals);
|
|
|
| DartType build(LibraryBuilder library) {
|
| - return buildFunctionType(library, returnType, typeVariables, formals);
|
| + DartType builtReturnType =
|
| + returnType?.build(library) ?? const DynamicType();
|
| + List<DartType> positionalParameters = <DartType>[];
|
| + List<NamedType> namedParameters;
|
| + int requiredParameterCount = 0;
|
| + if (formals != null) {
|
| + for (KernelFormalParameterBuilder formal in formals) {
|
| + DartType type = formal.type?.build(library) ?? const DynamicType();
|
| + if (formal.isPositional) {
|
| + positionalParameters.add(type);
|
| + if (formal.isRequired) requiredParameterCount++;
|
| + } else if (formal.isNamed) {
|
| + namedParameters ??= <NamedType>[];
|
| + namedParameters.add(new NamedType(formal.name, type));
|
| + }
|
| + }
|
| + if (namedParameters != null) {
|
| + namedParameters.sort();
|
| + }
|
| + }
|
| + List<TypeParameter> typeParameters;
|
| + if (typeVariables != null) {
|
| + typeParameters = <TypeParameter>[];
|
| + for (KernelTypeVariableBuilder t in typeVariables) {
|
| + typeParameters.add(t.parameter);
|
| + }
|
| + }
|
| + return new FunctionType(positionalParameters, builtReturnType,
|
| + namedParameters: namedParameters ?? const <NamedType>[],
|
| + typeParameters: typeParameters ?? const <TypeParameter>[],
|
| + requiredParameterCount: requiredParameterCount);
|
| }
|
|
|
| Supertype buildSupertype(LibraryBuilder library) {
|
| @@ -44,40 +74,3 @@ class KernelFunctionTypeBuilder extends FunctionTypeBuilder
|
| return null;
|
| }
|
| }
|
| -
|
| -FunctionType buildFunctionType(
|
| - LibraryBuilder library,
|
| - KernelTypeBuilder returnType,
|
| - List<TypeVariableBuilder> typeVariables,
|
| - List<FormalParameterBuilder> formals) {
|
| - DartType builtReturnType = returnType?.build(library) ?? const DynamicType();
|
| - List<DartType> positionalParameters = <DartType>[];
|
| - List<NamedType> namedParameters;
|
| - int requiredParameterCount = 0;
|
| - if (formals != null) {
|
| - for (KernelFormalParameterBuilder formal in formals) {
|
| - DartType type = formal.type?.build(library) ?? const DynamicType();
|
| - if (formal.isPositional) {
|
| - positionalParameters.add(type);
|
| - if (formal.isRequired) requiredParameterCount++;
|
| - } else if (formal.isNamed) {
|
| - namedParameters ??= <NamedType>[];
|
| - namedParameters.add(new NamedType(formal.name, type));
|
| - }
|
| - }
|
| - if (namedParameters != null) {
|
| - namedParameters.sort();
|
| - }
|
| - }
|
| - List<TypeParameter> typeParameters;
|
| - if (typeVariables != null) {
|
| - typeParameters = <TypeParameter>[];
|
| - for (KernelTypeVariableBuilder t in typeVariables) {
|
| - typeParameters.add(t.parameter);
|
| - }
|
| - }
|
| - return new FunctionType(positionalParameters, builtReturnType,
|
| - namedParameters: namedParameters ?? const <NamedType>[],
|
| - typeParameters: typeParameters ?? const <TypeParameter>[],
|
| - requiredParameterCount: requiredParameterCount);
|
| -}
|
|
|