| Index: pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart
|
| diff --git a/pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart b/pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart
|
| index e786e17a8bd25413cb9e335306f7ed8aae7a59ce..8934cbe320707e37da8ae87cce82d0cf677eba15 100644
|
| --- a/pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart
|
| +++ b/pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart
|
| @@ -12,7 +12,6 @@ import '../dart2jslib.dart';
|
| import '../elements/elements.dart';
|
| import '../elements/modelx.dart' show SynthesizedConstructorElementX,
|
| ConstructorBodyElementX, FunctionSignatureX;
|
| -import '../io/source_file.dart';
|
| import '../io/source_information.dart';
|
| import '../js_backend/js_backend.dart' show JavaScriptBackend;
|
| import '../resolution/semantic_visitor.dart';
|
| @@ -42,11 +41,11 @@ import 'cps_ir_builder.dart';
|
| */
|
| class IrBuilderTask extends CompilerTask {
|
| final Map<Element, ir.RootNode> nodes = <Element, ir.RootNode>{};
|
| - final bool generateSourceMap;
|
| + final SourceInformationFactory sourceInformationFactory;
|
|
|
| String bailoutMessage = null;
|
|
|
| - IrBuilderTask(Compiler compiler, {this.generateSourceMap: true})
|
| + IrBuilderTask(Compiler compiler, this.sourceInformationFactory)
|
| : super(compiler);
|
|
|
| String get name => 'IR builder';
|
| @@ -67,9 +66,8 @@ class IrBuilderTask extends CompilerTask {
|
| TreeElements elementsMapping = element.resolvedAst.elements;
|
| element = element.implementation;
|
| return compiler.withCurrentElement(element, () {
|
| - SourceInformationBuilder sourceInformationBuilder = generateSourceMap
|
| - ? new PositionSourceInformationBuilder(element)
|
| - : const SourceInformationBuilder();
|
| + SourceInformationBuilder sourceInformationBuilder =
|
| + sourceInformationFactory.forContext(element);
|
|
|
| IrBuilderVisitor builder =
|
| compiler.backend is JavaScriptBackend
|
| @@ -2761,47 +2759,6 @@ class JsIrBuilderVisitor extends IrBuilderVisitor {
|
| }
|
| }
|
|
|
| -/// Interface for generating [SourceInformation] for the CPS.
|
| -class SourceInformationBuilder {
|
| - const SourceInformationBuilder();
|
| -
|
| - /// Create a [SourceInformationBuilder] for [element].
|
| - SourceInformationBuilder forContext(AstElement element) => this;
|
| -
|
| - /// Generate [SourceInformation] for the read access in [node].
|
| - SourceInformation buildGet(ast.Node node) => null;
|
| -
|
| - /// Generate [SourceInformation] for the invocation in [node].
|
| - SourceInformation buildCall(ast.Node node) => null;
|
| -}
|
| -
|
| -/// [SourceInformationBuilder] that generates [PositionSourceInformation].
|
| -class PositionSourceInformationBuilder implements SourceInformationBuilder {
|
| - final SourceFile sourceFile;
|
| - final String name;
|
| -
|
| - PositionSourceInformationBuilder(AstElement element)
|
| - : sourceFile = element.compilationUnit.script.file,
|
| - name = element.name;
|
| -
|
| - @override
|
| - SourceInformation buildGet(ast.Node node) {
|
| - return new PositionSourceInformation(
|
| - new TokenSourceLocation(sourceFile, node.getBeginToken(), name));
|
| - }
|
| -
|
| - @override
|
| - SourceInformation buildCall(ast.Node node) {
|
| - return new PositionSourceInformation(
|
| - new TokenSourceLocation(sourceFile, node.getBeginToken(), name));
|
| - }
|
| -
|
| - @override
|
| - SourceInformationBuilder forContext(AstElement element) {
|
| - return new PositionSourceInformationBuilder(element);
|
| - }
|
| -}
|
| -
|
| /// Perform simple post-processing on the initial CPS-translated root term.
|
| ///
|
| /// This pass performs backend-independent post-processing on the translated
|
| @@ -2868,4 +2825,3 @@ class RemovalVisitor extends ir.RecursiveVisitor {
|
| reference.unlink();
|
| }
|
| }
|
| -
|
|
|