Skip to content

Commit f4a1347

Browse files
johnniwintherCommit Queue
authored andcommitted
[cfe] Move parent, name, charOffset and fileUri to subclasses
Change-Id: Ic9928a1a235182e7c660f7bc0b729fa0355b8f43 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/389120 Reviewed-by: Jens Johansen <[email protected]> Commit-Queue: Johnni Winther <[email protected]>
1 parent d8e378e commit f4a1347

22 files changed

+204
-120
lines changed

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

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,23 @@ part of 'declaration_builders.dart';
66

77
abstract class BuiltinTypeDeclarationBuilder extends TypeDeclarationBuilderImpl
88
implements TypeDeclarationBuilder {
9+
@override
10+
final LibraryBuilder parent;
11+
12+
@override
13+
final int charOffset;
14+
15+
@override
16+
final String name;
17+
918
final DartType type;
1019

1120
@override
1221
final Uri fileUri;
1322

1423
BuiltinTypeDeclarationBuilder(
15-
String name, this.type, LibraryBuilder compilationUnit, int charOffset)
16-
: fileUri = compilationUnit.fileUri,
17-
super(name, compilationUnit, charOffset);
24+
this.name, this.type, this.parent, this.charOffset)
25+
: fileUri = parent.fileUri;
1826

1927
@override
2028
DartType buildAliasedType(

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

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -179,10 +179,6 @@ abstract class ClassBuilderImpl extends DeclarationBuilderImpl
179179
InterfaceType? _nonNullableRawType;
180180
InterfaceType? _thisType;
181181

182-
ClassBuilderImpl(
183-
String name, LibraryBuilder parent, Uri fileUri, int fileOffset)
184-
: super(name, parent, fileUri, fileOffset);
185-
186182
@override
187183
bool get isMixinApplication => mixedInTypeBuilder != null;
188184

@@ -299,9 +295,8 @@ abstract class ClassBuilderImpl extends DeclarationBuilderImpl
299295
@override
300296
bool get isFutureOr {
301297
if (name == "FutureOr") {
302-
LibraryBuilder parentLibrary = parent as LibraryBuilder;
303-
if (parentLibrary.importUri.isScheme("dart") &&
304-
parentLibrary.importUri.path == "async") {
298+
if (parent.importUri.isScheme("dart") &&
299+
parent.importUri.path == "async") {
305300
return true;
306301
}
307302
}

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

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -51,16 +51,11 @@ abstract class IDeclarationBuilder implements ITypeDeclarationBuilder {
5151
abstract class DeclarationBuilderImpl extends TypeDeclarationBuilderImpl
5252
implements IDeclarationBuilder {
5353
@override
54-
final Uri fileUri;
55-
56-
DeclarationBuilderImpl(
57-
String name, LibraryBuilder parent, this.fileUri, int fileOffset)
58-
: super(name, parent, fileOffset);
54+
LibraryBuilder get parent;
5955

6056
@override
6157
LibraryBuilder get libraryBuilder {
62-
LibraryBuilder library = parent as LibraryBuilder;
63-
return library.partOfLibrary ?? library;
58+
return parent.partOfLibrary ?? parent;
6459
}
6560

6661
@override

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

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,6 @@ abstract class ExtensionBuilder implements DeclarationBuilder {
3333
abstract class ExtensionBuilderImpl extends DeclarationBuilderImpl
3434
with DeclarationBuilderMixin
3535
implements ExtensionBuilder {
36-
ExtensionBuilderImpl(
37-
String name, LibraryBuilder parent, Uri fileUri, int fileOffset)
38-
: super(name, parent, fileUri, fileOffset);
39-
4036
@override
4137
DartType buildAliasedTypeWithBuiltArguments(
4238
LibraryBuilder library,

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

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,6 @@ abstract class ExtensionTypeDeclarationBuilderImpl
3838
extends DeclarationBuilderImpl
3939
with DeclarationBuilderMixin
4040
implements ExtensionTypeDeclarationBuilder {
41-
ExtensionTypeDeclarationBuilderImpl(
42-
String name, LibraryBuilder parent, Uri fileUri, int fileOffset)
43-
: super(name, parent, fileUri, fileOffset);
44-
4541
@override
4642
DartType buildAliasedTypeWithBuiltArguments(
4743
LibraryBuilder library,

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

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,24 @@ part of 'declaration_builders.dart';
77
class InvalidTypeDeclarationBuilder extends TypeDeclarationBuilderImpl
88
with ErroneousMemberBuilderMixin
99
implements TypeDeclarationBuilder {
10+
@override
11+
final String name;
12+
1013
final LocatedMessage message;
1114

1215
final List<LocatedMessage>? context;
1316

1417
final bool suppressMessage;
1518

16-
InvalidTypeDeclarationBuilder(String name, this.message,
17-
{this.context, this.suppressMessage = true})
18-
: super(name, null, message.charOffset);
19+
InvalidTypeDeclarationBuilder(this.name, this.message,
20+
{this.context, this.suppressMessage = true});
21+
22+
@override
23+
Builder? get parent => null;
24+
25+
@override
26+
// Coverage-ignore(suite): Not run.
27+
int get charOffset => message.charOffset;
1928

2029
@override
2130
// Coverage-ignore(suite): Not run.

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

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,19 @@ part of 'declaration_builders.dart';
1111
/// inferred types in the original code.
1212
class OmittedTypeDeclarationBuilder extends TypeDeclarationBuilderImpl
1313
implements TypeDeclarationBuilder {
14+
@override
15+
final SourceLibraryBuilder parent;
16+
17+
@override
18+
final String name;
19+
1420
final OmittedTypeBuilder omittedTypeBuilder;
1521

1622
OmittedTypeDeclarationBuilder(
17-
String name, this.omittedTypeBuilder, SourceLibraryBuilder parent)
18-
: super(name, parent, TreeNode.noOffset);
23+
this.name, this.omittedTypeBuilder, this.parent);
24+
25+
@override
26+
int get charOffset => TreeNode.noOffset;
1927

2028
@override
2129
DartType buildAliasedType(
@@ -55,5 +63,5 @@ class OmittedTypeDeclarationBuilder extends TypeDeclarationBuilderImpl
5563
}
5664

5765
@override
58-
Uri? get fileUri => parent!.fileUri;
66+
Uri? get fileUri => parent.fileUri;
5967
}

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

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -129,25 +129,15 @@ abstract class TypeAliasBuilder implements TypeDeclarationBuilder {
129129

130130
abstract class TypeAliasBuilderImpl extends TypeDeclarationBuilderImpl
131131
implements TypeAliasBuilder {
132-
@override
133-
final Uri fileUri;
134-
135132
TypeBuilder? _unaliasedRhsType;
136133

137134
List<TypeAliasBuilder> _typeAliasesUsedInUnaliasing = [];
138135

139-
TypeAliasBuilderImpl(
140-
String name, LibraryBuilder parent, this.fileUri, int fileOffset)
141-
: super(name, parent, fileOffset);
142-
143136
@override
144137
String get debugName => "TypeAliasBuilder";
145138

146139
@override
147-
LibraryBuilder get parent => super.parent as LibraryBuilder;
148-
149-
@override
150-
LibraryBuilder get libraryBuilder => super.parent as LibraryBuilder;
140+
LibraryBuilder get libraryBuilder => parent;
151141

152142
/// [arguments] have already been built.
153143
@override

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

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -60,17 +60,6 @@ abstract class ITypeDeclarationBuilder implements Builder {
6060

6161
abstract class TypeDeclarationBuilderImpl extends BuilderImpl
6262
implements ITypeDeclarationBuilder {
63-
@override
64-
final Builder? parent;
65-
66-
@override
67-
final int charOffset;
68-
69-
@override
70-
final String name;
71-
72-
TypeDeclarationBuilderImpl(this.name, this.parent, this.charOffset);
73-
7463
@override
7564
TypeDeclarationBuilder get origin => this as TypeDeclarationBuilder;
7665

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

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,12 @@ enum TypeVariableKind {
2424

2525
sealed class TypeVariableBuilder extends TypeDeclarationBuilderImpl
2626
implements TypeDeclarationBuilder {
27+
@override
28+
final int charOffset;
29+
30+
@override
31+
final String name;
32+
2733
TypeBuilder? bound;
2834

2935
TypeBuilder? defaultType;
@@ -39,14 +45,17 @@ sealed class TypeVariableBuilder extends TypeDeclarationBuilderImpl
3945

4046
final List<MetadataBuilder>? metadata;
4147

42-
TypeVariableBuilder(String name, int charOffset, this.fileUri,
48+
TypeVariableBuilder(this.name, this.charOffset, this.fileUri,
4349
{this.bound,
4450
this.defaultType,
4551
required this.kind,
4652
Variance? variableVariance,
4753
this.metadata,
48-
this.isWildcard = false})
49-
: super(name, null, charOffset);
54+
this.isWildcard = false});
55+
56+
@override
57+
// Coverage-ignore(suite): Not run.
58+
Builder? get parent => null;
5059

5160
@override
5261
bool get isTypeVariable => true;

0 commit comments

Comments
 (0)