Skip to content

Commit 0c5c166

Browse files
scheglovCommit Queue
authored andcommitted
Elements. Migrate TypeProviderImpl.
Change-Id: Ia4776b55fd040d968b27d1a624d0e884b1c58940 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/415480 Reviewed-by: Brian Wilkerson <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent 8ea4215 commit 0c5c166

File tree

13 files changed

+92
-74
lines changed

13 files changed

+92
-74
lines changed

pkg/analyzer/lib/src/dart/constant/evaluation.dart

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2671,7 +2671,7 @@ class _InstanceCreationEvaluator {
26712671

26722672
/// Evaluates this constructor call as a factory constructor call.
26732673
Constant evaluateFactoryConstructorCall(List<Expression> arguments) {
2674-
var definingClass = _constructor.enclosingElement3;
2674+
var definingClass = _constructor.asElement2.enclosingElement2;
26752675
var argumentCount = arguments.length;
26762676
if (_constructor.name == "fromEnvironment") {
26772677
if (!_checkFromEnvironmentArguments(arguments, definingType)) {
@@ -2682,7 +2682,7 @@ class _InstanceCreationEvaluator {
26822682
}
26832683
String? variableName =
26842684
argumentCount < 1 ? null : firstArgument?.toStringValue();
2685-
if (definingClass == typeProvider.boolElement) {
2685+
if (definingClass == typeProvider.boolElement2) {
26862686
// Special case: https://github.com/dart-lang/sdk/issues/50045
26872687
if (variableName == 'dart.library.js_util') {
26882688
return DartObjectImpl(
@@ -2693,20 +2693,20 @@ class _InstanceCreationEvaluator {
26932693
}
26942694
return FromEnvironmentEvaluator(typeSystem, _declaredVariables)
26952695
.getBool2(variableName, _namedValues, _constructor.asElement2);
2696-
} else if (definingClass == typeProvider.intElement) {
2696+
} else if (definingClass == typeProvider.intElement2) {
26972697
return FromEnvironmentEvaluator(typeSystem, _declaredVariables)
26982698
.getInt2(variableName, _namedValues, _constructor.asElement2);
2699-
} else if (definingClass == typeProvider.stringElement) {
2699+
} else if (definingClass == typeProvider.stringElement2) {
27002700
return FromEnvironmentEvaluator(typeSystem, _declaredVariables)
27012701
.getString2(variableName, _namedValues, _constructor.asElement2);
27022702
}
27032703
} else if (_constructor.name == 'hasEnvironment' &&
2704-
definingClass == typeProvider.boolElement) {
2704+
definingClass == typeProvider.boolElement2) {
27052705
var name = argumentCount < 1 ? null : firstArgument?.toStringValue();
27062706
return FromEnvironmentEvaluator(typeSystem, _declaredVariables)
27072707
.hasEnvironment(name);
27082708
} else if (_constructor.name == "" &&
2709-
definingClass == typeProvider.symbolElement &&
2709+
definingClass == typeProvider.symbolElement2 &&
27102710
argumentCount == 1) {
27112711
if (!_checkSymbolArguments(arguments)) {
27122712
return InvalidConstant.forEntity(

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,22 +76,22 @@ class NormalizeHelper {
7676

7777
// * if S is Never then Future<Never>
7878
if (identical(S, NeverTypeImpl.instance)) {
79-
return typeProvider.futureElement.instantiateImpl(
79+
return typeProvider.futureElement2.instantiateImpl(
8080
typeArguments: [NeverTypeImpl.instance],
8181
nullabilitySuffix: NullabilitySuffix.none,
8282
);
8383
}
8484

8585
// * if S is Null then Future<Null>?
8686
if (S_nullability == NullabilitySuffix.none && S.isDartCoreNull) {
87-
return typeProvider.futureElement.instantiateImpl(
87+
return typeProvider.futureElement2.instantiateImpl(
8888
typeArguments: [typeSystem.nullNone],
8989
nullabilitySuffix: NullabilitySuffix.question,
9090
);
9191
}
9292

9393
// * else FutureOr<S>
94-
return typeProvider.futureOrElement.instantiateImpl(
94+
return typeProvider.futureOrElement2.instantiateImpl(
9595
typeArguments: [S],
9696
nullabilitySuffix: NullabilitySuffix.none,
9797
);

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ class SubtypeHelper {
151151
var S0 = T0.typeArguments[0];
152152
// * `T0 <: T1` iff `Future<S0> <: T1` and `S0 <: T1`
153153
if (isSubtypeOf(S0, T1)) {
154-
var FutureS0 = _typeProvider.futureElement.instantiateImpl(
154+
var FutureS0 = _typeProvider.futureElement2.instantiateImpl(
155155
typeArguments: fixedTypeList(S0),
156156
nullabilitySuffix: NullabilitySuffix.none,
157157
);
@@ -197,7 +197,7 @@ class SubtypeHelper {
197197
var S1 = T1.typeArguments[0];
198198
// `T0 <: T1` iff any of the following hold:
199199
// * either `T0 <: Future<S1>`
200-
var FutureS1 = _typeProvider.futureElement.instantiateImpl(
200+
var FutureS1 = _typeProvider.futureElement2.instantiateImpl(
201201
typeArguments: fixedTypeList(S1),
202202
nullabilitySuffix: NullabilitySuffix.none,
203203
);

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

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
// ignore_for_file: analyzer_use_new_elements
6-
75
import 'package:analyzer/dart/element/element.dart';
86
import 'package:analyzer/dart/element/element2.dart';
97
import 'package:analyzer/dart/element/nullability_suffix.dart';
@@ -163,6 +161,7 @@ class TypeProviderImpl extends TypeProviderBase {
163161
}) : _coreLibrary = coreLibrary,
164162
_asyncLibrary = asyncLibrary;
165163

164+
@Deprecated('Use boolElement2 instead')
166165
@override
167166
ClassElementImpl get boolElement {
168167
return boolElement2.asElement;
@@ -198,6 +197,7 @@ class TypeProviderImpl extends TypeProviderBase {
198197
);
199198
}
200199

200+
@Deprecated('Use doubleElement2 instead')
201201
@override
202202
ClassElementImpl get doubleElement {
203203
return doubleElement2.asElement;
@@ -222,6 +222,7 @@ class TypeProviderImpl extends TypeProviderBase {
222222
@override
223223
TypeImpl get dynamicType => DynamicTypeImpl.instance;
224224

225+
@Deprecated('Use enumElement2 instead')
225226
@override
226227
ClassElementImpl? get enumElement {
227228
return enumElement2?.asElement;
@@ -271,6 +272,7 @@ class TypeProviderImpl extends TypeProviderBase {
271272
);
272273
}
273274

275+
@Deprecated('Use futureElement2 instead')
274276
@override
275277
ClassElementImpl get futureElement {
276278
return futureElement2.asElement;
@@ -289,6 +291,7 @@ class TypeProviderImpl extends TypeProviderBase {
289291
);
290292
}
291293

294+
@Deprecated('Use futureOrElement2 instead')
292295
@override
293296
ClassElementImpl get futureOrElement {
294297
return futureOrElement2.asElement;
@@ -307,6 +310,7 @@ class TypeProviderImpl extends TypeProviderBase {
307310
);
308311
}
309312

313+
@Deprecated('Use intElement2 instead')
310314
@override
311315
ClassElementImpl get intElement {
312316
return intElement2.asElement;
@@ -336,6 +340,7 @@ class TypeProviderImpl extends TypeProviderBase {
336340
);
337341
}
338342

343+
@Deprecated('Use iterableElement2 instead')
339344
@override
340345
ClassElementImpl get iterableElement {
341346
return iterableElement2.asElement;
@@ -354,6 +359,7 @@ class TypeProviderImpl extends TypeProviderBase {
354359
);
355360
}
356361

362+
@Deprecated('Use listElement2 instead')
357363
@override
358364
ClassElementImpl get listElement {
359365
return listElement2.asElement;
@@ -364,6 +370,7 @@ class TypeProviderImpl extends TypeProviderBase {
364370
return _listElement ??= _getClassElement(_coreLibrary, 'List');
365371
}
366372

373+
@Deprecated('Use mapElement2 instead')
367374
@override
368375
ClassElementImpl get mapElement {
369376
return mapElement2.asElement;
@@ -385,6 +392,7 @@ class TypeProviderImpl extends TypeProviderBase {
385392
@override
386393
NeverTypeImpl get neverType => NeverTypeImpl.instance;
387394

395+
@Deprecated('Use nullElement2 instead')
388396
@override
389397
ClassElementImpl get nullElement {
390398
return nullElement2.asElement;
@@ -403,6 +411,7 @@ class TypeProviderImpl extends TypeProviderBase {
403411
);
404412
}
405413

414+
@Deprecated('Use numElement2 instead')
406415
@override
407416
ClassElementImpl get numElement {
408417
return numElement2.asElement;
@@ -424,6 +433,7 @@ class TypeProviderImpl extends TypeProviderBase {
424433
InterfaceTypeImpl get numTypeQuestion =>
425434
_numTypeQuestion ??= numType.withNullability(NullabilitySuffix.question);
426435

436+
@Deprecated('Use objectElement2 instead')
427437
@override
428438
ClassElementImpl get objectElement {
429439
return objectElement2.asElement;
@@ -436,20 +446,21 @@ class TypeProviderImpl extends TypeProviderBase {
436446

437447
@override
438448
InterfaceTypeImpl get objectQuestionType {
439-
return _objectQuestionType ??= objectElement.instantiateImpl(
449+
return _objectQuestionType ??= objectElement2.instantiateImpl(
440450
typeArguments: const [],
441451
nullabilitySuffix: NullabilitySuffix.question,
442452
);
443453
}
444454

445455
@override
446456
InterfaceTypeImpl get objectType {
447-
return _objectType ??= objectElement.instantiateImpl(
457+
return _objectType ??= objectElement2.instantiateImpl(
448458
typeArguments: const [],
449459
nullabilitySuffix: NullabilitySuffix.none,
450460
);
451461
}
452462

463+
@Deprecated('Use recordElement2 instead')
453464
@override
454465
ClassElementImpl get recordElement {
455466
return recordElement2.asElement;
@@ -462,12 +473,13 @@ class TypeProviderImpl extends TypeProviderBase {
462473

463474
@override
464475
InterfaceTypeImpl get recordType {
465-
return _recordType ??= recordElement.instantiateImpl(
476+
return _recordType ??= recordElement2.instantiateImpl(
466477
typeArguments: const [],
467478
nullabilitySuffix: NullabilitySuffix.none,
468479
);
469480
}
470481

482+
@Deprecated('Use setElement2 instead')
471483
@override
472484
ClassElementImpl get setElement {
473485
return setElement2.asElement;
@@ -498,6 +510,7 @@ class TypeProviderImpl extends TypeProviderBase {
498510
);
499511
}
500512

513+
@Deprecated('Use streamElement2 instead')
501514
@override
502515
ClassElementImpl get streamElement {
503516
return streamElement2.asElement;
@@ -508,6 +521,7 @@ class TypeProviderImpl extends TypeProviderBase {
508521
return _streamElement ??= _getClassElement(_asyncLibrary, 'Stream');
509522
}
510523

524+
@Deprecated('Use stringElement2 instead')
511525
@override
512526
ClassElementImpl get stringElement {
513527
return stringElement2.asElement;
@@ -526,6 +540,7 @@ class TypeProviderImpl extends TypeProviderBase {
526540
);
527541
}
528542

543+
@Deprecated('Use symbolElement2 instead')
529544
@override
530545
ClassElementImpl get symbolElement {
531546
return symbolElement2.asElement;
@@ -561,20 +576,21 @@ class TypeProviderImpl extends TypeProviderBase {
561576

562577
@override
563578
InterfaceTypeImpl futureOrType(covariant TypeImpl valueType) {
564-
return futureOrElement.instantiateImpl(
579+
return futureOrElement2.instantiateImpl(
565580
typeArguments: fixedTypeList(valueType),
566581
nullabilitySuffix: NullabilitySuffix.none,
567582
);
568583
}
569584

570585
@override
571586
InterfaceTypeImpl futureType(covariant TypeImpl valueType) {
572-
return futureElement.instantiateImpl(
587+
return futureElement2.instantiateImpl(
573588
typeArguments: fixedTypeList(valueType),
574589
nullabilitySuffix: NullabilitySuffix.none,
575590
);
576591
}
577592

593+
@Deprecated('Use isNonSubtypableClass2() instead')
578594
@override
579595
bool isNonSubtypableClass(InterfaceElement element) {
580596
return isNonSubtypableClass2(element.asElement2);
@@ -593,15 +609,15 @@ class TypeProviderImpl extends TypeProviderBase {
593609

594610
@override
595611
InterfaceTypeImpl iterableType(covariant TypeImpl elementType) {
596-
return iterableElement.instantiateImpl(
612+
return iterableElement2.instantiateImpl(
597613
typeArguments: fixedTypeList(elementType),
598614
nullabilitySuffix: NullabilitySuffix.none,
599615
);
600616
}
601617

602618
@override
603619
InterfaceTypeImpl listType(covariant TypeImpl elementType) {
604-
return listElement.instantiateImpl(
620+
return listElement2.instantiateImpl(
605621
typeArguments: fixedTypeList(elementType),
606622
nullabilitySuffix: NullabilitySuffix.none,
607623
);
@@ -612,23 +628,23 @@ class TypeProviderImpl extends TypeProviderBase {
612628
covariant TypeImpl keyType,
613629
covariant TypeImpl valueType,
614630
) {
615-
return mapElement.instantiateImpl(
631+
return mapElement2.instantiateImpl(
616632
typeArguments: fixedTypeList(keyType, valueType),
617633
nullabilitySuffix: NullabilitySuffix.none,
618634
);
619635
}
620636

621637
@override
622638
InterfaceTypeImpl setType(covariant TypeImpl elementType) {
623-
return setElement.instantiateImpl(
639+
return setElement2.instantiateImpl(
624640
typeArguments: fixedTypeList(elementType),
625641
nullabilitySuffix: NullabilitySuffix.none,
626642
);
627643
}
628644

629645
@override
630646
InterfaceTypeImpl streamType(covariant TypeImpl elementType) {
631-
return streamElement.instantiateImpl(
647+
return streamElement2.instantiateImpl(
632648
typeArguments: fixedTypeList(elementType),
633649
nullabilitySuffix: NullabilitySuffix.none,
634650
);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -447,7 +447,7 @@ class TypeSystemImpl implements TypeSystem {
447447
TypeImpl? futureType(TypeImpl T) {
448448
// T implements S, and there is a U such that S is Future<U>
449449
if (T.nullabilitySuffix != NullabilitySuffix.question) {
450-
var result = T.asInstanceOf(typeProvider.futureElement);
450+
var result = T.asInstanceOf2(typeProvider.futureElement2);
451451
if (result != null) {
452452
return result;
453453
}

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

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -714,23 +714,23 @@ class TypeSystemOperations
714714

715715
@override
716716
TypeImpl? matchIterableTypeInternal(TypeImpl type) {
717-
var iterableElement = typeSystem.typeProvider.iterableElement;
718-
var listType = type.asInstanceOf(iterableElement);
717+
var iterableElement = typeSystem.typeProvider.iterableElement2;
718+
var listType = type.asInstanceOf2(iterableElement);
719719
return listType?.typeArguments[0];
720720
}
721721

722722
@override
723723
SharedTypeView? matchListType(SharedTypeView type) {
724-
var listElement = typeSystem.typeProvider.listElement;
725-
var listType = type.unwrapTypeView<TypeImpl>().asInstanceOf(listElement);
724+
var listElement = typeSystem.typeProvider.listElement2;
725+
var listType = type.unwrapTypeView<TypeImpl>().asInstanceOf2(listElement);
726726
return listType == null ? null : SharedTypeView(listType.typeArguments[0]);
727727
}
728728

729729
@override
730730
({SharedTypeView keyType, SharedTypeView valueType})? matchMapType(
731731
SharedTypeView type) {
732-
var mapElement = typeSystem.typeProvider.mapElement;
733-
var mapType = type.unwrapTypeView<TypeImpl>().asInstanceOf(mapElement);
732+
var mapElement = typeSystem.typeProvider.mapElement2;
733+
var mapType = type.unwrapTypeView<TypeImpl>().asInstanceOf2(mapElement);
734734
if (mapType != null) {
735735
return (
736736
keyType: SharedTypeView(mapType.typeArguments[0]),
@@ -742,8 +742,8 @@ class TypeSystemOperations
742742

743743
@override
744744
SharedTypeView? matchStreamType(SharedTypeView type) {
745-
var streamElement = typeSystem.typeProvider.streamElement;
746-
var listType = type.unwrapTypeView<TypeImpl>().asInstanceOf(streamElement);
745+
var streamElement = typeSystem.typeProvider.streamElement2;
746+
var listType = type.unwrapTypeView<TypeImpl>().asInstanceOf2(streamElement);
747747
return listType == null ? null : SharedTypeView(listType.typeArguments[0]);
748748
}
749749

0 commit comments

Comments
 (0)