Index: pkg/front_end/lib/src/fasta/kernel/kernel_target.dart |
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart |
index 9e391c2614f43ee23bf987e340ff7227ac040056..1a1be1bb3735cb157928833d5065c5e33e1ee3f8 100644 |
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart |
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart |
@@ -4,97 +4,83 @@ |
library fasta.kernel_target; |
-import 'dart:async' show |
- Future; |
- |
-import 'dart:io' show |
- File, |
- IOSink; |
- |
-import 'package:kernel/ast.dart' show |
- Arguments, |
- AsyncMarker, |
- Class, |
- Constructor, |
- EmptyStatement, |
- Expression, |
- ExpressionStatement, |
- Field, |
- FieldInitializer, |
- FunctionNode, |
- Initializer, |
- InvalidInitializer, |
- Library, |
- Name, |
- NamedExpression, |
- NullLiteral, |
- ProcedureKind, |
- Program, |
- RedirectingInitializer, |
- Source, |
- StringLiteral, |
- SuperInitializer, |
- Throw, |
- VariableDeclaration, |
- VariableGet, |
- VoidType; |
- |
-import 'package:kernel/binary/ast_to_binary.dart' show |
- BinaryPrinter; |
- |
-import 'package:kernel/text/ast_to_text.dart' show |
- Printer; |
- |
-import 'package:kernel/transformations/mixin_full_resolution.dart' show |
- MixinFullResolution; |
- |
-import 'package:kernel/transformations/setup_builtin_library.dart' as |
- setup_builtin_library; |
- |
-import '../source/source_loader.dart' show |
- SourceLoader; |
- |
-import '../source/source_class_builder.dart' show |
- SourceClassBuilder; |
- |
-import '../target_implementation.dart' show |
- TargetImplementation; |
- |
-import '../translate_uri.dart' show |
- TranslateUri; |
- |
-import '../dill/dill_target.dart' show |
- DillTarget; |
- |
-import '../ast_kind.dart' show |
- AstKind; |
- |
-import '../errors.dart' show |
- InputError, |
- internalError, |
- reportCrash, |
- resetCrashReporting; |
- |
-import '../util/relativize.dart' show |
- relativizeUri; |
- |
-import '../compiler_context.dart' show |
- CompilerContext; |
- |
-import 'kernel_builder.dart' show |
- Builder, |
- ClassBuilder, |
- DynamicTypeBuilder, |
- InvalidTypeBuilder, |
- KernelClassBuilder, |
- KernelLibraryBuilder, |
- KernelNamedTypeBuilder, |
- KernelProcedureBuilder, |
- LibraryBuilder, |
- MixinApplicationBuilder, |
- NamedMixinApplicationBuilder, |
- NamedTypeBuilder, |
- TypeBuilder; |
+import 'dart:async' show Future; |
+ |
+import 'dart:io' show File, IOSink; |
+ |
+import 'package:kernel/ast.dart' |
+ show |
+ Arguments, |
+ AsyncMarker, |
+ Class, |
+ Constructor, |
+ EmptyStatement, |
+ Expression, |
+ ExpressionStatement, |
+ Field, |
+ FieldInitializer, |
+ FunctionNode, |
+ Initializer, |
+ InvalidInitializer, |
+ Library, |
+ Name, |
+ NamedExpression, |
+ NullLiteral, |
+ ProcedureKind, |
+ Program, |
+ RedirectingInitializer, |
+ Source, |
+ StringLiteral, |
+ SuperInitializer, |
+ Throw, |
+ VariableDeclaration, |
+ VariableGet, |
+ VoidType; |
+ |
+import 'package:kernel/binary/ast_to_binary.dart' show BinaryPrinter; |
+ |
+import 'package:kernel/text/ast_to_text.dart' show Printer; |
+ |
+import 'package:kernel/transformations/mixin_full_resolution.dart' |
+ show MixinFullResolution; |
+ |
+import 'package:kernel/transformations/setup_builtin_library.dart' |
+ as setup_builtin_library; |
+ |
+import '../source/source_loader.dart' show SourceLoader; |
+ |
+import '../source/source_class_builder.dart' show SourceClassBuilder; |
+ |
+import '../target_implementation.dart' show TargetImplementation; |
+ |
+import '../translate_uri.dart' show TranslateUri; |
+ |
+import '../dill/dill_target.dart' show DillTarget; |
+ |
+import '../ast_kind.dart' show AstKind; |
+ |
+import '../errors.dart' |
+ show InputError, internalError, reportCrash, resetCrashReporting; |
+ |
+import '../util/relativize.dart' show relativizeUri; |
+ |
+import '../compiler_context.dart' show CompilerContext; |
+ |
+import 'kernel_builder.dart' |
+ show |
+ Builder, |
+ ClassBuilder, |
+ DynamicTypeBuilder, |
+ InvalidTypeBuilder, |
+ KernelClassBuilder, |
+ KernelLibraryBuilder, |
+ KernelNamedTypeBuilder, |
+ KernelProcedureBuilder, |
+ LibraryBuilder, |
+ MixinApplicationBuilder, |
+ NamedMixinApplicationBuilder, |
+ NamedTypeBuilder, |
+ TypeBuilder; |
class KernelTarget extends TargetImplementation { |
final DillTarget dillTarget; |
@@ -147,6 +133,7 @@ class KernelTarget extends TargetImplementation { |
internalError("Unhandled: ${builder.runtimeType}"); |
} |
} |
+ |
if (supertype == null) { |
// OK. |
} else if (supertype is MixinApplicationBuilder) { |
@@ -199,11 +186,9 @@ class KernelTarget extends TargetImplementation { |
cls.implementedTypes.clear(); |
cls.supertype = null; |
cls.mixedInType = null; |
- builder.supertype = |
- new KernelNamedTypeBuilder( |
- "Object", null, builder.charOffset, |
- builder.fileUri ?? Uri.parse(cls.fileUri)) |
- ..builder = objectClassBuilder; |
+ builder.supertype = new KernelNamedTypeBuilder("Object", null, |
+ builder.charOffset, builder.fileUri ?? Uri.parse(cls.fileUri)) |
+ ..builder = objectClassBuilder; |
builder.interfaces = null; |
} |
@@ -286,9 +271,17 @@ class KernelTarget extends TargetImplementation { |
// method. Similarly considerations apply to separate compilation. It |
// could also make sense to add a way to mark .dill files as having |
// compile-time errors. |
- KernelProcedureBuilder mainBuilder = new KernelProcedureBuilder(null, 0, |
- null, "main", null, null, AsyncMarker.Sync, ProcedureKind.Method, |
- library, -1); |
+ KernelProcedureBuilder mainBuilder = new KernelProcedureBuilder( |
+ null, |
+ 0, |
+ null, |
+ "main", |
+ null, |
+ null, |
+ AsyncMarker.Sync, |
+ ProcedureKind.Method, |
+ library, |
+ -1); |
library.addBuilder(mainBuilder.name, mainBuilder, -1); |
mainBuilder.body = new ExpressionStatement( |
new Throw(new StringLiteral("${errors.join('\n')}"))); |
@@ -382,6 +375,7 @@ class KernelTarget extends TargetImplementation { |
/// If [builder] doesn't have a constructors, install the defaults. |
void installDefaultConstructor(SourceClassBuilder builder) { |
if (builder.isMixinApplication || builder.constructors.isNotEmpty) return; |
+ |
/// Quotes below are from [Dart Programming Language Specification, 4th |
/// Edition](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-408.pdf): |
if (builder is NamedMixinApplicationBuilder) { |
@@ -431,20 +425,20 @@ class KernelTarget extends TargetImplementation { |
return new VariableDeclaration(formal.name, |
type: formal.type, isFinal: formal.isFinal, isConst: formal.isConst); |
} |
+ |
List<VariableDeclaration> positionalParameters = <VariableDeclaration>[]; |
List<VariableDeclaration> namedParameters = <VariableDeclaration>[]; |
List<Expression> positional = <Expression>[]; |
List<NamedExpression> named = <NamedExpression>[]; |
- for (VariableDeclaration formal in |
- constructor.function.positionalParameters) { |
+ for (VariableDeclaration formal |
+ in constructor.function.positionalParameters) { |
positionalParameters.add(copyFormal(formal)); |
positional.add(new VariableGet(positionalParameters.last)); |
} |
- for (VariableDeclaration formal in |
- constructor.function.namedParameters) { |
+ for (VariableDeclaration formal in constructor.function.namedParameters) { |
namedParameters.add(copyFormal(formal)); |
named.add(new NamedExpression( |
- formal.name, new VariableGet(namedParameters.last))); |
+ formal.name, new VariableGet(namedParameters.last))); |
} |
FunctionNode function = new FunctionNode(new EmptyStatement(), |
positionalParameters: positionalParameters, |
@@ -454,8 +448,7 @@ class KernelTarget extends TargetImplementation { |
SuperInitializer initializer = new SuperInitializer( |
constructor, new Arguments(positional, named: named)); |
return new Constructor(function, |
- name: constructor.name, |
- initializers: <Initializer>[initializer]); |
+ name: constructor.name, initializers: <Initializer>[initializer]); |
} |
Constructor makeDefaultConstructor() { |
@@ -536,8 +529,7 @@ class KernelTarget extends TargetImplementation { |
// set their initializer to `null`. |
for (Field field in uninitializedFields) { |
if (initializedFields == null || !initializedFields.contains(field)) { |
- field.initializer = new NullLiteral() |
- ..parent = field; |
+ field.initializer = new NullLiteral()..parent = field; |
} |
} |
// Run through all fields that are initialized by some constructor, and |
@@ -572,14 +564,13 @@ class KernelTarget extends TargetImplementation { |
} |
bool isSuperinitializerOrInvalid(Initializer initializer) { |
- return initializer is SuperInitializer |
- || initializer is InvalidInitializer; |
+ return initializer is SuperInitializer || initializer is InvalidInitializer; |
} |
bool isRedirectingGenerativeConstructor(Constructor constructor) { |
List<Initializer> initializers = constructor.initializers; |
- return initializers.length == 1 |
- && initializers.single is RedirectingInitializer; |
+ return initializers.length == 1 && |
+ initializers.single is RedirectingInitializer; |
} |
/// Looks for a constructor call that matches `super()` from a constructor in |
@@ -592,8 +583,9 @@ Constructor defaultSuperConstructor(Class cls) { |
} |
for (Constructor constructor in superclass.constructors) { |
if (constructor.name.name.isEmpty) { |
- return constructor.function.requiredParameterCount == 0 ? |
- constructor : null; |
+ return constructor.function.requiredParameterCount == 0 |
+ ? constructor |
+ : null; |
} |
} |
return null; |