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 |