| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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 class TreeElements { | 5 class TreeElements { |
| 6 Map<Node, Element> map; | 6 Map<Node, Element> map; |
| 7 TreeElements() : map = new LinkedHashMap<Node, Element>(); | 7 TreeElements() : map = new LinkedHashMap<Node, Element>(); |
| 8 operator []=(Node node, Element element) => map[node] = element; | 8 operator []=(Node node, Element element) => map[node] = element; |
| 9 operator [](Node node) => map[node]; | 9 operator [](Node node) => map[node]; |
| 10 } | 10 } |
| (...skipping 457 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 468 | 468 |
| 469 visitNode(Node node) { | 469 visitNode(Node node) { |
| 470 compiler.cancel('internal error'); | 470 compiler.cancel('internal error'); |
| 471 } | 471 } |
| 472 } | 472 } |
| 473 | 473 |
| 474 class VariableDefinitionsVisitor extends AbstractVisitor<SourceString> { | 474 class VariableDefinitionsVisitor extends AbstractVisitor<SourceString> { |
| 475 VariableDefinitions definitions; | 475 VariableDefinitions definitions; |
| 476 ResolverVisitor resolver; | 476 ResolverVisitor resolver; |
| 477 ElementKind kind; | 477 ElementKind kind; |
| 478 VariableListElement variables; |
| 478 | 479 |
| 479 VariableDefinitionsVisitor(this.definitions, this.resolver, this.kind); | 480 VariableDefinitionsVisitor(this.definitions, this.resolver, this.kind) { |
| 481 variables = new VariableListElement.node( |
| 482 definitions, ElementKind.VARIABLE_LIST, resolver.context.element); |
| 483 } |
| 480 | 484 |
| 481 SourceString visitSendSet(SendSet node) { | 485 SourceString visitSendSet(SendSet node) { |
| 482 assert(node.arguments.tail.isEmpty()); // Sanity check | 486 assert(node.arguments.tail.isEmpty()); // Sanity check |
| 483 if (node.receiver !== null) { | 487 if (node.receiver !== null) { |
| 484 resolver.cancel(node, | 488 resolver.cancel(node, |
| 485 "receiver on a variable definition not implemented"); | 489 "receiver on a variable definition not implemented"); |
| 486 } | 490 } |
| 487 Identifier selector = node.selector; | 491 Identifier selector = node.selector; |
| 488 resolver.visit(node.arguments.head); | 492 resolver.visit(node.arguments.head); |
| 489 | 493 |
| 490 return visit(node.selector); | 494 return visit(node.selector); |
| 491 } | 495 } |
| 492 | 496 |
| 493 SourceString visitIdentifier(Identifier node) => node.source; | 497 SourceString visitIdentifier(Identifier node) => node.source; |
| 494 | 498 |
| 495 visitNodeList(NodeList node) { | 499 visitNodeList(NodeList node) { |
| 496 for (Link<Node> link = node.nodes; !link.isEmpty(); link = link.tail) { | 500 for (Link<Node> link = node.nodes; !link.isEmpty(); link = link.tail) { |
| 497 SourceString name = visit(link.head); | 501 SourceString name = visit(link.head); |
| 498 Element element = new VariableElement(link.head, definitions.type, | 502 Element element = new VariableElement( |
| 499 kind, name, resolver.context.element); | 503 name, variables, kind, resolver.context.element); |
| 500 resolver.defineElement(link.head, element); | 504 resolver.defineElement(link.head, element); |
| 501 } | 505 } |
| 502 } | 506 } |
| 503 | 507 |
| 504 visit(Node node) => node.accept(this); | 508 visit(Node node) => node.accept(this); |
| 505 } | 509 } |
| 506 | 510 |
| 507 class ParametersVisitor extends AbstractVisitor<Element> { | 511 class ParametersVisitor extends AbstractVisitor<Element> { |
| 508 ResolverVisitor resolver; | 512 ResolverVisitor resolver; |
| 509 LinkBuilder<Element> elements; | 513 LinkBuilder<Element> elements; |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 582 class TopScope extends Scope { | 586 class TopScope extends Scope { |
| 583 Universe universe; | 587 Universe universe; |
| 584 | 588 |
| 585 TopScope(Universe this.universe) : super(null, null); | 589 TopScope(Universe this.universe) : super(null, null); |
| 586 Element lookup(SourceString name) => universe.find(name); | 590 Element lookup(SourceString name) => universe.find(name); |
| 587 | 591 |
| 588 Element add(Element element) { | 592 Element add(Element element) { |
| 589 throw "Cannot add an element in the top scope"; | 593 throw "Cannot add an element in the top scope"; |
| 590 } | 594 } |
| 591 } | 595 } |
| OLD | NEW |