Skip to content

Commit f0d6034

Browse files
johnniwintherCommit Queue
authored andcommitted
[cfe] Add TypeParameterExtension
The replaces the helper buildTypeParametersForOutlineExpressions with an extension on List<SourceNominalParameterBuilder>? similar to the FormalsExtension added for List<FormalParameterBuilder>? Change-Id: Ic4319f021c986e1b8be18ce844f2d03f499577fd Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/459442 Reviewed-by: Chloe Stefantsova <cstefantsova@google.com> Commit-Queue: Johnni Winther <johnniwinther@google.com>
1 parent d4cee66 commit f0d6034

File tree

5 files changed

+76
-75
lines changed

5 files changed

+76
-75
lines changed

pkg/_fe_analyzer_shared/lib/src/scanner/abstract_scanner.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1010,7 +1010,6 @@ abstract class AbstractScanner implements Scanner {
10101010
iterations++;
10111011

10121012
if (iterations > 100) {
1013-
// Coverage-ignore-block(suite): Not run.
10141013
return recoveryCount;
10151014
}
10161015
}

pkg/front_end/lib/src/fragment/getter/encoding.dart

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -251,15 +251,16 @@ mixin _DirectGetterEncodingMixin implements GetterEncoding {
251251
metadata: _fragment.metadata,
252252
annotationsFileUri: _fragment.fileUri,
253253
);
254-
buildTypeParametersForOutlineExpressions(
255-
classHierarchy,
256-
libraryBuilder,
257-
bodyBuilderContext,
258-
_fragment
259-
.declaredTypeParameters
260-
// Coverage-ignore(suite): Not run.
261-
?.builders,
262-
);
254+
_fragment
255+
.declaredTypeParameters
256+
// Coverage-ignore(suite): Not run.
257+
?.builders
258+
// Coverage-ignore(suite): Not run.
259+
.buildOutlineExpressions(
260+
classHierarchy: classHierarchy,
261+
libraryBuilder: libraryBuilder,
262+
bodyBuilderContext: bodyBuilderContext,
263+
);
263264
_fragment.declaredFormals.buildOutlineExpressions(
264265
libraryBuilder: libraryBuilder,
265266
declarationBuilder: declarationBuilder,
@@ -526,15 +527,16 @@ mixin _ExtensionInstanceGetterEncodingMixin implements GetterEncoding {
526527
annotationsFileUri: _fragment.fileUri,
527528
);
528529

529-
buildTypeParametersForOutlineExpressions(
530-
classHierarchy,
531-
libraryBuilder,
532-
bodyBuilderContext,
533-
_fragment
534-
.declaredTypeParameters
535-
// Coverage-ignore(suite): Not run.
536-
?.builders,
537-
);
530+
_fragment
531+
.declaredTypeParameters
532+
// Coverage-ignore(suite): Not run.
533+
?.builders
534+
// Coverage-ignore(suite): Not run.
535+
.buildOutlineExpressions(
536+
classHierarchy: classHierarchy,
537+
libraryBuilder: libraryBuilder,
538+
bodyBuilderContext: bodyBuilderContext,
539+
);
538540
_fragment.declaredFormals.buildOutlineExpressions(
539541
libraryBuilder: libraryBuilder,
540542
declarationBuilder: declarationBuilder,
@@ -543,11 +545,10 @@ mixin _ExtensionInstanceGetterEncodingMixin implements GetterEncoding {
543545
scope: _fragment.typeParameterScope,
544546
);
545547

546-
buildTypeParametersForOutlineExpressions(
547-
classHierarchy,
548-
libraryBuilder,
549-
bodyBuilderContext,
550-
_clonedDeclarationTypeParameters,
548+
_clonedDeclarationTypeParameters.buildOutlineExpressions(
549+
classHierarchy: classHierarchy,
550+
libraryBuilder: libraryBuilder,
551+
bodyBuilderContext: bodyBuilderContext,
551552
);
552553
_thisFormal.buildOutlineExpressions(
553554
libraryBuilder: libraryBuilder,

pkg/front_end/lib/src/fragment/method/encoding.dart

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -181,11 +181,10 @@ mixin _DirectMethodEncodingMixin implements MethodEncoding {
181181
metadata: _fragment.metadata,
182182
annotationsFileUri: _fragment.fileUri,
183183
);
184-
buildTypeParametersForOutlineExpressions(
185-
classHierarchy,
186-
libraryBuilder,
187-
bodyBuilderContext,
188-
_fragment.declaredTypeParameters?.builders,
184+
_fragment.declaredTypeParameters?.builders.buildOutlineExpressions(
185+
classHierarchy: classHierarchy,
186+
libraryBuilder: libraryBuilder,
187+
bodyBuilderContext: bodyBuilderContext,
189188
);
190189
_fragment.declaredFormals.buildOutlineExpressions(
191190
libraryBuilder: libraryBuilder,
@@ -500,11 +499,10 @@ mixin _ExtensionInstanceMethodEncodingMixin implements MethodEncoding {
500499
annotationsFileUri: _fragment.fileUri,
501500
);
502501

503-
buildTypeParametersForOutlineExpressions(
504-
classHierarchy,
505-
libraryBuilder,
506-
bodyBuilderContext,
507-
_fragment.declaredTypeParameters?.builders,
502+
_fragment.declaredTypeParameters?.builders.buildOutlineExpressions(
503+
classHierarchy: classHierarchy,
504+
libraryBuilder: libraryBuilder,
505+
bodyBuilderContext: bodyBuilderContext,
508506
);
509507
_fragment.declaredFormals.buildOutlineExpressions(
510508
libraryBuilder: libraryBuilder,
@@ -514,11 +512,10 @@ mixin _ExtensionInstanceMethodEncodingMixin implements MethodEncoding {
514512
scope: _fragment.typeParameterScope,
515513
);
516514

517-
buildTypeParametersForOutlineExpressions(
518-
classHierarchy,
519-
libraryBuilder,
520-
bodyBuilderContext,
521-
_clonedDeclarationTypeParameters,
515+
_clonedDeclarationTypeParameters.buildOutlineExpressions(
516+
classHierarchy: classHierarchy,
517+
libraryBuilder: libraryBuilder,
518+
bodyBuilderContext: bodyBuilderContext,
522519
);
523520
_thisFormal.buildOutlineExpressions(
524521
libraryBuilder: libraryBuilder,

pkg/front_end/lib/src/fragment/setter/encoding.dart

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -250,15 +250,16 @@ mixin _DirectSetterEncodingMixin implements SetterEncoding {
250250
annotationsFileUri: _fragment.fileUri,
251251
);
252252

253-
buildTypeParametersForOutlineExpressions(
254-
classHierarchy,
255-
libraryBuilder,
256-
bodyBuilderContext,
257-
_fragment
258-
.declaredTypeParameters
259-
// Coverage-ignore(suite): Not run.
260-
?.builders,
261-
);
253+
_fragment
254+
.declaredTypeParameters
255+
// Coverage-ignore(suite): Not run.
256+
?.builders
257+
// Coverage-ignore(suite): Not run.
258+
.buildOutlineExpressions(
259+
classHierarchy: classHierarchy,
260+
libraryBuilder: libraryBuilder,
261+
bodyBuilderContext: bodyBuilderContext,
262+
);
262263
_fragment.declaredFormals.buildOutlineExpressions(
263264
libraryBuilder: libraryBuilder,
264265
declarationBuilder: declarationBuilder,
@@ -539,15 +540,16 @@ mixin _ExtensionInstanceSetterEncodingMixin implements SetterEncoding {
539540
annotationsFileUri: _fragment.fileUri,
540541
);
541542

542-
buildTypeParametersForOutlineExpressions(
543-
classHierarchy,
544-
libraryBuilder,
545-
bodyBuilderContext,
546-
_fragment
547-
.declaredTypeParameters
548-
// Coverage-ignore(suite): Not run.
549-
?.builders,
550-
);
543+
_fragment
544+
.declaredTypeParameters
545+
// Coverage-ignore(suite): Not run.
546+
?.builders
547+
// Coverage-ignore(suite): Not run.
548+
.buildOutlineExpressions(
549+
classHierarchy: classHierarchy,
550+
libraryBuilder: libraryBuilder,
551+
bodyBuilderContext: bodyBuilderContext,
552+
);
551553
_fragment.declaredFormals.buildOutlineExpressions(
552554
libraryBuilder: libraryBuilder,
553555
declarationBuilder: declarationBuilder,
@@ -556,11 +558,10 @@ mixin _ExtensionInstanceSetterEncodingMixin implements SetterEncoding {
556558
scope: _fragment.typeParameterScope,
557559
);
558560

559-
buildTypeParametersForOutlineExpressions(
560-
classHierarchy,
561-
libraryBuilder,
562-
bodyBuilderContext,
563-
_clonedDeclarationTypeParameters,
561+
_clonedDeclarationTypeParameters.buildOutlineExpressions(
562+
classHierarchy: classHierarchy,
563+
libraryBuilder: libraryBuilder,
564+
bodyBuilderContext: bodyBuilderContext,
564565
);
565566
_thisFormal.buildOutlineExpressions(
566567
libraryBuilder: libraryBuilder,

pkg/front_end/lib/src/fragment/util.dart

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -67,19 +67,22 @@ void buildMetadataForOutlineExpressions({
6767
);
6868
}
6969

70-
void buildTypeParametersForOutlineExpressions(
71-
ClassHierarchy classHierarchy,
72-
SourceLibraryBuilder libraryBuilder,
73-
BodyBuilderContext bodyBuilderContext,
74-
List<SourceNominalParameterBuilder>? typeParameters,
75-
) {
76-
if (typeParameters != null) {
77-
for (int i = 0; i < typeParameters.length; i++) {
78-
typeParameters[i].buildOutlineExpressions(
79-
libraryBuilder,
80-
bodyBuilderContext,
81-
classHierarchy,
82-
);
70+
extension TypeParametersExtension on List<SourceNominalParameterBuilder>? {
71+
void buildOutlineExpressions({
72+
required ClassHierarchy classHierarchy,
73+
required SourceLibraryBuilder libraryBuilder,
74+
required BodyBuilderContext bodyBuilderContext,
75+
}) {
76+
List<SourceNominalParameterBuilder>? typeParameters = this;
77+
78+
if (typeParameters != null) {
79+
for (int i = 0; i < typeParameters.length; i++) {
80+
typeParameters[i].buildOutlineExpressions(
81+
libraryBuilder,
82+
bodyBuilderContext,
83+
classHierarchy,
84+
);
85+
}
8386
}
8487
}
8588
}

0 commit comments

Comments
 (0)