| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 part of resolution; | 5 part of resolution; |
| 6 | 6 |
| 7 abstract class TreeElements { | 7 abstract class TreeElements { |
| 8 Element get currentElement; | 8 Element get currentElement; |
| 9 Set<Node> get superUses; | 9 Set<Node> get superUses; |
| 10 | 10 |
| (...skipping 2199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2210 } | 2210 } |
| 2211 } | 2211 } |
| 2212 } | 2212 } |
| 2213 | 2213 |
| 2214 visitSend(Send node) { | 2214 visitSend(Send node) { |
| 2215 bool oldSendIsMemberAccess = sendIsMemberAccess; | 2215 bool oldSendIsMemberAccess = sendIsMemberAccess; |
| 2216 sendIsMemberAccess = node.isPropertyAccess || node.isCall; | 2216 sendIsMemberAccess = node.isPropertyAccess || node.isCall; |
| 2217 Element target = resolveSend(node); | 2217 Element target = resolveSend(node); |
| 2218 sendIsMemberAccess = oldSendIsMemberAccess; | 2218 sendIsMemberAccess = oldSendIsMemberAccess; |
| 2219 | 2219 |
| 2220 if (target != null && target == compiler.mirrorSystemGetNameFunction) { | 2220 if (target != null |
| 2221 && target == compiler.mirrorSystemGetNameFunction |
| 2222 && !compiler.mirrorUsageAnalyzerTask.hasMirrorUsage(enclosingElement)) { |
| 2221 compiler.reportHint( | 2223 compiler.reportHint( |
| 2222 node.selector, MessageKind.STATIC_FUNCTION_BLOAT, | 2224 node.selector, MessageKind.STATIC_FUNCTION_BLOAT, |
| 2223 {'class': compiler.mirrorSystemClass.name, | 2225 {'class': compiler.mirrorSystemClass.name, |
| 2224 'name': compiler.mirrorSystemGetNameFunction.name}); | 2226 'name': compiler.mirrorSystemGetNameFunction.name}); |
| 2225 } | 2227 } |
| 2226 | 2228 |
| 2227 if (!Elements.isUnresolved(target)) { | 2229 if (!Elements.isUnresolved(target)) { |
| 2228 if (target.isAbstractField()) { | 2230 if (target.isAbstractField()) { |
| 2229 AbstractFieldElement field = target; | 2231 AbstractFieldElement field = target; |
| 2230 target = field.getter; | 2232 target = field.getter; |
| (...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2628 compiler.reportError(argumentNode, MessageKind.STRING_EXPECTED, | 2630 compiler.reportError(argumentNode, MessageKind.STRING_EXPECTED, |
| 2629 {'type': type}); | 2631 {'type': type}); |
| 2630 } else { | 2632 } else { |
| 2631 StringConstant stringConstant = name; | 2633 StringConstant stringConstant = name; |
| 2632 String nameString = stringConstant.toDartString().slowToString(); | 2634 String nameString = stringConstant.toDartString().slowToString(); |
| 2633 if (validateSymbol(argumentNode, nameString)) { | 2635 if (validateSymbol(argumentNode, nameString)) { |
| 2634 world.registerConstSymbol(nameString, mapping); | 2636 world.registerConstSymbol(nameString, mapping); |
| 2635 } | 2637 } |
| 2636 } | 2638 } |
| 2637 } else { | 2639 } else { |
| 2638 compiler.reportHint( | 2640 if (!compiler.mirrorUsageAnalyzerTask.hasMirrorUsage( |
| 2639 node.newToken, MessageKind.NON_CONST_BLOAT, | 2641 enclosingElement)) { |
| 2640 {'name': compiler.symbolClass.name}); | 2642 compiler.reportHint( |
| 2643 node.newToken, MessageKind.NON_CONST_BLOAT, |
| 2644 {'name': compiler.symbolClass.name}); |
| 2645 } |
| 2641 world.registerNewSymbol(mapping); | 2646 world.registerNewSymbol(mapping); |
| 2642 } | 2647 } |
| 2643 } | 2648 } |
| 2644 | 2649 |
| 2645 return null; | 2650 return null; |
| 2646 } | 2651 } |
| 2647 | 2652 |
| 2648 bool validateSymbol(Node node, String name) { | 2653 bool validateSymbol(Node node, String name) { |
| 2649 if (name.isEmpty) return true; | 2654 if (name.isEmpty) return true; |
| 2650 if (name.startsWith('_')) { | 2655 if (name.startsWith('_')) { |
| (...skipping 1412 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4063 return e; | 4068 return e; |
| 4064 } | 4069 } |
| 4065 | 4070 |
| 4066 /// Assumed to be called by [resolveRedirectingFactory]. | 4071 /// Assumed to be called by [resolveRedirectingFactory]. |
| 4067 Element visitReturn(Return node) { | 4072 Element visitReturn(Return node) { |
| 4068 Node expression = node.expression; | 4073 Node expression = node.expression; |
| 4069 return finishConstructorReference(visit(expression), | 4074 return finishConstructorReference(visit(expression), |
| 4070 expression, expression); | 4075 expression, expression); |
| 4071 } | 4076 } |
| 4072 } | 4077 } |
| OLD | NEW |