| 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 Setlet<Node> get superUses; | 9 Setlet<Node> get superUses; |
| 10 | 10 |
| (...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 315 redirection = resolver.visitor.resolveConstructorRedirection(redirection); | 315 redirection = resolver.visitor.resolveConstructorRedirection(redirection); |
| 316 } | 316 } |
| 317 } | 317 } |
| 318 | 318 |
| 319 void checkMatchingPatchParameters(FunctionElement origin, | 319 void checkMatchingPatchParameters(FunctionElement origin, |
| 320 Link<Element> originParameters, | 320 Link<Element> originParameters, |
| 321 Link<Element> patchParameters) { | 321 Link<Element> patchParameters) { |
| 322 while (!originParameters.isEmpty) { | 322 while (!originParameters.isEmpty) { |
| 323 ParameterElementX originParameter = originParameters.head; | 323 ParameterElementX originParameter = originParameters.head; |
| 324 ParameterElementX patchParameter = patchParameters.head; | 324 ParameterElementX patchParameter = patchParameters.head; |
| 325 // TODO(johnniwinther): Remove the case for reassignment of | 325 originParameter.applyPatch(patchParameter); |
| 326 // [patch]/[origin] when resolution is ensure to be done only once. | |
| 327 assert(invariant(originParameter, originParameter.origin == null)); | |
| 328 assert(invariant(originParameter, | |
| 329 originParameter.patch == null || | |
| 330 originParameter.patch == patchParameter)); | |
| 331 originParameter.patch = patchParameter; | |
| 332 assert(invariant(patchParameter, | |
| 333 patchParameter.origin == null || | |
| 334 patchParameter.origin == originParameter)); | |
| 335 assert(invariant(patchParameter, patchParameter.patch == null)); | |
| 336 patchParameter.origin = originParameter; | |
| 337 DartType originParameterType = originParameter.computeType(compiler); | 326 DartType originParameterType = originParameter.computeType(compiler); |
| 338 DartType patchParameterType = patchParameter.computeType(compiler); | 327 DartType patchParameterType = patchParameter.computeType(compiler); |
| 339 if (originParameterType != patchParameterType) { | 328 if (originParameterType != patchParameterType) { |
| 340 compiler.reportError( | 329 compiler.reportError( |
| 341 originParameter.parseNode(compiler), | 330 originParameter.parseNode(compiler), |
| 342 MessageKind.PATCH_PARAMETER_TYPE_MISMATCH, | 331 MessageKind.PATCH_PARAMETER_TYPE_MISMATCH, |
| 343 {'methodName': origin.name, | 332 {'methodName': origin.name, |
| 344 'parameterName': originParameter.name, | 333 'parameterName': originParameter.name, |
| 345 'originParameterType': originParameterType, | 334 'originParameterType': originParameterType, |
| 346 'patchParameterType': patchParameterType}); | 335 'patchParameterType': patchParameterType}); |
| (...skipping 4325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4672 TreeElements _treeElements; | 4661 TreeElements _treeElements; |
| 4673 | 4662 |
| 4674 bool get hasTreeElements => _treeElements != null; | 4663 bool get hasTreeElements => _treeElements != null; |
| 4675 | 4664 |
| 4676 TreeElements get treeElements { | 4665 TreeElements get treeElements { |
| 4677 assert(invariant(this, _treeElements !=null, | 4666 assert(invariant(this, _treeElements !=null, |
| 4678 message: "TreeElements have not been computed for $this.")); | 4667 message: "TreeElements have not been computed for $this.")); |
| 4679 return _treeElements; | 4668 return _treeElements; |
| 4680 } | 4669 } |
| 4681 } | 4670 } |
| OLD | NEW |