| OLD | NEW |
| 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 import 'dart:io'; | 5 import 'dart:io'; |
| 6 import 'package:async_helper/async_helper.dart'; | 6 import 'package:async_helper/async_helper.dart'; |
| 7 import 'package:compiler/src/common.dart'; | 7 import 'package:compiler/src/common.dart'; |
| 8 import 'package:compiler/src/compiler.dart'; | 8 import 'package:compiler/src/compiler.dart'; |
| 9 import 'package:compiler/src/diagnostics/diagnostic_listener.dart'; | 9 import 'package:compiler/src/diagnostics/diagnostic_listener.dart'; |
| 10 import 'package:compiler/src/elements/elements.dart'; | 10 import 'package:compiler/src/elements/elements.dart'; |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 143 | 143 |
| 144 /// Compute a descriptive mapping of the [Id]s in [member] as a kernel based | 144 /// Compute a descriptive mapping of the [Id]s in [member] as a kernel based |
| 145 /// member. | 145 /// member. |
| 146 /// | 146 /// |
| 147 /// Fills [actualMap] with the data and [sourceSpanMap] with the source spans | 147 /// Fills [actualMap] with the data and [sourceSpanMap] with the source spans |
| 148 /// for the data origin. | 148 /// for the data origin. |
| 149 void computeIrMemberData(Compiler compiler, MemberEntity member, | 149 void computeIrMemberData(Compiler compiler, MemberEntity member, |
| 150 Map<Id, String> actualMap, Map<Id, Spannable> spannableMap) { | 150 Map<Id, String> actualMap, Map<Id, Spannable> spannableMap) { |
| 151 KernelBackendStrategy backendStrategy = compiler.backendStrategy; | 151 KernelBackendStrategy backendStrategy = compiler.backendStrategy; |
| 152 KernelToElementMapForBuilding elementMap = backendStrategy.elementMap; | 152 KernelToElementMapForBuilding elementMap = backendStrategy.elementMap; |
| 153 new IrComputer(actualMap, spannableMap).run(elementMap.getMemberNode(member)); | 153 MemberDefinition definition = elementMap.getMemberDefinition(member); |
| 154 assert(definition.kind == MemberKind.regular, |
| 155 failedAt(member, "Unexpected member definition $definition")); |
| 156 new IrComputer(actualMap, spannableMap).run(definition.node); |
| 154 } | 157 } |
| 155 | 158 |
| 156 /// IR visitor for computing a descriptive mapping of the [Id]s in a member. | 159 /// IR visitor for computing a descriptive mapping of the [Id]s in a member. |
| 157 class IrComputer extends AbstractIrComputer with ComputerMixin { | 160 class IrComputer extends AbstractIrComputer with ComputerMixin { |
| 158 IrComputer(Map<Id, String> actualMap, Map<Id, SourceSpan> spannableMap) | 161 IrComputer(Map<Id, String> actualMap, Map<Id, SourceSpan> spannableMap) |
| 159 : super(actualMap, spannableMap); | 162 : super(actualMap, spannableMap); |
| 160 | 163 |
| 161 @override | 164 @override |
| 162 String computeNodeValue(ir.TreeNode node) { | 165 String computeNodeValue(ir.TreeNode node) { |
| 163 if (node is ir.VariableDeclaration) { | 166 if (node is ir.VariableDeclaration) { |
| 164 return computeLocalName(node.name); | 167 return computeLocalName(node.name); |
| 165 } else if (node is ir.FunctionDeclaration) { | 168 } else if (node is ir.FunctionDeclaration) { |
| 166 return computeLocalName(node.variable.name); | 169 return computeLocalName(node.variable.name); |
| 167 } else if (node is ir.MethodInvocation) { | 170 } else if (node is ir.MethodInvocation) { |
| 168 return computeDynamicInvokeName(node.name.name); | 171 return computeDynamicInvokeName(node.name.name); |
| 169 } else if (node is ir.PropertyGet) { | 172 } else if (node is ir.PropertyGet) { |
| 170 return computeDynamicGetName(node.name.name); | 173 return computeDynamicGetName(node.name.name); |
| 171 } | 174 } |
| 172 return '<unknown:$node>'; | 175 return '<unknown:$node>'; |
| 173 } | 176 } |
| 174 | 177 |
| 175 @override | 178 @override |
| 176 String computeMemberValue(ir.Member member) { | 179 String computeMemberValue(ir.Member member) { |
| 177 return computeMemberName(member.enclosingClass?.name, member.name.name); | 180 return computeMemberName(member.enclosingClass?.name, member.name.name); |
| 178 } | 181 } |
| 179 } | 182 } |
| OLD | NEW |