Skip to content

Commit 74d55b4

Browse files
scheglovCommit Queue
authored andcommitted
Elements. Migrate to TypeSystemImpl.instantiateInterfaceToBounds2()
Change-Id: Ifde7a24b66d1ed27dc8cdaa99d241d39ca823f74 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/406740 Reviewed-by: Keerti Parthasarathy <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent 05d293a commit 74d55b4

File tree

5 files changed

+37
-10
lines changed

5 files changed

+37
-10
lines changed

pkg/analyzer/lib/src/dart/element/type_system.dart

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -754,7 +754,17 @@ class TypeSystemImpl implements TypeSystem {
754754
required covariant InterfaceElementImpl element,
755755
required NullabilitySuffix nullabilitySuffix,
756756
}) {
757-
var typeParameters = element.typeParameters;
757+
return instantiateInterfaceToBounds2(
758+
element: element.asElement2,
759+
nullabilitySuffix: nullabilitySuffix,
760+
);
761+
}
762+
763+
InterfaceTypeImpl instantiateInterfaceToBounds2({
764+
required covariant InterfaceElementImpl2 element,
765+
required NullabilitySuffix nullabilitySuffix,
766+
}) {
767+
var typeParameters = element.typeParameters2;
758768
var typeArguments = _defaultTypeArguments(typeParameters);
759769
return element.instantiate(
760770
typeArguments: typeArguments,
@@ -800,7 +810,17 @@ class TypeSystemImpl implements TypeSystem {
800810
required covariant TypeAliasElementImpl element,
801811
required NullabilitySuffix nullabilitySuffix,
802812
}) {
803-
var typeParameters = element.typeParameters;
813+
return instantiateTypeAliasToBounds2(
814+
element: element.asElement2,
815+
nullabilitySuffix: nullabilitySuffix,
816+
);
817+
}
818+
819+
TypeImpl instantiateTypeAliasToBounds2({
820+
required covariant TypeAliasElementImpl2 element,
821+
required NullabilitySuffix nullabilitySuffix,
822+
}) {
823+
var typeParameters = element.typeParameters2;
804824
var typeArguments = _defaultTypeArguments(typeParameters);
805825
return element.instantiate(
806826
typeArguments: typeArguments,
@@ -2050,10 +2070,10 @@ class TypeSystemImpl implements TypeSystem {
20502070
}
20512071

20522072
List<DartType> _defaultTypeArguments(
2053-
List<TypeParameterElement> typeParameters,
2073+
List<TypeParameterElement2> typeParameters,
20542074
) {
20552075
return typeParameters.map((typeParameter) {
2056-
var typeParameterImpl = typeParameter as TypeParameterElementImpl;
2076+
var typeParameterImpl = typeParameter as TypeParameterElementImpl2;
20572077
return typeParameterImpl.defaultType!;
20582078
}).toFixedList();
20592079
}

pkg/analyzer/lib/src/dart/resolver/named_type_resolver.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -263,8 +263,8 @@ class NamedTypeResolver with ScopeHelpers {
263263
dataForTesting: dataForTesting, nodeForTesting: node);
264264
}
265265

266-
return typeSystem.instantiateInterfaceToBounds(
267-
element: element,
266+
return typeSystem.instantiateInterfaceToBounds2(
267+
element: element.asElement2,
268268
nullabilitySuffix: nullability,
269269
);
270270
} else if (element is TypeAliasElementImpl) {

pkg/analyzer/lib/src/summary2/library_builder.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import 'package:analyzer/src/summary2/reference_resolver.dart';
4040
import 'package:analyzer/src/summary2/types_builder.dart';
4141
import 'package:analyzer/src/util/performance/operation_performance.dart';
4242
import 'package:analyzer/src/utilities/extensions/collection.dart';
43+
import 'package:analyzer/src/utilities/extensions/element.dart';
4344
import 'package:analyzer/src/utilities/extensions/object.dart';
4445
import 'package:collection/collection.dart';
4546
import 'package:macros/src/executor.dart' as macro;
@@ -222,8 +223,8 @@ class LibraryBuilder with MacroApplicationsContainer {
222223
enum_.element.supertype =
223224
typeProvider.enumType ?? typeProvider.objectType;
224225
var valuesType = typeProvider.listType(
225-
element.typeSystem.instantiateInterfaceToBounds(
226-
element: enum_.element,
226+
element.typeSystem.instantiateInterfaceToBounds2(
227+
element: enum_.element.asElement2,
227228
nullabilitySuffix: typeProvider.objectType.nullabilitySuffix,
228229
),
229230
);

pkg/analyzer/lib/src/summary2/macro_declarations.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -557,8 +557,8 @@ class DeclarationBuilder {
557557
return DynamicTypeImpl.instance;
558558
case InterfaceElementImpl():
559559
if (typeCode.typeArguments.isEmpty) {
560-
return _typeSystem.instantiateInterfaceToBounds(
561-
element: element,
560+
return _typeSystem.instantiateInterfaceToBounds2(
561+
element: element.asElement2,
562562
nullabilitySuffix: NullabilitySuffix.none,
563563
);
564564
}

pkg/analyzer/lib/src/utilities/extensions/element.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -586,6 +586,12 @@ extension TypeAliasElementExtension on TypeAliasElement {
586586
}
587587
}
588588

589+
extension TypeAliasElementImplExtension on TypeAliasElementImpl {
590+
TypeAliasElementImpl2 get asElement2 {
591+
return element;
592+
}
593+
}
594+
589595
extension TypeParameterElement2Extension on TypeParameterElement2 {
590596
TypeParameterElement get asElement {
591597
return firstFragment as TypeParameterElement;

0 commit comments

Comments
 (0)