| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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.md file. | 3 // BSD-style license that can be found in the LICENSE.md file. |
| 4 | 4 |
| 5 library rasta.unresolved; | 5 library rasta.unresolved; |
| 6 | 6 |
| 7 import 'package:kernel/ast.dart' as ir; | 7 import 'package:kernel/ast.dart' as ir; |
| 8 | 8 |
| 9 import 'accessors.dart'; | 9 import 'accessors.dart'; |
| 10 | 10 |
| (...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 403 | 403 |
| 404 ir.Expression visitUnresolvedSuperCompoundIndexSet( | 404 ir.Expression visitUnresolvedSuperCompoundIndexSet( |
| 405 Send node, | 405 Send node, |
| 406 Element element, | 406 Element element, |
| 407 Node index, | 407 Node index, |
| 408 AssignmentOperator operator, | 408 AssignmentOperator operator, |
| 409 Node rhs, | 409 Node rhs, |
| 410 _) { | 410 _) { |
| 411 return buildUnresolvedSuperIndexAccessor(index, element) | 411 return buildUnresolvedSuperIndexAccessor(index, element) |
| 412 .buildCompoundAssignment(new ir.Name(operator.selectorName), | 412 .buildCompoundAssignment(new ir.Name(operator.selectorName), |
| 413 visitForValue(rhs)); | 413 visitForValue(rhs), voidContext: isVoidContext); |
| 414 } | 414 } |
| 415 | 415 |
| 416 ir.Expression visitUnresolvedSuperGet( | 416 ir.Expression visitUnresolvedSuperGet( |
| 417 Send node, | 417 Send node, |
| 418 Element element, | 418 Element element, |
| 419 _) { | 419 _) { |
| 420 return buildThrowUnresolvedSuperGetter('${node.selector}'); | 420 return buildThrowUnresolvedSuperGetter('${node.selector}'); |
| 421 } | 421 } |
| 422 | 422 |
| 423 ir.Expression visitUnresolvedSuperGetterCompound( | 423 ir.Expression visitUnresolvedSuperGetterCompound( |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 517 .buildSimpleRead(); | 517 .buildSimpleRead(); |
| 518 } | 518 } |
| 519 | 519 |
| 520 ir.Expression visitUnresolvedSuperIndexSet( | 520 ir.Expression visitUnresolvedSuperIndexSet( |
| 521 Send node, | 521 Send node, |
| 522 Element element, | 522 Element element, |
| 523 Node index, | 523 Node index, |
| 524 Node rhs, | 524 Node rhs, |
| 525 _) { | 525 _) { |
| 526 return buildUnresolvedSuperIndexAccessor(index, element) | 526 return buildUnresolvedSuperIndexAccessor(index, element) |
| 527 .buildAssignment(visitForValue(rhs)); | 527 .buildAssignment(visitForValue(rhs), voidContext: isVoidContext); |
| 528 } | 528 } |
| 529 | 529 |
| 530 ir.Expression visitUnresolvedSuperInvoke( | 530 ir.Expression visitUnresolvedSuperInvoke( |
| 531 Send node, | 531 Send node, |
| 532 Element element, | 532 Element element, |
| 533 NodeList arguments, | 533 NodeList arguments, |
| 534 Selector selector, | 534 Selector selector, |
| 535 _) { | 535 _) { |
| 536 // TODO(asgerf): Should really invoke 'super.noSuchMethod'. | 536 // TODO(asgerf): Should really invoke 'super.noSuchMethod'. |
| 537 return buildThrowNoSuchMethodError( | 537 return buildThrowNoSuchMethodError( |
| (...skipping 29 matching lines...) Expand all Loading... |
| 567 | 567 |
| 568 ir.Expression visitUnresolvedSuperSetterCompound( | 568 ir.Expression visitUnresolvedSuperSetterCompound( |
| 569 Send node, | 569 Send node, |
| 570 MethodElement getter, | 570 MethodElement getter, |
| 571 Element element, | 571 Element element, |
| 572 AssignmentOperator operator, | 572 AssignmentOperator operator, |
| 573 Node rhs, | 573 Node rhs, |
| 574 _) { | 574 _) { |
| 575 return buildUnresolvedSuperPropertyAccessor('${node.selector}', getter) | 575 return buildUnresolvedSuperPropertyAccessor('${node.selector}', getter) |
| 576 .buildCompoundAssignment( | 576 .buildCompoundAssignment( |
| 577 new ir.Name(operator.selectorName), visitForValue(rhs)); | 577 new ir.Name(operator.selectorName), visitForValue(rhs), |
| 578 voidContext: isVoidContext); |
| 578 } | 579 } |
| 579 | 580 |
| 580 ir.Expression visitUnresolvedSuperSetterCompoundIndexSet( | 581 ir.Expression visitUnresolvedSuperSetterCompoundIndexSet( |
| 581 Send node, | 582 Send node, |
| 582 MethodElement getter, | 583 MethodElement getter, |
| 583 Element element, | 584 Element element, |
| 584 Node index, | 585 Node index, |
| 585 AssignmentOperator operator, | 586 AssignmentOperator operator, |
| 586 Node rhs, | 587 Node rhs, |
| 587 _) { | 588 _) { |
| 588 return buildUnresolvedSuperIndexAccessor(index, element) | 589 return buildUnresolvedSuperIndexAccessor(index, element) |
| 589 .buildCompoundAssignment( | 590 .buildCompoundAssignment( |
| 590 new ir.Name(operator.selectorName), | 591 new ir.Name(operator.selectorName), |
| 591 visitForValue(rhs)); | 592 visitForValue(rhs), voidContext: isVoidContext); |
| 592 } | 593 } |
| 593 | 594 |
| 594 ir.Expression visitUnresolvedSuperSetterIndexPostfix( | 595 ir.Expression visitUnresolvedSuperSetterIndexPostfix( |
| 595 Send node, | 596 Send node, |
| 596 MethodElement indexFunction, | 597 MethodElement indexFunction, |
| 597 Element element, | 598 Element element, |
| 598 Node index, | 599 Node index, |
| 599 IncDecOperator operator, | 600 IncDecOperator operator, |
| 600 _) { | 601 _) { |
| 601 return buildUnresolvedSuperIndexAccessor(index, element) | 602 return buildUnresolvedSuperIndexAccessor(index, element) |
| 602 .buildPostfixIncrement(new ir.Name(operator.selectorName)); | 603 .buildPostfixIncrement(new ir.Name(operator.selectorName), |
| 604 voidContext: isVoidContext); |
| 603 } | 605 } |
| 604 | 606 |
| 605 ir.Expression visitUnresolvedSuperSetterIndexPrefix( | 607 ir.Expression visitUnresolvedSuperSetterIndexPrefix( |
| 606 Send node, | 608 Send node, |
| 607 MethodElement indexFunction, | 609 MethodElement indexFunction, |
| 608 Element element, | 610 Element element, |
| 609 Node index, | 611 Node index, |
| 610 IncDecOperator operator, | 612 IncDecOperator operator, |
| 611 _) { | 613 _) { |
| 612 return buildUnresolvedSuperIndexAccessor(index, element) | 614 return buildUnresolvedSuperIndexAccessor(index, element) |
| 613 .buildPrefixIncrement(new ir.Name(operator.selectorName)); | 615 .buildPrefixIncrement(new ir.Name(operator.selectorName), |
| 616 voidContext: isVoidContext); |
| 614 } | 617 } |
| 615 | 618 |
| 616 ir.Expression visitUnresolvedSuperSetterPostfix( | 619 ir.Expression visitUnresolvedSuperSetterPostfix( |
| 617 Send node, | 620 Send node, |
| 618 MethodElement getter, | 621 MethodElement getter, |
| 619 Element element, | 622 Element element, |
| 620 IncDecOperator operator, | 623 IncDecOperator operator, |
| 621 _) { | 624 _) { |
| 622 return buildUnresolvedSuperPropertyAccessor('${node.selector}', getter) | 625 return buildUnresolvedSuperPropertyAccessor('${node.selector}', getter) |
| 623 .buildPostfixIncrement(new ir.Name(operator.selectorName)); | 626 .buildPostfixIncrement(new ir.Name(operator.selectorName), |
| 627 voidContext: isVoidContext); |
| 624 } | 628 } |
| 625 | 629 |
| 626 ir.Expression visitUnresolvedSuperSetterPrefix( | 630 ir.Expression visitUnresolvedSuperSetterPrefix( |
| 627 Send node, | 631 Send node, |
| 628 MethodElement getter, | 632 MethodElement getter, |
| 629 Element element, | 633 Element element, |
| 630 IncDecOperator operator, | 634 IncDecOperator operator, |
| 631 _) { | 635 _) { |
| 632 return buildUnresolvedSuperPropertyAccessor('${node.selector}', getter) | 636 return buildUnresolvedSuperPropertyAccessor('${node.selector}', getter) |
| 633 .buildPrefixIncrement(new ir.Name(operator.selectorName)); | 637 .buildPrefixIncrement(new ir.Name(operator.selectorName), |
| 638 voidContext: isVoidContext); |
| 634 } | 639 } |
| 635 | 640 |
| 636 ir.Expression visitUnresolvedSuperSetterSetIfNull( | 641 ir.Expression visitUnresolvedSuperSetterSetIfNull( |
| 637 Send node, | 642 Send node, |
| 638 MethodElement getter, | 643 MethodElement getter, |
| 639 Element element, | 644 Element element, |
| 640 Node rhs, | 645 Node rhs, |
| 641 _) { | 646 _) { |
| 642 return buildUnresolvedSuperPropertyAccessor('${node.selector}', getter) | 647 return buildUnresolvedSuperPropertyAccessor('${node.selector}', getter) |
| 643 .buildNullAwareAssignment(visitForValue(rhs)); | 648 .buildNullAwareAssignment(visitForValue(rhs), |
| 649 voidContext: isVoidContext); |
| 644 } | 650 } |
| 645 | 651 |
| 646 ir.Expression visitUnresolvedSuperUnary( | 652 ir.Expression visitUnresolvedSuperUnary( |
| 647 Send node, | 653 Send node, |
| 648 UnaryOperator operator, | 654 UnaryOperator operator, |
| 649 Element element, | 655 Element element, |
| 650 _) { | 656 _) { |
| 651 // TODO(asgerf): Should really call 'super.noSuchMethod'. | 657 // TODO(asgerf): Should really call 'super.noSuchMethod'. |
| 652 return buildThrowNoSuchMethodError( | 658 return buildThrowNoSuchMethodError( |
| 653 kernel.getUnresolvedSuperMethodBuilder(), | 659 kernel.getUnresolvedSuperMethodBuilder(), |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 752 } | 758 } |
| 753 | 759 |
| 754 ir.Expression visitUnresolvedSuperGetterIndexSetIfNull( | 760 ir.Expression visitUnresolvedSuperGetterIndexSetIfNull( |
| 755 Send node, | 761 Send node, |
| 756 Element element, | 762 Element element, |
| 757 MethodElement setter, | 763 MethodElement setter, |
| 758 Node index, | 764 Node index, |
| 759 Node rhs, | 765 Node rhs, |
| 760 _) { | 766 _) { |
| 761 return buildUnresolvedSuperIndexAccessor(index, element) | 767 return buildUnresolvedSuperIndexAccessor(index, element) |
| 762 .buildNullAwareAssignment(visitForValue(rhs)); | 768 .buildNullAwareAssignment(visitForValue(rhs), |
| 769 voidContext: isVoidContext); |
| 763 } | 770 } |
| 764 | 771 |
| 765 ir.Expression visitUnresolvedSuperSetterIndexSetIfNull( | 772 ir.Expression visitUnresolvedSuperSetterIndexSetIfNull( |
| 766 Send node, | 773 Send node, |
| 767 MethodElement getter, | 774 MethodElement getter, |
| 768 Element element, | 775 Element element, |
| 769 Node index, | 776 Node index, |
| 770 Node rhs, | 777 Node rhs, |
| 771 _) { | 778 _) { |
| 772 return buildUnresolvedSuperIndexAccessor(index, element) | 779 return buildUnresolvedSuperIndexAccessor(index, element) |
| 773 .buildNullAwareAssignment(visitForValue(rhs)); | 780 .buildNullAwareAssignment(visitForValue(rhs), |
| 781 voidContext: isVoidContext); |
| 774 } | 782 } |
| 775 | 783 |
| 776 ir.Expression visitUnresolvedSuperIndexSetIfNull( | 784 ir.Expression visitUnresolvedSuperIndexSetIfNull( |
| 777 Send node, | 785 Send node, |
| 778 Element element, | 786 Element element, |
| 779 Node index, | 787 Node index, |
| 780 Node rhs, | 788 Node rhs, |
| 781 _) { | 789 _) { |
| 782 return buildUnresolvedSuperIndexAccessor(index, element) | 790 return buildUnresolvedSuperIndexAccessor(index, element) |
| 783 .buildNullAwareAssignment(visitForValue(rhs)); | 791 .buildNullAwareAssignment(visitForValue(rhs), |
| 792 voidContext: isVoidContext); |
| 784 } | 793 } |
| 785 | 794 |
| 786 ir.Expression visitUnresolvedSuperSet( | 795 ir.Expression visitUnresolvedSuperSet( |
| 787 Send node, | 796 Send node, |
| 788 Element element, | 797 Element element, |
| 789 Node rhs, | 798 Node rhs, |
| 790 _) { | 799 _) { |
| 791 return buildThrowUnresolvedSuperSetter('${node.selector}', | 800 return buildThrowUnresolvedSuperSetter('${node.selector}', |
| 792 visitForValue(rhs)); | 801 visitForValue(rhs)); |
| 793 } | 802 } |
| 794 } | 803 } |
| OLD | NEW |