CQ. Switch clients to default constructor of FunctionTypeImpl.
Also rename the public `FunctionTypeImpl` constructor formal parameter from `parameters` to `formalParameters`, matching the API exposed by `FunctionType`. Change-Id: I6f9bbeed06cee708f78bb7127843222db08e1d52 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/499040 Commit-Queue: Konstantin Shcheglov <scheglov@google.com> Reviewed-by: Paul Berry <paulberry@google.com> Reviewed-by: Samuel Rawlins <srawlins@google.com>
This commit is contained in:
committed by
dart-scoped@luci-project-accounts.iam.gserviceaccount.com
parent
59439606f1
commit
560f44af01
@@ -1203,7 +1203,7 @@ class DeclarationHelper {
|
||||
} else {
|
||||
functionType = FunctionTypeImpl(
|
||||
typeParameters: const [],
|
||||
parameters: const [],
|
||||
formalParameters: const [],
|
||||
returnType: DynamicTypeImpl.instance,
|
||||
nullabilitySuffix: NullabilitySuffix.none,
|
||||
);
|
||||
|
||||
@@ -4523,7 +4523,7 @@ class InScopeCompletionPass extends SimpleAstVisitor<void> {
|
||||
.ifTypeOrNull<TypeProviderImpl>();
|
||||
return FunctionTypeImpl(
|
||||
typeParameters: const [],
|
||||
parameters: const [],
|
||||
formalParameters: const [],
|
||||
returnType: typeProvider?.voidType ?? DynamicTypeImpl.instance,
|
||||
nullabilitySuffix: NullabilitySuffix.none,
|
||||
);
|
||||
|
||||
@@ -222,7 +222,7 @@ class CreateExtensionMethod extends _CreateExtensionMember {
|
||||
if (returnType is InterfaceType && returnType.isDartCoreFunction) {
|
||||
returnType = FunctionTypeImpl(
|
||||
typeParameters: const [],
|
||||
parameters: const [],
|
||||
formalParameters: const [],
|
||||
returnType: DynamicTypeImpl.instance,
|
||||
nullabilitySuffix: NullabilitySuffix.none,
|
||||
);
|
||||
|
||||
@@ -101,7 +101,7 @@ class CreateMethodOrFunction extends ResolvedCorrectionProducer {
|
||||
if (parameterType is InterfaceType && parameterType.isDartCoreFunction) {
|
||||
parameterType = FunctionTypeImpl(
|
||||
typeParameters: const [],
|
||||
parameters: const [],
|
||||
formalParameters: const [],
|
||||
returnType: DynamicTypeImpl.instance,
|
||||
nullabilitySuffix: NullabilitySuffix.none,
|
||||
);
|
||||
|
||||
@@ -573,7 +573,7 @@ abstract class ResolvedCorrectionProducer
|
||||
if (type is InterfaceType && type.isDartCoreFunction) {
|
||||
return FunctionTypeImpl(
|
||||
typeParameters: const [],
|
||||
parameters: const [],
|
||||
formalParameters: const [],
|
||||
returnType: DynamicTypeImpl.instance,
|
||||
nullabilitySuffix: NullabilitySuffix.none,
|
||||
);
|
||||
|
||||
@@ -2603,7 +2603,7 @@ abstract class ExecutableElementImpl extends FunctionTypedElementImpl
|
||||
FunctionTypeImpl get type {
|
||||
return _type ??= FunctionTypeImpl(
|
||||
typeParameters: typeParameters,
|
||||
parameters: formalParameters,
|
||||
formalParameters: formalParameters,
|
||||
returnType: returnType,
|
||||
nullabilitySuffix: NullabilitySuffix.none,
|
||||
);
|
||||
@@ -4616,7 +4616,7 @@ class GenericFunctionTypeElementImpl extends FunctionTypedElementImpl
|
||||
FunctionTypeImpl get type {
|
||||
return _type ??= FunctionTypeImpl(
|
||||
typeParameters: typeParameters,
|
||||
parameters: formalParameters,
|
||||
formalParameters: formalParameters,
|
||||
returnType: returnType,
|
||||
nullabilitySuffix: _firstFragment.isNullable
|
||||
? NullabilitySuffix.question
|
||||
@@ -11064,7 +11064,7 @@ class TypeAliasElementImpl extends ElementImpl
|
||||
FunctionTypeImpl _errorFunctionType(NullabilitySuffix nullabilitySuffix) {
|
||||
return FunctionTypeImpl(
|
||||
typeParameters: const [],
|
||||
parameters: const [],
|
||||
formalParameters: const [],
|
||||
returnType: DynamicTypeImpl.instance,
|
||||
nullabilitySuffix: nullabilitySuffix,
|
||||
);
|
||||
|
||||
@@ -250,7 +250,7 @@ class GenericInferrer {
|
||||
// formals as we check the parameters and return type.
|
||||
var inferFnType = FunctionTypeImpl(
|
||||
typeParameters: const [],
|
||||
parameters: fnType.parameters,
|
||||
formalParameters: fnType.parameters,
|
||||
returnType: fnType.returnType,
|
||||
nullabilitySuffix: fnType.nullabilitySuffix,
|
||||
);
|
||||
|
||||
@@ -361,7 +361,7 @@ class GreatestLowerBoundHelper {
|
||||
|
||||
var returnType = getGreatestLowerBound(f.returnType, g.returnType);
|
||||
|
||||
return FunctionTypeImpl.v2(
|
||||
return FunctionTypeImpl(
|
||||
typeParameters: fresh.typeParameters,
|
||||
formalParameters: parameters,
|
||||
returnType: returnType,
|
||||
|
||||
@@ -770,7 +770,7 @@ class LeastUpperBoundHelper {
|
||||
|
||||
var returnType = getLeastUpperBound(f.returnType, g.returnType);
|
||||
|
||||
return FunctionTypeImpl.v2(
|
||||
return FunctionTypeImpl(
|
||||
typeParameters: fresh.typeParameters,
|
||||
formalParameters: parameters,
|
||||
returnType: returnType,
|
||||
|
||||
@@ -52,7 +52,7 @@ class NormalizeHelper {
|
||||
|
||||
functionType = fresh.applyToFunctionType(functionType);
|
||||
|
||||
return FunctionTypeImpl.v2(
|
||||
return FunctionTypeImpl(
|
||||
typeParameters: functionType.typeParameters,
|
||||
formalParameters: functionType.formalParameters.map((e) {
|
||||
return e.copyWith(type: _normalize(e.type));
|
||||
|
||||
@@ -52,7 +52,7 @@ class ReplaceTopBottomVisitor {
|
||||
);
|
||||
}).toList();
|
||||
|
||||
return FunctionTypeImpl.v2(
|
||||
return FunctionTypeImpl(
|
||||
typeParameters: type.typeParameters,
|
||||
formalParameters: newParameters,
|
||||
returnType: newReturnType,
|
||||
|
||||
@@ -44,7 +44,7 @@ class ReplacementVisitor
|
||||
return null;
|
||||
}
|
||||
|
||||
return FunctionTypeImpl.v2(
|
||||
return FunctionTypeImpl(
|
||||
typeParameters: newTypeParameters ?? type.typeParameters,
|
||||
formalParameters: newParameters ?? type.formalParameters,
|
||||
returnType: newReturnType ?? type.returnType,
|
||||
|
||||
@@ -217,7 +217,7 @@ class TopMergeHelper {
|
||||
R_parameters.add(T_parameter.copyWith(type: R_type, kind: R_kind));
|
||||
}
|
||||
|
||||
return FunctionTypeImpl.v2(
|
||||
return FunctionTypeImpl(
|
||||
typeParameters: R_typeParameters.toFixedList(),
|
||||
formalParameters: R_parameters.toFixedList(),
|
||||
returnType: R_returnType,
|
||||
|
||||
@@ -139,7 +139,7 @@ class FunctionTypeImpl extends TypeImpl
|
||||
|
||||
factory FunctionTypeImpl({
|
||||
required List<TypeParameterElementImpl> typeParameters,
|
||||
required List<InternalFormalParameterElement> parameters,
|
||||
required List<InternalFormalParameterElement> formalParameters,
|
||||
required TypeImpl returnType,
|
||||
required NullabilitySuffix nullabilitySuffix,
|
||||
InstantiatedTypeAliasElementImpl? alias,
|
||||
@@ -152,8 +152,8 @@ class FunctionTypeImpl extends TypeImpl
|
||||
// Check if already sorted.
|
||||
var namedParametersAlreadySorted = true;
|
||||
var lastNamedParameterName = '';
|
||||
for (var i = 0; i < parameters.length; ++i) {
|
||||
var parameter = parameters[i];
|
||||
for (var i = 0; i < formalParameters.length; ++i) {
|
||||
var parameter = formalParameters[i];
|
||||
if (parameter.isNamed) {
|
||||
firstNamedParameterIndex ??= i;
|
||||
var name = parameter.name ?? '';
|
||||
@@ -171,7 +171,10 @@ class FunctionTypeImpl extends TypeImpl
|
||||
}
|
||||
sortedNamedParameters = firstNamedParameterIndex == null
|
||||
? const []
|
||||
: parameters.sublist(firstNamedParameterIndex, parameters.length);
|
||||
: formalParameters.sublist(
|
||||
firstNamedParameterIndex,
|
||||
formalParameters.length,
|
||||
);
|
||||
if (!namedParametersAlreadySorted) {
|
||||
// Sort named parameters.
|
||||
sortedNamedParameters.sort(
|
||||
@@ -179,16 +182,16 @@ class FunctionTypeImpl extends TypeImpl
|
||||
);
|
||||
|
||||
// Combine into a new list, with sorted named parameters.
|
||||
parameters = parameters.toList();
|
||||
parameters.replaceRange(
|
||||
formalParameters = formalParameters.toList();
|
||||
formalParameters.replaceRange(
|
||||
firstNamedParameterIndex!,
|
||||
parameters.length,
|
||||
formalParameters.length,
|
||||
sortedNamedParameters,
|
||||
);
|
||||
}
|
||||
return FunctionTypeImpl._(
|
||||
typeParameters: typeParameters,
|
||||
parameters: parameters,
|
||||
parameters: formalParameters,
|
||||
returnType: returnType,
|
||||
nullabilitySuffix: nullabilitySuffix,
|
||||
positionalParameterTypes: positionalParameterTypes,
|
||||
@@ -198,22 +201,6 @@ class FunctionTypeImpl extends TypeImpl
|
||||
);
|
||||
}
|
||||
|
||||
factory FunctionTypeImpl.v2({
|
||||
required List<TypeParameterElementImpl> typeParameters,
|
||||
required List<InternalFormalParameterElement> formalParameters,
|
||||
required TypeImpl returnType,
|
||||
required NullabilitySuffix nullabilitySuffix,
|
||||
InstantiatedTypeAliasElementImpl? alias,
|
||||
}) {
|
||||
return FunctionTypeImpl(
|
||||
typeParameters: typeParameters,
|
||||
parameters: formalParameters,
|
||||
returnType: returnType,
|
||||
nullabilitySuffix: nullabilitySuffix,
|
||||
alias: alias,
|
||||
);
|
||||
}
|
||||
|
||||
FunctionTypeImpl._({
|
||||
required this.typeParameters,
|
||||
required this.parameters,
|
||||
@@ -340,7 +327,7 @@ class FunctionTypeImpl extends TypeImpl
|
||||
return FunctionTypeImpl(
|
||||
returnType: substitution.substituteType(returnType),
|
||||
typeParameters: const [],
|
||||
parameters: newParameters,
|
||||
formalParameters: newParameters,
|
||||
nullabilitySuffix: nullabilitySuffix,
|
||||
);
|
||||
}
|
||||
@@ -373,7 +360,7 @@ class FunctionTypeImpl extends TypeImpl
|
||||
|
||||
@override
|
||||
FunctionTypeImpl withAlias(InstantiatedTypeAliasElementImpl alias) {
|
||||
return FunctionTypeImpl.v2(
|
||||
return FunctionTypeImpl(
|
||||
typeParameters: typeParameters,
|
||||
formalParameters: parameters,
|
||||
returnType: returnType,
|
||||
|
||||
@@ -86,7 +86,7 @@ FunctionTypeImpl replaceTypeParameters(
|
||||
return p.copyWith(type: type);
|
||||
}
|
||||
|
||||
return FunctionTypeImpl.v2(
|
||||
return FunctionTypeImpl(
|
||||
typeParameters: newTypeParameters,
|
||||
formalParameters: type.formalParameters.map(transformParameter).toList(),
|
||||
returnType: substitution.substituteType(type.returnType),
|
||||
@@ -112,7 +112,7 @@ class FreshTypeParameters {
|
||||
FreshTypeParameters(this.freshTypeParameters, this.substitution);
|
||||
|
||||
FunctionTypeImpl applyToFunctionType(FunctionTypeImpl type) {
|
||||
return FunctionTypeImpl.v2(
|
||||
return FunctionTypeImpl(
|
||||
typeParameters: freshTypeParameters,
|
||||
formalParameters: type.formalParameters.map((parameter) {
|
||||
var type = substitute(parameter.type);
|
||||
@@ -450,7 +450,7 @@ abstract class _TypeSubstitutor
|
||||
|
||||
if (useCounter == before) return type;
|
||||
|
||||
return FunctionTypeImpl.v2(
|
||||
return FunctionTypeImpl(
|
||||
typeParameters: typeFormals,
|
||||
formalParameters: parameters,
|
||||
returnType: returnType,
|
||||
|
||||
@@ -47,7 +47,7 @@ class ConstructorElementToInfer {
|
||||
FunctionType get asType {
|
||||
return typeParameters.isEmpty
|
||||
? element.type
|
||||
: FunctionTypeImpl.v2(
|
||||
: FunctionTypeImpl(
|
||||
typeParameters: typeParameters,
|
||||
formalParameters: element.formalParameters,
|
||||
returnType: element.returnType,
|
||||
|
||||
@@ -534,7 +534,7 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
|
||||
var type = FunctionTypeImpl(
|
||||
typeParameters: element.typeParameters,
|
||||
parameters: element.formalParameters,
|
||||
formalParameters: element.formalParameters,
|
||||
returnType: element.returnType,
|
||||
nullabilitySuffix: _getNullability(node.question != null),
|
||||
);
|
||||
@@ -796,7 +796,7 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
var element = node.declaredFragment!.element;
|
||||
element.type = FunctionTypeImpl(
|
||||
typeParameters: element.typeParameters,
|
||||
parameters: element.formalParameters,
|
||||
formalParameters: element.formalParameters,
|
||||
returnType: node.type?.type ?? _typeProvider.dynamicType,
|
||||
nullabilitySuffix: _getNullability(
|
||||
functionTypedSuffix.question != null,
|
||||
|
||||
@@ -81,7 +81,7 @@ class CorrectOverrideHelper {
|
||||
}
|
||||
|
||||
if (newParameters != null) {
|
||||
_thisTypeForSubtype = FunctionTypeImpl.v2(
|
||||
_thisTypeForSubtype = FunctionTypeImpl(
|
||||
typeParameters: type.typeParameters,
|
||||
formalParameters: newParameters,
|
||||
returnType: type.returnType,
|
||||
|
||||
@@ -528,7 +528,7 @@ class FfiVerifier extends RecursiveAstVisitor<void> {
|
||||
if (dartSignature.returnType is VoidType) {
|
||||
// The Dart signature has a `void` return type, so we create a new
|
||||
// `FunctionType` with FFI's `Void` as the return type.
|
||||
dartSignature = FunctionTypeImpl.v2(
|
||||
dartSignature = FunctionTypeImpl(
|
||||
typeParameters: dartSignature.typeParameters,
|
||||
formalParameters: dartSignature.formalParameters,
|
||||
returnType: ffiVoidType ??= annotationType.element.library
|
||||
@@ -702,7 +702,7 @@ class FfiVerifier extends RecursiveAstVisitor<void> {
|
||||
}
|
||||
|
||||
// Include receiver when validating the full function type.
|
||||
dartType = FunctionTypeImpl.v2(
|
||||
dartType = FunctionTypeImpl(
|
||||
typeParameters: dartType.typeParameters,
|
||||
formalParameters: [
|
||||
FormalParameterElementImpl.synthetic(
|
||||
@@ -786,7 +786,7 @@ class FfiVerifier extends RecursiveAstVisitor<void> {
|
||||
}
|
||||
}
|
||||
|
||||
var nativeType = FunctionTypeImpl.v2(
|
||||
var nativeType = FunctionTypeImpl(
|
||||
typeParameters: ffiSignature.typeParameters,
|
||||
formalParameters: ffiParameters,
|
||||
returnType: ffiSignature.returnType,
|
||||
@@ -1850,7 +1850,7 @@ class FfiVerifier extends RecursiveAstVisitor<void> {
|
||||
if (staticType.returnType is VoidType) {
|
||||
// The Dart signature has a `void` return type, so we create a
|
||||
// new `FunctionType` with FFI's `Void` as the return type.
|
||||
staticType = FunctionTypeImpl.v2(
|
||||
staticType = FunctionTypeImpl(
|
||||
typeParameters: staticType.typeParameters,
|
||||
formalParameters: staticType.formalParameters,
|
||||
returnType: ffiVoidType ??= annotationType.element.library
|
||||
|
||||
@@ -2912,7 +2912,7 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
|
||||
if (receiverContextType != null) {
|
||||
target = InvocationTargetExtensionOverride(
|
||||
element: node.element,
|
||||
type: FunctionTypeImpl.v2(
|
||||
type: FunctionTypeImpl(
|
||||
typeParameters: const [],
|
||||
formalParameters: [
|
||||
FormalParameterElementImpl.synthetic(
|
||||
|
||||
@@ -1738,7 +1738,7 @@ class ResolutionReader {
|
||||
|
||||
return FunctionTypeImpl(
|
||||
typeParameters: typeParameters.map((f) => f.asElement2).toList(),
|
||||
parameters: formalParameters.map((f) => f.asElement2).toList(),
|
||||
formalParameters: formalParameters.map((f) => f.asElement2).toList(),
|
||||
returnType: returnType,
|
||||
nullabilitySuffix: nullability,
|
||||
);
|
||||
|
||||
@@ -86,7 +86,7 @@ class FunctionTypeBuilder extends TypeBuilder {
|
||||
}
|
||||
|
||||
var builtReturnType = _buildType(returnType);
|
||||
type = FunctionTypeImpl.v2(
|
||||
type = FunctionTypeImpl(
|
||||
typeParameters: typeParameters,
|
||||
formalParameters: formalParameters,
|
||||
returnType: builtReturnType,
|
||||
|
||||
@@ -179,7 +179,7 @@ class NamedTypeBuilder extends TypeBuilder {
|
||||
if (node is GenericFunctionType) {
|
||||
return _buildType(node.typeOrThrow);
|
||||
} else {
|
||||
return FunctionTypeImpl.v2(
|
||||
return FunctionTypeImpl(
|
||||
typeParameters: const <TypeParameterElementImpl>[],
|
||||
formalParameters: const <InternalFormalParameterElement>[],
|
||||
returnType: _dynamicType,
|
||||
@@ -237,7 +237,7 @@ class NamedTypeBuilder extends TypeBuilder {
|
||||
var typeParameters = _typeParameters(typeParameterList);
|
||||
var formalParameters = _formalParameters(parameterList);
|
||||
|
||||
return FunctionTypeImpl.v2(
|
||||
return FunctionTypeImpl(
|
||||
typeParameters: typeParameters,
|
||||
formalParameters: formalParameters,
|
||||
returnType: returnType,
|
||||
|
||||
@@ -120,7 +120,7 @@ class TypesBuilder {
|
||||
|
||||
return FunctionTypeImpl(
|
||||
typeParameters: typeParameters.map((f) => f.asElement2).toList(),
|
||||
parameters: formalParameters,
|
||||
formalParameters: formalParameters,
|
||||
returnType: returnType,
|
||||
nullabilitySuffix: nullabilitySuffix,
|
||||
);
|
||||
@@ -460,7 +460,7 @@ class TypesBuilder {
|
||||
static FunctionTypeImpl _errorFunctionType() {
|
||||
return FunctionTypeImpl(
|
||||
typeParameters: const [],
|
||||
parameters: const [],
|
||||
formalParameters: const [],
|
||||
returnType: DynamicTypeImpl.instance,
|
||||
nullabilitySuffix: NullabilitySuffix.none,
|
||||
);
|
||||
|
||||
@@ -798,7 +798,7 @@ class _ParsedFunctionType implements _ParsedType {
|
||||
formalParameters.createFragments();
|
||||
formalParameters.resolve(functionScope);
|
||||
|
||||
return FunctionTypeImpl.v2(
|
||||
return FunctionTypeImpl(
|
||||
returnType: returnType.materialize(functionScope),
|
||||
typeParameters: typeParameters.elements,
|
||||
formalParameters: formalParameters.elements,
|
||||
|
||||
Reference in New Issue
Block a user