Skip to content

Commit 0dbc8c0

Browse files
johnniwintherCommit Queue
authored andcommitted
[cfe] Split type_parameter_scope_builder.dart into multiple libraries
Change-Id: I90a200feb4bf829825d55720665d082f7e852ad1 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/437420 Commit-Queue: Johnni Winther <[email protected]> Reviewed-by: Chloe Stefantsova <[email protected]>
1 parent b8638d9 commit 0dbc8c0

21 files changed

+2333
-2266
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@ import '../base/scope.dart';
2626
import '../fragment/fragment.dart';
2727
import '../kernel/body_builder_context.dart';
2828
import '../source/name_scheme.dart';
29+
import '../source/name_space_builder.dart';
2930
import '../source/offset_map.dart';
3031
import '../source/outline_builder.dart';
3132
import '../source/source_class_builder.dart';
3233
import '../source/source_library_builder.dart';
3334
import '../source/source_loader.dart';
34-
import '../source/type_parameter_scope_builder.dart';
3535
import 'builder.dart';
3636
import 'constructor_builder.dart';
3737
import 'declaration_builders.dart';

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import '../../kernel/body_builder_context.dart';
2727
import '../../kernel/kernel_helper.dart';
2828
import '../../kernel/type_algorithms.dart';
2929
import '../../source/name_scheme.dart';
30+
import '../../source/nominal_parameter_name_space.dart';
3031
import '../../source/source_class_builder.dart';
3132
import '../../source/source_constructor_builder.dart';
3233
import '../../source/source_extension_type_declaration_builder.dart';
@@ -35,7 +36,6 @@ import '../../source/source_library_builder.dart';
3536
import '../../source/source_loader.dart';
3637
import '../../source/source_member_builder.dart';
3738
import '../../source/source_type_parameter_builder.dart';
38-
import '../../source/type_parameter_scope_builder.dart';
3939
import '../fragment.dart';
4040
import 'encoding.dart';
4141

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
2+
// for details. All rights reserved. Use of this source code is governed by a
3+
// BSD-style license that can be found in the LICENSE file.
4+
5+
part of 'fragment.dart';
6+
7+
enum DeclarationFragmentKind {
8+
classDeclaration,
9+
mixinDeclaration,
10+
enumDeclaration,
11+
extensionDeclaration,
12+
extensionTypeDeclaration,
13+
}
14+
15+
abstract class DeclarationFragmentImpl implements DeclarationFragment {
16+
final Uri fileUri;
17+
18+
/// The scope in which the declaration is declared.
19+
///
20+
/// This is the scope of the enclosing compilation unit and it's used for
21+
/// resolving metadata on the declaration.
22+
final LookupScope enclosingScope;
23+
24+
final LookupScope typeParameterScope;
25+
final DeclarationBuilderScope bodyScope;
26+
final List<Fragment> _fragments = [];
27+
28+
@override
29+
final List<TypeParameterFragment>? typeParameters;
30+
31+
final NominalParameterNameSpace nominalParameterNameSpace;
32+
33+
final LibraryFragment enclosingCompilationUnit;
34+
35+
DeclarationFragmentImpl({
36+
required this.fileUri,
37+
required this.typeParameters,
38+
required this.enclosingScope,
39+
required this.typeParameterScope,
40+
required NominalParameterNameSpace nominalParameterNameSpace,
41+
required this.enclosingCompilationUnit,
42+
}) : nominalParameterNameSpace = nominalParameterNameSpace,
43+
bodyScope = new DeclarationBuilderScope(typeParameterScope);
44+
45+
String get name;
46+
47+
DeclarationFragmentKind get kind;
48+
49+
bool declaresConstConstructor = false;
50+
51+
DeclarationBuilder get builder;
52+
53+
UriOffsetLength get uriOffset;
54+
55+
void addPrimaryConstructorField(PrimaryConstructorFieldFragment fragment) {
56+
throw new UnsupportedError(
57+
"Unexpected primary constructor field in $this.");
58+
}
59+
60+
void addEnumElement(EnumElementFragment fragment) {
61+
throw new UnsupportedError("Unexpected enum element in $this.");
62+
}
63+
64+
void addFragment(Fragment fragment) {
65+
_fragments.add(fragment);
66+
}
67+
68+
DeclarationNameSpaceBuilder toDeclarationNameSpaceBuilder() {
69+
return new DeclarationNameSpaceBuilder(
70+
nominalParameterNameSpace, _fragments);
71+
}
72+
}

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ import '../kernel/member_covariance.dart';
4444
import '../kernel/type_algorithms.dart';
4545
import '../source/fragment_factory.dart';
4646
import '../source/name_scheme.dart';
47+
import '../source/name_space_builder.dart';
48+
import '../source/nominal_parameter_name_space.dart';
4749
import '../source/source_class_builder.dart';
4850
import '../source/source_constructor_builder.dart';
4951
import '../source/source_enum_builder.dart';
@@ -56,7 +58,6 @@ import '../source/source_method_builder.dart';
5658
import '../source/source_property_builder.dart';
5759
import '../source/source_type_alias_builder.dart';
5860
import '../source/source_type_parameter_builder.dart';
59-
import '../source/type_parameter_scope_builder.dart';
6061
import '../type_inference/inference_helper.dart';
6162
import '../type_inference/inference_results.dart';
6263
import '../type_inference/type_inference_engine.dart';
@@ -74,6 +75,7 @@ import 'setter/encoding.dart';
7475
part 'class.dart';
7576
part 'class/declaration.dart';
7677
part 'constructor.dart';
78+
part 'declaration.dart';
7779
part 'enum.dart';
7880
part 'enum_element.dart';
7981
part 'extension.dart';

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ import '../../kernel/hierarchy/class_member.dart';
2020
import '../../kernel/hierarchy/members_builder.dart';
2121
import '../../kernel/type_algorithms.dart';
2222
import '../../source/name_scheme.dart';
23+
import '../../source/nominal_parameter_name_space.dart';
2324
import '../../source/source_class_builder.dart';
2425
import '../../source/source_library_builder.dart';
2526
import '../../source/source_loader.dart';
2627
import '../../source/source_member_builder.dart';
2728
import '../../source/source_property_builder.dart';
28-
import '../../source/type_parameter_scope_builder.dart';
2929
import '../fragment.dart';
3030
import 'body_builder_context.dart';
3131
import 'encoding.dart';

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ import '../../kernel/hierarchy/class_member.dart';
2020
import '../../kernel/hierarchy/members_builder.dart';
2121
import '../../kernel/type_algorithms.dart';
2222
import '../../source/name_scheme.dart';
23+
import '../../source/nominal_parameter_name_space.dart';
2324
import '../../source/source_class_builder.dart';
2425
import '../../source/source_library_builder.dart';
2526
import '../../source/source_loader.dart';
2627
import '../../source/source_member_builder.dart';
2728
import '../../source/source_property_builder.dart';
28-
import '../../source/type_parameter_scope_builder.dart';
2929
import '../fragment.dart';
3030
import 'body_builder_context.dart';
3131
import 'encoding.dart';

0 commit comments

Comments
 (0)