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

Unified Diff: pkg/fasta/lib/src/dill/dill_target.dart

Issue 2623033007: Fasta targets and loaders. (Closed)
Patch Set: Address review comments. Created 3 years, 11 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/fasta/lib/src/dill/dill_loader.dart ('k') | pkg/fasta/lib/src/kernel/kernel_target.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/fasta/lib/src/dill/dill_target.dart
diff --git a/pkg/fasta/lib/src/dill/dill_target.dart b/pkg/fasta/lib/src/dill/dill_target.dart
new file mode 100644
index 0000000000000000000000000000000000000000..dc4a2440cbba857b221431598ff14a298715c94c
--- /dev/null
+++ b/pkg/fasta/lib/src/dill/dill_target.dart
@@ -0,0 +1,85 @@
+// 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.dill_target;
+
+import 'dart:async' show
+ Future;
+
+import 'package:kernel/ast.dart' show
+ Class;
+
+import 'dill_loader.dart' show
+ DillLoader;
+
+import '../errors.dart' show
+ inputError,
+ internalError;
+
+import '../target_implementation.dart' show
+ TargetImplementation;
+
+import '../ticker.dart' show
+ Ticker;
+
+import '../translate_uri.dart' show
+ TranslateUri;
+
+import '../ast_kind.dart' show
+ AstKind;
+
+import '../kernel/kernel_builder.dart' show
+ ClassBuilder,
+ KernelClassBuilder;
+
+import 'dill_library_builder.dart' show
+ DillLibraryBuilder;
+
+class DillTarget extends TargetImplementation {
+ bool isLoaded = false;
+ DillLoader loader;
+
+ DillTarget(Ticker ticker, TranslateUri uriTranslator)
+ : super(ticker, uriTranslator) {
+ loader = new DillLoader(this);
+ }
+
+ void read(Uri uri) {
+ if (loader.input == null) {
+ loader.input = uri;
+ } else {
+ inputError(uri, -1, "Can only read one dill file.");
+ }
+ }
+
+ Future<Null> writeProgram(Uri uri, AstKind kind) {
+ return internalError("not implemented.");
+ }
+
+ Future<Null> writeOutline(Uri uri) async {
+ if (loader.input == null) return null;
+ await loader.buildOutlines();
+ isLoaded = true;
+ return null;
+ }
+
+ DillLibraryBuilder createLibraryBuilder(Uri uri) {
+ return new DillLibraryBuilder(uri, loader);
+ }
+
+ void addDirectSupertype(ClassBuilder cls, Set<ClassBuilder> set) {
+ }
+
+ List<ClassBuilder> collectAllClasses() {
+ return null;
+ }
+
+ void breakCycle(ClassBuilder cls) {
+ }
+
+ Class get objectClass {
+ KernelClassBuilder builder = loader.coreLibrary.exports["Object"];
+ return builder.cls;
+ }
+}
« no previous file with comments | « pkg/fasta/lib/src/dill/dill_loader.dart ('k') | pkg/fasta/lib/src/kernel/kernel_target.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698