Remove _explicitTypeParameters and substitute4 from FunctionTypeImpl.
substitute4 was only used by the kernel resynthesizer, which is not
being maintained at the moment (and which I believe needs to be
reworked anyhow). With substitute4 gone, _explicitTypeParameters was
always null (except in the case of CircularFunctionTypeImpl, where it
had no effect), so we can just replace it with literal `null`.
Change-Id: I5248e0f93b9a39c55d3e4e8b62150536656608e8
Reviewed-on: https://dart-review.googlesource.com/57709
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
diff --git a/pkg/analyzer/lib/src/dart/element/type.dart b/pkg/analyzer/lib/src/dart/element/type.dart
index 3ccdac9..500212a 100644
--- a/pkg/analyzer/lib/src/dart/element/type.dart
+++ b/pkg/analyzer/lib/src/dart/element/type.dart
@@ -139,10 +139,6 @@
TypeParameterElement.EMPTY_LIST;
@override
- List<TypeParameterElement> get _explicitTypeParameters =>
- TypeParameterElement.EMPTY_LIST;
-
- @override
bool get _isInstantiated => false;
@override
@@ -193,12 +189,6 @@
FunctionTypeImpl substitute3(List<DartType> argumentTypes) => this;
@override
- FunctionType substitute4(
- List<TypeParameterElement> typeParameters, List<DartType> typeArguments) {
- return this;
- }
-
- @override
void _forEachParameterType(
ParameterKind kind, callback(String name, DartType type)) {
// There are no parameters.
@@ -265,8 +255,7 @@
DeferredFunctionTypeImpl(this._computeElement, String name,
List<DartType> typeArguments, bool isInstantiated)
- : super._(
- null, name, null, typeArguments, null, null, null, isInstantiated);
+ : super._(null, name, null, typeArguments, null, null, isInstantiated);
@override
FunctionTypedElement get element {
@@ -359,12 +348,6 @@
List<TypeParameterElement> _typeParameters;
/**
- * The list of [typeParameters], if there is no element from which they can be
- * computed, or `null` if they should be computed when necessary.
- */
- final List<TypeParameterElement> _explicitTypeParameters;
-
- /**
* The return type of the function, or `null` if the return type should be
* accessed through the element.
*/
@@ -396,7 +379,7 @@
*/
FunctionTypeImpl(FunctionTypedElement element,
[List<FunctionTypeAliasElement> prunedTypedefs])
- : this._(element, null, prunedTypedefs, null, null, null, null, false);
+ : this._(element, null, prunedTypedefs, null, null, null, false);
/**
* Initialize a newly created function type to be declared by the given
@@ -404,8 +387,7 @@
*/
FunctionTypeImpl.elementWithNameAndArgs(Element element, String name,
List<DartType> typeArguments, bool isInstantiated)
- : this._(element, name, null, typeArguments, null, null, null,
- isInstantiated);
+ : this._(element, name, null, typeArguments, null, null, isInstantiated);
/**
* Initialize a newly created function type to be declared by the given
@@ -413,8 +395,7 @@
*/
FunctionTypeImpl.forTypedef(FunctionTypeAliasElement element,
[List<FunctionTypeAliasElement> prunedTypedefs])
- : this._(element, element?.name, prunedTypedefs, null, null, null, null,
- false);
+ : this._(element, element?.name, prunedTypedefs, null, null, null, false);
/**
* Initialize a newly created function type that is semantically the same as
@@ -482,11 +463,10 @@
String name,
this.prunedTypedefs,
this._typeArguments,
- this._explicitTypeParameters,
this._returnType,
this._parameters,
this._isInstantiated)
- : _typeParameters = _explicitTypeParameters,
+ : _typeParameters = null,
super(element, name);
/**
@@ -944,7 +924,7 @@
newTypeArgs.addAll(argumentTypes);
return new FunctionTypeImpl._(element, name, prunedTypedefs, newTypeArgs,
- _explicitTypeParameters, _returnType, _parameters, true);
+ _returnType, _parameters, true);
}
@override
@@ -1023,8 +1003,8 @@
List<DartType> typeArgs = typeArguments
.map((DartType t) => (t as TypeImpl).pruned(prune))
.toList(growable: false);
- return new FunctionTypeImpl._(element, name, prune, typeArgs,
- _explicitTypeParameters, _returnType, _parameters, _isInstantiated);
+ return new FunctionTypeImpl._(element, name, prune, typeArgs, _returnType,
+ _parameters, _isInstantiated);
}
}
@@ -1046,8 +1026,8 @@
}
List<DartType> typeArgs =
TypeImpl.substitute(typeArguments, argumentTypes, parameterTypes);
- return new FunctionTypeImpl._(element, name, prune, typeArgs,
- _explicitTypeParameters, _returnType, _parameters, _isInstantiated);
+ return new FunctionTypeImpl._(element, name, prune, typeArgs, _returnType,
+ _parameters, _isInstantiated);
}
@override
@@ -1055,20 +1035,6 @@
substitute2(argumentTypes, typeArguments);
/**
- * Perform simple substitution of [typeParameters] with [typeArguments].
- */
- FunctionType substitute4(
- List<TypeParameterElement> typeParameters, List<DartType> typeArguments) {
- if (typeArguments.length != typeParameters.length) {
- throw new ArgumentError(
- "typeArguments.length (${typeArguments.length}) != '"
- "'typeParameters.length (${typeParameters.length})");
- }
- return new FunctionTypeImpl._(element, name, [], typeArguments,
- typeParameters, _returnType, _parameters, true);
- }
-
- /**
* Invokes [callback] for each parameter of [kind] with the parameter's [name]
* and type after any type parameters have been applied.
*/
diff --git a/pkg/analyzer/lib/src/kernel/resynthesize.dart b/pkg/analyzer/lib/src/kernel/resynthesize.dart
index a66763e..43cb699 100644
--- a/pkg/analyzer/lib/src/kernel/resynthesize.dart
+++ b/pkg/analyzer/lib/src/kernel/resynthesize.dart
@@ -372,7 +372,7 @@
}
// Replace Analyzer type parameters with type arguments.
- return rawType.substitute4(usedTypeParameters, usedTypeArguments);
+ throw new UnimplementedError('TODO(paulberry)');
}
/// Return the [TypeParameterElement] for the given [kernelTypeParameter].