Skip to content

Commit 61eeb2d

Browse files
scheglovCommit Queue
authored andcommitted
Elements. Migrate ElementsTypesMixin, part#2
Change-Id: I1438e2f2027c6e5fe3934497e4bd6d2de12a2575 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/409541 Reviewed-by: Phil Quitslund <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent b755ee7 commit 61eeb2d

23 files changed

+531
-578
lines changed

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

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11456,7 +11456,6 @@ class TypeParameterElementImpl extends ElementImpl
1145611456
return TypeParameterElementImpl2(
1145711457
firstFragment: firstFragment,
1145811458
name3: firstFragment.name.nullIfEmpty,
11459-
bound: firstFragment.bound,
1146011459
);
1146111460
}
1146211461

@@ -11577,13 +11576,9 @@ class TypeParameterElementImpl2 extends TypeDefiningElementImpl2
1157711576
@override
1157811577
final String? name3;
1157911578

11580-
@override
11581-
TypeImpl? bound;
11582-
1158311579
TypeParameterElementImpl2({
1158411580
required this.firstFragment,
1158511581
required this.name3,
11586-
required this.bound,
1158711582
}) {
1158811583
TypeParameterElementImpl? fragment = firstFragment;
1158911584
while (fragment != null) {
@@ -11595,6 +11590,13 @@ class TypeParameterElementImpl2 extends TypeDefiningElementImpl2
1159511590
@override
1159611591
TypeParameterElement2 get baseElement => this;
1159711592

11593+
@override
11594+
TypeImpl? get bound => firstFragment.bound;
11595+
11596+
set bound(TypeImpl? value) {
11597+
firstFragment.bound = value;
11598+
}
11599+
1159811600
@override
1159911601
TypeImpl? get boundShared => bound;
1160011602

@@ -11623,7 +11625,7 @@ class TypeParameterElementImpl2 extends TypeDefiningElementImpl2
1162311625

1162411626
shared.Variance get variance => firstFragment.variance;
1162511627

11626-
set variance(shared.Variance value) {
11628+
set variance(shared.Variance? value) {
1162711629
firstFragment.variance = value;
1162811630
}
1162911631

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -818,10 +818,10 @@ class TypeSystemImpl implements TypeSystem {
818818
///
819819
/// https://github.com/dart-lang/sdk/issues/27526#issuecomment-260021397
820820
List<TypeImpl> instantiateTypeFormalsToBounds2(
821-
List<TypeParameterElementImpl2> typeFormals,
821+
List<TypeParameterElementImpl2> typeParameters,
822822
{List<bool>? hasError,
823823
Map<TypeParameterElement2, TypeImpl>? knownTypes}) {
824-
int count = typeFormals.length;
824+
int count = typeParameters.length;
825825
if (count == 0) {
826826
return const <TypeImpl>[];
827827
}
@@ -832,7 +832,7 @@ class TypeSystemImpl implements TypeSystem {
832832
// not ground
833833
Map<TypeParameterElement2, TypeImpl> partials = {};
834834

835-
for (var typeParameter in typeFormals) {
835+
for (var typeParameter in typeParameters) {
836836
all.add(typeParameter);
837837
if (!defaults.containsKey(typeParameter)) {
838838
var bound = typeParameter.bound ?? DynamicTypeImpl.instance;
@@ -886,7 +886,7 @@ class TypeSystemImpl implements TypeSystem {
886886
}
887887

888888
List<TypeImpl> orderedArguments =
889-
typeFormals.map((p) => defaults[p]!).toFixedList();
889+
typeParameters.map((p) => defaults[p]!).toFixedList();
890890
return orderedArguments;
891891
}
892892

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

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import 'package:analyzer/dart/element/type.dart';
1111
import 'package:analyzer/src/dart/ast/ast.dart';
1212
import 'package:analyzer/src/dart/element/element.dart';
1313
import 'package:analyzer/src/dart/element/member.dart';
14-
import 'package:analyzer/src/dart/element/type.dart';
1514
import 'package:meta/meta.dart';
1615

1716
class MockLibraryImportElement implements Element2, PrefixFragment {
@@ -685,9 +684,6 @@ extension TypeParameterElement2Extension on TypeParameterElement2 {
685684
return TypeParameterElementImpl2(
686685
firstFragment: fragment,
687686
name3: name3,
688-
// TODO(paulberry): eliminate this cast by changing this extension to
689-
// apply to `TypeParameterElementImpl2`.
690-
bound: bound as TypeImpl?,
691687
);
692688
}
693689
}
@@ -698,6 +694,12 @@ extension TypeParameterElementExtension on TypeParameterElement {
698694
}
699695
}
700696

697+
extension TypeParameterElementImpl2Extension on TypeParameterElementImpl2 {
698+
TypeParameterElementImpl get asElement {
699+
return firstFragment;
700+
}
701+
}
702+
701703
extension TypeParameterElementImplExtension on TypeParameterElementImpl {
702704
TypeParameterElementImpl2 get asElement2 {
703705
return element;

0 commit comments

Comments
 (0)