| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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.resolution.send_structure; | 5 library dart2js.resolution.send_structure; |
| 6 | 6 |
| 7 import '../common.dart'; | 7 import '../common.dart'; |
| 8 import '../constants/expressions.dart'; | 8 import '../constants/expressions.dart'; |
| 9 import '../elements/resolution_types.dart'; | 9 import '../elements/resolution_types.dart'; |
| 10 import '../elements/elements.dart'; | 10 import '../elements/elements.dart'; |
| (...skipping 2098 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2109 node, | 2109 node, |
| 2110 semantics.element, | 2110 semantics.element, |
| 2111 semantics.type, | 2111 semantics.type, |
| 2112 node.send.argumentsNode, | 2112 node.send.argumentsNode, |
| 2113 callStructure, | 2113 callStructure, |
| 2114 arg); | 2114 arg); |
| 2115 } | 2115 } |
| 2116 ConstructorElement effectiveTarget = constructor.effectiveTarget; | 2116 ConstructorElement effectiveTarget = constructor.effectiveTarget; |
| 2117 ResolutionInterfaceType effectiveTargetType = | 2117 ResolutionInterfaceType effectiveTargetType = |
| 2118 constructor.computeEffectiveTargetType(semantics.type); | 2118 constructor.computeEffectiveTargetType(semantics.type); |
| 2119 if (callStructure | 2119 if (callStructure.signatureApplies(effectiveTarget.type)) { |
| 2120 .signatureApplies(effectiveTarget.functionSignature)) { | |
| 2121 return visitor.visitRedirectingFactoryConstructorInvoke( | 2120 return visitor.visitRedirectingFactoryConstructorInvoke( |
| 2122 node, | 2121 node, |
| 2123 semantics.element, | 2122 semantics.element, |
| 2124 semantics.type, | 2123 semantics.type, |
| 2125 effectiveTarget, | 2124 effectiveTarget, |
| 2126 effectiveTargetType, | 2125 effectiveTargetType, |
| 2127 node.send.argumentsNode, | 2126 node.send.argumentsNode, |
| 2128 callStructure, | 2127 callStructure, |
| 2129 arg); | 2128 arg); |
| 2130 } else { | 2129 } else { |
| 2131 return visitor.visitUnresolvedRedirectingFactoryConstructorInvoke( | 2130 return visitor.visitUnresolvedRedirectingFactoryConstructorInvoke( |
| 2132 node, | 2131 node, |
| 2133 semantics.element, | 2132 semantics.element, |
| 2134 semantics.type, | 2133 semantics.type, |
| 2135 node.send.argumentsNode, | 2134 node.send.argumentsNode, |
| 2136 callStructure, | 2135 callStructure, |
| 2137 arg); | 2136 arg); |
| 2138 } | 2137 } |
| 2139 } | 2138 } |
| 2140 if (callStructure.signatureApplies(constructor.functionSignature)) { | 2139 if (callStructure.signatureApplies(constructor.type)) { |
| 2141 return visitor.visitFactoryConstructorInvoke(node, constructor, | 2140 return visitor.visitFactoryConstructorInvoke(node, constructor, |
| 2142 semantics.type, node.send.argumentsNode, callStructure, arg); | 2141 semantics.type, node.send.argumentsNode, callStructure, arg); |
| 2143 } | 2142 } |
| 2144 return visitor.visitConstructorIncompatibleInvoke(node, constructor, | 2143 return visitor.visitConstructorIncompatibleInvoke(node, constructor, |
| 2145 semantics.type, node.send.argumentsNode, callStructure, arg); | 2144 semantics.type, node.send.argumentsNode, callStructure, arg); |
| 2146 case ConstructorAccessKind.ABSTRACT: | 2145 case ConstructorAccessKind.ABSTRACT: |
| 2147 return visitor.visitAbstractClassConstructorInvoke( | 2146 return visitor.visitAbstractClassConstructorInvoke( |
| 2148 node, | 2147 node, |
| 2149 semantics.element, | 2148 semantics.element, |
| 2150 semantics.type, | 2149 semantics.type, |
| (...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2513 ThisConstructorInvokeStructure( | 2512 ThisConstructorInvokeStructure( |
| 2514 this.node, this.constructor, this.callStructure); | 2513 this.node, this.constructor, this.callStructure); |
| 2515 | 2514 |
| 2516 R dispatch(SemanticDeclarationVisitor<R, A> visitor, A arg) { | 2515 R dispatch(SemanticDeclarationVisitor<R, A> visitor, A arg) { |
| 2517 return visitor.visitThisConstructorInvoke( | 2516 return visitor.visitThisConstructorInvoke( |
| 2518 node, constructor, node.argumentsNode, callStructure, arg); | 2517 node, constructor, node.argumentsNode, callStructure, arg); |
| 2519 } | 2518 } |
| 2520 | 2519 |
| 2521 bool get isConstructorInvoke => true; | 2520 bool get isConstructorInvoke => true; |
| 2522 } | 2521 } |
| OLD | NEW |