Skip to content

Commit e815644

Browse files
johnniwintherCommit Queue
authored andcommitted
[cfe] Split FragmentFactory from FragmentFactoryResult
This adds NativeMethodRegistry and CompilationUnitRegistry to decouple the FragmentFactoryImpl from FragmentFactoryResult. FragmentFactoryResult is removed and instead NativeMethodRegistry and CompilationUnitRegistry is passed to the FragmentFactoryImpl to collect data during outline building. This also avoids the need for storing the FragmentFactory inside the SourceCompilationUnitImpl. Change-Id: I58c475f22e6596d908cb4982716b7ed01dbbba62 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/438160 Reviewed-by: Chloe Stefantsova <[email protected]> Commit-Queue: Johnni Winther <[email protected]>
1 parent 856e0ba commit e815644

File tree

8 files changed

+234
-230
lines changed

8 files changed

+234
-230
lines changed

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

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import '../fragment/fragment.dart';
1919
import '../kernel/body_builder_context.dart';
2020
import '../source/name_space_builder.dart';
2121
import '../source/offset_map.dart';
22-
import '../source/source_class_builder.dart';
2322
import '../source/source_library_builder.dart';
2423
import '../source/source_loader.dart';
2524
import 'builder.dart';
@@ -149,7 +148,7 @@ abstract class SourceCompilationUnit
149148

150149
String? get name;
151150

152-
int finishNativeMethods();
151+
int finishNativeMethods(SourceLoader loader);
153152

154153
String? get partOfName;
155154

@@ -172,9 +171,6 @@ abstract class SourceCompilationUnit
172171

173172
bool get mayImplementRestrictedTypes;
174173

175-
void takeMixinApplications(
176-
Map<SourceClassBuilder, TypeBuilder> mixinApplications);
177-
178174
void addDependencies(Library library, Set<SourceCompilationUnit> seen);
179175

180176
/// Runs through all part directives in this compilation unit and adds the

pkg/front_end/lib/src/source/fragment_factory.dart

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@ import 'package:kernel/ast.dart' hide Combinator, MapLiteralEntry;
99
import '../api_prototype/lowering_predicates.dart';
1010
import '../base/combinator.dart' show CombinatorBuilder;
1111
import '../base/configuration.dart' show Configuration;
12-
import '../base/export.dart';
1312
import '../base/identifiers.dart' show Identifier;
14-
import '../base/import.dart';
1513
import '../base/modifiers.dart';
1614
import '../base/scope.dart';
1715
import '../builder/constructor_reference_builder.dart';
@@ -24,39 +22,8 @@ import '../builder/omitted_type_builder.dart';
2422
import '../builder/type_builder.dart';
2523
import '../fragment/fragment.dart';
2624
import 'offset_map.dart';
27-
import 'source_class_builder.dart';
28-
import 'source_library_builder.dart';
2925
import 'source_type_parameter_builder.dart';
3026
import 'type_parameter_factory.dart';
31-
import 'type_scope.dart';
32-
33-
abstract class FragmentFactoryResult {
34-
String? get name;
35-
36-
bool get isPart;
37-
38-
String? get partOfName;
39-
40-
Uri? get partOfUri;
41-
42-
/// The part directives in this compilation unit.
43-
List<Part> get parts;
44-
45-
List<Import> get imports;
46-
47-
List<Export> get exports;
48-
49-
List<MetadataBuilder>? get metadata;
50-
51-
TypeScope get typeScope;
52-
53-
void takeMixinApplications(
54-
Map<SourceClassBuilder, TypeBuilder> mixinApplications);
55-
56-
int finishNativeMethods();
57-
58-
List<LibraryPart> get libraryParts;
59-
}
6027

6128
abstract class FragmentFactory {
6229
void beginClassOrNamedMixinApplicationHeader();

0 commit comments

Comments
 (0)