[analyzer] Change VariableElementImpl.type setter to TypeImpl.
The types of `LocalVariableElementImpl2.type=`,
`PropertyInducingElementImpl.type=`, and `VariableElementImpl.type=`
are all changed to accept `TypeImpl` rather than `DartType`.
To reduce the number of casts that need to be added, some field types,
getter types, method return types, and method parameter types are
changed to `Impl` types in the following classes:
- `DeclarationBuilder`
- `ElementFactory`
- `ElementsTypesMixin`
- `ForResolver`
- `FunctionExpressionResolver`
- `FunctionTypeBuilder`
- `FunctionTypeTest`
- `InstanceMemberInferrer`
- `LocalVariableElementImpl2`
- `NamedTypeBuilder`
- `NonCovariantTypeParameterPositionVisitorTest`
- `ReplacementVisitor`
- `ResolutionReader`
- `ResolutionVisitor`
- `TypeBuilder`
- `TypeReferencesAnyTest`
- `TypesBuilder`
- `_MockSdkElementsBuilder`
- `_Node`
There is no change to the analyzer public API.
This is part of a larger arc of work to change the analyzer's use of
the shared code so that the type parameters it supplies are not part
of the analyzer public API. See
https://github.com/dart-lang/sdk/issues/59763.
Change-Id: I726bb1ce414eec3f360ae655c1f55e6be9e713fe
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/405242
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index edc8c24..141d88a 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -7844,9 +7844,9 @@
Metadata get metadata2 => wrappedElement.metadata2;
@override
- DartType get type => _wrappedElement.type;
+ TypeImpl get type => _wrappedElement.type;
- set type(DartType type) => _wrappedElement.type = type;
+ set type(TypeImpl type) => _wrappedElement.type = type;
LocalVariableElementImpl get wrappedElement {
return _wrappedElement;
@@ -9310,7 +9310,9 @@
nameOffset: -1,
parameterKind: parameterKind,
);
- element.type = type;
+ // TODO(paulberry): remove this cast by changing the type of the `type`
+ // parameter.
+ element.type = type as TypeImpl;
element.isSynthetic = true;
return element;
}
@@ -10357,7 +10359,7 @@
}
@override
- set type(DartType type) {
+ set type(TypeImpl type) {
super.type = type;
// Reset cached types of synthetic getters and setters.
// TODO(scheglov): Consider not caching these types.
@@ -11630,10 +11632,8 @@
@override
TypeImpl get type => _type!;
- set type(DartType type) {
- // TODO(paulberry): eliminate this cast by changing the setter parameter
- // type to `TypeImpl`.
- _type = type as TypeImpl;
+ set type(TypeImpl type) {
+ _type = type;
}
@override
diff --git a/pkg/analyzer/lib/src/dart/element/replacement_visitor.dart b/pkg/analyzer/lib/src/dart/element/replacement_visitor.dart
index 7d3d4d8..30b102d 100644
--- a/pkg/analyzer/lib/src/dart/element/replacement_visitor.dart
+++ b/pkg/analyzer/lib/src/dart/element/replacement_visitor.dart
@@ -58,7 +58,7 @@
required FunctionTypeBuilder type,
required List<TypeParameterElement>? newTypeParameters,
required List<ParameterElement>? newParameters,
- required DartType? newReturnType,
+ required TypeImpl? newReturnType,
required NullabilitySuffix? newNullability,
}) {
if (newNullability == null &&
@@ -311,13 +311,15 @@
}
}
- DartType? visitType(DartType? type) {
+ TypeImpl? visitType(DartType? type) {
if (type == null) return null;
var result = type.accept(this);
if (substitution != null) {
result = substitution.substituteType(result ?? type);
}
- return result;
+ // TODO(paulberry): eliminate this cast by changing `ReplacementVisitor`
+ // to implement `TypeVisitor<TypeImpl?>`.
+ return result as TypeImpl?;
}
var newReturnType = visitType(node.returnType);
diff --git a/pkg/analyzer/lib/src/dart/element/type_algebra.dart b/pkg/analyzer/lib/src/dart/element/type_algebra.dart
index 2fecad3..33dc90d 100644
--- a/pkg/analyzer/lib/src/dart/element/type_algebra.dart
+++ b/pkg/analyzer/lib/src/dart/element/type_algebra.dart
@@ -554,7 +554,9 @@
inner.invertVariance();
- var returnType = type.returnType.accept(inner);
+ // TODO(paulberry): eliminate this cast by changing `_TypeSubstitutor` to
+ // implement `TypeVisitor<TypeImpl>`.
+ var returnType = type.returnType.accept(inner) as TypeImpl;
if (useCounter == before) return type;
diff --git a/pkg/analyzer/lib/src/dart/resolver/for_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/for_resolver.dart
index aa02df4..20c7fa7 100644
--- a/pkg/analyzer/lib/src/dart/resolver/for_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/for_resolver.dart
@@ -99,7 +99,7 @@
/// a type for the elements being iterated over. Inference is based
/// on the type of the iterator or stream over which the foreach loop
/// is defined.
- DartType _computeForEachElementType(Expression iterable, bool isAsync) {
+ TypeImpl _computeForEachElementType(ExpressionImpl iterable, bool isAsync) {
var iterableType = iterable.staticType;
if (iterableType == null) {
return InvalidTypeImpl.instance;
diff --git a/pkg/analyzer/lib/src/dart/resolver/function_expression_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/function_expression_resolver.dart
index 05f942b..18b7fef 100644
--- a/pkg/analyzer/lib/src/dart/resolver/function_expression_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/function_expression_resolver.dart
@@ -80,7 +80,7 @@
return;
}
- void inferType(ParameterElementImpl p, DartType inferredType) {
+ void inferType(ParameterElementImpl p, TypeImpl inferredType) {
// Check that there is no declared type, and that we have not already
// inferred a type in some fashion.
if (p.hasImplicitType && p.type is DynamicType) {
@@ -108,8 +108,11 @@
Iterator<ParameterElement> fnPositional =
contextType.parameters.where((p) => p.isPositional).iterator;
while (positional.moveNext() && fnPositional.moveNext()) {
- inferType(positional.current as ParameterElementImpl,
- fnPositional.current.type);
+ inferType(
+ positional.current as ParameterElementImpl,
+ // TODO(paulberry): eliminate this cast by changing the type of
+ // `contextType` to `FunctionTypeImpl`.
+ fnPositional.current.type as TypeImpl);
}
}
@@ -121,7 +124,11 @@
if (!namedParameterTypes.containsKey(p.name)) {
continue;
}
- inferType(p as ParameterElementImpl, namedParameterTypes[p.name]!);
+ inferType(
+ p as ParameterElementImpl,
+ // TODO(paulberry): eliminate this cast by changing the type of
+ // `contextType` to `FunctionTypeImpl`.
+ namedParameterTypes[p.name]! as TypeImpl);
}
}
}
diff --git a/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart b/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart
index ede4d51..9400593 100644
--- a/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart
@@ -23,6 +23,7 @@
import 'package:analyzer/src/dart/element/scope.dart';
import 'package:analyzer/src/dart/element/type.dart';
import 'package:analyzer/src/dart/element/type_constraint_gatherer.dart';
+import 'package:analyzer/src/dart/element/type_provider.dart';
import 'package:analyzer/src/dart/resolver/ast_rewrite.dart';
import 'package:analyzer/src/dart/resolver/flow_analysis_visitor.dart';
import 'package:analyzer/src/dart/resolver/named_type_resolver.dart';
@@ -73,7 +74,7 @@
/// 5. Rewrite AST where resolution provides a more accurate understanding.
class ResolutionVisitor extends RecursiveAstVisitor<void> {
final LibraryElementImpl _libraryElement;
- final TypeProvider _typeProvider;
+ final TypeProviderImpl _typeProvider;
final CompilationUnitElementImpl _unitElement;
final ErrorReporter _errorReporter;
final AstRewriter _astRewriter;
@@ -177,7 +178,7 @@
this.dataForTesting,
);
- DartType get _dynamicType => _typeProvider.dynamicType;
+ TypeImpl get _dynamicType => _typeProvider.dynamicType;
@override
void visitAnnotation(covariant AnnotationImpl node) {
@@ -1402,7 +1403,7 @@
var localElement = node.declaredElement as LocalVariableElementImpl;
element = localElement;
- var varList = node.parent as VariableDeclarationList;
+ var varList = node.parent as VariableDeclarationListImpl;
localElement.hasImplicitType = varList.type == null;
localElement.hasInitializer = initializerNode != null;
localElement.type = varList.type?.type ?? _dynamicType;
diff --git a/pkg/analyzer/lib/src/generated/testing/element_factory.dart b/pkg/analyzer/lib/src/generated/testing/element_factory.dart
index 6c7aa90..baaf8a3 100644
--- a/pkg/analyzer/lib/src/generated/testing/element_factory.dart
+++ b/pkg/analyzer/lib/src/generated/testing/element_factory.dart
@@ -120,7 +120,7 @@
static ConstructorElementImpl constructorElement(
ClassElement definingClass, String? name, bool isConst,
- [List<DartType> argumentTypes = const []]) {
+ [List<TypeImpl> argumentTypes = const []]) {
var offset = name == null ? -1 : 0;
// A constructor declared as `C.new` is unnamed, and is modeled as such.
var constructor = name == null || name == 'new'
@@ -146,11 +146,11 @@
static ConstructorElementImpl constructorElement2(
ClassElement definingClass, String? name,
- [List<DartType> argumentTypes = const []]) =>
+ [List<TypeImpl> argumentTypes = const []]) =>
constructorElement(definingClass, name, false, argumentTypes);
static FieldElementImpl fieldElement(
- String name, bool isStatic, bool isFinal, bool isConst, DartType type,
+ String name, bool isStatic, bool isFinal, bool isConst, TypeImpl type,
{ExpressionImpl? initializer}) {
FieldElementImpl field =
isConst ? ConstFieldElementImpl(name, 0) : FieldElementImpl(name, 0);
@@ -184,7 +184,7 @@
}
static PropertyAccessorElementImpl getterElement(
- String name, bool isStatic, DartType type) {
+ String name, bool isStatic, TypeImpl type) {
FieldElementImpl field = FieldElementImpl(name, -1);
field.isStatic = isStatic;
field.isSynthetic = true;
@@ -227,7 +227,7 @@
LocalVariableElementImpl(name, 0);
static MethodElementImpl methodElement(String methodName, DartType returnType,
- [List<DartType> argumentTypes = const []]) {
+ [List<TypeImpl> argumentTypes = const []]) {
MethodElementImpl method = MethodElementImpl(methodName, 0);
method.parameters = _requiredParameters(argumentTypes);
method.returnType = returnType;
@@ -276,7 +276,7 @@
);
}
- static ParameterElementImpl namedParameter2(String name, DartType type) {
+ static ParameterElementImpl namedParameter2(String name, TypeImpl type) {
var parameter = ParameterElementImpl(
name: name,
nameOffset: 0,
@@ -294,7 +294,7 @@
);
}
- static ParameterElementImpl positionalParameter2(String name, DartType type) {
+ static ParameterElementImpl positionalParameter2(String name, TypeImpl type) {
var parameter = ParameterElementImpl(
name: name,
nameOffset: 0,
@@ -314,7 +314,7 @@
);
}
- static ParameterElementImpl requiredParameter2(String name, DartType type) {
+ static ParameterElementImpl requiredParameter2(String name, TypeImpl type) {
var parameter = ParameterElementImpl(
name: name,
nameOffset: 0,
@@ -325,7 +325,7 @@
}
static PropertyAccessorElementImpl setterElement(
- String name, bool isStatic, DartType type) {
+ String name, bool isStatic, TypeImpl type) {
FieldElementImpl field = FieldElementImpl(name, -1);
field.isStatic = isStatic;
field.isSynthetic = true;
@@ -367,7 +367,7 @@
}
static List<ParameterElementImpl> _requiredParameters(
- List<DartType> argumentTypes) {
+ List<TypeImpl> argumentTypes) {
var parameters = argumentTypes.mapIndexed((index, type) {
var parameter = ParameterElementImpl(
name: 'a$index',
diff --git a/pkg/analyzer/lib/src/summary2/bundle_reader.dart b/pkg/analyzer/lib/src/summary2/bundle_reader.dart
index b08a3d0..3f630a0 100644
--- a/pkg/analyzer/lib/src/summary2/bundle_reader.dart
+++ b/pkg/analyzer/lib/src/summary2/bundle_reader.dart
@@ -2170,7 +2170,7 @@
}
}
- DartType readRequiredType() {
+ TypeImpl readRequiredType() {
return readType()!;
}
diff --git a/pkg/analyzer/lib/src/summary2/extension_type.dart b/pkg/analyzer/lib/src/summary2/extension_type.dart
index 0721f5e..1e16b82 100644
--- a/pkg/analyzer/lib/src/summary2/extension_type.dart
+++ b/pkg/analyzer/lib/src/summary2/extension_type.dart
@@ -151,7 +151,7 @@
_evaluateWithType(type);
}
- void _evaluateWithType(DartType type) {
+ void _evaluateWithType(TypeImpl type) {
var typeSystem = element.library.typeSystem;
element.representation.type = type;
diff --git a/pkg/analyzer/lib/src/summary2/function_type_builder.dart b/pkg/analyzer/lib/src/summary2/function_type_builder.dart
index 5aa072c..91888f5 100644
--- a/pkg/analyzer/lib/src/summary2/function_type_builder.dart
+++ b/pkg/analyzer/lib/src/summary2/function_type_builder.dart
@@ -23,7 +23,7 @@
final List<TypeParameterElement> typeFormals;
final List<ParameterElement> parameters;
- final DartType returnType;
+ final TypeImpl returnType;
@override
final NullabilitySuffix nullabilitySuffix;
@@ -71,7 +71,7 @@
}
@override
- DartType build() {
+ TypeImpl build() {
var type = _type;
if (type != null) {
return type;
@@ -153,7 +153,7 @@
}
/// If the [type] is a [TypeBuilder], build it; otherwise return as is.
- static DartType _buildType(DartType type) {
+ static TypeImpl _buildType(TypeImpl type) {
if (type is TypeBuilder) {
return type.build();
} else {
@@ -162,7 +162,7 @@
}
/// Return the type of the [node] as is, possibly a [TypeBuilder].
- static DartType _getNodeType(TypeAnnotation? node) {
+ static TypeImpl _getNodeType(TypeAnnotation? node) {
if (node == null) {
return _dynamicType;
} else {
diff --git a/pkg/analyzer/lib/src/summary2/instance_member_inferrer.dart b/pkg/analyzer/lib/src/summary2/instance_member_inferrer.dart
index 9497b42..c25db87 100644
--- a/pkg/analyzer/lib/src/summary2/instance_member_inferrer.dart
+++ b/pkg/analyzer/lib/src/summary2/instance_member_inferrer.dart
@@ -127,7 +127,7 @@
);
overriddenSetters ??= const [];
- DartType combinedGetterType() {
+ TypeImpl combinedGetterType() {
var combinedGetter = inheritance.combineSignatures(
targetClass: currentInterfaceElement,
candidates: overriddenGetters!,
@@ -135,12 +135,14 @@
name: getterName,
);
if (combinedGetter != null) {
- return combinedGetter.returnType;
+ // TODO(paulberry): eliminate this cast by changing the return type of
+ // `InheritanceManager3.combineSignatures`.
+ return combinedGetter.returnType as TypeImpl;
}
return DynamicTypeImpl.instance;
}
- DartType combinedSetterType() {
+ TypeImpl combinedSetterType() {
var combinedSetter = inheritance.combineSignatures(
targetClass: currentInterfaceElement,
candidates: overriddenSetters!,
@@ -150,7 +152,9 @@
if (combinedSetter != null) {
var parameters = combinedSetter.parameters;
if (parameters.isNotEmpty) {
- return parameters[0].type;
+ // TODO(paulberry): eliminate this cast by changing the return type of
+ // `InheritanceManager3.combineSignatures`.
+ return parameters[0].type as TypeImpl;
}
}
return DynamicTypeImpl.instance;
@@ -373,12 +377,16 @@
if (parameter is FieldFormalParameterElementImpl) {
var field = parameter.field;
if (field != null) {
- parameter.type = field.type;
+ // TODO(paulberry): eliminate this cast by changing the type of
+ // `FieldFormalParameterElementImpl.field`.
+ parameter.type = field.type as TypeImpl;
}
} else if (parameter is SuperFormalParameterElementImpl) {
var superParameter = parameter.superConstructorParameter;
if (superParameter != null) {
- parameter.type = superParameter.type;
+ // TODO(paulberry): eliminate this cast by changing the type of
+ // `SuperFormalParameterElementImpl.superConstructorParameter`.
+ parameter.type = superParameter.type as TypeImpl;
} else {
parameter.type = DynamicTypeImpl.instance;
}
@@ -544,7 +552,9 @@
combinedSignatureType.parameters,
);
if (matchingParameter != null) {
- parameter.type = matchingParameter.type;
+ // TODO(paulberry): eliminate this cast by changing the return type of
+ // `_getCorrespondingParameter`.
+ parameter.type = matchingParameter.type as TypeImpl;
} else {
parameter.type = DynamicTypeImpl.instance;
}
@@ -724,7 +734,7 @@
return false;
}
- static void _setFieldType(FieldElementImpl field, DartType type) {
+ static void _setFieldType(FieldElementImpl field, TypeImpl type) {
field.type = type;
}
}
diff --git a/pkg/analyzer/lib/src/summary2/macro_declarations.dart b/pkg/analyzer/lib/src/summary2/macro_declarations.dart
index 9010af8..427d4c1 100644
--- a/pkg/analyzer/lib/src/summary2/macro_declarations.dart
+++ b/pkg/analyzer/lib/src/summary2/macro_declarations.dart
@@ -349,11 +349,10 @@
}
}
- DartType resolveType(macro.TypeAnnotationCode typeCode) {
+ TypeImpl resolveType(macro.TypeAnnotationCode typeCode) {
switch (typeCode) {
case macro.NullableTypeAnnotationCode():
var type = resolveType(typeCode.underlyingType);
- type as TypeImpl;
return type.withNullability(NullabilitySuffix.question);
case macro.FunctionTypeAnnotationCode():
return _resolveTypeCodeFunction(typeCode);
@@ -546,7 +545,7 @@
);
}
- DartType _resolveTypeCodeNamed(macro.NamedTypeAnnotationCode typeCode) {
+ TypeImpl _resolveTypeCodeNamed(macro.NamedTypeAnnotationCode typeCode) {
var identifier = typeCode.name as IdentifierImpl;
if (identifier is IdentifierImplVoid) {
return VoidTypeImpl.instance;
@@ -576,15 +575,19 @@
}
}
- DartType _resolveTypeCodeOmitted(macro.OmittedTypeAnnotationCode typeCode) {
+ TypeImpl _resolveTypeCodeOmitted(macro.OmittedTypeAnnotationCode typeCode) {
var omittedType = typeCode.typeAnnotation;
switch (omittedType) {
case OmittedTypeAnnotationDynamic():
return DynamicTypeImpl.instance;
case OmittedTypeAnnotationFunctionReturnType():
- return omittedType.element.returnType;
+ // TODO(paulberry): eliminate this cast by changing the type of
+ // `macro.OmittedTypeAnnotationCode.typeAnnotation`.
+ return omittedType.element.returnType as TypeImpl;
case OmittedTypeAnnotationVariable():
- return omittedType.element.type;
+ // TODO(paulberry): eliminate this cast by changing the type of
+ // `macro.OmittedTypeAnnotationCode.typeAnnotation`.
+ return omittedType.element.type as TypeImpl;
default:
throw UnimplementedError('${omittedType.runtimeType}');
}
diff --git a/pkg/analyzer/lib/src/summary2/named_type_builder.dart b/pkg/analyzer/lib/src/summary2/named_type_builder.dart
index 6110ccf..c1724c6 100644
--- a/pkg/analyzer/lib/src/summary2/named_type_builder.dart
+++ b/pkg/analyzer/lib/src/summary2/named_type_builder.dart
@@ -90,7 +90,7 @@
}
@override
- DartType build() {
+ TypeImpl build() {
if (_type != null) {
return _type!;
}
diff --git a/pkg/analyzer/lib/src/summary2/type_builder.dart b/pkg/analyzer/lib/src/summary2/type_builder.dart
index b9a0b93..5d69716 100644
--- a/pkg/analyzer/lib/src/summary2/type_builder.dart
+++ b/pkg/analyzer/lib/src/summary2/type_builder.dart
@@ -11,7 +11,7 @@
/// Does nothing if the type has been already built.
///
/// Return the built type.
- DartType build();
+ TypeImpl build();
@override
dynamic noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
diff --git a/pkg/analyzer/lib/src/summary2/types_builder.dart b/pkg/analyzer/lib/src/summary2/types_builder.dart
index b0cf03e..b233c4c 100644
--- a/pkg/analyzer/lib/src/summary2/types_builder.dart
+++ b/pkg/analyzer/lib/src/summary2/types_builder.dart
@@ -97,7 +97,7 @@
_MixinsInference(_toInferMixins).perform();
}
- FunctionType _buildFunctionType(
+ FunctionTypeImpl _buildFunctionType(
TypeParameterList? typeParameterList,
TypeAnnotation? returnTypeNode,
FormalParameterList parameterList,
@@ -167,7 +167,7 @@
_extensionDeclaration(node);
} else if (node is ExtensionTypeDeclarationImpl) {
_extensionTypeDeclaration(node);
- } else if (node is FieldFormalParameter) {
+ } else if (node is FieldFormalParameterImpl) {
_fieldFormalParameter(node);
} else if (node is FunctionDeclaration) {
var returnType = node.returnType?.type;
@@ -203,14 +203,14 @@
element.returnType = returnType;
} else if (node is MixinDeclaration) {
_mixinDeclaration(node);
- } else if (node is SimpleFormalParameter) {
+ } else if (node is SimpleFormalParameterImpl) {
var element = node.declaredElement as ParameterElementImpl;
element.type = node.type?.type ?? _dynamicType;
- } else if (node is SuperFormalParameter) {
+ } else if (node is SuperFormalParameterImpl) {
_superFormalParameter(node);
} else if (node is TypeParameterImpl) {
_typeParameter(node);
- } else if (node is VariableDeclarationList) {
+ } else if (node is VariableDeclarationListImpl) {
var type = node.type?.type;
if (type != null) {
for (var variable in node.variables) {
@@ -260,7 +260,7 @@
_updatedAugmented(element);
}
- void _fieldFormalParameter(FieldFormalParameter node) {
+ void _fieldFormalParameter(FieldFormalParameterImpl node) {
var element = node.declaredElement as FieldFormalParameterElementImpl;
var parameterList = node.parameters;
if (parameterList != null) {
@@ -342,7 +342,7 @@
}
}
- void _superFormalParameter(SuperFormalParameter node) {
+ void _superFormalParameter(SuperFormalParameterImpl node) {
var element = node.declaredElement as SuperFormalParameterElementImpl;
var parameterList = node.parameters;
if (parameterList != null) {
diff --git a/pkg/analyzer/lib/src/test_utilities/mock_sdk_elements.dart b/pkg/analyzer/lib/src/test_utilities/mock_sdk_elements.dart
index 20e0893..6d04c6e 100644
--- a/pkg/analyzer/lib/src/test_utilities/mock_sdk_elements.dart
+++ b/pkg/analyzer/lib/src/test_utilities/mock_sdk_elements.dart
@@ -67,13 +67,13 @@
ClassElementImpl? _symbolElement;
ClassElementImpl? _typeElement;
- InterfaceType? _boolType;
- InterfaceType? _doubleType;
- InterfaceType? _intType;
- InterfaceType? _numType;
- InterfaceType? _objectType;
- InterfaceType? _stringType;
- InterfaceType? _typeType;
+ InterfaceTypeImpl? _boolType;
+ InterfaceTypeImpl? _doubleType;
+ InterfaceTypeImpl? _intType;
+ InterfaceTypeImpl? _numType;
+ InterfaceTypeImpl? _objectType;
+ InterfaceTypeImpl? _stringType;
+ InterfaceTypeImpl? _typeType;
late LibraryElementImpl _asyncLibrary;
late CompilationUnitElementImpl _asyncUnit;
@@ -109,7 +109,7 @@
return boolElement;
}
- InterfaceType get boolType {
+ InterfaceTypeImpl get boolType {
return _boolType ??= _interfaceType(boolElement);
}
@@ -238,7 +238,7 @@
return doubleElement;
}
- InterfaceType get doubleType {
+ InterfaceTypeImpl get doubleType {
return _doubleType ??= _interfaceType(doubleElement);
}
@@ -259,7 +259,7 @@
return functionElement;
}
- InterfaceType get functionType {
+ InterfaceTypeImpl get functionType {
return _interfaceType(functionElement);
}
@@ -380,7 +380,7 @@
return intElement;
}
- InterfaceType get intType {
+ InterfaceTypeImpl get intType {
return _intType ??= _interfaceType(intElement);
}
@@ -615,7 +615,7 @@
return numElement;
}
- InterfaceType get numType {
+ InterfaceTypeImpl get numType {
return _numType ??= _interfaceType(numElement);
}
@@ -651,7 +651,7 @@
return objectElement;
}
- InterfaceType get objectType {
+ InterfaceTypeImpl get objectType {
return _objectType ??= _interfaceType(objectElement);
}
@@ -686,7 +686,7 @@
return recordElement;
}
- InterfaceType get recordType {
+ InterfaceTypeImpl get recordType {
return _interfaceType(recordElement);
}
@@ -831,7 +831,7 @@
return stringElement;
}
- InterfaceType get stringType {
+ InterfaceTypeImpl get stringType {
return _stringType ??= _interfaceType(stringElement);
}
@@ -875,48 +875,48 @@
return typeElement;
}
- InterfaceType get typeType {
+ InterfaceTypeImpl get typeType {
return _typeType ??= _interfaceType(typeElement);
}
VoidTypeImpl get voidType => VoidTypeImpl.instance;
- InterfaceType futureOrType(DartType elementType) {
+ InterfaceTypeImpl futureOrType(DartType elementType) {
return _interfaceType(
futureOrElement,
typeArguments: [elementType],
);
}
- InterfaceType futureType(DartType elementType) {
+ InterfaceTypeImpl futureType(DartType elementType) {
return _interfaceType(
futureElement,
typeArguments: [elementType],
);
}
- InterfaceType iterableType(DartType elementType) {
+ InterfaceTypeImpl iterableType(DartType elementType) {
return _interfaceType(
iterableElement,
typeArguments: [elementType],
);
}
- InterfaceType iteratorType(DartType elementType) {
+ InterfaceTypeImpl iteratorType(DartType elementType) {
return _interfaceType(
iteratorElement,
typeArguments: [elementType],
);
}
- InterfaceType listType(DartType elementType) {
+ InterfaceTypeImpl listType(DartType elementType) {
return _interfaceType(
listElement,
typeArguments: [elementType],
);
}
- InterfaceType streamSubscriptionType(DartType valueType) {
+ InterfaceTypeImpl streamSubscriptionType(DartType valueType) {
return _interfaceType(
streamSubscriptionElement,
typeArguments: [valueType],
@@ -1007,7 +1007,7 @@
FieldElementImpl _field(
String name,
- DartType type, {
+ TypeImpl type, {
bool isConst = false,
bool isFinal = false,
bool isStatic = false,
@@ -1029,7 +1029,7 @@
return fragment;
}
- FunctionType _functionType({
+ FunctionTypeImpl _functionType({
required DartType returnType,
List<TypeParameterElement> typeFormals = const [],
List<ParameterElement> parameters = const [],
@@ -1044,7 +1044,7 @@
PropertyAccessorElementImpl _getter(
String name,
- DartType type, {
+ TypeImpl type, {
bool isStatic = false,
}) {
var field = FieldElementImpl(name, -1);
@@ -1063,7 +1063,7 @@
return getter;
}
- InterfaceType _interfaceType(
+ InterfaceTypeImpl _interfaceType(
InterfaceElementImpl element, {
List<DartType> typeArguments = const [],
}) {
@@ -1086,7 +1086,7 @@
..typeParameters = typeFormals;
}
- ParameterElementImpl _namedParameter(String name, DartType type,
+ ParameterElementImpl _namedParameter(String name, TypeImpl type,
{String? initializerCode}) {
var parameter = DefaultParameterElementImpl(
name: name,
@@ -1167,7 +1167,7 @@
_fillLibraryFromFragment(_coreLibrary, _coreUnit);
}
- ParameterElementImpl _positionalParameter(String name, DartType type) {
+ ParameterElementImpl _positionalParameter(String name, TypeImpl type) {
var parameter = ParameterElementImpl(
name: name,
nameOffset: 0,
@@ -1177,7 +1177,7 @@
return parameter;
}
- ParameterElementImpl _requiredParameter(String name, DartType type) {
+ ParameterElementImpl _requiredParameter(String name, TypeImpl type) {
var parameter = ParameterElementImpl(
name: name,
nameOffset: 0,
@@ -1201,7 +1201,7 @@
TopLevelVariableElementImpl _topLevelVariableConst(
String name,
- DartType type,
+ TypeImpl type,
) {
var fragment = ConstTopLevelVariableElementImpl(name, -1)
..isConst = true
@@ -1215,7 +1215,7 @@
return TypeParameterElementImpl(name, 0);
}
- TypeParameterType _typeParameterType(TypeParameterElement element) {
+ TypeParameterTypeImpl _typeParameterType(TypeParameterElement element) {
return TypeParameterTypeImpl(
element: element,
nullabilitySuffix: NullabilitySuffix.none,
diff --git a/pkg/analyzer/test/generated/elements_types_mixin.dart b/pkg/analyzer/test/generated/elements_types_mixin.dart
index 2c0dd91..d845879 100644
--- a/pkg/analyzer/test/generated/elements_types_mixin.dart
+++ b/pkg/analyzer/test/generated/elements_types_mixin.dart
@@ -204,7 +204,7 @@
ExtensionTypeElementImpl extensionType(
String name, {
String representationName = 'it',
- required DartType representationType,
+ required TypeImpl representationType,
List<TypeParameterElementImpl> typeParameters = const [],
List<InterfaceType> interfaces = const [],
}) {
@@ -438,7 +438,7 @@
ParameterElementImpl namedParameter({
required String name,
- required DartType type,
+ required TypeImpl type,
bool isCovariant = false,
}) {
var parameter = ParameterElementImpl(
@@ -453,7 +453,7 @@
ParameterElementImpl namedRequiredParameter({
required String name,
- required DartType type,
+ required TypeImpl type,
bool isCovariant = false,
}) {
var parameter = ParameterElementImpl(
@@ -468,7 +468,7 @@
ParameterElementImpl positionalParameter({
String? name,
- required DartType type,
+ required TypeImpl type,
bool isCovariant = false,
String? defaultValueCode,
}) {
@@ -562,7 +562,7 @@
ParameterElementImpl requiredParameter({
String? name,
- required DartType type,
+ required TypeImpl type,
bool isCovariant = false,
}) {
var parameter = ParameterElementImpl(
diff --git a/pkg/analyzer/test/src/dart/element/element_test.dart b/pkg/analyzer/test/src/dart/element/element_test.dart
index 2f86596..04d62c98 100644
--- a/pkg/analyzer/test/src/dart/element/element_test.dart
+++ b/pkg/analyzer/test/src/dart/element/element_test.dart
@@ -1222,7 +1222,7 @@
var AE = typeParameter('E');
var A = class_(name: 'A', typeParameters: [AE]);
- DartType typeAE = typeParameterTypeNone(AE);
+ var typeAE = typeParameterTypeNone(AE);
String getterName = "g";
PropertyAccessorElementImpl getterG =
ElementFactory.getterElement(getterName, false, typeAE);
@@ -1341,7 +1341,7 @@
//
var E = typeParameter('E');
var A = class_(name: 'A', typeParameters: [E]);
- DartType typeE = typeParameterTypeNone(E);
+ var typeE = typeParameterTypeNone(E);
String methodName = "m";
MethodElementImpl methodM =
ElementFactory.methodElement(methodName, typeE, [typeE]);
@@ -1469,7 +1469,7 @@
//
var E = typeParameter('E');
var A = class_(name: 'A', typeParameters: [E]);
- DartType typeE = typeParameterTypeNone(E);
+ var typeE = typeParameterTypeNone(E);
String setterName = "s";
PropertyAccessorElementImpl setterS =
ElementFactory.setterElement(setterName, false, typeE);
diff --git a/pkg/analyzer/test/src/dart/element/function_type_test.dart b/pkg/analyzer/test/src/dart/element/function_type_test.dart
index 284e3f3..164ddc0 100644
--- a/pkg/analyzer/test/src/dart/element/function_type_test.dart
+++ b/pkg/analyzer/test/src/dart/element/function_type_test.dart
@@ -30,7 +30,7 @@
ClassElement get mapElement => typeProvider.mapElement;
- InterfaceType get objectType => typeProvider.objectType;
+ InterfaceTypeImpl get objectType => typeProvider.objectType;
void basicChecks(FunctionType f,
{displayName = 'dynamic Function()',
diff --git a/pkg/analyzer/test/src/dart/element/least_greatest_closure_test.dart b/pkg/analyzer/test/src/dart/element/least_greatest_closure_test.dart
index 17e4694..7dafa59 100644
--- a/pkg/analyzer/test/src/dart/element/least_greatest_closure_test.dart
+++ b/pkg/analyzer/test/src/dart/element/least_greatest_closure_test.dart
@@ -6,6 +6,7 @@
import 'package:analyzer/dart/element/type.dart';
import 'package:analyzer/src/dart/element/element.dart';
+import 'package:analyzer/src/dart/element/type.dart';
import 'package:analyzer/src/utilities/extensions/element.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -21,7 +22,7 @@
@reflectiveTest
class GreatestClosureTest extends AbstractTypeSystemTest {
late final TypeParameterElementImpl2 T;
- late final TypeParameterType T_none;
+ late final TypeParameterTypeImpl T_none;
late final TypeParameterType T_question;
@override
diff --git a/pkg/analyzer/test/src/dart/element/non_covariant_type_parameter_position_test.dart b/pkg/analyzer/test/src/dart/element/non_covariant_type_parameter_position_test.dart
index e70f926..7e65d27 100644
--- a/pkg/analyzer/test/src/dart/element/non_covariant_type_parameter_position_test.dart
+++ b/pkg/analyzer/test/src/dart/element/non_covariant_type_parameter_position_test.dart
@@ -5,6 +5,7 @@
import 'package:_fe_analyzer_shared/src/type_inference/type_analyzer_operations.dart';
import 'package:analyzer/dart/element/type.dart';
import 'package:analyzer/src/dart/element/non_covariant_type_parameter_position.dart';
+import 'package:analyzer/src/dart/element/type.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -22,7 +23,7 @@
late final T_element = typeParameter('T');
late final T = typeParameterTypeNone(T_element);
- FunctionType get _contravariantT {
+ FunctionTypeImpl get _contravariantT {
return functionTypeNone(
returnType: voidNone,
parameters: [
diff --git a/pkg/analyzer/test/src/dart/element/replace_top_bottom_test.dart b/pkg/analyzer/test/src/dart/element/replace_top_bottom_test.dart
index 48e3048..3a0c68e 100644
--- a/pkg/analyzer/test/src/dart/element/replace_top_bottom_test.dart
+++ b/pkg/analyzer/test/src/dart/element/replace_top_bottom_test.dart
@@ -5,6 +5,7 @@
import 'package:_fe_analyzer_shared/src/type_inference/type_analyzer_operations.dart';
import 'package:analyzer/dart/element/nullability_suffix.dart';
import 'package:analyzer/dart/element/type.dart';
+import 'package:analyzer/src/dart/element/type.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -22,7 +23,7 @@
// Not contravariant.
_check(neverNone, 'Never');
- void checkContravariant(DartType type, String expectedStr) {
+ void checkContravariant(TypeImpl type, String expectedStr) {
_check(
functionTypeNone(returnType: intNone, parameters: [
requiredParameter(type: type),
diff --git a/pkg/analyzer/test/src/dart/element/runtime_type_equality_test.dart b/pkg/analyzer/test/src/dart/element/runtime_type_equality_test.dart
index 5c37bb7..a3b7988 100644
--- a/pkg/analyzer/test/src/dart/element/runtime_type_equality_test.dart
+++ b/pkg/analyzer/test/src/dart/element/runtime_type_equality_test.dart
@@ -6,6 +6,7 @@
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/type.dart';
+import 'package:analyzer/src/dart/element/type.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -55,8 +56,8 @@
{
void checkRequiredParameter(
- DartType T1_type,
- DartType T2_type,
+ TypeImpl T1_type,
+ TypeImpl T2_type,
bool expected,
) {
check(
diff --git a/pkg/analyzer/test/src/dart/element/type_references_any_test.dart b/pkg/analyzer/test/src/dart/element/type_references_any_test.dart
index e841af2..c196d95 100644
--- a/pkg/analyzer/test/src/dart/element/type_references_any_test.dart
+++ b/pkg/analyzer/test/src/dart/element/type_references_any_test.dart
@@ -21,7 +21,7 @@
@reflectiveTest
class TypeReferencesAnyTest extends AbstractTypeSystemTest {
late TypeParameterElement T;
- late TypeParameterType T_none;
+ late TypeParameterTypeImpl T_none;
@override
void setUp() {
diff --git a/pkg/analyzer/test/src/dart/element/upper_lower_bound_test.dart b/pkg/analyzer/test/src/dart/element/upper_lower_bound_test.dart
index 1d613d1..8c86953 100644
--- a/pkg/analyzer/test/src/dart/element/upper_lower_bound_test.dart
+++ b/pkg/analyzer/test/src/dart/element/upper_lower_bound_test.dart
@@ -8,6 +8,7 @@
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/nullability_suffix.dart';
import 'package:analyzer/dart/element/type.dart';
+import 'package:analyzer/src/dart/element/type.dart';
import 'package:analyzer/src/dart/element/type_schema.dart';
import 'package:analyzer/src/dart/element/type_system.dart';
import 'package:test/test.dart';
@@ -505,9 +506,9 @@
test_functionType2_parameters_named() {
FunctionType build(
- List<DartType> requiredTypes,
- Map<String, DartType> namedMap,
- Map<String, DartType> namedRequiredMap,
+ List<TypeImpl> requiredTypes,
+ Map<String, TypeImpl> namedMap,
+ Map<String, TypeImpl> namedRequiredMap,
) {
var parameters = <ParameterElement>[];
@@ -608,8 +609,8 @@
test_functionType2_parameters_positional() {
FunctionType build(
- List<DartType> requiredTypes,
- List<DartType> positionalTypes,
+ List<TypeImpl> requiredTypes,
+ List<TypeImpl> positionalTypes,
) {
var parameters = <ParameterElement>[];
@@ -801,7 +802,7 @@
}
test_futureOr() {
- InterfaceType futureOrFunction(DartType T, String str) {
+ InterfaceType futureOrFunction(TypeImpl T, String str) {
var result = futureOrNone(
functionTypeNone(returnType: voidNone, parameters: [
requiredParameter(type: T),
@@ -1488,7 +1489,7 @@
}
test_parameters_optionalNamed() {
- FunctionType build(Map<String, DartType> namedTypes) {
+ FunctionType build(Map<String, TypeImpl> namedTypes) {
return functionTypeNone(
returnType: voidNone,
parameters: namedTypes.entries.map((entry) {
@@ -1497,8 +1498,8 @@
);
}
- void check(Map<String, DartType> T1_named, Map<String, DartType> T2_named,
- Map<String, DartType> expected_named) {
+ void check(Map<String, TypeImpl> T1_named, Map<String, TypeImpl> T2_named,
+ Map<String, TypeImpl> expected_named) {
var T1 = build(T1_named);
var T2 = build(T2_named);
var expected = build(expected_named);
@@ -1515,7 +1516,7 @@
}
test_parameters_optionalPositional() {
- FunctionType build(List<DartType> positionalTypes) {
+ FunctionType build(List<TypeImpl> positionalTypes) {
return functionTypeNone(
returnType: voidNone,
parameters: positionalTypes.map((type) {
@@ -1524,7 +1525,7 @@
);
}
- void check(List<DartType> T1_positional, List<DartType> T2_positional,
+ void check(List<TypeImpl> T1_positional, List<TypeImpl> T2_positional,
DartType expected) {
var T1 = build(T1_positional);
var T2 = build(T2_positional);
@@ -1663,7 +1664,7 @@
}
test_parameters_requiredPositional() {
- FunctionType build(List<DartType> requiredTypes) {
+ FunctionType build(List<TypeImpl> requiredTypes) {
return functionTypeNone(
returnType: voidNone,
parameters: requiredTypes.map((type) {
@@ -1672,7 +1673,7 @@
);
}
- void check(List<DartType> T1_required, List<DartType> T2_required,
+ void check(List<TypeImpl> T1_required, List<TypeImpl> T2_required,
DartType expected) {
var T1 = build(T1_required);
var T2 = build(T2_required);