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

Side by Side Diff: pkg/compiler/lib/src/kernel/kernel_backend_strategy.dart

Issue 2974663002: Compute source spans for IR nodes and J/K-elements (Closed)
Patch Set: Updated cf. comments Created 3 years, 5 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library dart2js.kernel.backend_strategy; 5 library dart2js.kernel.backend_strategy;
6 6
7 import 'package:kernel/ast.dart' as ir; 7 import 'package:kernel/ast.dart' as ir;
8 8
9 import '../backend_strategy.dart'; 9 import '../backend_strategy.dart';
10 import '../closure.dart'; 10 import '../closure.dart';
11 import '../common.dart';
11 import '../common/codegen.dart' show CodegenRegistry, CodegenWorkItem; 12 import '../common/codegen.dart' show CodegenRegistry, CodegenWorkItem;
12 import '../common/tasks.dart'; 13 import '../common/tasks.dart';
13 import '../compiler.dart'; 14 import '../compiler.dart';
14 import '../elements/entities.dart'; 15 import '../elements/entities.dart';
15 import '../elements/entity_utils.dart' as utils; 16 import '../elements/entity_utils.dart' as utils;
16 import '../enqueue.dart'; 17 import '../enqueue.dart';
17 import '../io/source_information.dart'; 18 import '../io/source_information.dart';
18 import '../js/js_source_mapping.dart'; 19 import '../js/js_source_mapping.dart';
19 import '../js_backend/backend.dart'; 20 import '../js_backend/backend.dart';
20 import '../js_backend/native_data.dart'; 21 import '../js_backend/native_data.dart';
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 @override 113 @override
113 SsaBuilder createSsaBuilder(CompilerTask task, JavaScriptBackend backend, 114 SsaBuilder createSsaBuilder(CompilerTask task, JavaScriptBackend backend,
114 SourceInformationStrategy sourceInformationStrategy) { 115 SourceInformationStrategy sourceInformationStrategy) {
115 return new KernelSsaBuilder( 116 return new KernelSsaBuilder(
116 task, backend.compiler, elementMap, _globalLocalsMap); 117 task, backend.compiler, elementMap, _globalLocalsMap);
117 } 118 }
118 119
119 @override 120 @override
120 SourceInformationStrategy get sourceInformationStrategy => 121 SourceInformationStrategy get sourceInformationStrategy =>
121 const JavaScriptSourceInformationStrategy(); 122 const JavaScriptSourceInformationStrategy();
123
124 @override
125 SourceSpan spanFromSpannable(Spannable spannable, Entity currentElement) {
126 KernelFrontEndStrategy frontendStrategy = _compiler.frontendStrategy;
127 KernelToElementMapImpl elementMap = frontendStrategy.elementMap;
128 return elementMap.getSourceSpan(spannable, currentElement);
129 }
122 } 130 }
123 131
124 class KernelCodegenWorkItemBuilder implements WorkItemBuilder { 132 class KernelCodegenWorkItemBuilder implements WorkItemBuilder {
125 final JavaScriptBackend _backend; 133 final JavaScriptBackend _backend;
126 final ClosedWorld _closedWorld; 134 final ClosedWorld _closedWorld;
127 135
128 KernelCodegenWorkItemBuilder(this._backend, this._closedWorld); 136 KernelCodegenWorkItemBuilder(this._backend, this._closedWorld);
129 137
130 CompilerOptions get _options => _backend.compiler.options; 138 CompilerOptions get _options => _backend.compiler.options;
131 139
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
317 Iterable<ClassEntity> sortClasses(Iterable<ClassEntity> classes) { 325 Iterable<ClassEntity> sortClasses(Iterable<ClassEntity> classes) {
318 return classes.toList() 326 return classes.toList()
319 ..sort((ClassEntity a, ClassEntity b) { 327 ..sort((ClassEntity a, ClassEntity b) {
320 int r = _compareLibraries(a.library, b.library); 328 int r = _compareLibraries(a.library, b.library);
321 if (r != 0) return r; 329 if (r != 0) return r;
322 return _compareNodes( 330 return _compareNodes(
323 a, elementMap.getClassNode(a), b, elementMap.getClassNode(b)); 331 a, elementMap.getClassNode(a), b, elementMap.getClassNode(b));
324 }); 332 });
325 } 333 }
326 } 334 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/kernel/element_map_impl.dart ('k') | pkg/compiler/lib/src/kernel/kernel_strategy.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698