| 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.signatureApplies(effectiveTarget.type)) { | 2119 if (callStructure |
| 2120 .signatureApplies(effectiveTarget.parameterStructure)) { |
| 2120 return visitor.visitRedirectingFactoryConstructorInvoke( | 2121 return visitor.visitRedirectingFactoryConstructorInvoke( |
| 2121 node, | 2122 node, |
| 2122 semantics.element, | 2123 semantics.element, |
| 2123 semantics.type, | 2124 semantics.type, |
| 2124 effectiveTarget, | 2125 effectiveTarget, |
| 2125 effectiveTargetType, | 2126 effectiveTargetType, |
| 2126 node.send.argumentsNode, | 2127 node.send.argumentsNode, |
| 2127 callStructure, | 2128 callStructure, |
| 2128 arg); | 2129 arg); |
| 2129 } else { | 2130 } else { |
| 2130 return visitor.visitUnresolvedRedirectingFactoryConstructorInvoke( | 2131 return visitor.visitUnresolvedRedirectingFactoryConstructorInvoke( |
| 2131 node, | 2132 node, |
| 2132 semantics.element, | 2133 semantics.element, |
| 2133 semantics.type, | 2134 semantics.type, |
| 2134 node.send.argumentsNode, | 2135 node.send.argumentsNode, |
| 2135 callStructure, | 2136 callStructure, |
| 2136 arg); | 2137 arg); |
| 2137 } | 2138 } |
| 2138 } | 2139 } |
| 2139 if (callStructure.signatureApplies(constructor.type)) { | 2140 if (callStructure.signatureApplies(constructor.parameterStructure)) { |
| 2140 return visitor.visitFactoryConstructorInvoke(node, constructor, | 2141 return visitor.visitFactoryConstructorInvoke(node, constructor, |
| 2141 semantics.type, node.send.argumentsNode, callStructure, arg); | 2142 semantics.type, node.send.argumentsNode, callStructure, arg); |
| 2142 } | 2143 } |
| 2143 return visitor.visitConstructorIncompatibleInvoke(node, constructor, | 2144 return visitor.visitConstructorIncompatibleInvoke(node, constructor, |
| 2144 semantics.type, node.send.argumentsNode, callStructure, arg); | 2145 semantics.type, node.send.argumentsNode, callStructure, arg); |
| 2145 case ConstructorAccessKind.ABSTRACT: | 2146 case ConstructorAccessKind.ABSTRACT: |
| 2146 return visitor.visitAbstractClassConstructorInvoke( | 2147 return visitor.visitAbstractClassConstructorInvoke( |
| 2147 node, | 2148 node, |
| 2148 semantics.element, | 2149 semantics.element, |
| 2149 semantics.type, | 2150 semantics.type, |
| (...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2514 ThisConstructorInvokeStructure( | 2515 ThisConstructorInvokeStructure( |
| 2515 this.node, this.constructor, this.callStructure); | 2516 this.node, this.constructor, this.callStructure); |
| 2516 | 2517 |
| 2517 R dispatch(SemanticDeclarationVisitor<R, A> visitor, A arg) { | 2518 R dispatch(SemanticDeclarationVisitor<R, A> visitor, A arg) { |
| 2518 return visitor.visitThisConstructorInvoke( | 2519 return visitor.visitThisConstructorInvoke( |
| 2519 node, constructor, node.argumentsNode, callStructure, arg); | 2520 node, constructor, node.argumentsNode, callStructure, arg); |
| 2520 } | 2521 } |
| 2521 | 2522 |
| 2522 bool get isConstructorInvoke => true; | 2523 bool get isConstructorInvoke => true; |
| 2523 } | 2524 } |
| OLD | NEW |