Skip to content

Commit 60ea089

Browse files
johnniwintherCommit Queue
authored andcommitted
[cfe] Handle patch type parameters through fragments
Change-Id: I53bcab1b460737d756e9291ff7b3029c281ebb3b Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/417742 Reviewed-by: Jens Johansen <[email protected]>
1 parent 539511a commit 60ea089

36 files changed

+574
-443
lines changed

pkg/front_end/lib/src/base/scope.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -412,7 +412,6 @@ class TypeParameterScope extends AbstractTypeParameterScope {
412412
}
413413
}
414414

415-
// Coverage-ignore(suite): Not run.
416415
class FixedLookupScope implements LookupScope {
417416
final LookupScope? _parent;
418417
@override
@@ -430,6 +429,7 @@ class FixedLookupScope implements LookupScope {
430429
this._parent = parent;
431430

432431
@override
432+
// Coverage-ignore(suite): Not run.
433433
Builder? lookupGetable(String name, int charOffset, Uri fileUri) {
434434
Builder? getable = _getables?[name];
435435
Builder? setable = _setables?[name];
@@ -448,6 +448,7 @@ class FixedLookupScope implements LookupScope {
448448
}
449449

450450
@override
451+
// Coverage-ignore(suite): Not run.
451452
Builder? lookupSetable(String name, int charOffset, Uri fileUri) {
452453
Builder? getable = _getables?[name];
453454
Builder? setable = _setables?[name];
@@ -466,6 +467,7 @@ class FixedLookupScope implements LookupScope {
466467
}
467468

468469
@override
470+
// Coverage-ignore(suite): Not run.
469471
void forEachExtension(void Function(ExtensionBuilder) f) {
470472
_parent?.forEachExtension(f);
471473
}

pkg/front_end/lib/src/builder/function_type_builder.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -317,8 +317,8 @@ abstract class FunctionTypeBuilderImpl extends FunctionTypeBuilder {
317317
newTypeParameters ??= typeParameters.toList();
318318
StructuralParameterBuilder newTypeParameterBuilder =
319319
newTypeParameters[i] = new SourceStructuralParameterBuilder(
320-
new SyntheticStructuralParameterDeclaration(variable),
321-
bound: bound);
320+
new SyntheticStructuralParameterDeclaration(variable))
321+
..bound = bound;
322322
unboundTypeParameters.add(newTypeParameterBuilder);
323323
if (functionTypeUpperSubstitution == null) {
324324
functionTypeUpperSubstitution = {...upperSubstitution};

pkg/front_end/lib/src/dill/dill_type_parameter_builder.dart

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,11 @@ class DillNominalParameterBuilder extends NominalParameterBuilder {
4646
String get name => parameter.name ?? "";
4747

4848
@override
49+
// Coverage-ignore(suite): Not run.
4950
Uri? get fileUri => null;
5051

5152
@override
53+
// Coverage-ignore(suite): Not run.
5254
int get fileOffset => parameter.fileOffset;
5355

5456
@override
@@ -86,11 +88,14 @@ class DillStructuralParameterBuilder extends StructuralParameterBuilder {
8688
String get name => parameter.name ?? "";
8789

8890
@override
91+
// Coverage-ignore(suite): Not run.
8992
Uri? get fileUri => null;
9093

9194
@override
95+
// Coverage-ignore(suite): Not run.
9296
int get fileOffset => parameter.fileOffset;
9397

9498
@override
99+
// Coverage-ignore(suite): Not run.
95100
TypeParameterKind get kind => TypeParameterKind.fromKernel;
96101
}

pkg/front_end/lib/src/fragment/class/declaration.dart

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ abstract class ClassDeclaration {
1313
int get nameOffset;
1414
int get startOffset;
1515
int get endOffset;
16-
List<SourceNominalParameterBuilder>? get typeParameters;
1716
bool get isMixinDeclaration;
1817

1918
TypeBuilder? get supertype;
@@ -60,10 +59,6 @@ class RegularClassDeclaration implements ClassDeclaration {
6059
@override
6160
int get startOffset => _fragment.startOffset;
6261

63-
@override
64-
List<SourceNominalParameterBuilder>? get typeParameters =>
65-
_fragment.typeParameters?.builders;
66-
6762
@override
6863
bool get isMixinDeclaration => false;
6964

@@ -91,13 +86,6 @@ class RegularClassDeclaration implements ClassDeclaration {
9186
_fragment.fileUri,
9287
_fragment.enclosingScope,
9388
createFileUriExpression: createFileUriExpression);
94-
95-
if (typeParameters != null) {
96-
for (int i = 0; i < typeParameters!.length; i++) {
97-
typeParameters![i].buildOutlineExpressions(libraryBuilder,
98-
bodyBuilderContext, classHierarchy, _fragment.typeParameterScope);
99-
}
100-
}
10189
}
10290

10391
@override
@@ -142,10 +130,6 @@ class EnumDeclaration implements ClassDeclaration {
142130
@override
143131
int get startOffset => _fragment.startOffset;
144132

145-
@override
146-
List<SourceNominalParameterBuilder>? get typeParameters =>
147-
_fragment.typeParameters?.builders;
148-
149133
@override
150134
bool get isMixinDeclaration => false;
151135

@@ -170,13 +154,6 @@ class EnumDeclaration implements ClassDeclaration {
170154
_fragment.fileUri,
171155
_fragment.enclosingScope,
172156
createFileUriExpression: createFileUriExpression);
173-
174-
if (typeParameters != null) {
175-
for (int i = 0; i < typeParameters!.length; i++) {
176-
typeParameters![i].buildOutlineExpressions(libraryBuilder,
177-
bodyBuilderContext, classHierarchy, _fragment.typeParameterScope);
178-
}
179-
}
180157
}
181158

182159
@override
@@ -222,10 +199,6 @@ class NamedMixinApplication implements ClassDeclaration {
222199
@override
223200
int get startOffset => _fragment.startOffset;
224201

225-
@override
226-
List<SourceNominalParameterBuilder>? get typeParameters =>
227-
_fragment.typeParameters?.builders;
228-
229202
@override
230203
bool get isMixinDeclaration => false;
231204

@@ -250,13 +223,6 @@ class NamedMixinApplication implements ClassDeclaration {
250223
_fragment.fileUri,
251224
_fragment.enclosingScope,
252225
createFileUriExpression: createFileUriExpression);
253-
254-
if (typeParameters != null) {
255-
for (int i = 0; i < typeParameters!.length; i++) {
256-
typeParameters![i].buildOutlineExpressions(libraryBuilder,
257-
bodyBuilderContext, classHierarchy, _fragment.typeParameterScope);
258-
}
259-
}
260226
}
261227

262228
@override
@@ -284,9 +250,6 @@ class AnonymousMixinApplication implements ClassDeclaration {
284250
@override
285251
final Uri fileUri;
286252

287-
@override
288-
final List<SourceNominalParameterBuilder>? typeParameters;
289-
290253
@override
291254
final TypeBuilder? supertype;
292255

@@ -306,7 +269,6 @@ class AnonymousMixinApplication implements ClassDeclaration {
306269
required this.nameOffset,
307270
required this.startOffset,
308271
required this.endOffset,
309-
required this.typeParameters,
310272
required this.supertype,
311273
required this.interfaces});
312274

@@ -363,10 +325,6 @@ class MixinDeclaration implements ClassDeclaration {
363325
@override
364326
int get startOffset => _fragment.startOffset;
365327

366-
@override
367-
List<SourceNominalParameterBuilder>? get typeParameters =>
368-
_fragment.typeParameters?.builders;
369-
370328
@override
371329
bool get isMixinDeclaration => true;
372330

@@ -394,13 +352,6 @@ class MixinDeclaration implements ClassDeclaration {
394352
_fragment.fileUri,
395353
_fragment.enclosingScope,
396354
createFileUriExpression: createFileUriExpression);
397-
398-
if (typeParameters != null) {
399-
for (int i = 0; i < typeParameters!.length; i++) {
400-
typeParameters![i].buildOutlineExpressions(libraryBuilder,
401-
bodyBuilderContext, classHierarchy, _fragment.typeParameterScope);
402-
}
403-
}
404355
}
405356

406357
@override

pkg/front_end/lib/src/fragment/constructor/declaration.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -736,8 +736,8 @@ mixin RegularConstructorDeclarationMixin
736736
}) {
737737
if (typeParameters != null) {
738738
for (int i = 0; i < typeParameters!.length; i++) {
739-
typeParameters![i].buildOutlineExpressions(libraryBuilder,
740-
bodyBuilderContext, classHierarchy, typeParameterScope);
739+
typeParameters![i].buildOutlineExpressions(
740+
libraryBuilder, bodyBuilderContext, classHierarchy);
741741
}
742742
}
743743

@@ -1270,8 +1270,8 @@ mixin ExtensionTypeConstructorDeclarationMixin
12701270
}) {
12711271
if (typeParameters != null) {
12721272
for (int i = 0; i < typeParameters!.length; i++) {
1273-
typeParameters![i].buildOutlineExpressions(libraryBuilder,
1274-
bodyBuilderContext, classHierarchy, typeParameterScope);
1273+
typeParameters![i].buildOutlineExpressions(
1274+
libraryBuilder, bodyBuilderContext, classHierarchy);
12751275
}
12761276
}
12771277

pkg/front_end/lib/src/fragment/factory/declaration.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,8 +227,8 @@ class FactoryDeclarationImpl implements FactoryDeclaration {
227227
}
228228
if (typeParameters != null) {
229229
for (int i = 0; i < typeParameters!.length; i++) {
230-
typeParameters![i].buildOutlineExpressions(libraryBuilder,
231-
bodyBuilderContext, classHierarchy, _fragment.typeParameterScope);
230+
typeParameters![i].buildOutlineExpressions(
231+
libraryBuilder, bodyBuilderContext, classHierarchy);
232232
}
233233
}
234234

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

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,6 @@ mixin _DirectGetterEncodingMixin implements GetterEncoding {
226226
classHierarchy,
227227
libraryBuilder,
228228
bodyBuilderContext,
229-
_fragment.typeParameterScope,
230229
_fragment
231230
.declaredTypeParameters
232231
// Coverage-ignore(suite): Not run.
@@ -446,7 +445,6 @@ mixin _ExtensionInstanceGetterEncodingMixin implements GetterEncoding {
446445
classHierarchy,
447446
libraryBuilder,
448447
bodyBuilderContext,
449-
_fragment.typeParameterScope,
450448
_fragment
451449
.declaredTypeParameters
452450
// Coverage-ignore(suite): Not run.
@@ -456,12 +454,8 @@ mixin _ExtensionInstanceGetterEncodingMixin implements GetterEncoding {
456454
scope: _fragment.typeParameterScope,
457455
isClassInstanceMember: isClassInstanceMember);
458456

459-
buildTypeParametersForOutlineExpressions(
460-
classHierarchy,
461-
libraryBuilder,
462-
bodyBuilderContext,
463-
_fragment.typeParameterScope,
464-
_clonedDeclarationTypeParameters);
457+
buildTypeParametersForOutlineExpressions(classHierarchy, libraryBuilder,
458+
bodyBuilderContext, _clonedDeclarationTypeParameters);
465459
buildFormalForOutlineExpressions(
466460
libraryBuilder, declarationBuilder, _thisFormal,
467461
scope: _fragment.typeParameterScope,

0 commit comments

Comments
 (0)