Print constant table when printing libraries.
Change-Id: Ia474f3ddbe23be14d40789b0587ceeee92813106
Reviewed-on: https://dart-review.googlesource.com/c/89548
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Aske Simon Christensen <askesc@google.com>
diff --git a/pkg/front_end/lib/src/fasta/kernel/utils.dart b/pkg/front_end/lib/src/fasta/kernel/utils.dart
index 30686ba..392c061 100644
--- a/pkg/front_end/lib/src/fasta/kernel/utils.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/utils.dart
@@ -33,11 +33,12 @@
{bool libraryFilter(Library library)}) {
if (component == null) return;
StringBuffer sb = new StringBuffer();
+ Printer printer = new Printer(sb);
for (Library library in component.libraries) {
if (libraryFilter != null && !libraryFilter(library)) continue;
- Printer printer = new Printer(sb);
printer.writeLibraryFile(library);
}
+ printer.writeConstantTable(component);
print(sb);
}
diff --git a/pkg/front_end/lib/src/fasta/testing/kernel_chain.dart b/pkg/front_end/lib/src/fasta/testing/kernel_chain.dart
index 0533d88..62b149f 100644
--- a/pkg/front_end/lib/src/fasta/testing/kernel_chain.dart
+++ b/pkg/front_end/lib/src/fasta/testing/kernel_chain.dart
@@ -60,13 +60,14 @@
await CompilerContext.runWithDefaultOptions((compilerContext) async {
compilerContext.uriToSource.addAll(component.uriToSource);
+ Printer printer = new Printer(sb);
for (Library library in component.libraries) {
- Printer printer = new Printer(sb);
if (library.importUri.scheme != "dart" &&
library.importUri.scheme != "package") {
printer.writeLibraryFile(library);
}
}
+ printer.writeConstantTable(component);
});
print("$sb");
return pass(component);
@@ -172,7 +173,9 @@
}
buffer.write("\n\n");
}
- new ErrorPrinter(buffer).writeLibraryFile(library);
+ ErrorPrinter printer = new ErrorPrinter(buffer);
+ printer.writeLibraryFile(library);
+ printer.writeConstantTable(component);
String actual = "$buffer".replaceAll("$base", "org-dartlang-testcase:///");
actual = actual.replaceAll("$dartBase", "org-dartlang-testcase-sdk:///");
actual = actual.replaceAll("\\n", "\n");
diff --git a/pkg/kernel/lib/text/ast_to_text.dart b/pkg/kernel/lib/text/ast_to_text.dart
index 2f74c96..328e40a 100644
--- a/pkg/kernel/lib/text/ast_to_text.dart
+++ b/pkg/kernel/lib/text/ast_to_text.dart
@@ -445,6 +445,13 @@
--inner.indentation;
endLine('}');
}
+ writeConstantTable(component);
+ }
+
+ void writeConstantTable(Component component) {
+ if (syntheticNames.constants.map.isEmpty) return;
+ ImportTable imports = new ComponentImportTable(component);
+ var inner = createInner(imports, component.metadata);
writeWord('constants ');
endLine(' {');
++inner.indentation;