[cfe] Remove exports from internal libraries
Change-Id: Ief854e97f5cd3c8a04137ec6682f8193946abcac
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/213770
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
diff --git a/pkg/front_end/lib/src/fasta/builder/constructor_builder.dart b/pkg/front_end/lib/src/fasta/builder/constructor_builder.dart
index 2167087..31ac71e 100644
--- a/pkg/front_end/lib/src/fasta/builder/constructor_builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/constructor_builder.dart
@@ -18,7 +18,7 @@
import '../kernel/constructor_tearoff_lowering.dart';
import '../kernel/expression_generator_helper.dart'
show ExpressionGeneratorHelper;
-import '../kernel/kernel_builder.dart'
+import '../kernel/utils.dart'
show isRedirectingGenerativeConstructorImplementation;
import '../kernel/kernel_helper.dart' show SynthesizedFunctionNode;
diff --git a/pkg/front_end/lib/src/fasta/builder/factory_builder.dart b/pkg/front_end/lib/src/fasta/builder/factory_builder.dart
index f375735..090b24b 100644
--- a/pkg/front_end/lib/src/fasta/builder/factory_builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/factory_builder.dart
@@ -3,6 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:kernel/ast.dart';
+import 'package:kernel/core_types.dart';
import 'package:kernel/type_algebra.dart';
import '../dill/dill_member_builder.dart';
@@ -11,7 +12,6 @@
import '../kernel/constructor_tearoff_lowering.dart';
import '../kernel/forest.dart';
import '../kernel/internal_ast.dart';
-import '../kernel/kernel_api.dart';
import '../kernel/kernel_helper.dart';
import '../kernel/redirecting_factory_body.dart'
show getRedirectingFactoryBody, RedirectingFactoryBody;
diff --git a/pkg/front_end/lib/src/fasta/builder/field_builder.dart b/pkg/front_end/lib/src/fasta/builder/field_builder.dart
index 2c6ea0c..ca2aa43 100644
--- a/pkg/front_end/lib/src/fasta/builder/field_builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/field_builder.dart
@@ -17,7 +17,7 @@
import '../kernel/body_builder.dart' show BodyBuilder;
import '../kernel/class_hierarchy_builder.dart';
-import '../kernel/kernel_builder.dart' show ImplicitFieldType;
+import '../kernel/implicit_field_type.dart';
import '../kernel/kernel_helper.dart';
import '../kernel/late_lowering.dart' as late_lowering;
import '../kernel/member_covariance.dart';
diff --git a/pkg/front_end/lib/src/fasta/builder/library_builder.dart b/pkg/front_end/lib/src/fasta/builder/library_builder.dart
index 439f98b..73cabf5 100644
--- a/pkg/front_end/lib/src/fasta/builder/library_builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/library_builder.dart
@@ -8,7 +8,7 @@
import 'package:kernel/ast.dart' show Library, Nullability;
-import '../combinator.dart' show Combinator;
+import '../combinator.dart' show CombinatorBuilder;
import '../problems.dart' show internalProblem, unsupported;
@@ -76,8 +76,8 @@
Builder? addBuilder(String? name, Builder declaration, int charOffset);
- void addExporter(
- LibraryBuilder exporter, List<Combinator>? combinators, int charOffset);
+ void addExporter(LibraryBuilder exporter,
+ List<CombinatorBuilder>? combinators, int charOffset);
/// Add a problem with a severity determined by the severity of the message.
///
@@ -242,8 +242,8 @@
}
@override
- void addExporter(
- LibraryBuilder exporter, List<Combinator>? combinators, int charOffset) {
+ void addExporter(LibraryBuilder exporter,
+ List<CombinatorBuilder>? combinators, int charOffset) {
exporters.add(new Export(exporter, this, combinators, charOffset));
}
diff --git a/pkg/front_end/lib/src/fasta/builder/procedure_builder.dart b/pkg/front_end/lib/src/fasta/builder/procedure_builder.dart
index 48b6cd4..7f0a2a7 100644
--- a/pkg/front_end/lib/src/fasta/builder/procedure_builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/procedure_builder.dart
@@ -3,9 +3,9 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:kernel/ast.dart';
+import 'package:kernel/type_algebra.dart';
import '../kernel/class_hierarchy_builder.dart';
-import '../kernel/kernel_api.dart';
import '../kernel/member_covariance.dart';
import '../loader.dart' show Loader;
diff --git a/pkg/front_end/lib/src/fasta/combinator.dart b/pkg/front_end/lib/src/fasta/combinator.dart
index 9f97607..9f07af0 100644
--- a/pkg/front_end/lib/src/fasta/combinator.dart
+++ b/pkg/front_end/lib/src/fasta/combinator.dart
@@ -2,19 +2,17 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-library fasta.combinator;
-
-class Combinator {
+class CombinatorBuilder {
final bool isShow;
final Set<String> names;
- Combinator(this.isShow, this.names, int charOffset, Uri fileUri);
+ CombinatorBuilder(this.isShow, this.names, int charOffset, Uri fileUri);
- Combinator.show(Iterable<String> names, int charOffset, Uri fileUri)
+ CombinatorBuilder.show(Iterable<String> names, int charOffset, Uri fileUri)
: this(true, new Set<String>.from(names), charOffset, fileUri);
- Combinator.hide(Iterable<String> names, int charOffset, Uri fileUri)
+ CombinatorBuilder.hide(Iterable<String> names, int charOffset, Uri fileUri)
: this(false, new Set<String>.from(names), charOffset, fileUri);
bool get isHide => !isShow;
diff --git a/pkg/front_end/lib/src/fasta/dill/dill_member_builder.dart b/pkg/front_end/lib/src/fasta/dill/dill_member_builder.dart
index 9730305..4917953 100644
--- a/pkg/front_end/lib/src/fasta/dill/dill_member_builder.dart
+++ b/pkg/front_end/lib/src/fasta/dill/dill_member_builder.dart
@@ -14,7 +14,7 @@
import '../kernel/class_hierarchy_builder.dart'
show ClassHierarchyBuilder, ClassMember;
import '../kernel/member_covariance.dart';
-import '../kernel/kernel_builder.dart'
+import '../kernel/utils.dart'
show isRedirectingGenerativeConstructorImplementation;
import '../modifier.dart'
diff --git a/pkg/front_end/lib/src/fasta/export.dart b/pkg/front_end/lib/src/fasta/export.dart
index 34a0ba9..323a5f7 100644
--- a/pkg/front_end/lib/src/fasta/export.dart
+++ b/pkg/front_end/lib/src/fasta/export.dart
@@ -7,7 +7,7 @@
import 'builder/builder.dart';
import 'builder/library_builder.dart';
-import 'combinator.dart' show Combinator;
+import 'combinator.dart' show CombinatorBuilder;
import 'fasta_codes.dart';
class Export {
@@ -17,7 +17,7 @@
/// The library being exported.
LibraryBuilder exported;
- final List<Combinator>? combinators;
+ final List<CombinatorBuilder>? combinators;
final int charOffset;
@@ -27,7 +27,7 @@
bool addToExportScope(String name, Builder member) {
if (combinators != null) {
- for (Combinator combinator in combinators!) {
+ for (CombinatorBuilder combinator in combinators!) {
if (combinator.isShow && !combinator.names.contains(name)) return false;
if (combinator.isHide && combinator.names.contains(name)) return false;
}
diff --git a/pkg/front_end/lib/src/fasta/import.dart b/pkg/front_end/lib/src/fasta/import.dart
index 439ec37..ec7df03 100644
--- a/pkg/front_end/lib/src/fasta/import.dart
+++ b/pkg/front_end/lib/src/fasta/import.dart
@@ -10,9 +10,9 @@
import 'builder/library_builder.dart';
import 'builder/prefix_builder.dart';
-import 'kernel/kernel_builder.dart' show toKernelCombinators;
+import 'kernel/utils.dart' show toKernelCombinators;
-import 'combinator.dart' show Combinator;
+import 'combinator.dart' show CombinatorBuilder;
import 'configuration.dart' show Configuration;
@@ -31,7 +31,7 @@
final String? prefix;
- final List<Combinator>? combinators;
+ final List<CombinatorBuilder>? combinators;
final List<Configuration>? configurations;
@@ -73,7 +73,7 @@
}
imported!.exportScope.forEach((String name, Builder member) {
if (combinators != null) {
- for (Combinator combinator in combinators!) {
+ for (CombinatorBuilder combinator in combinators!) {
if (combinator.isShow && !combinator.names.contains(name)) return;
if (combinator.isHide && combinator.names.contains(name)) return;
}
@@ -94,7 +94,7 @@
String? prefix,
SourceLibraryBuilder importer,
LibraryBuilder? imported,
- List<Combinator>? combinators,
+ List<CombinatorBuilder>? combinators,
bool deferred,
int charOffset,
int prefixCharOffset,
diff --git a/pkg/front_end/lib/src/fasta/incremental_compiler.dart b/pkg/front_end/lib/src/fasta/incremental_compiler.dart
index d3a46e7..0fe5e02 100644
--- a/pkg/front_end/lib/src/fasta/incremental_compiler.dart
+++ b/pkg/front_end/lib/src/fasta/incremental_compiler.dart
@@ -95,7 +95,7 @@
import 'builder_graph.dart' show BuilderGraph;
-import 'combinator.dart' show Combinator;
+import 'combinator.dart' show CombinatorBuilder;
import 'compiler_context.dart' show CompilerContext;
@@ -123,7 +123,7 @@
import 'hybrid_file_system.dart' show HybridFileSystem;
-import 'kernel/kernel_builder.dart' show ClassHierarchyBuilder;
+import 'kernel/class_hierarchy_builder.dart' show ClassHierarchyBuilder;
import 'kernel/internal_ast.dart' show VariableDeclarationImpl;
@@ -2007,16 +2007,16 @@
in libraryBuilder.library.dependencies) {
if (!dependency.isImport) continue;
- List<Combinator>? combinators;
+ List<CombinatorBuilder>? combinators;
for (kernel.Combinator combinator in dependency.combinators) {
- combinators ??= <Combinator>[];
+ combinators ??= <CombinatorBuilder>[];
combinators.add(combinator.isShow
- ? new Combinator.show(combinator.names, combinator.fileOffset,
- libraryBuilder.fileUri)
- : new Combinator.hide(combinator.names, combinator.fileOffset,
- libraryBuilder.fileUri));
+ ? new CombinatorBuilder.show(combinator.names,
+ combinator.fileOffset, libraryBuilder.fileUri)
+ : new CombinatorBuilder.hide(combinator.names,
+ combinator.fileOffset, libraryBuilder.fileUri));
}
debugLibrary.addImport(
diff --git a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
index 38d7818..38edea3 100644
--- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
@@ -29,7 +29,8 @@
unescapeFirstStringPart,
unescapeLastStringPart,
unescapeString;
-
+import 'package:_fe_analyzer_shared/src/parser/stack_listener.dart'
+ show FixedNullableList, GrowableList, NullValue, ParserRecovery;
import 'package:_fe_analyzer_shared/src/parser/value_kind.dart';
import 'package:_fe_analyzer_shared/src/scanner/scanner.dart' show Token;
@@ -39,6 +40,12 @@
import 'package:_fe_analyzer_shared/src/util/link.dart';
import 'package:kernel/ast.dart';
+import 'package:kernel/class_hierarchy.dart';
+import 'package:kernel/clone.dart';
+import 'package:kernel/core_types.dart';
+import 'package:kernel/src/bounds_checks.dart' hide calculateBounds;
+import 'package:kernel/transformations/flags.dart';
+import 'package:kernel/type_algebra.dart';
import 'package:kernel/type_environment.dart';
import '../builder/builder.dart';
@@ -101,59 +108,35 @@
import '../scope.dart';
import '../source/diet_parser.dart';
-
-import '../source/scope_listener.dart'
- show
- FixedNullableList,
- GrowableList,
- JumpTargetKind,
- NullValue,
- ParserRecovery,
- ScopeListener;
-
+import '../source/scope_listener.dart' show JumpTargetKind, ScopeListener;
import '../source/source_library_builder.dart' show SourceLibraryBuilder;
-
import '../source/stack_listener_impl.dart' show offsetForToken;
-
import '../source/value_kinds.dart';
import '../type_inference/type_inferrer.dart'
show TypeInferrer, InferredFunctionBody;
-
import '../type_inference/type_schema.dart' show UnknownType;
import '../util/helpers.dart' show DelayedActionPerformer;
import 'collections.dart';
-
import 'constness.dart' show Constness;
-
import 'constructor_tearoff_lowering.dart';
-
import 'expression_generator.dart';
-
import 'expression_generator_helper.dart';
-
import 'forest.dart' show Forest;
-
import 'implicit_type_argument.dart' show ImplicitTypeArgument;
-
+import 'internal_ast.dart';
+import 'kernel_variable_builder.dart';
+import 'load_library_builder.dart';
import 'redirecting_factory_body.dart'
show
RedirectingFactoryBody,
RedirectionTarget,
getRedirectingFactoryBody,
getRedirectionTarget;
-
import 'type_algorithms.dart' show calculateBounds;
-
-import 'kernel_api.dart';
-
-import 'kernel_ast_api.dart';
-
-import 'internal_ast.dart';
-
-import 'kernel_builder.dart';
+import 'utils.dart';
// TODO(ahe): Remove this and ensure all nodes have a location.
const int noLocation = TreeNode.noOffset;
diff --git a/pkg/front_end/lib/src/fasta/kernel/expression_generator.dart b/pkg/front_end/lib/src/fasta/kernel/expression_generator.dart
index 49d92a1..930527d 100644
--- a/pkg/front_end/lib/src/fasta/kernel/expression_generator.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/expression_generator.dart
@@ -11,6 +11,7 @@
import 'package:_fe_analyzer_shared/src/scanner/token.dart' show Token;
import 'package:kernel/ast.dart';
+import 'package:kernel/text/ast_to_text.dart';
import 'package:kernel/type_algebra.dart';
import '../builder/builder.dart';
@@ -67,12 +68,12 @@
import 'forest.dart';
-import 'kernel_api.dart' show NameSystem, printNodeOn, printQualifiedNameOn;
-
-import 'kernel_builder.dart' show LoadLibraryBuilder;
-
import 'internal_ast.dart';
+import 'load_library_builder.dart';
+
+import 'utils.dart';
+
/// A generator represents a subexpression for which we can't yet build an
/// expression because we don't yet know the context in which it's used.
///
diff --git a/pkg/front_end/lib/src/fasta/kernel/expression_generator_helper.dart b/pkg/front_end/lib/src/fasta/kernel/expression_generator_helper.dart
index ecc97bb..c80be43 100644
--- a/pkg/front_end/lib/src/fasta/kernel/expression_generator_helper.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/expression_generator_helper.dart
@@ -5,6 +5,7 @@
library fasta.expression_generator_helper;
import 'package:_fe_analyzer_shared/src/scanner/token.dart' show Token;
+import 'package:kernel/ast.dart';
import 'package:kernel/type_algebra.dart';
import 'package:kernel/type_environment.dart';
@@ -24,25 +25,6 @@
import 'constness.dart' show Constness;
import 'forest.dart' show Forest;
import 'internal_ast.dart';
-import 'kernel_ast_api.dart'
- show
- Arguments,
- Constructor,
- DartType,
- Expression,
- FunctionNode,
- Initializer,
- InterfaceType,
- Library,
- Member,
- Name,
- Procedure,
- StaticGet,
- TreeNode,
- TypeParameter,
- TypeParameterType,
- Typedef,
- VariableDeclaration;
/// Alias for Expression | Generator
typedef Expression_Generator = dynamic;
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_api.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_api.dart
deleted file mode 100644
index 40f86af..0000000
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_api.dart
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/// This library exports all API from Kernel that can be used throughout fasta.
-library fasta.kernel_api;
-
-export 'package:kernel/type_algebra.dart' show Substitution, substitute;
-
-export 'package:kernel/class_hierarchy.dart' show ClassHierarchy;
-
-export 'package:kernel/clone.dart' show CloneVisitorNotMembers;
-
-export 'package:kernel/core_types.dart' show CoreTypes;
-
-export 'package:kernel/transformations/flags.dart' show TransformerFlag;
-
-export 'package:kernel/text/ast_to_text.dart' show NameSystem;
-
-export 'package:kernel/type_environment.dart' show TypeEnvironment;
-
-export 'package:kernel/src/bounds_checks.dart' show instantiateToBounds;
-
-import 'package:kernel/text/ast_to_text.dart' show NameSystem, Printer;
-
-import 'package:kernel/ast.dart' show Class, Member, Node;
-
-void printNodeOn(Node? node, StringSink sink, {NameSystem? syntheticNames}) {
- if (node == null) {
- sink.write("null");
- } else {
- syntheticNames ??= new NameSystem();
- new Printer(sink, syntheticNames: syntheticNames).writeNode(node);
- }
-}
-
-void printQualifiedNameOn(Member? member, StringSink sink) {
- if (member == null) {
- sink.write("null");
- } else {
- sink.write(member.enclosingLibrary.importUri);
- sink.write("::");
- Class? cls = member.enclosingClass;
- if (cls != null) {
- sink.write(cls.name);
- sink.write("::");
- }
- sink.write(member.name.text);
- }
-}
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_ast_api.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_ast_api.dart
deleted file mode 100644
index c82741e..0000000
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_ast_api.dart
+++ /dev/null
@@ -1,98 +0,0 @@
-// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/// This library exports all API from Kernel's ast.dart that can be used
-/// throughout fasta.
-library fasta.kernel_ast_api;
-
-export 'package:kernel/ast.dart'
- show
- Arguments,
- AsExpression,
- AssertStatement,
- AsyncMarker,
- Block,
- BreakStatement,
- Catch,
- CheckLibraryIsLoaded,
- Class,
- Component,
- Constructor,
- ConstructorInvocation,
- ContinueSwitchStatement,
- DartType,
- DynamicType,
- EmptyStatement,
- Expression,
- ExpressionStatement,
- Field,
- ForInStatement,
- FunctionDeclaration,
- FunctionExpression,
- FunctionNode,
- FunctionType,
- Initializer,
- InterfaceType,
- InvalidExpression,
- InvalidType,
- IsExpression,
- LabeledStatement,
- Let,
- Library,
- LibraryDependency,
- LibraryPart,
- ListLiteral,
- LocalInitializer,
- Location,
- MapLiteralEntry,
- MapLiteral,
- Member,
- Name,
- NamedExpression,
- NamedType,
- Node,
- NullLiteral,
- Procedure,
- ProcedureKind,
- Rethrow,
- ReturnStatement,
- Statement,
- StaticGet,
- StaticInvocation,
- StaticSet,
- StringConcatenation,
- SuperInitializer,
- SuperMethodInvocation,
- SuperPropertySet,
- SwitchCase,
- ThisExpression,
- TreeNode,
- TypeParameter,
- TypeParameterType,
- Typedef,
- TypedefType,
- VariableDeclaration,
- VariableGet,
- VariableSet,
- VoidType,
- setParents;
-
-export 'internal_ast.dart'
- show
- ArgumentsImpl,
- Cascade,
- DeferredCheck,
- FactoryConstructorInvocation,
- FunctionDeclarationImpl,
- InvalidSuperInitializerJudgment,
- LoadLibraryTearOff,
- NamedFunctionExpressionJudgment,
- NullAwareMethodInvocation,
- NullAwarePropertyGet,
- ReturnStatementImpl,
- ShadowInvalidFieldInitializer,
- ShadowInvalidInitializer,
- ShadowLargeIntLiteral,
- VariableDeclarationImpl,
- VariableGetImpl;
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_builder.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_builder.dart
deleted file mode 100644
index 3b8d62c..0000000
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_builder.dart
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library fasta.kernel_builder;
-
-import 'package:kernel/ast.dart'
- show
- Combinator,
- Constructor,
- Initializer,
- Procedure,
- RedirectingInitializer;
-
-import '../combinator.dart' as fasta;
-
-export 'class_hierarchy_builder.dart'
- show ClassHierarchyBuilder, ClassMember, DelayedCheck;
-
-export 'implicit_field_type.dart' show ImplicitFieldType;
-
-export 'kernel_variable_builder.dart' show VariableBuilderImpl;
-
-export 'load_library_builder.dart' show LoadLibraryBuilder;
-
-int compareProcedures(Procedure a, Procedure b) {
- int i = "${a.fileUri}".compareTo("${b.fileUri}");
- if (i != 0) return i;
- return a.fileOffset.compareTo(b.fileOffset);
-}
-
-bool isRedirectingGenerativeConstructorImplementation(Constructor constructor) {
- List<Initializer> initializers = constructor.initializers;
- return initializers.length == 1 &&
- initializers.single is RedirectingInitializer;
-}
-
-List<Combinator>? toKernelCombinators(
- List<fasta.Combinator>? fastaCombinators) {
- if (fastaCombinators == null) {
- // Note: it's safe to return null here as Kernel's LibraryDependency will
- // convert null to an empty list.
- return null;
- }
-
- return new List<Combinator>.generate(fastaCombinators.length, (int i) {
- fasta.Combinator combinator = fastaCombinators[i];
- List<String> nameList = combinator.names.toList();
- return combinator.isShow
- ? new Combinator.show(nameList)
- : new Combinator.hide(nameList);
- }, growable: true);
-}
diff --git a/pkg/front_end/lib/src/fasta/kernel/type_algorithms.dart b/pkg/front_end/lib/src/fasta/kernel/type_algorithms.dart
index 608b28e..a64b323 100644
--- a/pkg/front_end/lib/src/fasta/kernel/type_algorithms.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/type_algorithms.dart
@@ -37,8 +37,6 @@
import '../kernel/utils.dart';
-export 'package:kernel/ast.dart' show Variance;
-
/// Initial value for "variance" that is to be computed by the compiler.
const int pendingVariance = -1;
diff --git a/pkg/front_end/lib/src/fasta/kernel/utils.dart b/pkg/front_end/lib/src/fasta/kernel/utils.dart
index f1f909e..ad50b91 100644
--- a/pkg/front_end/lib/src/fasta/kernel/utils.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/utils.dart
@@ -10,25 +10,10 @@
import 'package:_fe_analyzer_shared/src/scanner/token.dart'
show SyntheticToken, TokenType;
-import 'package:kernel/clone.dart' show CloneVisitorWithMembers;
-
-import 'package:kernel/ast.dart'
- show
- Class,
- Component,
- DartType,
- Library,
- Procedure,
- Supertype,
- TreeNode,
- TypeParameter,
- TypeParameterType,
- dummyDartType,
- dummyUri;
-
-import 'package:kernel/binary/ast_to_binary.dart' show BinaryPrinter;
-
-import 'package:kernel/text/ast_to_text.dart' show Printer;
+import 'package:kernel/ast.dart';
+import 'package:kernel/clone.dart';
+import 'package:kernel/binary/ast_to_binary.dart';
+import 'package:kernel/text/ast_to_text.dart';
import '../builder/fixed_type_builder.dart';
import '../builder/formal_parameter_builder.dart';
@@ -42,6 +27,30 @@
import '../source/source_library_builder.dart';
import 'body_builder.dart';
+void printNodeOn(Node? node, StringSink sink, {NameSystem? syntheticNames}) {
+ if (node == null) {
+ sink.write("null");
+ } else {
+ syntheticNames ??= new NameSystem();
+ new Printer(sink, syntheticNames: syntheticNames).writeNode(node);
+ }
+}
+
+void printQualifiedNameOn(Member? member, StringSink sink) {
+ if (member == null) {
+ sink.write("null");
+ } else {
+ sink.write(member.enclosingLibrary.importUri);
+ sink.write("::");
+ Class? cls = member.enclosingClass;
+ if (cls != null) {
+ sink.write(cls.name);
+ sink.write("::");
+ }
+ sink.write(member.name.text);
+ }
+}
+
/// Print the given [component]. Do nothing if it is `null`. If the
/// [libraryFilter] is provided, then only libraries that satisfy it are
/// printed.
@@ -161,9 +170,39 @@
void close() {}
}
+int compareProcedures(Procedure a, Procedure b) {
+ int i = "${a.fileUri}".compareTo("${b.fileUri}");
+ if (i != 0) return i;
+ return a.fileOffset.compareTo(b.fileOffset);
+}
+
+bool isRedirectingGenerativeConstructorImplementation(Constructor constructor) {
+ List<Initializer> initializers = constructor.initializers;
+ return initializers.length == 1 &&
+ initializers.single is RedirectingInitializer;
+}
+
+List<Combinator>? toKernelCombinators(
+ List<CombinatorBuilder>? fastaCombinators) {
+ if (fastaCombinators == null) {
+ // Note: it's safe to return null here as Kernel's LibraryDependency will
+ // convert null to an empty list.
+ return null;
+ }
+
+ return new List<Combinator>.generate(fastaCombinators.length, (int i) {
+ CombinatorBuilder combinator = fastaCombinators[i];
+ List<String> nameList = combinator.names.toList();
+ return combinator.isShow
+ ? new Combinator.show(nameList)
+ : new Combinator.hide(nameList);
+ }, growable: true);
+}
+
final Token dummyToken = new SyntheticToken(TokenType.AT, -1);
final Identifier dummyIdentifier = new Identifier(dummyToken);
-final Combinator dummyCombinator = new Combinator(false, {}, -1, dummyUri);
+final CombinatorBuilder dummyCombinator =
+ new CombinatorBuilder(false, {}, -1, dummyUri);
final MetadataBuilder dummyMetadataBuilder = new MetadataBuilder(dummyToken);
final TypeBuilder dummyTypeBuilder =
new FixedTypeBuilder(dummyDartType, dummyUri, -1);
diff --git a/pkg/front_end/lib/src/fasta/source/outline_builder.dart b/pkg/front_end/lib/src/fasta/source/outline_builder.dart
index e7f8197..0a838d9 100644
--- a/pkg/front_end/lib/src/fasta/source/outline_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/outline_builder.dart
@@ -41,7 +41,7 @@
import '../builder/type_variable_builder.dart';
import '../builder/unresolved_type.dart';
-import '../combinator.dart' show Combinator;
+import '../combinator.dart' show CombinatorBuilder;
import '../configuration.dart' show Configuration;
@@ -182,7 +182,7 @@
if (names is ParserRecovery) {
push(names);
} else {
- push(new Combinator.hide(names as Iterable<String>,
+ push(new CombinatorBuilder.hide(names as Iterable<String>,
hideKeyword.charOffset, libraryBuilder.fileUri));
}
}
@@ -194,7 +194,7 @@
if (names is ParserRecovery) {
push(names);
} else {
- push(new Combinator.show(names as Iterable<String>,
+ push(new CombinatorBuilder.show(names as Iterable<String>,
showKeyword.charOffset, libraryBuilder.fileUri));
}
}
@@ -202,7 +202,7 @@
@override
void endCombinators(int count) {
debugEvent("Combinators");
- push(const FixedNullableList<Combinator>()
+ push(const FixedNullableList<CombinatorBuilder>()
.popNonNullable(stack, count, dummyCombinator) ??
NullValue.Combinators);
}
@@ -210,7 +210,7 @@
@override
void endExport(Token exportKeyword, Token semicolon) {
debugEvent("Export");
- List<Combinator>? combinators = pop() as List<Combinator>?;
+ List<CombinatorBuilder>? combinators = pop() as List<CombinatorBuilder>?;
List<Configuration>? configurations = pop() as List<Configuration>?;
int uriOffset = popCharOffset();
String uri = pop() as String;
@@ -235,7 +235,7 @@
@override
void endImport(Token importKeyword, Token? semicolon) {
debugEvent("EndImport");
- List<Combinator>? combinators = pop() as List<Combinator>?;
+ List<CombinatorBuilder>? combinators = pop() as List<CombinatorBuilder>?;
bool isDeferred = pop() as bool;
int prefixOffset = popCharOffset();
Object? prefix = pop(NullValue.Prefix);
diff --git a/pkg/front_end/lib/src/fasta/source/scope_listener.dart b/pkg/front_end/lib/src/fasta/source/scope_listener.dart
index 21c67fe..221222f 100644
--- a/pkg/front_end/lib/src/fasta/source/scope_listener.dart
+++ b/pkg/front_end/lib/src/fasta/source/scope_listener.dart
@@ -15,9 +15,6 @@
import 'stack_listener_impl.dart';
import 'value_kinds.dart';
-export 'package:_fe_analyzer_shared/src/parser/stack_listener.dart'
- show FixedNullableList, GrowableList, NullValue, ParserRecovery;
-
enum JumpTargetKind {
Break,
Continue,
diff --git a/pkg/front_end/lib/src/fasta/source/source_class_builder.dart b/pkg/front_end/lib/src/fasta/source/source_class_builder.dart
index cfd33e0..b1ed2fa 100644
--- a/pkg/front_end/lib/src/fasta/source/source_class_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_class_builder.dart
@@ -37,11 +37,10 @@
import '../fasta_codes.dart';
import '../kernel/combined_member_signature.dart';
-import '../kernel/kernel_builder.dart' show compareProcedures;
import '../kernel/kernel_target.dart' show KernelTarget;
import '../kernel/redirecting_factory_body.dart' show redirectingName;
-import '../kernel/type_algorithms.dart'
- show Variance, computeTypeVariableBuilderVariance;
+import '../kernel/type_algorithms.dart' show computeTypeVariableBuilderVariance;
+import '../kernel/utils.dart' show compareProcedures;
import '../names.dart' show equalsName, noSuchMethodName;
diff --git a/pkg/front_end/lib/src/fasta/source/source_library_builder.dart b/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
index 515d205..1c83138 100644
--- a/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
@@ -67,7 +67,7 @@
import '../builder/unresolved_type.dart';
import '../builder/void_type_declaration_builder.dart';
-import '../combinator.dart' show Combinator;
+import '../combinator.dart' show CombinatorBuilder;
import '../configuration.dart' show Configuration;
@@ -82,16 +82,9 @@
import '../import.dart' show Import;
import '../kernel/class_hierarchy_builder.dart';
-
+import '../kernel/implicit_field_type.dart';
import '../kernel/internal_ast.dart';
-
-import '../kernel/kernel_builder.dart'
- show
- ImplicitFieldType,
- LoadLibraryBuilder,
- compareProcedures,
- toKernelCombinators;
-
+import '../kernel/load_library_builder.dart';
import '../kernel/type_algorithms.dart'
show
NonSimplicityIssue,
@@ -102,6 +95,7 @@
getNonSimplicityIssuesForDeclaration,
getNonSimplicityIssuesForTypeVariables,
pendingVariance;
+import '../kernel/utils.dart' show compareProcedures, toKernelCombinators;
import '../modifier.dart'
show
@@ -652,7 +646,7 @@
List<MetadataBuilder>? metadata,
String uri,
List<Configuration>? configurations,
- List<Combinator>? combinators,
+ List<CombinatorBuilder>? combinators,
int charOffset,
int uriOffset) {
if (configurations != null) {
@@ -697,7 +691,7 @@
String uri,
List<Configuration>? configurations,
String? prefix,
- List<Combinator>? combinators,
+ List<CombinatorBuilder>? combinators,
bool deferred,
int charOffset,
int prefixCharOffset,
diff --git a/pkg/front_end/lib/src/fasta/source/source_loader.dart b/pkg/front_end/lib/src/fasta/source/source_loader.dart
index fc624e3..5207c06 100644
--- a/pkg/front_end/lib/src/fasta/source/source_loader.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_loader.dart
@@ -94,8 +94,7 @@
import '../fasta_codes.dart';
import '../kernel/body_builder.dart' show BodyBuilder;
-import '../kernel/kernel_builder.dart'
- show ClassHierarchyBuilder, ClassMember, DelayedCheck;
+import '../kernel/class_hierarchy_builder.dart';
import '../kernel/kernel_helper.dart'
show SynthesizedFunctionNode, TypeDependency;
import '../kernel/kernel_target.dart' show KernelTarget;
diff --git a/pkg/front_end/lib/src/fasta/type_inference/type_inference_engine.dart b/pkg/front_end/lib/src/fasta/type_inference/type_inference_engine.dart
index 884dfc4..2194bf5 100644
--- a/pkg/front_end/lib/src/fasta/type_inference/type_inference_engine.dart
+++ b/pkg/front_end/lib/src/fasta/type_inference/type_inference_engine.dart
@@ -17,9 +17,9 @@
import '../builder/constructor_builder.dart';
import '../kernel/forest.dart';
+import '../kernel/implicit_field_type.dart';
import '../kernel/internal_ast.dart';
-import '../kernel/kernel_builder.dart'
- show ClassHierarchyBuilder, ImplicitFieldType;
+import '../kernel/class_hierarchy_builder.dart' show ClassHierarchyBuilder;
import '../kernel/kernel_helper.dart';
import '../source/source_library_builder.dart' show SourceLibraryBuilder;
diff --git a/pkg/front_end/lib/src/kernel_generator_impl.dart b/pkg/front_end/lib/src/kernel_generator_impl.dart
index a95566c..aa99dc8 100644
--- a/pkg/front_end/lib/src/kernel_generator_impl.dart
+++ b/pkg/front_end/lib/src/kernel_generator_impl.dart
@@ -7,8 +7,9 @@
import 'package:_fe_analyzer_shared/src/messages/severity.dart' show Severity;
-import 'package:kernel/kernel.dart'
- show CanonicalName, Component, NonNullableByDefaultCompiledMode;
+import 'package:kernel/ast.dart';
+import 'package:kernel/class_hierarchy.dart';
+import 'package:kernel/core_types.dart';
import 'base/nnbd_mode.dart';
@@ -22,8 +23,6 @@
import 'fasta/fasta_codes.dart' show LocatedMessage;
-import 'fasta/kernel/kernel_api.dart';
-
import 'fasta/kernel/kernel_target.dart' show KernelTarget;
import 'fasta/kernel/utils.dart' show printComponentText, serializeComponent;
diff --git a/pkg/front_end/test/class_hierarchy/class_hierarchy_test.dart b/pkg/front_end/test/class_hierarchy/class_hierarchy_test.dart
index cf9ece3..15e0fa5 100644
--- a/pkg/front_end/test/class_hierarchy/class_hierarchy_test.dart
+++ b/pkg/front_end/test/class_hierarchy/class_hierarchy_test.dart
@@ -6,12 +6,12 @@
import 'package:_fe_analyzer_shared/src/testing/features.dart';
import 'package:_fe_analyzer_shared/src/testing/id.dart';
import 'package:_fe_analyzer_shared/src/testing/id_testing.dart';
-import 'package:front_end/src/fasta/kernel/kernel_api.dart';
import 'package:front_end/src/testing/id_testing_helper.dart';
import 'package:front_end/src/testing/id_testing_utils.dart';
import 'package:front_end/src/fasta/kernel/class_hierarchy_builder.dart';
import 'package:front_end/src/testing/id_extractor.dart';
import 'package:kernel/ast.dart';
+import 'package:kernel/core_types.dart';
void main(List<String> args) async {
Directory dataDir = new Directory.fromUri(Platform.script.resolve('data'));
diff --git a/pkg/front_end/test/constant_evaluator_benchmark.dart b/pkg/front_end/test/constant_evaluator_benchmark.dart
index 63900b8..1d6eddd 100644
--- a/pkg/front_end/test/constant_evaluator_benchmark.dart
+++ b/pkg/front_end/test/constant_evaluator_benchmark.dart
@@ -25,15 +25,16 @@
show IncrementalCompiler;
import 'package:front_end/src/fasta/kernel/constant_evaluator.dart' as constants
show EvaluationMode, transformLibraries, ErrorReporter;
-import 'package:front_end/src/fasta/kernel/kernel_api.dart';
import 'package:front_end/src/fasta/kernel/kernel_target.dart';
import 'package:kernel/ast.dart';
import 'package:kernel/binary/ast_from_binary.dart';
+import 'package:kernel/core_types.dart';
+import 'package:kernel/class_hierarchy.dart';
import 'package:kernel/target/changed_structure_notifier.dart';
-
import 'package:kernel/target/targets.dart'
show ConstantsBackend, DiagnosticReporter, Target, TargetFlags;
+import 'package:kernel/type_environment.dart';
import "package:vm/target/flutter.dart" show FlutterTarget;
diff --git a/pkg/front_end/test/fasta/generator_to_string_test.dart b/pkg/front_end/test/fasta/generator_to_string_test.dart
index f59c8c3..2888840 100644
--- a/pkg/front_end/test/fasta/generator_to_string_test.dart
+++ b/pkg/front_end/test/fasta/generator_to_string_test.dart
@@ -46,8 +46,7 @@
import 'package:front_end/src/fasta/dill/dill_target.dart' show DillTarget;
-import 'package:front_end/src/fasta/kernel/kernel_builder.dart'
- show LoadLibraryBuilder;
+import 'package:front_end/src/fasta/kernel/load_library_builder.dart';
import 'package:front_end/src/fasta/kernel/kernel_target.dart'
show KernelTarget;
diff --git a/pkg/front_end/test/fasta/testing/suite.dart b/pkg/front_end/test/fasta/testing/suite.dart
index 016d8d1..0140af0 100644
--- a/pkg/front_end/test/fasta/testing/suite.dart
+++ b/pkg/front_end/test/fasta/testing/suite.dart
@@ -67,7 +67,7 @@
import 'package:front_end/src/fasta/kernel/class_hierarchy_builder.dart'
show ClassHierarchyNode;
-import 'package:front_end/src/fasta/kernel/kernel_builder.dart'
+import 'package:front_end/src/fasta/kernel/class_hierarchy_builder.dart'
show ClassHierarchyBuilder;
import 'package:front_end/src/fasta/kernel/kernel_target.dart'
diff --git a/pkg/front_end/test/fasta/types/dill_hierachy_test.dart b/pkg/front_end/test/fasta/types/dill_hierachy_test.dart
index fb95755..e37a8c3 100644
--- a/pkg/front_end/test/fasta/types/dill_hierachy_test.dart
+++ b/pkg/front_end/test/fasta/types/dill_hierachy_test.dart
@@ -31,7 +31,7 @@
import "package:front_end/src/fasta/dill/dill_target.dart" show DillTarget;
-import "package:front_end/src/fasta/kernel/kernel_builder.dart"
+import "package:front_end/src/fasta/kernel/class_hierarchy_builder.dart"
show ClassHierarchyBuilder;
import "package:front_end/src/fasta/ticker.dart" show Ticker;
diff --git a/pkg/front_end/test/fasta/types/fasta_legacy_upper_bound_test.dart b/pkg/front_end/test/fasta/types/fasta_legacy_upper_bound_test.dart
index 2852925..33af5ac 100644
--- a/pkg/front_end/test/fasta/types/fasta_legacy_upper_bound_test.dart
+++ b/pkg/front_end/test/fasta/types/fasta_legacy_upper_bound_test.dart
@@ -22,7 +22,7 @@
import "package:front_end/src/fasta/dill/dill_target.dart" show DillTarget;
-import "package:front_end/src/fasta/kernel/kernel_builder.dart"
+import "package:front_end/src/fasta/kernel/class_hierarchy_builder.dart"
show ClassHierarchyBuilder;
import "package:front_end/src/fasta/ticker.dart" show Ticker;
diff --git a/pkg/front_end/test/fasta/types/fasta_types_test.dart b/pkg/front_end/test/fasta/types/fasta_types_test.dart
index c5be9a4..83135453 100644
--- a/pkg/front_end/test/fasta/types/fasta_types_test.dart
+++ b/pkg/front_end/test/fasta/types/fasta_types_test.dart
@@ -31,7 +31,7 @@
import "package:front_end/src/fasta/dill/dill_target.dart" show DillTarget;
-import "package:front_end/src/fasta/kernel/kernel_builder.dart"
+import "package:front_end/src/fasta/kernel/class_hierarchy_builder.dart"
show ClassHierarchyBuilder;
import "package:front_end/src/fasta/ticker.dart" show Ticker;
diff --git a/pkg/front_end/test/fasta/types/subtypes_benchmark.dart b/pkg/front_end/test/fasta/types/subtypes_benchmark.dart
index aa23ed4..6ab0236 100644
--- a/pkg/front_end/test/fasta/types/subtypes_benchmark.dart
+++ b/pkg/front_end/test/fasta/types/subtypes_benchmark.dart
@@ -36,7 +36,7 @@
import "package:front_end/src/fasta/dill/dill_target.dart" show DillTarget;
-import "package:front_end/src/fasta/kernel/kernel_builder.dart"
+import "package:front_end/src/fasta/kernel/class_hierarchy_builder.dart"
show ClassHierarchyBuilder;
import "package:front_end/src/fasta/ticker.dart" show Ticker;
diff --git a/pkg/front_end/test/id_tests/inheritance_test.dart b/pkg/front_end/test/id_tests/inheritance_test.dart
index 40a5ae9..f6cdbe5 100644
--- a/pkg/front_end/test/id_tests/inheritance_test.dart
+++ b/pkg/front_end/test/id_tests/inheritance_test.dart
@@ -10,11 +10,13 @@
import 'package:_fe_analyzer_shared/src/testing/id_testing.dart';
import 'package:front_end/src/api_prototype/experimental_flags.dart';
import 'package:front_end/src/fasta/kernel/class_hierarchy_builder.dart';
-import 'package:front_end/src/fasta/kernel/kernel_api.dart';
import 'package:front_end/src/testing/id_extractor.dart';
import 'package:front_end/src/testing/id_testing_helper.dart';
import 'package:front_end/src/testing/id_testing_utils.dart';
import 'package:kernel/ast.dart';
+import 'package:kernel/class_hierarchy.dart';
+import 'package:kernel/core_types.dart';
+import 'package:kernel/type_algebra.dart';
const String cfeFromBuilderMarker = 'cfe:builder';
diff --git a/pkg/front_end/test/lint_test.status b/pkg/front_end/test/lint_test.status
index 83361a2..e7d04be 100644
--- a/pkg/front_end/test/lint_test.status
+++ b/pkg/front_end/test/lint_test.status
@@ -18,21 +18,7 @@
front_end/lib/src/fasta/fasta_codes/Exports: Fail
front_end/lib/src/fasta/incremental_compiler/ImportsTwice: Fail
front_end/lib/src/fasta/kernel/body_builder/ImportsTwice: Fail
-front_end/lib/src/fasta/kernel/constant_evaluator/ExplicitType: Pass
-front_end/lib/src/fasta/kernel/kernel_api/Exports: Fail
-front_end/lib/src/fasta/kernel/kernel_ast_api/Exports: Fail
-front_end/lib/src/fasta/kernel/kernel_builder/Exports: Fail
-front_end/lib/src/fasta/kernel/type_algorithms/Exports: Fail
front_end/lib/src/fasta/messages/Exports: Fail
-front_end/lib/src/fasta/parser/Exports: Fail
-front_end/lib/src/fasta/parser/parser/ImportsTwice: Fail
-front_end/lib/src/fasta/scanner/abstract_scanner/ImportsTwice: Fail
-front_end/lib/src/fasta/scanner/Exports: Fail
-front_end/lib/src/fasta/scanner/recover/ImportsTwice: Fail
-front_end/lib/src/fasta/scanner/string_scanner/ImportsTwice: Fail
-front_end/lib/src/fasta/scanner/token/ImportsTwice: Fail
-front_end/lib/src/fasta/scanner/utf8_bytes_scanner/ImportsTwice: Fail
-front_end/lib/src/fasta/source/scope_listener/Exports: Fail
front_end/lib/src/fasta/source/value_kinds/ImportsTwice: Fail
front_end/lib/src/testing/id_testing_helper/Exports: Fail
kernel/lib/ast/Exports: Fail
diff --git a/pkg/front_end/tool/ast_model.dart b/pkg/front_end/tool/ast_model.dart
index 00fc28c..7ea5230 100644
--- a/pkg/front_end/tool/ast_model.dart
+++ b/pkg/front_end/tool/ast_model.dart
@@ -5,11 +5,13 @@
import 'package:front_end/src/api_prototype/front_end.dart';
import 'package:front_end/src/api_unstable/ddc.dart';
import 'package:front_end/src/compute_platform_binaries_location.dart';
-import 'package:front_end/src/fasta/kernel/kernel_api.dart';
import 'package:front_end/src/kernel_generator_impl.dart';
import 'package:kernel/ast.dart';
+import 'package:kernel/class_hierarchy.dart';
+import 'package:kernel/core_types.dart';
import 'package:kernel/src/printer.dart';
import 'package:kernel/target/targets.dart';
+import 'package:kernel/type_algebra.dart';
import 'package:kernel/type_environment.dart';
import 'package:vm/target/vm.dart';
diff --git a/pkg/front_end/tool/dart_doctest_impl.dart b/pkg/front_end/tool/dart_doctest_impl.dart
index 2c00251..520a92b 100644
--- a/pkg/front_end/tool/dart_doctest_impl.dart
+++ b/pkg/front_end/tool/dart_doctest_impl.dart
@@ -834,16 +834,16 @@
in libraryBuilder.library.dependencies) {
if (!dependency.isImport) continue;
- List<Combinator>? combinators;
+ List<CombinatorBuilder>? combinators;
for (kernel.Combinator combinator in dependency.combinators) {
- combinators ??= <Combinator>[];
+ combinators ??= <CombinatorBuilder>[];
combinators.add(combinator.isShow
- ? new Combinator.show(combinator.names, combinator.fileOffset,
- libraryBuilder.fileUri)
- : new Combinator.hide(combinator.names, combinator.fileOffset,
- libraryBuilder.fileUri));
+ ? new CombinatorBuilder.show(combinator.names,
+ combinator.fileOffset, libraryBuilder.fileUri)
+ : new CombinatorBuilder.hide(combinator.names,
+ combinator.fileOffset, libraryBuilder.fileUri));
}
dartDocTestLibrary.addImport(