Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(552)

Unified Diff: pkg/front_end/lib/src/fasta/outline.dart

Issue 2723113002: Consolidate analyzer dependencies. (Closed)
Patch Set: Remove new dependency on AsyncMarker. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/front_end/lib/src/fasta/loader.dart ('k') | pkg/front_end/lib/src/fasta/scanner/keyword.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/front_end/lib/src/fasta/outline.dart
diff --git a/pkg/front_end/lib/src/fasta/outline.dart b/pkg/front_end/lib/src/fasta/outline.dart
index 128afb78d8b30d180e8e9b0437feb0a3ba26f8d8..3d328e761903c36cee438544b8770b2135533067 100644
--- a/pkg/front_end/lib/src/fasta/outline.dart
+++ b/pkg/front_end/lib/src/fasta/outline.dart
@@ -24,8 +24,6 @@ import 'ticker.dart' show Ticker;
import 'translate_uri.dart' show TranslateUri;
-import 'ast_kind.dart' show AstKind;
-
Future<KernelTarget> outline(List<String> arguments) async {
try {
return await CompilerCommandLine.withGlobalOptions("outline", arguments,
@@ -33,8 +31,9 @@ Future<KernelTarget> outline(List<String> arguments) async {
if (c.options.verbose) {
print("Building outlines for ${arguments.join(' ')}");
}
- return await doOutline(
- c, new Ticker(isVerbose: c.options.verbose), c.options.output);
+ CompileTask task =
+ new CompileTask(c, new Ticker(isVerbose: c.options.verbose));
+ return await task.buildOutline(c.options.output);
});
} on InputError catch (e) {
exitCode = 1;
@@ -50,8 +49,9 @@ Future<Uri> compile(List<String> arguments) async {
if (c.options.verbose) {
print("Compiling directly to Kernel: ${arguments.join(' ')}");
}
- return await doCompile(
- c, new Ticker(isVerbose: c.options.verbose), AstKind.Kernel);
+ CompileTask task =
+ new CompileTask(c, new Ticker(isVerbose: c.options.verbose));
+ return await task.compile();
});
} on InputError catch (e) {
exitCode = 1;
@@ -60,69 +60,62 @@ Future<Uri> compile(List<String> arguments) async {
}
}
-Future<Uri> kompile(List<String> arguments) async {
- try {
- return await CompilerCommandLine.withGlobalOptions("kompile", arguments,
- (CompilerContext c) async {
- if (c.options.verbose) {
- print("Compiling via analyzer: ${arguments.join(' ')}");
- }
- return await doCompile(
- c, new Ticker(isVerbose: c.options.verbose), AstKind.Analyzer);
- });
- } on InputError catch (e) {
- exitCode = 1;
- print(e.format());
- return null;
- }
-}
+class CompileTask {
+ final CompilerContext c;
+ final Ticker ticker;
-Future<KernelTarget> doOutline(CompilerContext c, Ticker ticker,
- [Uri output]) async {
- TranslateUri uriTranslator = await TranslateUri.parse(c.options.sdk);
- ticker.logMs("Read packages file");
- DillTarget dillTarget = new DillTarget(ticker, uriTranslator);
- KernelTarget kernelTarget =
- new KernelTarget(dillTarget, uriTranslator, c.uriToSource);
- Uri platform = c.options.platform;
- if (platform != null) {
- dillTarget.read(platform);
- }
- String argument = c.options.arguments.first;
- Uri uri = Uri.base.resolve(argument);
- String path = uriTranslator.translate(uri)?.path ?? argument;
- if (path.endsWith(".dart")) {
- kernelTarget.read(uri);
- } else {
- inputError(uri, -1, "Unexpected input: $uri");
- }
- await dillTarget.writeOutline(null);
- await kernelTarget.writeOutline(output);
- if (c.options.dumpIr && output != null) {
- kernelTarget.dumpIr();
+ CompileTask(this.c, this.ticker);
+
+ KernelTarget createKernelTarget(
+ DillTarget dillTarget, TranslateUri uriTranslator) {
+ return new KernelTarget(dillTarget, uriTranslator, c.uriToSource);
}
- return kernelTarget;
-}
-Future<Uri> doCompile(CompilerContext c, Ticker ticker, AstKind kind) async {
- KernelTarget kernelTarget = await doOutline(c, ticker);
- if (exitCode != 0) return null;
- Uri uri = c.options.output;
- await kernelTarget.writeProgram(uri, kind);
- if (c.options.dumpIr) {
- kernelTarget.dumpIr();
+ Future<KernelTarget> buildOutline([Uri output]) async {
+ TranslateUri uriTranslator = await TranslateUri.parse(c.options.sdk);
+ ticker.logMs("Read packages file");
+ DillTarget dillTarget = new DillTarget(ticker, uriTranslator);
+ KernelTarget kernelTarget = createKernelTarget(dillTarget, uriTranslator);
+ Uri platform = c.options.platform;
+ if (platform != null) {
+ dillTarget.read(platform);
+ }
+ String argument = c.options.arguments.first;
+ Uri uri = Uri.base.resolve(argument);
+ String path = uriTranslator.translate(uri)?.path ?? argument;
+ if (path.endsWith(".dart")) {
+ kernelTarget.read(uri);
+ } else {
+ inputError(uri, -1, "Unexpected input: $uri");
+ }
+ await dillTarget.writeOutline(null);
+ await kernelTarget.writeOutline(output);
+ if (c.options.dumpIr && output != null) {
+ kernelTarget.dumpIr();
+ }
+ return kernelTarget;
}
- if (c.options.verify) {
- try {
- verifyProgram(kernelTarget.program);
- ticker.logMs("Verified program");
- } catch (e, s) {
- exitCode = 1;
- print("Verification of program failed: $e");
- if (s != null && c.options.verbose) {
- print(s);
+
+ Future<Uri> compile() async {
+ KernelTarget kernelTarget = await buildOutline();
+ if (exitCode != 0) return null;
+ Uri uri = c.options.output;
+ await kernelTarget.writeProgram(uri);
+ if (c.options.dumpIr) {
+ kernelTarget.dumpIr();
+ }
+ if (c.options.verify) {
+ try {
+ verifyProgram(kernelTarget.program);
+ ticker.logMs("Verified program");
+ } catch (e, s) {
+ exitCode = 1;
+ print("Verification of program failed: $e");
+ if (s != null && c.options.verbose) {
+ print(s);
+ }
}
}
+ return uri;
}
- return uri;
}
« no previous file with comments | « pkg/front_end/lib/src/fasta/loader.dart ('k') | pkg/front_end/lib/src/fasta/scanner/keyword.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698