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); |
-} |