| 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;
|
| + }
|
| +}
|
|
|