Skip to content

Commit 049db8b

Browse files
scheglovCommit Queue
authored andcommitted
Elements. Remove 'as TypeImpl' in more places.
Change-Id: Icd40202c1c875a82725b703e0addeb4f66274b05 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/412380 Reviewed-by: Paul Berry <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent 0192e52 commit 049db8b

File tree

9 files changed

+46
-65
lines changed

9 files changed

+46
-65
lines changed

pkg/analyzer/lib/src/dart/ast/ast.dart

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1999,7 +1999,7 @@ final class BlockFunctionBodyImpl extends FunctionBodyImpl
19991999
E? accept<E>(AstVisitor<E> visitor) => visitor.visitBlockFunctionBody(this);
20002000

20012001
@override
2002-
DartType resolve(ResolverVisitor resolver, TypeImpl? imposedType) =>
2002+
TypeImpl resolve(ResolverVisitor resolver, TypeImpl? imposedType) =>
20032003
resolver.visitBlockFunctionBody(this, imposedType: imposedType);
20042004

20052005
@override
@@ -5520,7 +5520,7 @@ final class EmptyFunctionBodyImpl extends FunctionBodyImpl
55205520
E? accept<E>(AstVisitor<E> visitor) => visitor.visitEmptyFunctionBody(this);
55215521

55225522
@override
5523-
DartType resolve(ResolverVisitor resolver, TypeImpl? imposedType) =>
5523+
TypeImpl resolve(ResolverVisitor resolver, TypeImpl? imposedType) =>
55245524
resolver.visitEmptyFunctionBody(this, imposedType: imposedType);
55255525

55265526
@override
@@ -6171,7 +6171,7 @@ final class ExpressionFunctionBodyImpl extends FunctionBodyImpl
61716171
visitor.visitExpressionFunctionBody(this);
61726172

61736173
@override
6174-
DartType resolve(ResolverVisitor resolver, TypeImpl? imposedType) =>
6174+
TypeImpl resolve(ResolverVisitor resolver, TypeImpl? imposedType) =>
61756175
resolver.visitExpressionFunctionBody(this, imposedType: imposedType);
61766176

61776177
@override
@@ -6186,9 +6186,9 @@ sealed class ExpressionImpl extends AstNodeImpl
61866186

61876187
@experimental
61886188
@override
6189-
FormalParameterElement? get correspondingParameter {
6189+
FormalParameterElementMixin? get correspondingParameter {
61906190
return switch (staticParameterElement) {
6191-
FormalParameterFragment(:var element) => element,
6191+
ParameterElementImpl(:var element) => element,
61926192
ParameterMember member => member,
61936193
_ => null,
61946194
};
@@ -8303,7 +8303,7 @@ sealed class FunctionBodyImpl extends AstNodeImpl implements FunctionBody {
83038303
/// return type context for `return` statements.
83048304
///
83058305
/// Returns value is the actual return type of the method.
8306-
DartType resolve(ResolverVisitor resolver, TypeImpl? imposedType);
8306+
TypeImpl resolve(ResolverVisitor resolver, TypeImpl? imposedType);
83078307
}
83088308

83098309
/// A function declaration.
@@ -12929,7 +12929,7 @@ final class NativeFunctionBodyImpl extends FunctionBodyImpl
1292912929
E? accept<E>(AstVisitor<E> visitor) => visitor.visitNativeFunctionBody(this);
1293012930

1293112931
@override
12932-
DartType resolve(ResolverVisitor resolver, TypeImpl? imposedType) =>
12932+
TypeImpl resolve(ResolverVisitor resolver, TypeImpl? imposedType) =>
1293312933
resolver.visitNativeFunctionBody(this, imposedType: imposedType);
1293412934

1293512935
@override

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ class FunctionTypeImpl extends TypeImpl
211211
String? get name => null;
212212

213213
@override
214-
Map<String, DartType> get namedParameterTypes => {
214+
Map<String, TypeImpl> get namedParameterTypes => {
215215
for (var parameter in sortedNamedParameters)
216216
parameter.name: parameter.type
217217
};

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

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ class AssignmentExpressionResolver {
260260
{required Map<SharedTypeView, NonPromotionReason> Function()?
261261
whyNotPromoted,
262262
required TypeImpl contextType}) {
263-
DartType assignedType;
263+
TypeImpl assignedType;
264264

265265
var rightHandSide = node.rightHandSide;
266266
var operator = node.operator.type;
@@ -301,11 +301,7 @@ class AssignmentExpressionResolver {
301301
var t2 = assignedType;
302302
// - Let `T` be `UP(NonNull(T1), T2)`.
303303
var nonNullT1 = _typeSystem.promoteToNonNull(t1);
304-
var t = _typeSystem.leastUpperBound(
305-
nonNullT1,
306-
// TODO(paulberry): eliminate this cast by changing the type of
307-
// `assignedType`.
308-
t2 as TypeImpl);
304+
var t = _typeSystem.leastUpperBound(nonNullT1, t2);
309305
// - Let `S` be the greatest closure of `K`.
310306
var s = _typeSystem.greatestClosureOfSchema(contextType);
311307
// If `inferenceUpdate3` is not enabled, then the type of `E` is `T`.

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

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ class BodyInferenceContext {
9696
}
9797
}
9898

99-
DartType computeInferredReturnType({
99+
TypeImpl computeInferredReturnType({
100100
required bool endOfBlockIsReachable,
101101
}) {
102102
var actualReturnedType = _computeActualReturnedType(
@@ -123,7 +123,7 @@ class BodyInferenceContext {
123123
}
124124

125125
/// Let `T` be the **actual returned type** of a function literal.
126-
DartType _clampToContextType(DartType T) {
126+
TypeImpl _clampToContextType(TypeImpl T) {
127127
// Let `R` be the greatest closure of the typing context `K`.
128128
var R = contextType;
129129
if (R == null) {
@@ -171,14 +171,9 @@ class BodyInferenceContext {
171171
.fold(initialType, _typeSystem.leastUpperBound);
172172
}
173173

174-
static TypeImpl? _argumentOf(DartType type, InterfaceElement2 element) {
174+
static TypeImpl? _argumentOf(TypeImpl type, InterfaceElement2 element) {
175175
var elementType = type.asInstanceOf2(element);
176-
if (elementType != null) {
177-
// TODO(paulberry): eliminate this cast by changing the type of the
178-
// parameter `element` to `InterfaceElement2`.
179-
return elementType.typeArguments[0] as TypeImpl?;
180-
}
181-
return null;
176+
return elementType?.typeArguments[0];
182177
}
183178

184179
static TypeImpl? _contextTypeForImposed(

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

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class FunctionExpressionResolver {
3333

3434
bool wasFunctionTypeSupplied = contextType is FunctionTypeImpl;
3535
node.wasFunctionTypeSupplied = wasFunctionTypeSupplied;
36-
DartType? imposedType;
36+
TypeImpl? imposedType;
3737
if (wasFunctionTypeSupplied) {
3838
var instantiatedType = _matchTypeParameters(
3939
node.typeParameters,
@@ -50,9 +50,7 @@ class FunctionExpressionResolver {
5050

5151
node.typeParameters?.accept(_resolver);
5252
node.parameters?.accept(_resolver);
53-
// TODO(paulberry): eliminate this cast by changing the type of
54-
// `imposedType`.
55-
imposedType = node.body.resolve(_resolver, imposedType as TypeImpl?);
53+
imposedType = node.body.resolve(_resolver, imposedType);
5654
if (isFunctionDeclaration) {
5755
// A side effect of visiting the children is that the parameters are now
5856
// in scope, so we can visit the documentation comment now.
@@ -73,7 +71,7 @@ class FunctionExpressionResolver {
7371
/// Infer types of implicitly typed formal parameters.
7472
void _inferFormalParameters(
7573
FormalParameterList? node,
76-
FunctionType contextType,
74+
FunctionTypeImpl contextType,
7775
) {
7876
if (node == null) {
7977
return;
@@ -112,9 +110,7 @@ class FunctionExpressionResolver {
112110
while (nodePositional.moveNext() && contextPositional.moveNext()) {
113111
inferType(
114112
nodePositional.current as FormalParameterElementImpl,
115-
// TODO(paulberry): eliminate this cast by changing the type of
116-
// `contextType` to `FunctionTypeImpl`.
117-
contextPositional.current.type as TypeImpl,
113+
contextPositional.current.type,
118114
);
119115
}
120116
}
@@ -130,9 +126,7 @@ class FunctionExpressionResolver {
130126
}
131127
inferType(
132128
element as FormalParameterElementImpl,
133-
// TODO(paulberry): eliminate this cast by changing the type of
134-
// `contextType` to `FunctionTypeImpl`.
135-
contextNamedTypes[element.name3]! as TypeImpl,
129+
contextNamedTypes[element.name3]!,
136130
);
137131
}
138132
}

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

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -232,13 +232,10 @@ class TypePropertyResolver {
232232
}
233233
}
234234

235-
void _lookupExtension(DartType type) {
235+
void _lookupExtension(TypeImpl type) {
236236
var getterName = Name(_definingLibrary.source.uri, _name);
237-
var result = _extensionResolver.findExtension(
238-
// TODO(paulberry): eliminate this cast by changing the type of the `type` parameter.
239-
type as TypeImpl,
240-
_nameErrorEntity,
241-
getterName);
237+
var result =
238+
_extensionResolver.findExtension(type, _nameErrorEntity, getterName);
242239
_reportedGetterError = result == ExtensionResolutionError.ambiguous;
243240
_reportedSetterError = result == ExtensionResolutionError.ambiguous;
244241

pkg/analyzer/lib/src/error/best_practices_verifier.dart

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import 'package:analyzer/src/dart/element/element.dart';
2323
import 'package:analyzer/src/dart/element/extensions.dart';
2424
import 'package:analyzer/src/dart/element/inheritance_manager3.dart';
2525
import 'package:analyzer/src/dart/element/member.dart' show ExecutableMember;
26-
import 'package:analyzer/src/dart/element/type.dart';
2726
import 'package:analyzer/src/dart/element/type_provider.dart';
2827
import 'package:analyzer/src/dart/element/type_system.dart';
2928
import 'package:analyzer/src/dart/resolver/scope.dart';
@@ -558,7 +557,7 @@ class BestPracticesVerifier extends RecursiveAstVisitor<void> {
558557
}
559558

560559
@override
561-
void visitIsExpression(IsExpression node) {
560+
void visitIsExpression(covariant IsExpressionImpl node) {
562561
_checkAllTypeChecks(node);
563562
super.visitIsExpression(node);
564563
}
@@ -770,12 +769,12 @@ class BestPracticesVerifier extends RecursiveAstVisitor<void> {
770769
/// [WarningCode.TYPE_CHECK_IS_NULL],
771770
/// [WarningCode.UNNECESSARY_TYPE_CHECK_TRUE], and
772771
/// [WarningCode.UNNECESSARY_TYPE_CHECK_FALSE].
773-
bool _checkAllTypeChecks(IsExpression node) {
772+
bool _checkAllTypeChecks(IsExpressionImpl node) {
774773
var leftNode = node.expression;
775774
var leftType = leftNode.typeOrThrow;
776775

777776
var rightNode = node.type;
778-
var rightType = rightNode.type as TypeImpl;
777+
var rightType = rightNode.typeOrThrow;
779778

780779
void report() {
781780
_errorReporter.atNode(

pkg/analyzer/lib/src/generated/error_detection_helpers.dart

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ library;
77

88
import 'package:_fe_analyzer_shared/src/flow_analysis/flow_analysis.dart';
99
import 'package:_fe_analyzer_shared/src/types/shared_type.dart';
10-
import 'package:analyzer/dart/ast/ast.dart';
1110
import 'package:analyzer/dart/ast/syntactic_entity.dart';
1211
import 'package:analyzer/dart/element/element2.dart';
1312
import 'package:analyzer/dart/element/nullability_suffix.dart';
1413
import 'package:analyzer/dart/element/type.dart';
1514
import 'package:analyzer/diagnostic/diagnostic.dart';
1615
import 'package:analyzer/error/error.dart';
1716
import 'package:analyzer/error/listener.dart';
17+
import 'package:analyzer/src/dart/ast/ast.dart';
1818
import 'package:analyzer/src/dart/ast/extensions.dart';
1919
import 'package:analyzer/src/dart/element/element.dart';
2020
import 'package:analyzer/src/dart/element/inheritance_manager3.dart';
@@ -59,11 +59,12 @@ mixin ErrorDetectionHelpers {
5959
/// parameter.
6060
///
6161
/// See [CompileTimeErrorCode.ARGUMENT_TYPE_NOT_ASSIGNABLE].
62-
void checkForArgumentTypeNotAssignableForArgument(Expression argument,
62+
void checkForArgumentTypeNotAssignableForArgument(ExpressionImpl argument,
6363
{bool promoteParameterToNullable = false,
6464
Map<SharedTypeView, NonPromotionReason> Function()? whyNotPromoted}) {
6565
_checkForArgumentTypeNotAssignableForArgument(
66-
argument: argument is NamedExpression ? argument.expression : argument,
66+
argument:
67+
argument is NamedExpressionImpl ? argument.expression : argument,
6768
parameter: argument.correspondingParameter,
6869
promoteParameterToNullable: promoteParameterToNullable,
6970
whyNotPromoted: whyNotPromoted,
@@ -258,11 +259,11 @@ mixin ErrorDetectionHelpers {
258259

259260
void checkIndexExpressionIndex(
260261
Expression index, {
261-
required ExecutableElement2? readElement,
262-
required ExecutableElement2? writeElement,
262+
required ExecutableElement2OrMember? readElement,
263+
required ExecutableElement2OrMember? writeElement,
263264
required Map<SharedTypeView, NonPromotionReason> Function()? whyNotPromoted,
264265
}) {
265-
if (readElement is MethodElement2) {
266+
if (readElement is MethodElement2OrMember) {
266267
var parameters = readElement.formalParameters;
267268
if (parameters.isNotEmpty) {
268269
_checkForArgumentTypeNotAssignableForArgument(
@@ -274,7 +275,7 @@ mixin ErrorDetectionHelpers {
274275
}
275276
}
276277

277-
if (writeElement is MethodElement2) {
278+
if (writeElement is MethodElement2OrMember) {
278279
var parameters = writeElement.formalParameters;
279280
if (parameters.isNotEmpty) {
280281
_checkForArgumentTypeNotAssignableForArgument(
@@ -355,15 +356,14 @@ mixin ErrorDetectionHelpers {
355356

356357
void _checkForArgumentTypeNotAssignableForArgument({
357358
required Expression argument,
358-
required FormalParameterElement? parameter,
359+
required FormalParameterElementMixin? parameter,
359360
required bool promoteParameterToNullable,
360361
Map<SharedTypeView, NonPromotionReason> Function()? whyNotPromoted,
361362
}) {
362363
var staticParameterType = parameter?.type;
363364
if (staticParameterType != null) {
364365
if (promoteParameterToNullable) {
365-
staticParameterType =
366-
typeSystem.makeNullable(staticParameterType as TypeImpl);
366+
staticParameterType = typeSystem.makeNullable(staticParameterType);
367367
}
368368
checkForArgumentTypeNotAssignable(
369369
argument,

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

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -510,7 +510,7 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
510510
/// their corresponding parameters.
511511
///
512512
/// See [CompileTimeErrorCode.ARGUMENT_TYPE_NOT_ASSIGNABLE].
513-
void checkForArgumentTypesNotAssignableInList(ArgumentList argumentList,
513+
void checkForArgumentTypesNotAssignableInList(ArgumentListImpl argumentList,
514514
List<WhyNotPromotedGetter> whyNotPromotedArguments) {
515515
var arguments = argumentList.arguments;
516516
for (int i = 0; i < arguments.length; i++) {
@@ -1437,8 +1437,8 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
14371437
checkIndexExpressionIndex(
14381438
node.index,
14391439
readElement:
1440-
hasRead ? result.readElement2 as ExecutableElement2? : null,
1441-
writeElement: result.writeElement2 as ExecutableElement2?,
1440+
hasRead ? result.readElement2 as ExecutableElement2OrMember? : null,
1441+
writeElement: result.writeElement2 as ExecutableElement2OrMember?,
14421442
whyNotPromoted: whyNotPromoted,
14431443
);
14441444

@@ -2081,7 +2081,7 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
20812081
}
20822082

20832083
@override
2084-
DartType visitBlockFunctionBody(covariant BlockFunctionBodyImpl node,
2084+
TypeImpl visitBlockFunctionBody(covariant BlockFunctionBodyImpl node,
20852085
{TypeImpl? imposedType}) {
20862086
var oldBodyContext = _bodyContext;
20872087
try {
@@ -2440,8 +2440,8 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
24402440
}
24412441

24422442
@override
2443-
DartType visitEmptyFunctionBody(EmptyFunctionBody node,
2444-
{DartType? imposedType}) {
2443+
TypeImpl visitEmptyFunctionBody(EmptyFunctionBody node,
2444+
{TypeImpl? imposedType}) {
24452445
if (!resolveOnlyCommentInFunctionBody) {
24462446
checkUnreachableNode(node);
24472447
node.visitChildren(this);
@@ -2573,7 +2573,7 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
25732573
}
25742574

25752575
@override
2576-
DartType visitExpressionFunctionBody(
2576+
TypeImpl visitExpressionFunctionBody(
25772577
covariant ExpressionFunctionBodyImpl node,
25782578
{TypeImpl? imposedType}) {
25792579
if (resolveOnlyCommentInFunctionBody) {
@@ -3003,7 +3003,7 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
30033003
var whyNotPromoted = flowAnalysis.flow?.whyNotPromoted(node.index);
30043004
checkIndexExpressionIndex(
30053005
node.index,
3006-
readElement: result.readElement2 as ExecutableElement2?,
3006+
readElement: result.readElement2 as ExecutableElement2OrMember?,
30073007
writeElement: null,
30083008
whyNotPromoted: whyNotPromoted,
30093009
);
@@ -3289,8 +3289,8 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
32893289
}
32903290

32913291
@override
3292-
DartType visitNativeFunctionBody(covariant NativeFunctionBodyImpl node,
3293-
{DartType? imposedType}) {
3292+
TypeImpl visitNativeFunctionBody(covariant NativeFunctionBodyImpl node,
3293+
{TypeImpl? imposedType}) {
32943294
checkUnreachableNode(node);
32953295
if (node.stringLiteral case var stringLiteral?) {
32963296
analyzeExpression(stringLiteral, operations.unknownType);
@@ -4003,7 +4003,7 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
40034003
return true;
40044004
}
40054005

4006-
DartType _finishFunctionBodyInference() {
4006+
TypeImpl _finishFunctionBodyInference() {
40074007
var flow = flowAnalysis.flow;
40084008

40094009
return _bodyContext!.computeInferredReturnType(

0 commit comments

Comments
 (0)