| 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 operator[](Node node); | 8 Element operator[](Node node); |
| 9 Selector getSelector(Send send); | 9 Selector getSelector(Send send); |
| 10 DartType getType(Node node); | 10 DartType getType(Node node); |
| (...skipping 1753 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1764 | 1764 |
| 1765 Selector resolveSelector(Send node) { | 1765 Selector resolveSelector(Send node) { |
| 1766 LibraryElement library = enclosingElement.getLibrary(); | 1766 LibraryElement library = enclosingElement.getLibrary(); |
| 1767 Selector selector = computeSendSelector(node, library); | 1767 Selector selector = computeSendSelector(node, library); |
| 1768 if (selector != null) mapping.setSelector(node, selector); | 1768 if (selector != null) mapping.setSelector(node, selector); |
| 1769 return selector; | 1769 return selector; |
| 1770 } | 1770 } |
| 1771 | 1771 |
| 1772 void resolveArguments(NodeList list) { | 1772 void resolveArguments(NodeList list) { |
| 1773 if (list == null) return; | 1773 if (list == null) return; |
| 1774 bool seenNamedArgument = false; | 1774 List<SourceString> seenNamedArguments = <SourceString>[]; |
| 1775 for (Link<Node> link = list.nodes; !link.isEmpty; link = link.tail) { | 1775 for (Link<Node> link = list.nodes; !link.isEmpty; link = link.tail) { |
| 1776 Expression argument = link.head; | 1776 Expression argument = link.head; |
| 1777 visit(argument); | 1777 visit(argument); |
| 1778 if (argument.asNamedArgument() != null) { | 1778 NamedArgument namedArgument = argument.asNamedArgument(); |
| 1779 seenNamedArgument = true; | 1779 if (namedArgument != null) { |
| 1780 } else if (seenNamedArgument) { | 1780 SourceString source = namedArgument.name.source; |
| 1781 if (seenNamedArguments.contains(source)) { |
| 1782 error(argument, MessageKind.DUPLICATE_DEFINITION, |
| 1783 [source.slowToString()]); |
| 1784 } |
| 1785 seenNamedArguments.add(source); |
| 1786 } else if (!seenNamedArguments.isEmpty) { |
| 1781 error(argument, MessageKind.INVALID_ARGUMENT_AFTER_NAMED); | 1787 error(argument, MessageKind.INVALID_ARGUMENT_AFTER_NAMED); |
| 1782 } | 1788 } |
| 1783 } | 1789 } |
| 1784 } | 1790 } |
| 1785 | 1791 |
| 1786 visitSend(Send node) { | 1792 visitSend(Send node) { |
| 1787 Element target = resolveSend(node); | 1793 Element target = resolveSend(node); |
| 1788 if (!Elements.isUnresolved(target) | 1794 if (!Elements.isUnresolved(target) |
| 1789 && target.kind == ElementKind.ABSTRACT_FIELD) { | 1795 && target.kind == ElementKind.ABSTRACT_FIELD) { |
| 1790 AbstractFieldElement field = target; | 1796 AbstractFieldElement field = target; |
| (...skipping 1419 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3210 return e; | 3216 return e; |
| 3211 } | 3217 } |
| 3212 | 3218 |
| 3213 /// Assumed to be called by [resolveRedirectingFactory]. | 3219 /// Assumed to be called by [resolveRedirectingFactory]. |
| 3214 Element visitReturn(Return node) { | 3220 Element visitReturn(Return node) { |
| 3215 Node expression = node.expression; | 3221 Node expression = node.expression; |
| 3216 return finishConstructorReference(visit(expression), | 3222 return finishConstructorReference(visit(expression), |
| 3217 expression, expression); | 3223 expression, expression); |
| 3218 } | 3224 } |
| 3219 } | 3225 } |
| OLD | NEW |