| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 library dart2js.semantics_visitor; | 5 library dart2js.semantics_visitor; |
| 6 | 6 |
| 7 import '../common.dart'; | 7 import '../common.dart'; |
| 8 import '../constants/expressions.dart'; | 8 import '../constants/expressions.dart'; |
| 9 import '../elements/elements.dart'; | 9 import '../elements/elements.dart'; |
| 10 import '../elements/names.dart'; | 10 import '../elements/names.dart'; |
| (...skipping 503 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 514 /// | 514 /// |
| 515 /// For instance: | 515 /// For instance: |
| 516 /// | 516 /// |
| 517 /// class B { | 517 /// class B { |
| 518 /// foo(a, b) {} | 518 /// foo(a, b) {} |
| 519 /// } | 519 /// } |
| 520 /// class C extends B { | 520 /// class C extends B { |
| 521 /// m() { super.foo = rhs; } | 521 /// m() { super.foo = rhs; } |
| 522 /// } | 522 /// } |
| 523 /// | 523 /// |
| 524 R visitSuperMethodSet(Send node, MethodElement method, Node rhs, A arg); | 524 R visitSuperMethodSet(SendSet node, MethodElement method, Node rhs, A arg); |
| 525 | 525 |
| 526 /// Getter call to the super [getter]. | 526 /// Getter call to the super [getter]. |
| 527 /// | 527 /// |
| 528 /// For instance: | 528 /// For instance: |
| 529 /// | 529 /// |
| 530 /// class B { | 530 /// class B { |
| 531 /// get foo => null; | 531 /// get foo => null; |
| 532 /// } | 532 /// } |
| 533 /// class C extends B { | 533 /// class C extends B { |
| 534 /// m() => super.foo; | 534 /// m() => super.foo; |
| 535 /// } | 535 /// } |
| 536 /// | 536 /// |
| 537 R visitSuperGetterGet(Send node, FunctionElement getter, A arg); | 537 R visitSuperGetterGet(Send node, GetterElement getter, A arg); |
| 538 | 538 |
| 539 /// Getter call the super [setter]. | 539 /// Getter call the super [setter]. |
| 540 /// | 540 /// |
| 541 /// For instance: | 541 /// For instance: |
| 542 /// | 542 /// |
| 543 /// class B { | 543 /// class B { |
| 544 /// set foo(_) {} | 544 /// set foo(_) {} |
| 545 /// } | 545 /// } |
| 546 /// class C extends B { | 546 /// class C extends B { |
| 547 /// m() => super.foo; | 547 /// m() => super.foo; |
| 548 /// } | 548 /// } |
| 549 /// | 549 /// |
| 550 R visitSuperSetterGet(Send node, FunctionElement setter, A arg); | 550 R visitSuperSetterGet(Send node, SetterElement setter, A arg); |
| 551 | 551 |
| 552 /// Setter call to the super [setter]. | 552 /// Setter call to the super [setter]. |
| 553 /// | 553 /// |
| 554 /// For instance: | 554 /// For instance: |
| 555 /// | 555 /// |
| 556 /// class B { | 556 /// class B { |
| 557 /// set foo(_) {} | 557 /// set foo(_) {} |
| 558 /// } | 558 /// } |
| 559 /// class C extends B { | 559 /// class C extends B { |
| 560 /// m() { super.foo = rhs; } | 560 /// m() { super.foo = rhs; } |
| 561 /// } | 561 /// } |
| 562 /// | 562 /// |
| 563 R visitSuperSetterSet(SendSet node, FunctionElement setter, Node rhs, A arg); | 563 R visitSuperSetterSet(SendSet node, SetterElement setter, Node rhs, A arg); |
| 564 | 564 |
| 565 /// Assignment of [rhs] to the super [getter]. | 565 /// Assignment of [rhs] to the super [getter]. |
| 566 /// | 566 /// |
| 567 /// For instance: | 567 /// For instance: |
| 568 /// | 568 /// |
| 569 /// class B { | 569 /// class B { |
| 570 /// get foo => null; | 570 /// get foo => null; |
| 571 /// } | 571 /// } |
| 572 /// class C extends B { | 572 /// class C extends B { |
| 573 /// m() { super.foo = rhs; } | 573 /// m() { super.foo = rhs; } |
| 574 /// } | 574 /// } |
| 575 /// | 575 /// |
| 576 R visitSuperGetterSet(SendSet node, FunctionElement getter, Node rhs, A arg); | 576 R visitSuperGetterSet(SendSet node, GetterElement getter, Node rhs, A arg); |
| 577 | 577 |
| 578 /// Invocation of the super [getter] with [arguments]. | 578 /// Invocation of the super [getter] with [arguments]. |
| 579 /// | 579 /// |
| 580 /// For instance: | 580 /// For instance: |
| 581 /// | 581 /// |
| 582 /// class B { | 582 /// class B { |
| 583 /// get foo => null; | 583 /// get foo => null; |
| 584 /// } | 584 /// } |
| 585 /// class C extends B { | 585 /// class C extends B { |
| 586 /// m() { super.foo(null, 42; } | 586 /// m() { super.foo(null, 42; } |
| 587 /// } | 587 /// } |
| 588 /// | 588 /// |
| 589 R visitSuperGetterInvoke(Send node, FunctionElement getter, | 589 R visitSuperGetterInvoke(Send node, GetterElement getter, NodeList arguments, |
| 590 NodeList arguments, CallStructure callStructure, A arg); | 590 CallStructure callStructure, A arg); |
| 591 | 591 |
| 592 /// Invocation of the super [setter] with [arguments]. | 592 /// Invocation of the super [setter] with [arguments]. |
| 593 /// | 593 /// |
| 594 /// For instance: | 594 /// For instance: |
| 595 /// | 595 /// |
| 596 /// class B { | 596 /// class B { |
| 597 /// set foo(_) {} | 597 /// set foo(_) {} |
| 598 /// } | 598 /// } |
| 599 /// class C extends B { | 599 /// class C extends B { |
| 600 /// m() { super.foo(null, 42; } | 600 /// m() { super.foo(null, 42; } |
| 601 /// } | 601 /// } |
| 602 /// | 602 /// |
| 603 R visitSuperSetterInvoke(Send node, FunctionElement setter, | 603 R visitSuperSetterInvoke(Send node, SetterElement setter, NodeList arguments, |
| 604 NodeList arguments, CallStructure callStructure, A arg); | 604 CallStructure callStructure, A arg); |
| 605 | 605 |
| 606 /// Invocation of a [expression] with [arguments]. | 606 /// Invocation of a [expression] with [arguments]. |
| 607 /// | 607 /// |
| 608 /// For instance: | 608 /// For instance: |
| 609 /// | 609 /// |
| 610 /// m() => (a, b){}(null, 42); | 610 /// m() => (a, b){}(null, 42); |
| 611 /// | 611 /// |
| 612 R visitExpressionInvoke(Send node, Node expression, NodeList arguments, | 612 R visitExpressionInvoke(Send node, Node expression, NodeList arguments, |
| 613 CallStructure callStructure, A arg); | 613 CallStructure callStructure, A arg); |
| 614 | 614 |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 694 | 694 |
| 695 /// Assignment of [rhs] to the static [function]. | 695 /// Assignment of [rhs] to the static [function]. |
| 696 /// | 696 /// |
| 697 /// For instance: | 697 /// For instance: |
| 698 /// | 698 /// |
| 699 /// class C { | 699 /// class C { |
| 700 /// static foo(a, b) {} | 700 /// static foo(a, b) {} |
| 701 /// } | 701 /// } |
| 702 /// m() { C.foo = rhs; } | 702 /// m() { C.foo = rhs; } |
| 703 /// | 703 /// |
| 704 R visitStaticFunctionSet(Send node, MethodElement function, Node rhs, A arg); | 704 R visitStaticFunctionSet( |
| 705 SendSet node, MethodElement function, Node rhs, A arg); |
| 705 | 706 |
| 706 /// Getter call to the static [getter]. | 707 /// Getter call to the static [getter]. |
| 707 /// | 708 /// |
| 708 /// For instance: | 709 /// For instance: |
| 709 /// | 710 /// |
| 710 /// class C { | 711 /// class C { |
| 711 /// static get foo => null; | 712 /// static get foo => null; |
| 712 /// } | 713 /// } |
| 713 /// m() => C.foo; | 714 /// m() => C.foo; |
| 714 /// | 715 /// |
| 715 R visitStaticGetterGet(Send node, FunctionElement getter, A arg); | 716 R visitStaticGetterGet(Send node, GetterElement getter, A arg); |
| 716 | 717 |
| 717 /// Getter call the static [setter]. | 718 /// Getter call the static [setter]. |
| 718 /// | 719 /// |
| 719 /// For instance: | 720 /// For instance: |
| 720 /// | 721 /// |
| 721 /// class C { | 722 /// class C { |
| 722 /// static set foo(_) {} | 723 /// static set foo(_) {} |
| 723 /// } | 724 /// } |
| 724 /// m() => C.foo; | 725 /// m() => C.foo; |
| 725 /// | 726 /// |
| 726 R visitStaticSetterGet(Send node, FunctionElement setter, A arg); | 727 R visitStaticSetterGet(Send node, SetterElement setter, A arg); |
| 727 | 728 |
| 728 /// Setter call to the static [setter]. | 729 /// Setter call to the static [setter]. |
| 729 /// | 730 /// |
| 730 /// For instance: | 731 /// For instance: |
| 731 /// | 732 /// |
| 732 /// class C { | 733 /// class C { |
| 733 /// static set foo(_) {} | 734 /// static set foo(_) {} |
| 734 /// } | 735 /// } |
| 735 /// m() { C.foo = rhs; } | 736 /// m() { C.foo = rhs; } |
| 736 /// | 737 /// |
| 737 R visitStaticSetterSet(SendSet node, FunctionElement setter, Node rhs, A arg); | 738 R visitStaticSetterSet(SendSet node, SetterElement setter, Node rhs, A arg); |
| 738 | 739 |
| 739 /// Assignment of [rhs] to the static [getter]. | 740 /// Assignment of [rhs] to the static [getter]. |
| 740 /// | 741 /// |
| 741 /// For instance: | 742 /// For instance: |
| 742 /// | 743 /// |
| 743 /// class C { | 744 /// class C { |
| 744 /// static get foo => null; | 745 /// static get foo => null; |
| 745 /// } | 746 /// } |
| 746 /// m() { C.foo = rhs; } | 747 /// m() { C.foo = rhs; } |
| 747 /// | 748 /// |
| 748 R visitStaticGetterSet(SendSet node, FunctionElement getter, Node rhs, A arg); | 749 R visitStaticGetterSet(SendSet node, GetterElement getter, Node rhs, A arg); |
| 749 | 750 |
| 750 /// Invocation of the static [getter] with [arguments]. | 751 /// Invocation of the static [getter] with [arguments]. |
| 751 /// | 752 /// |
| 752 /// For instance: | 753 /// For instance: |
| 753 /// | 754 /// |
| 754 /// class C { | 755 /// class C { |
| 755 /// static get foo => null; | 756 /// static get foo => null; |
| 756 /// } | 757 /// } |
| 757 /// m() { C.foo(null, 42; } | 758 /// m() { C.foo(null, 42; } |
| 758 /// | 759 /// |
| 759 R visitStaticGetterInvoke(Send node, FunctionElement getter, | 760 R visitStaticGetterInvoke(Send node, GetterElement getter, NodeList arguments, |
| 760 NodeList arguments, CallStructure callStructure, A arg); | 761 CallStructure callStructure, A arg); |
| 761 | 762 |
| 762 /// Invocation of the static [setter] with [arguments]. | 763 /// Invocation of the static [setter] with [arguments]. |
| 763 /// | 764 /// |
| 764 /// For instance: | 765 /// For instance: |
| 765 /// | 766 /// |
| 766 /// class C { | 767 /// class C { |
| 767 /// static set foo(_) {} | 768 /// static set foo(_) {} |
| 768 /// } | 769 /// } |
| 769 /// m() { C.foo(null, 42; } | 770 /// m() { C.foo(null, 42; } |
| 770 /// | 771 /// |
| 771 R visitStaticSetterInvoke(Send node, FunctionElement setter, | 772 R visitStaticSetterInvoke(Send node, SetterElement setter, NodeList arguments, |
| 772 NodeList arguments, CallStructure callStructure, A arg); | 773 CallStructure callStructure, A arg); |
| 773 | 774 |
| 774 /// Read of the top level [field]. | 775 /// Read of the top level [field]. |
| 775 /// | 776 /// |
| 776 /// For instance: | 777 /// For instance: |
| 777 /// | 778 /// |
| 778 /// var foo; | 779 /// var foo; |
| 779 /// m() => foo; | 780 /// m() => foo; |
| 780 /// | 781 /// |
| 781 R visitTopLevelFieldGet(Send node, FieldElement field, A arg); | 782 R visitTopLevelFieldGet(Send node, FieldElement field, A arg); |
| 782 | 783 |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 841 NodeList arguments, CallStructure callStructure, A arg); | 842 NodeList arguments, CallStructure callStructure, A arg); |
| 842 | 843 |
| 843 /// Assignment of [rhs] to the top level [function]. | 844 /// Assignment of [rhs] to the top level [function]. |
| 844 /// | 845 /// |
| 845 /// For instance: | 846 /// For instance: |
| 846 /// | 847 /// |
| 847 /// foo(a, b) {}; | 848 /// foo(a, b) {}; |
| 848 /// m() { foo = rhs; } | 849 /// m() { foo = rhs; } |
| 849 /// | 850 /// |
| 850 R visitTopLevelFunctionSet( | 851 R visitTopLevelFunctionSet( |
| 851 Send node, MethodElement function, Node rhs, A arg); | 852 SendSet node, MethodElement function, Node rhs, A arg); |
| 852 | 853 |
| 853 /// Getter call to the top level [getter]. | 854 /// Getter call to the top level [getter]. |
| 854 /// | 855 /// |
| 855 /// For instance: | 856 /// For instance: |
| 856 /// | 857 /// |
| 857 /// get foo => null; | 858 /// get foo => null; |
| 858 /// m() => foo; | 859 /// m() => foo; |
| 859 /// | 860 /// |
| 860 R visitTopLevelGetterGet(Send node, FunctionElement getter, A arg); | 861 R visitTopLevelGetterGet(Send node, GetterElement getter, A arg); |
| 861 | 862 |
| 862 /// Getter call the top level [setter]. | 863 /// Getter call the top level [setter]. |
| 863 /// | 864 /// |
| 864 /// For instance: | 865 /// For instance: |
| 865 /// | 866 /// |
| 866 /// set foo(_) {} | 867 /// set foo(_) {} |
| 867 /// m() => foo; | 868 /// m() => foo; |
| 868 /// | 869 /// |
| 869 R visitTopLevelSetterGet(Send node, FunctionElement setter, A arg); | 870 R visitTopLevelSetterGet(Send node, SetterElement setter, A arg); |
| 870 | 871 |
| 871 /// Setter call to the top level [setter]. | 872 /// Setter call to the top level [setter]. |
| 872 /// | 873 /// |
| 873 /// For instance: | 874 /// For instance: |
| 874 /// | 875 /// |
| 875 /// set foo(_) {} | 876 /// set foo(_) {} |
| 876 /// m() { foo = rhs; } | 877 /// m() { foo = rhs; } |
| 877 /// | 878 /// |
| 878 R visitTopLevelSetterSet( | 879 R visitTopLevelSetterSet(SendSet node, SetterElement setter, Node rhs, A arg); |
| 879 SendSet node, FunctionElement setter, Node rhs, A arg); | |
| 880 | 880 |
| 881 /// Assignment of [rhs] to the top level [getter]. | 881 /// Assignment of [rhs] to the top level [getter]. |
| 882 /// | 882 /// |
| 883 /// For instance: | 883 /// For instance: |
| 884 /// | 884 /// |
| 885 /// get foo => null; | 885 /// get foo => null; |
| 886 /// m() { foo = rhs; } | 886 /// m() { foo = rhs; } |
| 887 /// | 887 /// |
| 888 R visitTopLevelGetterSet( | 888 R visitTopLevelGetterSet(SendSet node, GetterElement getter, Node rhs, A arg); |
| 889 SendSet node, FunctionElement getter, Node rhs, A arg); | |
| 890 | 889 |
| 891 /// Invocation of the top level [getter] with [arguments]. | 890 /// Invocation of the top level [getter] with [arguments]. |
| 892 /// | 891 /// |
| 893 /// For instance: | 892 /// For instance: |
| 894 /// | 893 /// |
| 895 /// get foo => null; | 894 /// get foo => null; |
| 896 /// m() { foo(null, 42); } | 895 /// m() { foo(null, 42); } |
| 897 /// | 896 /// |
| 898 R visitTopLevelGetterInvoke(Send node, FunctionElement getter, | 897 R visitTopLevelGetterInvoke(Send node, GetterElement getter, |
| 899 NodeList arguments, CallStructure callStructure, A arg); | 898 NodeList arguments, CallStructure callStructure, A arg); |
| 900 | 899 |
| 901 /// Invocation of the top level [setter] with [arguments]. | 900 /// Invocation of the top level [setter] with [arguments]. |
| 902 /// | 901 /// |
| 903 /// For instance: | 902 /// For instance: |
| 904 /// | 903 /// |
| 905 /// set foo(_) {}; | 904 /// set foo(_) {}; |
| 906 /// m() { foo(null, 42); } | 905 /// m() { foo(null, 42); } |
| 907 /// | 906 /// |
| 908 R visitTopLevelSetterInvoke(Send node, FunctionElement setter, | 907 R visitTopLevelSetterInvoke(Send node, SetterElement setter, |
| 909 NodeList arguments, CallStructure callStructure, A arg); | 908 NodeList arguments, CallStructure callStructure, A arg); |
| 910 | 909 |
| 911 /// Read of the type literal for class [element]. | 910 /// Read of the type literal for class [element]. |
| 912 /// | 911 /// |
| 913 /// For instance: | 912 /// For instance: |
| 914 /// | 913 /// |
| 915 /// class C {} | 914 /// class C {} |
| 916 /// m() => C; | 915 /// m() => C; |
| 917 /// | 916 /// |
| 918 R visitClassTypeLiteralGet(Send node, ConstantExpression constant, A arg); | 917 R visitClassTypeLiteralGet(Send node, ConstantExpression constant, A arg); |
| 919 | 918 |
| 920 /// Invocation of the type literal for class [element] with [arguments]. | 919 /// Invocation of the type literal for class [element] with [arguments]. |
| 921 /// | 920 /// |
| 922 /// For instance: | 921 /// For instance: |
| 923 /// | 922 /// |
| 924 /// class C {} | 923 /// class C {} |
| 925 /// m() => C(null, 42); | 924 /// m() => C(null, 42); |
| 926 /// | 925 /// |
| 927 R visitClassTypeLiteralInvoke(Send node, ConstantExpression constant, | 926 R visitClassTypeLiteralInvoke(Send node, ConstantExpression constant, |
| 928 NodeList arguments, CallStructure callStructure, A arg); | 927 NodeList arguments, CallStructure callStructure, A arg); |
| 929 | 928 |
| 930 /// Assignment of [rhs] to the type literal for class [element]. | 929 /// Assignment of [rhs] to the type literal for class [element]. |
| 931 /// | 930 /// |
| 932 /// For instance: | 931 /// For instance: |
| 933 /// | 932 /// |
| 934 /// class C {} | 933 /// class C {} |
| 935 /// m() { C = rhs; } | 934 /// m() { C = rhs; } |
| 936 /// | 935 /// |
| 937 R visitClassTypeLiteralSet( | 936 R visitClassTypeLiteralSet( |
| 938 SendSet node, ConstantExpression constant, Node rhs, A arg); | 937 SendSet node, TypeConstantExpression constant, Node rhs, A arg); |
| 939 | 938 |
| 940 /// Read of the type literal for typedef [element]. | 939 /// Read of the type literal for typedef [element]. |
| 941 /// | 940 /// |
| 942 /// For instance: | 941 /// For instance: |
| 943 /// | 942 /// |
| 944 /// typedef F(); | 943 /// typedef F(); |
| 945 /// m() => F; | 944 /// m() => F; |
| 946 /// | 945 /// |
| 947 R visitTypedefTypeLiteralGet(Send node, ConstantExpression constant, A arg); | 946 R visitTypedefTypeLiteralGet(Send node, ConstantExpression constant, A arg); |
| 948 | 947 |
| 949 /// Invocation of the type literal for typedef [element] with [arguments]. | 948 /// Invocation of the type literal for typedef [element] with [arguments]. |
| 950 /// | 949 /// |
| 951 /// For instance: | 950 /// For instance: |
| 952 /// | 951 /// |
| 953 /// typedef F(); | 952 /// typedef F(); |
| 954 /// m() => F(null, 42); | 953 /// m() => F(null, 42); |
| 955 /// | 954 /// |
| 956 R visitTypedefTypeLiteralInvoke(Send node, ConstantExpression constant, | 955 R visitTypedefTypeLiteralInvoke(Send node, ConstantExpression constant, |
| 957 NodeList arguments, CallStructure callStructure, A arg); | 956 NodeList arguments, CallStructure callStructure, A arg); |
| 958 | 957 |
| 959 /// Assignment of [rhs] to the type literal for typedef [element]. | 958 /// Assignment of [rhs] to the type literal for typedef [element]. |
| 960 /// | 959 /// |
| 961 /// For instance: | 960 /// For instance: |
| 962 /// | 961 /// |
| 963 /// typedef F(); | 962 /// typedef F(); |
| 964 /// m() { F = rhs; } | 963 /// m() { F = rhs; } |
| 965 /// | 964 /// |
| 966 R visitTypedefTypeLiteralSet( | 965 R visitTypedefTypeLiteralSet( |
| 967 SendSet node, ConstantExpression constant, Node rhs, A arg); | 966 SendSet node, TypeConstantExpression constant, Node rhs, A arg); |
| 968 | 967 |
| 969 /// Read of the type literal for type variable [element]. | 968 /// Read of the type literal for type variable [element]. |
| 970 /// | 969 /// |
| 971 /// For instance: | 970 /// For instance: |
| 972 /// | 971 /// |
| 973 /// class C<T> { | 972 /// class C<T> { |
| 974 /// m() => T; | 973 /// m() => T; |
| 975 /// } | 974 /// } |
| 976 /// | 975 /// |
| 977 R visitTypeVariableTypeLiteralGet( | 976 R visitTypeVariableTypeLiteralGet( |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1017 R visitDynamicTypeLiteralInvoke(Send node, ConstantExpression constant, | 1016 R visitDynamicTypeLiteralInvoke(Send node, ConstantExpression constant, |
| 1018 NodeList arguments, CallStructure callStructure, A arg); | 1017 NodeList arguments, CallStructure callStructure, A arg); |
| 1019 | 1018 |
| 1020 /// Assignment of [rhs] to the type literal for `dynamic`. | 1019 /// Assignment of [rhs] to the type literal for `dynamic`. |
| 1021 /// | 1020 /// |
| 1022 /// For instance: | 1021 /// For instance: |
| 1023 /// | 1022 /// |
| 1024 /// m() { dynamic = rhs; } | 1023 /// m() { dynamic = rhs; } |
| 1025 /// | 1024 /// |
| 1026 R visitDynamicTypeLiteralSet( | 1025 R visitDynamicTypeLiteralSet( |
| 1027 SendSet node, ConstantExpression constant, Node rhs, A arg); | 1026 SendSet node, TypeConstantExpression constant, Node rhs, A arg); |
| 1028 | 1027 |
| 1029 /// Binary expression `left operator right` where [operator] is a user | 1028 /// Binary expression `left operator right` where [operator] is a user |
| 1030 /// definable operator. Binary expressions using operator `==` are handled | 1029 /// definable operator. Binary expressions using operator `==` are handled |
| 1031 /// by [visitEquals] and index operations `a[b]` are handled by [visitIndex]. | 1030 /// by [visitEquals] and index operations `a[b]` are handled by [visitIndex]. |
| 1032 /// | 1031 /// |
| 1033 /// For instance: | 1032 /// For instance: |
| 1034 /// | 1033 /// |
| 1035 /// add(a, b) => a + b; | 1034 /// add(a, b) => a + b; |
| 1036 /// sub(a, b) => a - b; | 1035 /// sub(a, b) => a - b; |
| 1037 /// mul(a, b) => a * b; | 1036 /// mul(a, b) => a * b; |
| 1038 /// | 1037 /// |
| 1039 R visitBinary( | 1038 R visitBinary( |
| 1040 Send node, Node left, BinaryOperator operator, Node right, A arg); | 1039 Send node, Node left, BinaryOperator operator, Node right, A arg); |
| 1041 | 1040 |
| 1042 /// Binary expression `super operator argument` where [operator] is a user | 1041 /// Binary expression `super operator argument` where [operator] is a user |
| 1043 /// definable operator implemented on a superclass by [function]. Binary | 1042 /// definable operator implemented on a superclass by [function]. Binary |
| 1044 /// expressions using operator `==` are handled by [visitSuperEquals]. | 1043 /// expressions using operator `==` are handled by [visitSuperEquals]. |
| 1045 /// | 1044 /// |
| 1046 /// For instance: | 1045 /// For instance: |
| 1047 /// | 1046 /// |
| 1048 /// class B { | 1047 /// class B { |
| 1049 /// operator +(_) => null; | 1048 /// operator +(_) => null; |
| 1050 /// } | 1049 /// } |
| 1051 /// class C extends B { | 1050 /// class C extends B { |
| 1052 /// m(a) => super + a; | 1051 /// m(a) => super + a; |
| 1053 /// } | 1052 /// } |
| 1054 /// | 1053 /// |
| 1055 R visitSuperBinary(Send node, FunctionElement function, | 1054 R visitSuperBinary(Send node, MethodElement function, BinaryOperator operator, |
| 1056 BinaryOperator operator, Node argument, A arg); | 1055 Node argument, A arg); |
| 1057 | 1056 |
| 1058 /// Binary operation on the unresolved super [element]. | 1057 /// Binary operation on the unresolved super [element]. |
| 1059 /// | 1058 /// |
| 1060 /// For instance: | 1059 /// For instance: |
| 1061 /// | 1060 /// |
| 1062 /// class B { | 1061 /// class B { |
| 1063 /// } | 1062 /// } |
| 1064 /// class C extends B { | 1063 /// class C extends B { |
| 1065 /// m() => super + 42; | 1064 /// m() => super + 42; |
| 1066 /// } | 1065 /// } |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1101 /// | 1100 /// |
| 1102 /// For instance: | 1101 /// For instance: |
| 1103 /// | 1102 /// |
| 1104 /// class B { | 1103 /// class B { |
| 1105 /// operator [](_) => null; | 1104 /// operator [](_) => null; |
| 1106 /// } | 1105 /// } |
| 1107 /// class C extends B { | 1106 /// class C extends B { |
| 1108 /// m(a) => super[a]; | 1107 /// m(a) => super[a]; |
| 1109 /// } | 1108 /// } |
| 1110 /// | 1109 /// |
| 1111 R visitSuperIndex(Send node, FunctionElement function, Node index, A arg); | 1110 R visitSuperIndex(Send node, MethodElement function, Node index, A arg); |
| 1112 | 1111 |
| 1113 /// Index expression `super[index]` where 'operator []' is unresolved. | 1112 /// Index expression `super[index]` where 'operator []' is unresolved. |
| 1114 /// | 1113 /// |
| 1115 /// For instance: | 1114 /// For instance: |
| 1116 /// | 1115 /// |
| 1117 /// class B {} | 1116 /// class B {} |
| 1118 /// class C extends B { | 1117 /// class C extends B { |
| 1119 /// m(a) => super[a]; | 1118 /// m(a) => super[a]; |
| 1120 /// } | 1119 /// } |
| 1121 /// | 1120 /// |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1173 /// | 1172 /// |
| 1174 /// For instance: | 1173 /// For instance: |
| 1175 /// | 1174 /// |
| 1176 /// class B { | 1175 /// class B { |
| 1177 /// operator []=(a, b) {} | 1176 /// operator []=(a, b) {} |
| 1178 /// } | 1177 /// } |
| 1179 /// class C extends B { | 1178 /// class C extends B { |
| 1180 /// m(a) => --super[a]; | 1179 /// m(a) => --super[a]; |
| 1181 /// } | 1180 /// } |
| 1182 /// | 1181 /// |
| 1183 R visitUnresolvedSuperGetterIndexPrefix(Send node, Element element, | 1182 R visitUnresolvedSuperGetterIndexPrefix(SendSet node, Element element, |
| 1184 MethodElement setter, Node index, IncDecOperator operator, A arg); | 1183 MethodElement setter, Node index, IncDecOperator operator, A arg); |
| 1185 | 1184 |
| 1186 /// Postfix operation on an index expression `super[index] operator` where | 1185 /// Postfix operation on an index expression `super[index] operator` where |
| 1187 /// 'operator []' is unresolved, 'operator []=' is defined by [setter], and | 1186 /// 'operator []' is unresolved, 'operator []=' is defined by [setter], and |
| 1188 /// the operation is defined by [operator]. | 1187 /// the operation is defined by [operator]. |
| 1189 /// | 1188 /// |
| 1190 /// For instance: | 1189 /// For instance: |
| 1191 /// | 1190 /// |
| 1192 /// class B { | 1191 /// class B { |
| 1193 /// operator []=(a, b) {} | 1192 /// operator []=(a, b) {} |
| 1194 /// } | 1193 /// } |
| 1195 /// class C extends B { | 1194 /// class C extends B { |
| 1196 /// m(a) => super[a]++; | 1195 /// m(a) => super[a]++; |
| 1197 /// } | 1196 /// } |
| 1198 /// | 1197 /// |
| 1199 R visitUnresolvedSuperGetterIndexPostfix(Send node, Element element, | 1198 R visitUnresolvedSuperGetterIndexPostfix(SendSet node, Element element, |
| 1200 MethodElement setter, Node index, IncDecOperator operator, A arg); | 1199 MethodElement setter, Node index, IncDecOperator operator, A arg); |
| 1201 | 1200 |
| 1202 /// Prefix operation on an index expression `operator super[index]` where | 1201 /// Prefix operation on an index expression `operator super[index]` where |
| 1203 /// 'operator []' is implemented on a superclass by [indexFunction] and | 1202 /// 'operator []' is implemented on a superclass by [indexFunction] and |
| 1204 /// 'operator []=' is unresolved and the operation is defined by [operator]. | 1203 /// 'operator []=' is unresolved and the operation is defined by [operator]. |
| 1205 /// | 1204 /// |
| 1206 /// For instance: | 1205 /// For instance: |
| 1207 /// | 1206 /// |
| 1208 /// class B { | 1207 /// class B { |
| 1209 /// operator [](_) => 42; | 1208 /// operator [](_) => 42; |
| 1210 /// } | 1209 /// } |
| 1211 /// class C extends B { | 1210 /// class C extends B { |
| 1212 /// m(a) => --super[a]; | 1211 /// m(a) => --super[a]; |
| 1213 /// } | 1212 /// } |
| 1214 /// | 1213 /// |
| 1215 R visitUnresolvedSuperSetterIndexPrefix( | 1214 R visitUnresolvedSuperSetterIndexPrefix( |
| 1216 Send node, | 1215 SendSet node, |
| 1217 MethodElement indexFunction, | 1216 MethodElement indexFunction, |
| 1218 Element element, | 1217 Element element, |
| 1219 Node index, | 1218 Node index, |
| 1220 IncDecOperator operator, | 1219 IncDecOperator operator, |
| 1221 A arg); | 1220 A arg); |
| 1222 | 1221 |
| 1223 /// Postfix operation on an index expression `super[index] operator` where | 1222 /// Postfix operation on an index expression `super[index] operator` where |
| 1224 /// 'operator []' is implemented on a superclass by [indexFunction] and | 1223 /// 'operator []' is implemented on a superclass by [indexFunction] and |
| 1225 /// 'operator []=' is unresolved and the operation is defined by [operator]. | 1224 /// 'operator []=' is unresolved and the operation is defined by [operator]. |
| 1226 /// | 1225 /// |
| 1227 /// For instance: | 1226 /// For instance: |
| 1228 /// | 1227 /// |
| 1229 /// class B { | 1228 /// class B { |
| 1230 /// operator [](_) => 42; | 1229 /// operator [](_) => 42; |
| 1231 /// } | 1230 /// } |
| 1232 /// class C extends B { | 1231 /// class C extends B { |
| 1233 /// m(a) => super[a]++; | 1232 /// m(a) => super[a]++; |
| 1234 /// } | 1233 /// } |
| 1235 /// | 1234 /// |
| 1236 R visitUnresolvedSuperSetterIndexPostfix( | 1235 R visitUnresolvedSuperSetterIndexPostfix( |
| 1237 Send node, | 1236 SendSet node, |
| 1238 MethodElement indexFunction, | 1237 MethodElement indexFunction, |
| 1239 Element element, | 1238 Element element, |
| 1240 Node index, | 1239 Node index, |
| 1241 IncDecOperator operator, | 1240 IncDecOperator operator, |
| 1242 A arg); | 1241 A arg); |
| 1243 | 1242 |
| 1244 /// Prefix operation on an index expression `super[index] operator` where | 1243 /// Prefix operation on an index expression `super[index] operator` where |
| 1245 /// both 'operator []' and 'operator []=' are unresolved and the operation is | 1244 /// both 'operator []' and 'operator []=' are unresolved and the operation is |
| 1246 /// defined by [operator]. | 1245 /// defined by [operator]. |
| 1247 /// | 1246 /// |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1287 /// For instance: | 1286 /// For instance: |
| 1288 /// | 1287 /// |
| 1289 /// class B { | 1288 /// class B { |
| 1290 /// operator +(_) => null; | 1289 /// operator +(_) => null; |
| 1291 /// } | 1290 /// } |
| 1292 /// class C extends B { | 1291 /// class C extends B { |
| 1293 /// m(a) => super + a; | 1292 /// m(a) => super + a; |
| 1294 /// } | 1293 /// } |
| 1295 /// | 1294 /// |
| 1296 R visitSuperNotEquals( | 1295 R visitSuperNotEquals( |
| 1297 Send node, FunctionElement function, Node argument, A arg); | 1296 Send node, MethodElement function, Node argument, A arg); |
| 1298 | 1297 |
| 1299 /// Binary expression `left == right`. | 1298 /// Binary expression `left == right`. |
| 1300 /// | 1299 /// |
| 1301 /// For instance: | 1300 /// For instance: |
| 1302 /// | 1301 /// |
| 1303 /// eq(a, b) => a == b; | 1302 /// eq(a, b) => a == b; |
| 1304 /// | 1303 /// |
| 1305 R visitEquals(Send node, Node left, Node right, A arg); | 1304 R visitEquals(Send node, Node left, Node right, A arg); |
| 1306 | 1305 |
| 1307 /// Binary expression `super == argument` where `==` is implemented on a | 1306 /// Binary expression `super == argument` where `==` is implemented on a |
| 1308 /// superclass by [function]. | 1307 /// superclass by [function]. |
| 1309 /// | 1308 /// |
| 1310 /// For instance: | 1309 /// For instance: |
| 1311 /// | 1310 /// |
| 1312 /// class B { | 1311 /// class B { |
| 1313 /// operator ==(_) => null; | 1312 /// operator ==(_) => null; |
| 1314 /// } | 1313 /// } |
| 1315 /// class C extends B { | 1314 /// class C extends B { |
| 1316 /// m(a) => super == a; | 1315 /// m(a) => super == a; |
| 1317 /// } | 1316 /// } |
| 1318 /// | 1317 /// |
| 1319 R visitSuperEquals(Send node, FunctionElement function, Node argument, A arg); | 1318 R visitSuperEquals(Send node, MethodElement function, Node argument, A arg); |
| 1320 | 1319 |
| 1321 /// Unary expression `operator expression` where [operator] is a user | 1320 /// Unary expression `operator expression` where [operator] is a user |
| 1322 /// definable operator. | 1321 /// definable operator. |
| 1323 /// | 1322 /// |
| 1324 /// For instance: | 1323 /// For instance: |
| 1325 /// | 1324 /// |
| 1326 /// neg(a, b) => -a; | 1325 /// neg(a, b) => -a; |
| 1327 /// comp(a, b) => ~a; | 1326 /// comp(a, b) => ~a; |
| 1328 /// | 1327 /// |
| 1329 R visitUnary(Send node, UnaryOperator operator, Node expression, A arg); | 1328 R visitUnary(Send node, UnaryOperator operator, Node expression, A arg); |
| 1330 | 1329 |
| 1331 /// Unary expression `operator super` where [operator] is a user definable | 1330 /// Unary expression `operator super` where [operator] is a user definable |
| 1332 /// operator implemented on a superclass by [function]. | 1331 /// operator implemented on a superclass by [function]. |
| 1333 /// | 1332 /// |
| 1334 /// For instance: | 1333 /// For instance: |
| 1335 /// | 1334 /// |
| 1336 /// class B { | 1335 /// class B { |
| 1337 /// operator -() => null; | 1336 /// operator -() => null; |
| 1338 /// } | 1337 /// } |
| 1339 /// class C extends B { | 1338 /// class C extends B { |
| 1340 /// m(a) => -super; | 1339 /// m(a) => -super; |
| 1341 /// } | 1340 /// } |
| 1342 /// | 1341 /// |
| 1343 R visitSuperUnary( | 1342 R visitSuperUnary( |
| 1344 Send node, UnaryOperator operator, FunctionElement function, A arg); | 1343 Send node, UnaryOperator operator, MethodElement function, A arg); |
| 1345 | 1344 |
| 1346 /// Unary operation on the unresolved super [element]. | 1345 /// Unary operation on the unresolved super [element]. |
| 1347 /// | 1346 /// |
| 1348 /// For instance: | 1347 /// For instance: |
| 1349 /// | 1348 /// |
| 1350 /// class B { | 1349 /// class B { |
| 1351 /// } | 1350 /// } |
| 1352 /// class C extends B { | 1351 /// class C extends B { |
| 1353 /// m() => -super; | 1352 /// m() => -super; |
| 1354 /// } | 1353 /// } |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1392 /// | 1391 /// |
| 1393 /// For instance: | 1392 /// For instance: |
| 1394 /// | 1393 /// |
| 1395 /// class B { | 1394 /// class B { |
| 1396 /// } | 1395 /// } |
| 1397 /// class C extends B { | 1396 /// class C extends B { |
| 1398 /// m() => super[1] = 42; | 1397 /// m() => super[1] = 42; |
| 1399 /// } | 1398 /// } |
| 1400 /// | 1399 /// |
| 1401 R visitUnresolvedSuperIndexSet( | 1400 R visitUnresolvedSuperIndexSet( |
| 1402 Send node, Element element, Node index, Node rhs, A arg); | 1401 SendSet node, ErroneousElement element, Node index, Node rhs, A arg); |
| 1403 | 1402 |
| 1404 /// If-null, ??, expression with operands [left] and [right]. | 1403 /// If-null, ??, expression with operands [left] and [right]. |
| 1405 /// | 1404 /// |
| 1406 /// For instance: | 1405 /// For instance: |
| 1407 /// | 1406 /// |
| 1408 /// m() => left ?? right; | 1407 /// m() => left ?? right; |
| 1409 /// | 1408 /// |
| 1410 R visitIfNull(Send node, Node left, Node right, A arg); | 1409 R visitIfNull(Send node, Node left, Node right, A arg); |
| 1411 | 1410 |
| 1412 /// Logical and, &&, expression with operands [left] and [right]. | 1411 /// Logical and, &&, expression with operands [left] and [right]. |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1581 /// static [getter] and writing to a static [setter]. | 1580 /// static [getter] and writing to a static [setter]. |
| 1582 /// | 1581 /// |
| 1583 /// For instance: | 1582 /// For instance: |
| 1584 /// | 1583 /// |
| 1585 /// class C { | 1584 /// class C { |
| 1586 /// static get o => 0; | 1585 /// static get o => 0; |
| 1587 /// static set o(_) {} | 1586 /// static set o(_) {} |
| 1588 /// m(rhs) => o += rhs; | 1587 /// m(rhs) => o += rhs; |
| 1589 /// } | 1588 /// } |
| 1590 /// | 1589 /// |
| 1591 R visitStaticGetterSetterCompound(Send node, FunctionElement getter, | 1590 R visitStaticGetterSetterCompound(Send node, GetterElement getter, |
| 1592 FunctionElement setter, AssignmentOperator operator, Node rhs, A arg); | 1591 SetterElement setter, AssignmentOperator operator, Node rhs, A arg); |
| 1593 | 1592 |
| 1594 /// Compound assignment expression of [rhs] with [operator] reading from a | 1593 /// Compound assignment expression of [rhs] with [operator] reading from a |
| 1595 /// static [method], that is, closurizing [method], and writing to a static | 1594 /// static [method], that is, closurizing [method], and writing to a static |
| 1596 /// [setter]. | 1595 /// [setter]. |
| 1597 /// | 1596 /// |
| 1598 /// For instance: | 1597 /// For instance: |
| 1599 /// | 1598 /// |
| 1600 /// class C { | 1599 /// class C { |
| 1601 /// static o() {} | 1600 /// static o() {} |
| 1602 /// static set o(_) {} | 1601 /// static set o(_) {} |
| 1603 /// m(rhs) => o += rhs; | 1602 /// m(rhs) => o += rhs; |
| 1604 /// } | 1603 /// } |
| 1605 /// | 1604 /// |
| 1606 R visitStaticMethodSetterCompound(Send node, MethodElement method, | 1605 R visitStaticMethodSetterCompound(Send node, MethodElement method, |
| 1607 MethodElement setter, AssignmentOperator operator, Node rhs, A arg); | 1606 SetterElement setter, AssignmentOperator operator, Node rhs, A arg); |
| 1608 | 1607 |
| 1609 /// Compound assignment expression of [rhs] with [operator] on a top level | 1608 /// Compound assignment expression of [rhs] with [operator] on a top level |
| 1610 /// [field]. | 1609 /// [field]. |
| 1611 /// | 1610 /// |
| 1612 /// For instance: | 1611 /// For instance: |
| 1613 /// | 1612 /// |
| 1614 /// var field; | 1613 /// var field; |
| 1615 /// m(rhs) => field += rhs; | 1614 /// m(rhs) => field += rhs; |
| 1616 /// | 1615 /// |
| 1617 R visitTopLevelFieldCompound(Send node, FieldElement field, | 1616 R visitTopLevelFieldCompound(Send node, FieldElement field, |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1630 | 1629 |
| 1631 /// Compound assignment expression of [rhs] with [operator] reading from a | 1630 /// Compound assignment expression of [rhs] with [operator] reading from a |
| 1632 /// top level [getter] and writing to a top level [setter]. | 1631 /// top level [getter] and writing to a top level [setter]. |
| 1633 /// | 1632 /// |
| 1634 /// For instance: | 1633 /// For instance: |
| 1635 /// | 1634 /// |
| 1636 /// get o => 0; | 1635 /// get o => 0; |
| 1637 /// set o(_) {} | 1636 /// set o(_) {} |
| 1638 /// m(rhs) => o += rhs; | 1637 /// m(rhs) => o += rhs; |
| 1639 /// | 1638 /// |
| 1640 R visitTopLevelGetterSetterCompound(Send node, FunctionElement getter, | 1639 R visitTopLevelGetterSetterCompound(Send node, GetterElement getter, |
| 1641 FunctionElement setter, AssignmentOperator operator, Node rhs, A arg); | 1640 SetterElement setter, AssignmentOperator operator, Node rhs, A arg); |
| 1642 | 1641 |
| 1643 /// Compound assignment expression of [rhs] with [operator] reading from a | 1642 /// Compound assignment expression of [rhs] with [operator] reading from a |
| 1644 /// top level [method], that is, closurizing [method], and writing to a top | 1643 /// top level [method], that is, closurizing [method], and writing to a top |
| 1645 /// level [setter]. | 1644 /// level [setter]. |
| 1646 /// | 1645 /// |
| 1647 /// For instance: | 1646 /// For instance: |
| 1648 /// | 1647 /// |
| 1649 /// o() {} | 1648 /// o() {} |
| 1650 /// set o(_) {} | 1649 /// set o(_) {} |
| 1651 /// m(rhs) => o += rhs; | 1650 /// m(rhs) => o += rhs; |
| 1652 /// | 1651 /// |
| 1653 R visitTopLevelMethodSetterCompound(Send node, FunctionElement method, | 1652 R visitTopLevelMethodSetterCompound(Send node, FunctionElement method, |
| 1654 FunctionElement setter, AssignmentOperator operator, Node rhs, A arg); | 1653 SetterElement setter, AssignmentOperator operator, Node rhs, A arg); |
| 1655 | 1654 |
| 1656 /// Compound assignment expression of [rhs] with [operator] reading from a | 1655 /// Compound assignment expression of [rhs] with [operator] reading from a |
| 1657 /// top level [method], that is, closurizing [method], and writing to an | 1656 /// top level [method], that is, closurizing [method], and writing to an |
| 1658 /// unresolved setter. | 1657 /// unresolved setter. |
| 1659 /// | 1658 /// |
| 1660 /// For instance: | 1659 /// For instance: |
| 1661 /// | 1660 /// |
| 1662 /// o() {} | 1661 /// o() {} |
| 1663 /// m(rhs) => o += rhs; | 1662 /// m(rhs) => o += rhs; |
| 1664 /// | 1663 /// |
| 1665 R visitTopLevelMethodCompound(Send node, FunctionElement method, | 1664 R visitTopLevelMethodCompound(Send node, MethodElement method, |
| 1666 AssignmentOperator operator, Node rhs, A arg); | 1665 AssignmentOperator operator, Node rhs, A arg); |
| 1667 | 1666 |
| 1668 /// Compound assignment expression of [rhs] with [operator] on a super | 1667 /// Compound assignment expression of [rhs] with [operator] on a super |
| 1669 /// [field]. | 1668 /// [field]. |
| 1670 /// | 1669 /// |
| 1671 /// For instance: | 1670 /// For instance: |
| 1672 /// | 1671 /// |
| 1673 /// class B { | 1672 /// class B { |
| 1674 /// var field; | 1673 /// var field; |
| 1675 /// } | 1674 /// } |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1831 /// the [setter], if the value of the [getter] is `null`. | 1830 /// the [setter], if the value of the [getter] is `null`. |
| 1832 /// | 1831 /// |
| 1833 /// For instance: | 1832 /// For instance: |
| 1834 /// | 1833 /// |
| 1835 /// class C { | 1834 /// class C { |
| 1836 /// static get o => 0; | 1835 /// static get o => 0; |
| 1837 /// static set o(_) {} | 1836 /// static set o(_) {} |
| 1838 /// m(rhs) => o ??= rhs; | 1837 /// m(rhs) => o ??= rhs; |
| 1839 /// } | 1838 /// } |
| 1840 /// | 1839 /// |
| 1841 R visitStaticGetterSetterSetIfNull(Send node, FunctionElement getter, | 1840 R visitStaticGetterSetterSetIfNull( |
| 1842 FunctionElement setter, Node rhs, A arg); | 1841 Send node, GetterElement getter, SetterElement setter, Node rhs, A arg); |
| 1843 | 1842 |
| 1844 /// If-null assignment expression of [rhs] to the static property defined by | 1843 /// If-null assignment expression of [rhs] to the static property defined by |
| 1845 /// [method] and [setter]. That is, [rhs] is only evaluated and assigned to | 1844 /// [method] and [setter]. That is, [rhs] is only evaluated and assigned to |
| 1846 /// the [setter], if the value of the [method] is `null`. The behavior is thus | 1845 /// the [setter], if the value of the [method] is `null`. The behavior is thus |
| 1847 /// equivalent to a closurization of [method]. | 1846 /// equivalent to a closurization of [method]. |
| 1848 /// | 1847 /// |
| 1849 /// For instance: | 1848 /// For instance: |
| 1850 /// | 1849 /// |
| 1851 /// class C { | 1850 /// class C { |
| 1852 /// static o() {} | 1851 /// static o() {} |
| 1853 /// static set o(_) {} | 1852 /// static set o(_) {} |
| 1854 /// m(rhs) => o ??= rhs; | 1853 /// m(rhs) => o ??= rhs; |
| 1855 /// } | 1854 /// } |
| 1856 /// | 1855 /// |
| 1857 R visitStaticMethodSetterSetIfNull( | 1856 R visitStaticMethodSetterSetIfNull( |
| 1858 Send node, MethodElement method, MethodElement setter, Node rhs, A arg); | 1857 Send node, MethodElement method, SetterElement setter, Node rhs, A arg); |
| 1859 | 1858 |
| 1860 /// If-null assignment expression of [rhs] to the static [method]. That is, | 1859 /// If-null assignment expression of [rhs] to the static [method]. That is, |
| 1861 /// [rhs] is only evaluated and assigned, if the value of the [method] is | 1860 /// [rhs] is only evaluated and assigned, if the value of the [method] is |
| 1862 /// `null`. The behavior is thus equivalent to a closurization of [method]. | 1861 /// `null`. The behavior is thus equivalent to a closurization of [method]. |
| 1863 /// | 1862 /// |
| 1864 /// For instance: | 1863 /// For instance: |
| 1865 /// | 1864 /// |
| 1866 /// o() {} | 1865 /// o() {} |
| 1867 /// m(rhs) => o ??= rhs; | 1866 /// m(rhs) => o ??= rhs; |
| 1868 /// | 1867 /// |
| (...skipping 26 matching lines...) Expand all Loading... |
| 1895 /// If-null assignment expression of [rhs] to the top level property defined | 1894 /// If-null assignment expression of [rhs] to the top level property defined |
| 1896 /// by [getter] and [setter]. That is, [rhs] is only evaluated and assigned to | 1895 /// by [getter] and [setter]. That is, [rhs] is only evaluated and assigned to |
| 1897 /// the [setter], if the value of the [getter] is `null`. | 1896 /// the [setter], if the value of the [getter] is `null`. |
| 1898 /// | 1897 /// |
| 1899 /// For instance: | 1898 /// For instance: |
| 1900 /// | 1899 /// |
| 1901 /// get o => 0; | 1900 /// get o => 0; |
| 1902 /// set o(_) {} | 1901 /// set o(_) {} |
| 1903 /// m(rhs) => o ??= rhs; | 1902 /// m(rhs) => o ??= rhs; |
| 1904 /// | 1903 /// |
| 1905 R visitTopLevelGetterSetterSetIfNull(Send node, FunctionElement getter, | 1904 R visitTopLevelGetterSetterSetIfNull( |
| 1906 FunctionElement setter, Node rhs, A arg); | 1905 Send node, GetterElement getter, SetterElement setter, Node rhs, A arg); |
| 1907 | 1906 |
| 1908 /// If-null assignment expression of [rhs] to the top level property defined | 1907 /// If-null assignment expression of [rhs] to the top level property defined |
| 1909 /// by [method] and [setter]. That is, [rhs] is only evaluated and assigned to | 1908 /// by [method] and [setter]. That is, [rhs] is only evaluated and assigned to |
| 1910 /// the [setter], if the value of the [method] is `null`. The behavior is thus | 1909 /// the [setter], if the value of the [method] is `null`. The behavior is thus |
| 1911 /// equivalent to a closurization of [method]. | 1910 /// equivalent to a closurization of [method]. |
| 1912 /// | 1911 /// |
| 1913 /// For instance: | 1912 /// For instance: |
| 1914 /// | 1913 /// |
| 1915 /// o() {} | 1914 /// o() {} |
| 1916 /// set o(_) {} | 1915 /// set o(_) {} |
| 1917 /// m(rhs) => o ??= rhs; | 1916 /// m(rhs) => o ??= rhs; |
| 1918 /// | 1917 /// |
| 1919 R visitTopLevelMethodSetterSetIfNull(Send node, FunctionElement method, | 1918 R visitTopLevelMethodSetterSetIfNull( |
| 1920 FunctionElement setter, Node rhs, A arg); | 1919 Send node, FunctionElement method, SetterElement setter, Node rhs, A arg); |
| 1921 | 1920 |
| 1922 /// If-null assignment expression of [rhs] to the top level [method]. That is, | 1921 /// If-null assignment expression of [rhs] to the top level [method]. That is, |
| 1923 /// [rhs] is only evaluated and assigned, if the value of the [method] is | 1922 /// [rhs] is only evaluated and assigned, if the value of the [method] is |
| 1924 /// `null`. The behavior is thus equivalent to a closurization of [method]. | 1923 /// `null`. The behavior is thus equivalent to a closurization of [method]. |
| 1925 /// | 1924 /// |
| 1926 /// For instance: | 1925 /// For instance: |
| 1927 /// | 1926 /// |
| 1928 /// o() {} | 1927 /// o() {} |
| 1929 /// m(rhs) => o ??= rhs; | 1928 /// m(rhs) => o ??= rhs; |
| 1930 /// | 1929 /// |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1988 /// For instance: | 1987 /// For instance: |
| 1989 /// | 1988 /// |
| 1990 /// class B { | 1989 /// class B { |
| 1991 /// get o => 0; | 1990 /// get o => 0; |
| 1992 /// set o(_) {} | 1991 /// set o(_) {} |
| 1993 /// } | 1992 /// } |
| 1994 /// class C extends B { | 1993 /// class C extends B { |
| 1995 /// m(rhs) => super.o ??= rhs; | 1994 /// m(rhs) => super.o ??= rhs; |
| 1996 /// } | 1995 /// } |
| 1997 /// | 1996 /// |
| 1998 R visitSuperGetterSetterSetIfNull(Send node, FunctionElement getter, | 1997 R visitSuperGetterSetterSetIfNull( |
| 1999 FunctionElement setter, Node rhs, A arg); | 1998 Send node, GetterElement getter, SetterElement setter, Node rhs, A arg); |
| 2000 | 1999 |
| 2001 /// If-null assignment expression of [rhs] to the super property defined | 2000 /// If-null assignment expression of [rhs] to the super property defined |
| 2002 /// by [method] and [setter]. That is, [rhs] is only evaluated and assigned to | 2001 /// by [method] and [setter]. That is, [rhs] is only evaluated and assigned to |
| 2003 /// the [setter], if the value of the [method] is `null`. The behavior is thus | 2002 /// the [setter], if the value of the [method] is `null`. The behavior is thus |
| 2004 /// equivalent to a closurization of [method]. | 2003 /// equivalent to a closurization of [method]. |
| 2005 /// | 2004 /// |
| 2006 /// For instance: | 2005 /// For instance: |
| 2007 /// | 2006 /// |
| 2008 /// class B { | 2007 /// class B { |
| 2009 /// o() {} | 2008 /// o() {} |
| 2010 /// set o(_) {} | 2009 /// set o(_) {} |
| 2011 /// } | 2010 /// } |
| 2012 /// class C extends B { | 2011 /// class C extends B { |
| 2013 /// m(rhs) => super.o ??= rhs; | 2012 /// m(rhs) => super.o ??= rhs; |
| 2014 /// } | 2013 /// } |
| 2015 /// | 2014 /// |
| 2016 R visitSuperMethodSetterSetIfNull(Send node, FunctionElement method, | 2015 R visitSuperMethodSetterSetIfNull( |
| 2017 FunctionElement setter, Node rhs, A arg); | 2016 Send node, FunctionElement method, SetterElement setter, Node rhs, A arg); |
| 2018 | 2017 |
| 2019 /// If-null assignment expression of [rhs] to the super [method]. | 2018 /// If-null assignment expression of [rhs] to the super [method]. |
| 2020 /// That is, [rhs] is only evaluated and assigned, if the value of | 2019 /// That is, [rhs] is only evaluated and assigned, if the value of |
| 2021 /// the [method] is `null`. The behavior is thus equivalent to a closurization | 2020 /// the [method] is `null`. The behavior is thus equivalent to a closurization |
| 2022 /// of [method]. | 2021 /// of [method]. |
| 2023 /// | 2022 /// |
| 2024 /// For instance: | 2023 /// For instance: |
| 2025 /// | 2024 /// |
| 2026 /// class B { | 2025 /// class B { |
| 2027 /// o() {} | 2026 /// o() {} |
| (...skipping 13 matching lines...) Expand all Loading... |
| 2041 /// For instance: | 2040 /// For instance: |
| 2042 /// | 2041 /// |
| 2043 /// class B { | 2042 /// class B { |
| 2044 /// set o(_) {} | 2043 /// set o(_) {} |
| 2045 /// } | 2044 /// } |
| 2046 /// class C extends B { | 2045 /// class C extends B { |
| 2047 /// m(rhs) => super.o ??= rhs; | 2046 /// m(rhs) => super.o ??= rhs; |
| 2048 /// } | 2047 /// } |
| 2049 /// | 2048 /// |
| 2050 R visitUnresolvedSuperGetterSetIfNull( | 2049 R visitUnresolvedSuperGetterSetIfNull( |
| 2051 Send node, Element element, MethodElement setter, Node rhs, A arg); | 2050 Send node, Element element, SetterElement setter, Node rhs, A arg); |
| 2052 | 2051 |
| 2053 /// If-null assignment expression of [rhs] to the super property defined | 2052 /// If-null assignment expression of [rhs] to the super property defined |
| 2054 /// by [getter] with no corresponding setter. That is, [rhs] is only evaluated | 2053 /// by [getter] with no corresponding setter. That is, [rhs] is only evaluated |
| 2055 /// and assigned to the unresolved setter, if the value of the [getter] is | 2054 /// and assigned to the unresolved setter, if the value of the [getter] is |
| 2056 /// `null`. | 2055 /// `null`. |
| 2057 /// | 2056 /// |
| 2058 /// For instance: | 2057 /// For instance: |
| 2059 /// | 2058 /// |
| 2060 /// class B { | 2059 /// class B { |
| 2061 /// get o => 42; | 2060 /// get o => 42; |
| 2062 /// } | 2061 /// } |
| 2063 /// class C extends B { | 2062 /// class C extends B { |
| 2064 /// m(rhs) => super.o ??= rhs; | 2063 /// m(rhs) => super.o ??= rhs; |
| 2065 /// } | 2064 /// } |
| 2066 /// | 2065 /// |
| 2067 R visitUnresolvedSuperSetterSetIfNull( | 2066 R visitUnresolvedSuperSetterSetIfNull( |
| 2068 Send node, MethodElement getter, Element element, Node rhs, A arg); | 2067 Send node, GetterElement getter, Element element, Node rhs, A arg); |
| 2069 | 2068 |
| 2070 /// If-null assignment expression of [rhs] to the top level property defined | 2069 /// If-null assignment expression of [rhs] to the top level property defined |
| 2071 /// by [field] and [setter]. That is, [rhs] is only evaluated and assigned to | 2070 /// by [field] and [setter]. That is, [rhs] is only evaluated and assigned to |
| 2072 /// the [setter], if the value of the [field] is `null`. | 2071 /// the [setter], if the value of the [field] is `null`. |
| 2073 /// | 2072 /// |
| 2074 /// For instance: | 2073 /// For instance: |
| 2075 /// | 2074 /// |
| 2076 /// class A { | 2075 /// class A { |
| 2077 /// var o; | 2076 /// var o; |
| 2078 /// } | 2077 /// } |
| 2079 /// class B extends A { | 2078 /// class B extends A { |
| 2080 /// set o(_) {} | 2079 /// set o(_) {} |
| 2081 /// } | 2080 /// } |
| 2082 /// class C extends B { | 2081 /// class C extends B { |
| 2083 /// m(rhs) => super.o ??= rhs; | 2082 /// m(rhs) => super.o ??= rhs; |
| 2084 /// } | 2083 /// } |
| 2085 /// | 2084 /// |
| 2086 R visitSuperFieldSetterSetIfNull( | 2085 R visitSuperFieldSetterSetIfNull( |
| 2087 Send node, FieldElement field, FunctionElement setter, Node rhs, A arg); | 2086 Send node, FieldElement field, SetterElement setter, Node rhs, A arg); |
| 2088 | 2087 |
| 2089 /// If-null assignment expression of [rhs] to the top level property defined | 2088 /// If-null assignment expression of [rhs] to the top level property defined |
| 2090 /// by [getter] and [field]. That is, [rhs] is only evaluated and assigned to | 2089 /// by [getter] and [field]. That is, [rhs] is only evaluated and assigned to |
| 2091 /// the [field], if the value of the [getter] is `null`. | 2090 /// the [field], if the value of the [getter] is `null`. |
| 2092 /// | 2091 /// |
| 2093 /// For instance: | 2092 /// For instance: |
| 2094 /// | 2093 /// |
| 2095 /// class A { | 2094 /// class A { |
| 2096 /// var o; | 2095 /// var o; |
| 2097 /// } | 2096 /// } |
| 2098 /// class B extends A { | 2097 /// class B extends A { |
| 2099 /// get o => 0; | 2098 /// get o => 0; |
| 2100 /// } | 2099 /// } |
| 2101 /// class C extends B { | 2100 /// class C extends B { |
| 2102 /// m(rhs) => super.o ??= rhs; | 2101 /// m(rhs) => super.o ??= rhs; |
| 2103 /// } | 2102 /// } |
| 2104 /// | 2103 /// |
| 2105 R visitSuperGetterFieldSetIfNull( | 2104 R visitSuperGetterFieldSetIfNull( |
| 2106 Send node, FunctionElement getter, FieldElement field, Node rhs, A arg); | 2105 Send node, GetterElement getter, FieldElement field, Node rhs, A arg); |
| 2107 | 2106 |
| 2108 /// If-null assignment expression of [rhs] to an unresolved super property. | 2107 /// If-null assignment expression of [rhs] to an unresolved super property. |
| 2109 /// That is, [rhs] is only evaluated and assigned, if the value of the | 2108 /// That is, [rhs] is only evaluated and assigned, if the value of the |
| 2110 /// unresolved property is `null`. The behavior is thus equivalent to a no | 2109 /// unresolved property is `null`. The behavior is thus equivalent to a no |
| 2111 /// such method error. | 2110 /// such method error. |
| 2112 /// | 2111 /// |
| 2113 /// For instance: | 2112 /// For instance: |
| 2114 /// | 2113 /// |
| 2115 /// class B { | 2114 /// class B { |
| 2116 /// } | 2115 /// } |
| (...skipping 10 matching lines...) Expand all Loading... |
| 2127 /// error. | 2126 /// error. |
| 2128 /// | 2127 /// |
| 2129 /// For instance: | 2128 /// For instance: |
| 2130 /// | 2129 /// |
| 2131 /// class C { | 2130 /// class C { |
| 2132 /// set foo(_) {} | 2131 /// set foo(_) {} |
| 2133 /// } | 2132 /// } |
| 2134 /// m1() => C.foo ??= 42; | 2133 /// m1() => C.foo ??= 42; |
| 2135 /// | 2134 /// |
| 2136 R visitUnresolvedStaticGetterSetIfNull( | 2135 R visitUnresolvedStaticGetterSetIfNull( |
| 2137 Send node, Element element, MethodElement setter, Node rhs, A arg); | 2136 Send node, Element element, SetterElement setter, Node rhs, A arg); |
| 2138 | 2137 |
| 2139 /// If-null assignment expression of [rhs] to the top level property defined | 2138 /// If-null assignment expression of [rhs] to the top level property defined |
| 2140 /// by [setter] with no corresponding getter. That is, [rhs] is only evaluated | 2139 /// by [setter] with no corresponding getter. That is, [rhs] is only evaluated |
| 2141 /// and assigned to the [setter], if the value of the unresolved getter is | 2140 /// and assigned to the [setter], if the value of the unresolved getter is |
| 2142 /// `null`. The behavior is thus equivalent to a no such method error. | 2141 /// `null`. The behavior is thus equivalent to a no such method error. |
| 2143 /// | 2142 /// |
| 2144 /// For instance: | 2143 /// For instance: |
| 2145 /// | 2144 /// |
| 2146 /// set foo(_) {} | 2145 /// set foo(_) {} |
| 2147 /// m1() => foo ??= 42; | 2146 /// m1() => foo ??= 42; |
| 2148 /// | 2147 /// |
| 2149 R visitUnresolvedTopLevelGetterSetIfNull( | 2148 R visitUnresolvedTopLevelGetterSetIfNull( |
| 2150 Send node, Element element, MethodElement setter, Node rhs, A arg); | 2149 Send node, Element element, SetterElement setter, Node rhs, A arg); |
| 2151 | 2150 |
| 2152 /// If-null assignment expression of [rhs] to the static property defined | 2151 /// If-null assignment expression of [rhs] to the static property defined |
| 2153 /// by [getter] with no corresponding setter. That is, [rhs] is only evaluated | 2152 /// by [getter] with no corresponding setter. That is, [rhs] is only evaluated |
| 2154 /// and assigned to the unresolved setter, if the value of the [getter] is | 2153 /// and assigned to the unresolved setter, if the value of the [getter] is |
| 2155 /// `null`. | 2154 /// `null`. |
| 2156 /// | 2155 /// |
| 2157 /// For instance: | 2156 /// For instance: |
| 2158 /// | 2157 /// |
| 2159 /// class C { | 2158 /// class C { |
| 2160 /// get foo => 42; | 2159 /// get foo => 42; |
| 2161 /// } | 2160 /// } |
| 2162 /// m1() => C.foo ??= 42; | 2161 /// m1() => C.foo ??= 42; |
| 2163 /// | 2162 /// |
| 2164 R visitUnresolvedStaticSetterSetIfNull( | 2163 R visitUnresolvedStaticSetterSetIfNull( |
| 2165 Send node, MethodElement getter, Element element, Node rhs, A arg); | 2164 Send node, GetterElement getter, Element element, Node rhs, A arg); |
| 2166 | 2165 |
| 2167 /// If-null assignment expression of [rhs] to the top level property defined | 2166 /// If-null assignment expression of [rhs] to the top level property defined |
| 2168 /// by [getter] with no corresponding setter. That is, [rhs] is only evaluated | 2167 /// by [getter] with no corresponding setter. That is, [rhs] is only evaluated |
| 2169 /// and assigned to the unresolved setter, if the value of the [getter] is | 2168 /// and assigned to the unresolved setter, if the value of the [getter] is |
| 2170 /// `null`. | 2169 /// `null`. |
| 2171 /// | 2170 /// |
| 2172 /// For instance: | 2171 /// For instance: |
| 2173 /// | 2172 /// |
| 2174 /// get foo => 42; | 2173 /// get foo => 42; |
| 2175 /// m1() => foo ??= 42; | 2174 /// m1() => foo ??= 42; |
| 2176 /// | 2175 /// |
| 2177 R visitUnresolvedTopLevelSetterSetIfNull( | 2176 R visitUnresolvedTopLevelSetterSetIfNull( |
| 2178 Send node, MethodElement getter, Element element, Node rhs, A arg); | 2177 Send node, GetterElement getter, Element element, Node rhs, A arg); |
| 2179 | 2178 |
| 2180 /// If-null assignment expression of [rhs] to an unresolved property. | 2179 /// If-null assignment expression of [rhs] to an unresolved property. |
| 2181 /// That is, [rhs] is only evaluated and assigned, if the value of the | 2180 /// That is, [rhs] is only evaluated and assigned, if the value of the |
| 2182 /// unresolved property is `null`. The behavior is thus equivalent to a no | 2181 /// unresolved property is `null`. The behavior is thus equivalent to a no |
| 2183 /// such method error. | 2182 /// such method error. |
| 2184 /// | 2183 /// |
| 2185 /// For instance: | 2184 /// For instance: |
| 2186 /// | 2185 /// |
| 2187 /// class C {} | 2186 /// class C {} |
| 2188 /// m1() => unresolved ??= 42; | 2187 /// m1() => unresolved ??= 42; |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2271 /// | 2270 /// |
| 2272 /// For instance: | 2271 /// For instance: |
| 2273 /// | 2272 /// |
| 2274 /// class B { | 2273 /// class B { |
| 2275 /// } | 2274 /// } |
| 2276 /// class C extends B { | 2275 /// class C extends B { |
| 2277 /// m(rhs) => ++super.unresolved; | 2276 /// m(rhs) => ++super.unresolved; |
| 2278 /// } | 2277 /// } |
| 2279 /// | 2278 /// |
| 2280 R visitUnresolvedSuperPrefix( | 2279 R visitUnresolvedSuperPrefix( |
| 2281 Send node, Element element, IncDecOperator operator, A arg); | 2280 SendSet node, Element element, IncDecOperator operator, A arg); |
| 2282 | 2281 |
| 2283 /// Postfix expression with [operator] on an unresolved super property. | 2282 /// Postfix expression with [operator] on an unresolved super property. |
| 2284 /// | 2283 /// |
| 2285 /// For instance: | 2284 /// For instance: |
| 2286 /// | 2285 /// |
| 2287 /// class B { | 2286 /// class B { |
| 2288 /// } | 2287 /// } |
| 2289 /// class C extends B { | 2288 /// class C extends B { |
| 2290 /// m(rhs) => super.unresolved++; | 2289 /// m(rhs) => super.unresolved++; |
| 2291 /// } | 2290 /// } |
| 2292 /// | 2291 /// |
| 2293 R visitUnresolvedSuperPostfix( | 2292 R visitUnresolvedSuperPostfix( |
| 2294 Send node, Element element, IncDecOperator operator, A arg); | 2293 SendSet node, Element element, IncDecOperator operator, A arg); |
| 2295 | 2294 |
| 2296 /// Compound assignment expression of [rhs] with [operator] on an unresolved | 2295 /// Compound assignment expression of [rhs] with [operator] on an unresolved |
| 2297 /// super property. | 2296 /// super property. |
| 2298 /// | 2297 /// |
| 2299 /// For instance: | 2298 /// For instance: |
| 2300 /// | 2299 /// |
| 2301 /// class B { | 2300 /// class B { |
| 2302 /// } | 2301 /// } |
| 2303 /// class C extends B { | 2302 /// class C extends B { |
| 2304 /// m(rhs) => super.unresolved += rhs; | 2303 /// m(rhs) => super.unresolved += rhs; |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2346 /// For instance: | 2345 /// For instance: |
| 2347 /// | 2346 /// |
| 2348 /// class B { | 2347 /// class B { |
| 2349 /// get o => 0; | 2348 /// get o => 0; |
| 2350 /// set o(_) {} | 2349 /// set o(_) {} |
| 2351 /// } | 2350 /// } |
| 2352 /// class C extends B { | 2351 /// class C extends B { |
| 2353 /// m(rhs) => super.o += rhs; | 2352 /// m(rhs) => super.o += rhs; |
| 2354 /// } | 2353 /// } |
| 2355 /// | 2354 /// |
| 2356 R visitSuperGetterSetterCompound(Send node, FunctionElement getter, | 2355 R visitSuperGetterSetterCompound(Send node, GetterElement getter, |
| 2357 FunctionElement setter, AssignmentOperator operator, Node rhs, A arg); | 2356 SetterElement setter, AssignmentOperator operator, Node rhs, A arg); |
| 2358 | 2357 |
| 2359 /// Compound assignment expression of [rhs] with [operator] reading from a | 2358 /// Compound assignment expression of [rhs] with [operator] reading from a |
| 2360 /// super [method], that is, closurizing [method], and writing to a super | 2359 /// super [method], that is, closurizing [method], and writing to a super |
| 2361 /// [setter]. | 2360 /// [setter]. |
| 2362 /// | 2361 /// |
| 2363 /// For instance: | 2362 /// For instance: |
| 2364 /// | 2363 /// |
| 2365 /// class B { | 2364 /// class B { |
| 2366 /// o() {} | 2365 /// o() {} |
| 2367 /// set o(_) {} | 2366 /// set o(_) {} |
| 2368 /// } | 2367 /// } |
| 2369 /// class C extends B { | 2368 /// class C extends B { |
| 2370 /// m(rhs) => super.o += rhs; | 2369 /// m(rhs) => super.o += rhs; |
| 2371 /// } | 2370 /// } |
| 2372 /// | 2371 /// |
| 2373 R visitSuperMethodSetterCompound(Send node, FunctionElement method, | 2372 R visitSuperMethodSetterCompound(Send node, FunctionElement method, |
| 2374 FunctionElement setter, AssignmentOperator operator, Node rhs, A arg); | 2373 SetterElement setter, AssignmentOperator operator, Node rhs, A arg); |
| 2375 | 2374 |
| 2376 /// Compound assignment expression of [rhs] with [operator] reading the | 2375 /// Compound assignment expression of [rhs] with [operator] reading the |
| 2377 /// closurized super [method] and trying to invoke the non-existing setter. | 2376 /// closurized super [method] and trying to invoke the non-existing setter. |
| 2378 /// | 2377 /// |
| 2379 /// For instance: | 2378 /// For instance: |
| 2380 /// | 2379 /// |
| 2381 /// class B { | 2380 /// class B { |
| 2382 /// o() {} | 2381 /// o() {} |
| 2383 /// } | 2382 /// } |
| 2384 /// class C extends B { | 2383 /// class C extends B { |
| 2385 /// m(rhs) => super.o += rhs; | 2384 /// m(rhs) => super.o += rhs; |
| 2386 /// } | 2385 /// } |
| 2387 /// | 2386 /// |
| 2388 R visitSuperMethodCompound(Send node, FunctionElement method, | 2387 R visitSuperMethodCompound(Send node, MethodElement method, |
| 2389 AssignmentOperator operator, Node rhs, A arg); | 2388 AssignmentOperator operator, Node rhs, A arg); |
| 2390 | 2389 |
| 2391 /// Compound assignment expression of [rhs] with [operator] reading from the | 2390 /// Compound assignment expression of [rhs] with [operator] reading from the |
| 2392 /// non-existing super getter and writing to a super [setter]. | 2391 /// non-existing super getter and writing to a super [setter]. |
| 2393 /// | 2392 /// |
| 2394 /// For instance: | 2393 /// For instance: |
| 2395 /// | 2394 /// |
| 2396 /// class B { | 2395 /// class B { |
| 2397 /// set o(_) {} | 2396 /// set o(_) {} |
| 2398 /// } | 2397 /// } |
| 2399 /// class C extends B { | 2398 /// class C extends B { |
| 2400 /// m(rhs) => super.o += rhs; | 2399 /// m(rhs) => super.o += rhs; |
| 2401 /// } | 2400 /// } |
| 2402 /// | 2401 /// |
| 2403 R visitUnresolvedSuperGetterCompound(Send node, Element element, | 2402 R visitUnresolvedSuperGetterCompound(SendSet node, Element element, |
| 2404 MethodElement setter, AssignmentOperator operator, Node rhs, A arg); | 2403 SetterElement setter, AssignmentOperator operator, Node rhs, A arg); |
| 2405 | 2404 |
| 2406 /// Compound assignment expression of [rhs] with [operator] reading from a | 2405 /// Compound assignment expression of [rhs] with [operator] reading from a |
| 2407 /// super [getter] and writing to the non-existing super setter. | 2406 /// super [getter] and writing to the non-existing super setter. |
| 2408 /// | 2407 /// |
| 2409 /// For instance: | 2408 /// For instance: |
| 2410 /// | 2409 /// |
| 2411 /// class B { | 2410 /// class B { |
| 2412 /// get o => 42; | 2411 /// get o => 42; |
| 2413 /// } | 2412 /// } |
| 2414 /// class C extends B { | 2413 /// class C extends B { |
| 2415 /// m(rhs) => super.o += rhs; | 2414 /// m(rhs) => super.o += rhs; |
| 2416 /// } | 2415 /// } |
| 2417 /// | 2416 /// |
| 2418 R visitUnresolvedSuperSetterCompound(Send node, MethodElement getter, | 2417 R visitUnresolvedSuperSetterCompound(Send node, GetterElement getter, |
| 2419 Element element, AssignmentOperator operator, Node rhs, A arg); | 2418 Element element, AssignmentOperator operator, Node rhs, A arg); |
| 2420 | 2419 |
| 2421 /// Compound assignment expression of [rhs] with [operator] reading from a | 2420 /// Compound assignment expression of [rhs] with [operator] reading from a |
| 2422 /// super [field] and writing to a super [setter]. | 2421 /// super [field] and writing to a super [setter]. |
| 2423 /// | 2422 /// |
| 2424 /// For instance: | 2423 /// For instance: |
| 2425 /// | 2424 /// |
| 2426 /// class A { | 2425 /// class A { |
| 2427 /// var o; | 2426 /// var o; |
| 2428 /// } | 2427 /// } |
| 2429 /// class B extends A { | 2428 /// class B extends A { |
| 2430 /// set o(_) {} | 2429 /// set o(_) {} |
| 2431 /// } | 2430 /// } |
| 2432 /// class C extends B { | 2431 /// class C extends B { |
| 2433 /// m(rhs) => super.o += rhs; | 2432 /// m(rhs) => super.o += rhs; |
| 2434 /// } | 2433 /// } |
| 2435 /// | 2434 /// |
| 2436 R visitSuperFieldSetterCompound(Send node, FieldElement field, | 2435 R visitSuperFieldSetterCompound(Send node, FieldElement field, |
| 2437 FunctionElement setter, AssignmentOperator operator, Node rhs, A arg); | 2436 SetterElement setter, AssignmentOperator operator, Node rhs, A arg); |
| 2438 | 2437 |
| 2439 /// Compound assignment expression of [rhs] with [operator] reading from a | 2438 /// Compound assignment expression of [rhs] with [operator] reading from a |
| 2440 /// super [getter] and writing to a super [field]. | 2439 /// super [getter] and writing to a super [field]. |
| 2441 /// | 2440 /// |
| 2442 /// For instance: | 2441 /// For instance: |
| 2443 /// | 2442 /// |
| 2444 /// class A { | 2443 /// class A { |
| 2445 /// var o; | 2444 /// var o; |
| 2446 /// } | 2445 /// } |
| 2447 /// class B extends A { | 2446 /// class B extends A { |
| 2448 /// get o => 0; | 2447 /// get o => 0; |
| 2449 /// } | 2448 /// } |
| 2450 /// class C extends B { | 2449 /// class C extends B { |
| 2451 /// m(rhs) => super.o += rhs; | 2450 /// m(rhs) => super.o += rhs; |
| 2452 /// } | 2451 /// } |
| 2453 /// | 2452 /// |
| 2454 R visitSuperGetterFieldCompound(Send node, FunctionElement getter, | 2453 R visitSuperGetterFieldCompound(Send node, GetterElement getter, |
| 2455 FieldElement field, AssignmentOperator operator, Node rhs, A arg); | 2454 FieldElement field, AssignmentOperator operator, Node rhs, A arg); |
| 2456 | 2455 |
| 2457 /// Compound assignment expression of [rhs] with [operator] on a type literal | 2456 /// Compound assignment expression of [rhs] with [operator] on a type literal |
| 2458 /// for class [element]. | 2457 /// for class [element]. |
| 2459 /// | 2458 /// |
| 2460 /// For instance: | 2459 /// For instance: |
| 2461 /// | 2460 /// |
| 2462 /// class C {} | 2461 /// class C {} |
| 2463 /// m(rhs) => C += rhs; | 2462 /// m(rhs) => C += rhs; |
| 2464 /// | 2463 /// |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2536 /// | 2535 /// |
| 2537 /// For instance: | 2536 /// For instance: |
| 2538 /// | 2537 /// |
| 2539 /// class B { | 2538 /// class B { |
| 2540 /// } | 2539 /// } |
| 2541 /// class C extends B { | 2540 /// class C extends B { |
| 2542 /// m() => super[1] += 42; | 2541 /// m() => super[1] += 42; |
| 2543 /// } | 2542 /// } |
| 2544 /// | 2543 /// |
| 2545 R visitUnresolvedSuperGetterCompoundIndexSet( | 2544 R visitUnresolvedSuperGetterCompoundIndexSet( |
| 2546 Send node, | 2545 SendSet node, |
| 2547 Element element, | 2546 Element element, |
| 2548 MethodElement setter, | 2547 MethodElement setter, |
| 2549 Node index, | 2548 Node index, |
| 2550 AssignmentOperator operator, | 2549 AssignmentOperator operator, |
| 2551 Node rhs, | 2550 Node rhs, |
| 2552 A arg); | 2551 A arg); |
| 2553 | 2552 |
| 2554 /// Compound index assignment of [rhs] with [operator] to [index] on a super | 2553 /// Compound index assignment of [rhs] with [operator] to [index] on a super |
| 2555 /// class where the index getter is defined by [getter] but the index setter | 2554 /// class where the index getter is defined by [getter] but the index setter |
| 2556 /// is undefined. | 2555 /// is undefined. |
| 2557 /// | 2556 /// |
| 2558 /// For instance: | 2557 /// For instance: |
| 2559 /// | 2558 /// |
| 2560 /// class B { | 2559 /// class B { |
| 2561 /// operator [](index) => 42; | 2560 /// operator [](index) => 42; |
| 2562 /// } | 2561 /// } |
| 2563 /// class C extends B { | 2562 /// class C extends B { |
| 2564 /// m() => super[1] += 42; | 2563 /// m() => super[1] += 42; |
| 2565 /// } | 2564 /// } |
| 2566 /// | 2565 /// |
| 2567 R visitUnresolvedSuperSetterCompoundIndexSet( | 2566 R visitUnresolvedSuperSetterCompoundIndexSet( |
| 2568 Send node, | 2567 SendSet node, |
| 2569 MethodElement getter, | 2568 MethodElement getter, |
| 2570 Element element, | 2569 Element element, |
| 2571 Node index, | 2570 Node index, |
| 2572 AssignmentOperator operator, | 2571 AssignmentOperator operator, |
| 2573 Node rhs, | 2572 Node rhs, |
| 2574 A arg); | 2573 A arg); |
| 2575 | 2574 |
| 2576 /// Compound index assignment of [rhs] with [operator] to [index] on a super | 2575 /// Compound index assignment of [rhs] with [operator] to [index] on a super |
| 2577 /// class where the index getter and setter are undefined. | 2576 /// class where the index getter and setter are undefined. |
| 2578 /// | 2577 /// |
| 2579 /// For instance: | 2578 /// For instance: |
| 2580 /// | 2579 /// |
| 2581 /// class B { | 2580 /// class B { |
| 2582 /// } | 2581 /// } |
| 2583 /// class C extends B { | 2582 /// class C extends B { |
| 2584 /// m() => super[1] += 42; | 2583 /// m() => super[1] += 42; |
| 2585 /// } | 2584 /// } |
| 2586 /// | 2585 /// |
| 2587 R visitUnresolvedSuperCompoundIndexSet(Send node, Element element, Node index, | 2586 R visitUnresolvedSuperCompoundIndexSet(SendSet node, Element element, |
| 2588 AssignmentOperator operator, Node rhs, A arg); | 2587 Node index, AssignmentOperator operator, Node rhs, A arg); |
| 2589 | 2588 |
| 2590 /// If-null assignment expression of [rhs] to [index] on the index operators | 2589 /// If-null assignment expression of [rhs] to [index] on the index operators |
| 2591 /// of [receiver]. | 2590 /// of [receiver]. |
| 2592 /// | 2591 /// |
| 2593 /// For instance: | 2592 /// For instance: |
| 2594 /// | 2593 /// |
| 2595 /// m(receiver, index, rhs) => receiver[index] ??= rhs; | 2594 /// m(receiver, index, rhs) => receiver[index] ??= rhs; |
| 2596 /// | 2595 /// |
| 2597 R visitIndexSetIfNull( | 2596 R visitIndexSetIfNull( |
| 2598 SendSet node, Node receiver, Node index, Node rhs, A arg); | 2597 SendSet node, Node receiver, Node index, Node rhs, A arg); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 2618 /// | 2617 /// |
| 2619 /// For instance: | 2618 /// For instance: |
| 2620 /// | 2619 /// |
| 2621 /// class B { | 2620 /// class B { |
| 2622 /// operator [](index, value) {} | 2621 /// operator [](index, value) {} |
| 2623 /// } | 2622 /// } |
| 2624 /// class C extends B { | 2623 /// class C extends B { |
| 2625 /// m() => super[1] ??= 42; | 2624 /// m() => super[1] ??= 42; |
| 2626 /// } | 2625 /// } |
| 2627 /// | 2626 /// |
| 2628 R visitUnresolvedSuperGetterIndexSetIfNull(Send node, Element element, | 2627 R visitUnresolvedSuperGetterIndexSetIfNull(SendSet node, Element element, |
| 2629 MethodElement setter, Node index, Node rhs, A arg); | 2628 MethodElement setter, Node index, Node rhs, A arg); |
| 2630 | 2629 |
| 2631 /// If-null assignment expression of [rhs] to [index] on a super class where | 2630 /// If-null assignment expression of [rhs] to [index] on a super class where |
| 2632 /// the index getter is defined by [getter] but the index setter is undefined. | 2631 /// the index getter is defined by [getter] but the index setter is undefined. |
| 2633 /// | 2632 /// |
| 2634 /// For instance: | 2633 /// For instance: |
| 2635 /// | 2634 /// |
| 2636 /// class B { | 2635 /// class B { |
| 2637 /// operator [](index) => 42; | 2636 /// operator [](index) => 42; |
| 2638 /// } | 2637 /// } |
| 2639 /// class C extends B { | 2638 /// class C extends B { |
| 2640 /// m() => super[1] ??= 42; | 2639 /// m() => super[1] ??= 42; |
| 2641 /// } | 2640 /// } |
| 2642 /// | 2641 /// |
| 2643 R visitUnresolvedSuperSetterIndexSetIfNull(Send node, MethodElement getter, | 2642 R visitUnresolvedSuperSetterIndexSetIfNull(SendSet node, MethodElement getter, |
| 2644 Element element, Node index, Node rhs, A arg); | 2643 Element element, Node index, Node rhs, A arg); |
| 2645 | 2644 |
| 2646 /// If-null assignment expression of [rhs] to [index] on a super class where | 2645 /// If-null assignment expression of [rhs] to [index] on a super class where |
| 2647 /// the index getter and setter are undefined. | 2646 /// the index getter and setter are undefined. |
| 2648 /// | 2647 /// |
| 2649 /// For instance: | 2648 /// For instance: |
| 2650 /// | 2649 /// |
| 2651 /// class B { | 2650 /// class B { |
| 2652 /// } | 2651 /// } |
| 2653 /// class C extends B { | 2652 /// class C extends B { |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2780 /// writing to a static [setter]. | 2779 /// writing to a static [setter]. |
| 2781 /// | 2780 /// |
| 2782 /// For instance: | 2781 /// For instance: |
| 2783 /// | 2782 /// |
| 2784 /// class C { | 2783 /// class C { |
| 2785 /// static get o => 0; | 2784 /// static get o => 0; |
| 2786 /// static set o(_) {} | 2785 /// static set o(_) {} |
| 2787 /// m() => ++o; | 2786 /// m() => ++o; |
| 2788 /// } | 2787 /// } |
| 2789 /// | 2788 /// |
| 2790 R visitStaticGetterSetterPrefix(Send node, FunctionElement getter, | 2789 R visitStaticGetterSetterPrefix(Send node, GetterElement getter, |
| 2791 FunctionElement setter, IncDecOperator operator, A arg); | 2790 SetterElement setter, IncDecOperator operator, A arg); |
| 2792 | 2791 |
| 2793 /// Prefix expression with [operator] reading from a static [method], that is, | 2792 /// Prefix expression with [operator] reading from a static [method], that is, |
| 2794 /// closurizing [method], and writing to a static [setter]. | 2793 /// closurizing [method], and writing to a static [setter]. |
| 2795 /// | 2794 /// |
| 2796 /// For instance: | 2795 /// For instance: |
| 2797 /// | 2796 /// |
| 2798 /// class C { | 2797 /// class C { |
| 2799 /// static o() {} | 2798 /// static o() {} |
| 2800 /// static set o(_) {} | 2799 /// static set o(_) {} |
| 2801 /// m() => ++o; | 2800 /// m() => ++o; |
| 2802 /// } | 2801 /// } |
| 2803 /// | 2802 /// |
| 2804 R visitStaticMethodSetterPrefix(Send node, FunctionElement getter, | 2803 R visitStaticMethodSetterPrefix(Send node, GetterElement getter, |
| 2805 FunctionElement setter, IncDecOperator operator, A arg); | 2804 SetterElement setter, IncDecOperator operator, A arg); |
| 2806 | 2805 |
| 2807 /// Prefix expression with [operator] on a top level [field]. | 2806 /// Prefix expression with [operator] on a top level [field]. |
| 2808 /// | 2807 /// |
| 2809 /// For instance: | 2808 /// For instance: |
| 2810 /// | 2809 /// |
| 2811 /// var field; | 2810 /// var field; |
| 2812 /// m() => ++field; | 2811 /// m() => ++field; |
| 2813 /// | 2812 /// |
| 2814 R visitTopLevelFieldPrefix( | 2813 R visitTopLevelFieldPrefix( |
| 2815 Send node, FieldElement field, IncDecOperator operator, A arg); | 2814 Send node, FieldElement field, IncDecOperator operator, A arg); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 2826 | 2825 |
| 2827 /// Prefix expression with [operator] reading from a top level [getter] and | 2826 /// Prefix expression with [operator] reading from a top level [getter] and |
| 2828 /// writing to a top level [setter]. | 2827 /// writing to a top level [setter]. |
| 2829 /// | 2828 /// |
| 2830 /// For instance: | 2829 /// For instance: |
| 2831 /// | 2830 /// |
| 2832 /// get o => 0; | 2831 /// get o => 0; |
| 2833 /// set o(_) {} | 2832 /// set o(_) {} |
| 2834 /// m() => ++o; | 2833 /// m() => ++o; |
| 2835 /// | 2834 /// |
| 2836 R visitTopLevelGetterSetterPrefix(Send node, FunctionElement getter, | 2835 R visitTopLevelGetterSetterPrefix(Send node, GetterElement getter, |
| 2837 FunctionElement setter, IncDecOperator operator, A arg); | 2836 SetterElement setter, IncDecOperator operator, A arg); |
| 2838 | 2837 |
| 2839 /// Prefix expression with [operator] reading from a top level [method], that | 2838 /// Prefix expression with [operator] reading from a top level [method], that |
| 2840 /// is, closurizing [method], and writing to a top level [setter]. | 2839 /// is, closurizing [method], and writing to a top level [setter]. |
| 2841 /// | 2840 /// |
| 2842 /// For instance: | 2841 /// For instance: |
| 2843 /// | 2842 /// |
| 2844 /// o() {} | 2843 /// o() {} |
| 2845 /// set o(_) {} | 2844 /// set o(_) {} |
| 2846 /// m() => ++o; | 2845 /// m() => ++o; |
| 2847 /// | 2846 /// |
| 2848 R visitTopLevelMethodSetterPrefix(Send node, FunctionElement method, | 2847 R visitTopLevelMethodSetterPrefix(Send node, FunctionElement method, |
| 2849 FunctionElement setter, IncDecOperator operator, A arg); | 2848 SetterElement setter, IncDecOperator operator, A arg); |
| 2850 | 2849 |
| 2851 /// Prefix expression with [operator] on a super [field]. | 2850 /// Prefix expression with [operator] on a super [field]. |
| 2852 /// | 2851 /// |
| 2853 /// For instance: | 2852 /// For instance: |
| 2854 /// | 2853 /// |
| 2855 /// class B { | 2854 /// class B { |
| 2856 /// var field; | 2855 /// var field; |
| 2857 /// } | 2856 /// } |
| 2858 /// class C extends B { | 2857 /// class C extends B { |
| 2859 /// m() => ++super.field; | 2858 /// m() => ++super.field; |
| 2860 /// } | 2859 /// } |
| 2861 /// | 2860 /// |
| 2862 R visitSuperFieldPrefix( | 2861 R visitSuperFieldPrefix( |
| 2863 Send node, FieldElement field, IncDecOperator operator, A arg); | 2862 SendSet node, FieldElement field, IncDecOperator operator, A arg); |
| 2864 | 2863 |
| 2865 /// Prefix expression with [operator] reading from the super field [readField] | 2864 /// Prefix expression with [operator] reading from the super field [readField] |
| 2866 /// and writing to the different super field [writtenField]. | 2865 /// and writing to the different super field [writtenField]. |
| 2867 /// | 2866 /// |
| 2868 /// For instance: | 2867 /// For instance: |
| 2869 /// | 2868 /// |
| 2870 /// class A { | 2869 /// class A { |
| 2871 /// var field; | 2870 /// var field; |
| 2872 /// } | 2871 /// } |
| 2873 /// class B extends A { | 2872 /// class B extends A { |
| 2874 /// final field; | 2873 /// final field; |
| 2875 /// } | 2874 /// } |
| 2876 /// class C extends B { | 2875 /// class C extends B { |
| 2877 /// m() => ++super.field; | 2876 /// m() => ++super.field; |
| 2878 /// } | 2877 /// } |
| 2879 /// | 2878 /// |
| 2880 R visitSuperFieldFieldPrefix(Send node, FieldElement readField, | 2879 R visitSuperFieldFieldPrefix(SendSet node, FieldElement readField, |
| 2881 FieldElement writtenField, IncDecOperator operator, A arg); | 2880 FieldElement writtenField, IncDecOperator operator, A arg); |
| 2882 | 2881 |
| 2883 /// Prefix expression with [operator] reading from a super [field] and writing | 2882 /// Prefix expression with [operator] reading from a super [field] and writing |
| 2884 /// to a super [setter]. | 2883 /// to a super [setter]. |
| 2885 /// | 2884 /// |
| 2886 /// For instance: | 2885 /// For instance: |
| 2887 /// | 2886 /// |
| 2888 /// class A { | 2887 /// class A { |
| 2889 /// var field; | 2888 /// var field; |
| 2890 /// } | 2889 /// } |
| 2891 /// class B extends A { | 2890 /// class B extends A { |
| 2892 /// set field(_) {} | 2891 /// set field(_) {} |
| 2893 /// } | 2892 /// } |
| 2894 /// class C extends B { | 2893 /// class C extends B { |
| 2895 /// m() => ++super.field; | 2894 /// m() => ++super.field; |
| 2896 /// } | 2895 /// } |
| 2897 /// | 2896 /// |
| 2898 R visitSuperFieldSetterPrefix(Send node, FieldElement field, | 2897 R visitSuperFieldSetterPrefix(SendSet node, FieldElement field, |
| 2899 FunctionElement setter, IncDecOperator operator, A arg); | 2898 SetterElement setter, IncDecOperator operator, A arg); |
| 2900 | 2899 |
| 2901 /// Prefix expression with [operator] reading from a super [getter] and | 2900 /// Prefix expression with [operator] reading from a super [getter] and |
| 2902 /// writing to a super [setter]. | 2901 /// writing to a super [setter]. |
| 2903 /// | 2902 /// |
| 2904 /// For instance: | 2903 /// For instance: |
| 2905 /// | 2904 /// |
| 2906 /// class B { | 2905 /// class B { |
| 2907 /// get field => 0; | 2906 /// get field => 0; |
| 2908 /// set field(_) {} | 2907 /// set field(_) {} |
| 2909 /// } | 2908 /// } |
| 2910 /// class C extends B { | 2909 /// class C extends B { |
| 2911 /// m() => ++super.field; | 2910 /// m() => ++super.field; |
| 2912 /// } | 2911 /// } |
| 2913 /// | 2912 /// |
| 2914 R visitSuperGetterSetterPrefix(Send node, FunctionElement getter, | 2913 R visitSuperGetterSetterPrefix(SendSet node, GetterElement getter, |
| 2915 FunctionElement setter, IncDecOperator operator, A arg); | 2914 SetterElement setter, IncDecOperator operator, A arg); |
| 2916 | 2915 |
| 2917 /// Prefix expression with [operator] reading from a super [getter] and | 2916 /// Prefix expression with [operator] reading from a super [getter] and |
| 2918 /// writing to a super [field]. | 2917 /// writing to a super [field]. |
| 2919 /// | 2918 /// |
| 2920 /// For instance: | 2919 /// For instance: |
| 2921 /// | 2920 /// |
| 2922 /// class A { | 2921 /// class A { |
| 2923 /// var field; | 2922 /// var field; |
| 2924 /// } | 2923 /// } |
| 2925 /// class B extends A { | 2924 /// class B extends A { |
| 2926 /// get field => 0; | 2925 /// get field => 0; |
| 2927 /// } | 2926 /// } |
| 2928 /// class C extends B { | 2927 /// class C extends B { |
| 2929 /// m() => ++super.field; | 2928 /// m() => ++super.field; |
| 2930 /// } | 2929 /// } |
| 2931 /// | 2930 /// |
| 2932 R visitSuperGetterFieldPrefix(Send node, FunctionElement getter, | 2931 R visitSuperGetterFieldPrefix(SendSet node, GetterElement getter, |
| 2933 FieldElement field, IncDecOperator operator, A arg); | 2932 FieldElement field, IncDecOperator operator, A arg); |
| 2934 | 2933 |
| 2935 /// Prefix expression with [operator] reading from a super [method], that is, | 2934 /// Prefix expression with [operator] reading from a super [method], that is, |
| 2936 /// closurizing [method], and writing to a super [setter]. | 2935 /// closurizing [method], and writing to a super [setter]. |
| 2937 /// | 2936 /// |
| 2938 /// For instance: | 2937 /// For instance: |
| 2939 /// | 2938 /// |
| 2940 /// class B { | 2939 /// class B { |
| 2941 /// o() {} | 2940 /// o() {} |
| 2942 /// set o(_) {} | 2941 /// set o(_) {} |
| 2943 /// } | 2942 /// } |
| 2944 /// class C extends B { | 2943 /// class C extends B { |
| 2945 /// m() => ++super.o; | 2944 /// m() => ++super.o; |
| 2946 /// } | 2945 /// } |
| 2947 /// | 2946 /// |
| 2948 R visitSuperMethodSetterPrefix(Send node, FunctionElement method, | 2947 R visitSuperMethodSetterPrefix(SendSet node, FunctionElement method, |
| 2949 FunctionElement setter, IncDecOperator operator, A arg); | 2948 SetterElement setter, IncDecOperator operator, A arg); |
| 2950 | 2949 |
| 2951 /// Prefix expression with [operator] reading from a super [method], that is, | 2950 /// Prefix expression with [operator] reading from a super [method], that is, |
| 2952 /// closurizing [method], and writing to an unresolved super setter. | 2951 /// closurizing [method], and writing to an unresolved super setter. |
| 2953 /// | 2952 /// |
| 2954 /// For instance: | 2953 /// For instance: |
| 2955 /// | 2954 /// |
| 2956 /// class B { | 2955 /// class B { |
| 2957 /// o() {} | 2956 /// o() {} |
| 2958 /// set o(_) {} | 2957 /// set o(_) {} |
| 2959 /// } | 2958 /// } |
| 2960 /// class C extends B { | 2959 /// class C extends B { |
| 2961 /// m() => ++super.o; | 2960 /// m() => ++super.o; |
| 2962 /// } | 2961 /// } |
| 2963 /// | 2962 /// |
| 2964 R visitSuperMethodPrefix( | 2963 R visitSuperMethodPrefix( |
| 2965 Send node, FunctionElement method, IncDecOperator operator, A arg); | 2964 Send node, MethodElement method, IncDecOperator operator, A arg); |
| 2966 | 2965 |
| 2967 /// Prefix expression with [operator] reading from an unresolved super getter | 2966 /// Prefix expression with [operator] reading from an unresolved super getter |
| 2968 /// and writing to a super [setter]. | 2967 /// and writing to a super [setter]. |
| 2969 /// | 2968 /// |
| 2970 /// For instance: | 2969 /// For instance: |
| 2971 /// | 2970 /// |
| 2972 /// class B { | 2971 /// class B { |
| 2973 /// set o(_) {} | 2972 /// set o(_) {} |
| 2974 /// } | 2973 /// } |
| 2975 /// class C extends B { | 2974 /// class C extends B { |
| 2976 /// m() => ++super.o; | 2975 /// m() => ++super.o; |
| 2977 /// } | 2976 /// } |
| 2978 /// | 2977 /// |
| 2979 /// | 2978 /// |
| 2980 R visitUnresolvedSuperGetterPrefix(Send node, Element element, | 2979 R visitUnresolvedSuperGetterPrefix(SendSet node, Element element, |
| 2981 MethodElement setter, IncDecOperator operator, A arg); | 2980 SetterElement setter, IncDecOperator operator, A arg); |
| 2982 | 2981 |
| 2983 /// Prefix expression with [operator] reading from a super [getter] and | 2982 /// Prefix expression with [operator] reading from a super [getter] and |
| 2984 /// writing to an unresolved super setter. | 2983 /// writing to an unresolved super setter. |
| 2985 /// | 2984 /// |
| 2986 /// For instance: | 2985 /// For instance: |
| 2987 /// | 2986 /// |
| 2988 /// class B { | 2987 /// class B { |
| 2989 /// get o => 42 | 2988 /// get o => 42 |
| 2990 /// } | 2989 /// } |
| 2991 /// class C extends B { | 2990 /// class C extends B { |
| 2992 /// m() => ++super.o; | 2991 /// m() => ++super.o; |
| 2993 /// } | 2992 /// } |
| 2994 /// | 2993 /// |
| 2995 /// | 2994 /// |
| 2996 R visitUnresolvedSuperSetterPrefix(Send node, MethodElement getter, | 2995 R visitUnresolvedSuperSetterPrefix(SendSet node, GetterElement getter, |
| 2997 Element element, IncDecOperator operator, A arg); | 2996 Element element, IncDecOperator operator, A arg); |
| 2998 | 2997 |
| 2999 /// Prefix expression with [operator] on a type literal for a class [element]. | 2998 /// Prefix expression with [operator] on a type literal for a class [element]. |
| 3000 /// | 2999 /// |
| 3001 /// For instance: | 3000 /// For instance: |
| 3002 /// | 3001 /// |
| 3003 /// class C {} | 3002 /// class C {} |
| 3004 /// m() => ++C; | 3003 /// m() => ++C; |
| 3005 /// | 3004 /// |
| 3006 R visitClassTypeLiteralPrefix( | 3005 R visitClassTypeLiteralPrefix( |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3161 /// writing to a static [setter]. | 3160 /// writing to a static [setter]. |
| 3162 /// | 3161 /// |
| 3163 /// For instance: | 3162 /// For instance: |
| 3164 /// | 3163 /// |
| 3165 /// class C { | 3164 /// class C { |
| 3166 /// static get o => 0; | 3165 /// static get o => 0; |
| 3167 /// static set o(_) {} | 3166 /// static set o(_) {} |
| 3168 /// m() => o++; | 3167 /// m() => o++; |
| 3169 /// } | 3168 /// } |
| 3170 /// | 3169 /// |
| 3171 R visitStaticGetterSetterPostfix(Send node, FunctionElement getter, | 3170 R visitStaticGetterSetterPostfix(Send node, GetterElement getter, |
| 3172 FunctionElement setter, IncDecOperator operator, A arg); | 3171 SetterElement setter, IncDecOperator operator, A arg); |
| 3173 | 3172 |
| 3174 /// Postfix expression with [operator] reading from a static [method], that | 3173 /// Postfix expression with [operator] reading from a static [method], that |
| 3175 /// is, closurizing [method], and writing to a static [setter]. | 3174 /// is, closurizing [method], and writing to a static [setter]. |
| 3176 /// | 3175 /// |
| 3177 /// For instance: | 3176 /// For instance: |
| 3178 /// | 3177 /// |
| 3179 /// class C { | 3178 /// class C { |
| 3180 /// static o() {} | 3179 /// static o() {} |
| 3181 /// static set o(_) {} | 3180 /// static set o(_) {} |
| 3182 /// m() => o++; | 3181 /// m() => o++; |
| 3183 /// } | 3182 /// } |
| 3184 /// | 3183 /// |
| 3185 R visitStaticMethodSetterPostfix(Send node, FunctionElement getter, | 3184 R visitStaticMethodSetterPostfix(Send node, GetterElement getter, |
| 3186 FunctionElement setter, IncDecOperator operator, A arg); | 3185 SetterElement setter, IncDecOperator operator, A arg); |
| 3187 | 3186 |
| 3188 /// Postfix expression with [operator] on a top level [field]. | 3187 /// Postfix expression with [operator] on a top level [field]. |
| 3189 /// | 3188 /// |
| 3190 /// For instance: | 3189 /// For instance: |
| 3191 /// | 3190 /// |
| 3192 /// var field; | 3191 /// var field; |
| 3193 /// m() => field++; | 3192 /// m() => field++; |
| 3194 /// | 3193 /// |
| 3195 R visitTopLevelFieldPostfix( | 3194 R visitTopLevelFieldPostfix( |
| 3196 Send node, FieldElement field, IncDecOperator operator, A arg); | 3195 Send node, FieldElement field, IncDecOperator operator, A arg); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 3207 | 3206 |
| 3208 /// Postfix expression with [operator] reading from a top level [getter] and | 3207 /// Postfix expression with [operator] reading from a top level [getter] and |
| 3209 /// writing to a top level [setter]. | 3208 /// writing to a top level [setter]. |
| 3210 /// | 3209 /// |
| 3211 /// For instance: | 3210 /// For instance: |
| 3212 /// | 3211 /// |
| 3213 /// get o => 0; | 3212 /// get o => 0; |
| 3214 /// set o(_) {} | 3213 /// set o(_) {} |
| 3215 /// m() => o++; | 3214 /// m() => o++; |
| 3216 /// | 3215 /// |
| 3217 R visitTopLevelGetterSetterPostfix(Send node, FunctionElement getter, | 3216 R visitTopLevelGetterSetterPostfix(Send node, GetterElement getter, |
| 3218 FunctionElement setter, IncDecOperator operator, A arg); | 3217 SetterElement setter, IncDecOperator operator, A arg); |
| 3219 | 3218 |
| 3220 /// Postfix expression with [operator] reading from a top level [method], that | 3219 /// Postfix expression with [operator] reading from a top level [method], that |
| 3221 /// is, closurizing [method], and writing to a top level [setter]. | 3220 /// is, closurizing [method], and writing to a top level [setter]. |
| 3222 /// | 3221 /// |
| 3223 /// For instance: | 3222 /// For instance: |
| 3224 /// | 3223 /// |
| 3225 /// o() {} | 3224 /// o() {} |
| 3226 /// set o(_) {} | 3225 /// set o(_) {} |
| 3227 /// m() => o++; | 3226 /// m() => o++; |
| 3228 /// | 3227 /// |
| 3229 R visitTopLevelMethodSetterPostfix(Send node, FunctionElement method, | 3228 R visitTopLevelMethodSetterPostfix(Send node, FunctionElement method, |
| 3230 FunctionElement setter, IncDecOperator operator, A arg); | 3229 SetterElement setter, IncDecOperator operator, A arg); |
| 3231 | 3230 |
| 3232 /// Postfix expression with [operator] on a super [field]. | 3231 /// Postfix expression with [operator] on a super [field]. |
| 3233 /// | 3232 /// |
| 3234 /// For instance: | 3233 /// For instance: |
| 3235 /// | 3234 /// |
| 3236 /// class B { | 3235 /// class B { |
| 3237 /// var field; | 3236 /// var field; |
| 3238 /// } | 3237 /// } |
| 3239 /// class C extends B { | 3238 /// class C extends B { |
| 3240 /// m() => super.field++; | 3239 /// m() => super.field++; |
| 3241 /// } | 3240 /// } |
| 3242 /// | 3241 /// |
| 3243 R visitSuperFieldPostfix( | 3242 R visitSuperFieldPostfix( |
| 3244 Send node, FieldElement field, IncDecOperator operator, A arg); | 3243 SendSet node, FieldElement field, IncDecOperator operator, A arg); |
| 3245 | 3244 |
| 3246 /// Postfix expression with [operator] reading from the super field | 3245 /// Postfix expression with [operator] reading from the super field |
| 3247 /// [readField] and writing to the different super field [writtenField]. | 3246 /// [readField] and writing to the different super field [writtenField]. |
| 3248 /// | 3247 /// |
| 3249 /// For instance: | 3248 /// For instance: |
| 3250 /// | 3249 /// |
| 3251 /// class A { | 3250 /// class A { |
| 3252 /// var field; | 3251 /// var field; |
| 3253 /// } | 3252 /// } |
| 3254 /// class B extends A { | 3253 /// class B extends A { |
| 3255 /// final field; | 3254 /// final field; |
| 3256 /// } | 3255 /// } |
| 3257 /// class C extends B { | 3256 /// class C extends B { |
| 3258 /// m() => super.field++; | 3257 /// m() => super.field++; |
| 3259 /// } | 3258 /// } |
| 3260 /// | 3259 /// |
| 3261 R visitSuperFieldFieldPostfix(Send node, FieldElement readField, | 3260 R visitSuperFieldFieldPostfix(SendSet node, FieldElement readField, |
| 3262 FieldElement writtenField, IncDecOperator operator, A arg); | 3261 FieldElement writtenField, IncDecOperator operator, A arg); |
| 3263 | 3262 |
| 3264 /// Postfix expression with [operator] reading from a super [field] and | 3263 /// Postfix expression with [operator] reading from a super [field] and |
| 3265 /// writing to a super [setter]. | 3264 /// writing to a super [setter]. |
| 3266 /// | 3265 /// |
| 3267 /// For instance: | 3266 /// For instance: |
| 3268 /// | 3267 /// |
| 3269 /// class A { | 3268 /// class A { |
| 3270 /// var field; | 3269 /// var field; |
| 3271 /// } | 3270 /// } |
| 3272 /// class B extends A { | 3271 /// class B extends A { |
| 3273 /// set field(_) {} | 3272 /// set field(_) {} |
| 3274 /// } | 3273 /// } |
| 3275 /// class C extends B { | 3274 /// class C extends B { |
| 3276 /// m() => super.field++; | 3275 /// m() => super.field++; |
| 3277 /// } | 3276 /// } |
| 3278 /// | 3277 /// |
| 3279 R visitSuperFieldSetterPostfix(Send node, FieldElement field, | 3278 R visitSuperFieldSetterPostfix(SendSet node, FieldElement field, |
| 3280 FunctionElement setter, IncDecOperator operator, A arg); | 3279 SetterElement setter, IncDecOperator operator, A arg); |
| 3281 | 3280 |
| 3282 /// Postfix expression with [operator] reading from a super [getter] and | 3281 /// Postfix expression with [operator] reading from a super [getter] and |
| 3283 /// writing to a super [setter]. | 3282 /// writing to a super [setter]. |
| 3284 /// | 3283 /// |
| 3285 /// For instance: | 3284 /// For instance: |
| 3286 /// | 3285 /// |
| 3287 /// class B { | 3286 /// class B { |
| 3288 /// get field => 0; | 3287 /// get field => 0; |
| 3289 /// set field(_) {} | 3288 /// set field(_) {} |
| 3290 /// } | 3289 /// } |
| 3291 /// class C extends B { | 3290 /// class C extends B { |
| 3292 /// m() => super.field++; | 3291 /// m() => super.field++; |
| 3293 /// } | 3292 /// } |
| 3294 /// | 3293 /// |
| 3295 R visitSuperGetterSetterPostfix(Send node, FunctionElement getter, | 3294 R visitSuperGetterSetterPostfix(SendSet node, GetterElement getter, |
| 3296 FunctionElement setter, IncDecOperator operator, A arg); | 3295 SetterElement setter, IncDecOperator operator, A arg); |
| 3297 | 3296 |
| 3298 /// Postfix expression with [operator] reading from a super [getter] and | 3297 /// Postfix expression with [operator] reading from a super [getter] and |
| 3299 /// writing to a super [field]. | 3298 /// writing to a super [field]. |
| 3300 /// | 3299 /// |
| 3301 /// For instance: | 3300 /// For instance: |
| 3302 /// | 3301 /// |
| 3303 /// class A { | 3302 /// class A { |
| 3304 /// var field; | 3303 /// var field; |
| 3305 /// } | 3304 /// } |
| 3306 /// class B extends A { | 3305 /// class B extends A { |
| 3307 /// get field => 0; | 3306 /// get field => 0; |
| 3308 /// } | 3307 /// } |
| 3309 /// class C extends B { | 3308 /// class C extends B { |
| 3310 /// m() => super.field++; | 3309 /// m() => super.field++; |
| 3311 /// } | 3310 /// } |
| 3312 /// | 3311 /// |
| 3313 R visitSuperGetterFieldPostfix(Send node, FunctionElement getter, | 3312 R visitSuperGetterFieldPostfix(SendSet node, GetterElement getter, |
| 3314 FieldElement field, IncDecOperator operator, A arg); | 3313 FieldElement field, IncDecOperator operator, A arg); |
| 3315 | 3314 |
| 3316 /// Postfix expression with [operator] reading from a super [method], that is, | 3315 /// Postfix expression with [operator] reading from a super [method], that is, |
| 3317 /// closurizing [method], and writing to a super [setter]. | 3316 /// closurizing [method], and writing to a super [setter]. |
| 3318 /// | 3317 /// |
| 3319 /// For instance: | 3318 /// For instance: |
| 3320 /// | 3319 /// |
| 3321 /// class B { | 3320 /// class B { |
| 3322 /// o() {} | 3321 /// o() {} |
| 3323 /// set o(_) {} | 3322 /// set o(_) {} |
| 3324 /// } | 3323 /// } |
| 3325 /// class C extends B { | 3324 /// class C extends B { |
| 3326 /// m() => super.o++; | 3325 /// m() => super.o++; |
| 3327 /// } | 3326 /// } |
| 3328 /// | 3327 /// |
| 3329 R visitSuperMethodSetterPostfix(Send node, FunctionElement method, | 3328 R visitSuperMethodSetterPostfix(SendSet node, FunctionElement method, |
| 3330 FunctionElement setter, IncDecOperator operator, A arg); | 3329 SetterElement setter, IncDecOperator operator, A arg); |
| 3331 | 3330 |
| 3332 /// Postfix expression with [operator] reading from a super [method], that is, | 3331 /// Postfix expression with [operator] reading from a super [method], that is, |
| 3333 /// closurizing [method], and writing to an unresolved super. | 3332 /// closurizing [method], and writing to an unresolved super. |
| 3334 /// | 3333 /// |
| 3335 /// For instance: | 3334 /// For instance: |
| 3336 /// | 3335 /// |
| 3337 /// class B { | 3336 /// class B { |
| 3338 /// o() {} | 3337 /// o() {} |
| 3339 /// set o(_) {} | 3338 /// set o(_) {} |
| 3340 /// } | 3339 /// } |
| 3341 /// class C extends B { | 3340 /// class C extends B { |
| 3342 /// m() => super.o++; | 3341 /// m() => super.o++; |
| 3343 /// } | 3342 /// } |
| 3344 /// | 3343 /// |
| 3345 R visitSuperMethodPostfix( | 3344 R visitSuperMethodPostfix( |
| 3346 Send node, FunctionElement method, IncDecOperator operator, A arg); | 3345 Send node, MethodElement method, IncDecOperator operator, A arg); |
| 3347 | 3346 |
| 3348 /// Prefix expression with [operator] reading from an unresolved super getter | 3347 /// Prefix expression with [operator] reading from an unresolved super getter |
| 3349 /// and writing to a super [setter]. | 3348 /// and writing to a super [setter]. |
| 3350 /// | 3349 /// |
| 3351 /// For instance: | 3350 /// For instance: |
| 3352 /// | 3351 /// |
| 3353 /// class B { | 3352 /// class B { |
| 3354 /// set o(_) {} | 3353 /// set o(_) {} |
| 3355 /// } | 3354 /// } |
| 3356 /// class C extends B { | 3355 /// class C extends B { |
| 3357 /// m() => super.o++; | 3356 /// m() => super.o++; |
| 3358 /// } | 3357 /// } |
| 3359 /// | 3358 /// |
| 3360 /// | 3359 /// |
| 3361 R visitUnresolvedSuperGetterPostfix(Send node, Element element, | 3360 R visitUnresolvedSuperGetterPostfix(SendSet node, Element element, |
| 3362 MethodElement setter, IncDecOperator operator, A arg); | 3361 SetterElement setter, IncDecOperator operator, A arg); |
| 3363 | 3362 |
| 3364 /// Prefix expression with [operator] reading from a super [getter] and | 3363 /// Prefix expression with [operator] reading from a super [getter] and |
| 3365 /// writing to an unresolved super setter. | 3364 /// writing to an unresolved super setter. |
| 3366 /// | 3365 /// |
| 3367 /// For instance: | 3366 /// For instance: |
| 3368 /// | 3367 /// |
| 3369 /// class B { | 3368 /// class B { |
| 3370 /// get o => 42 | 3369 /// get o => 42 |
| 3371 /// } | 3370 /// } |
| 3372 /// class C extends B { | 3371 /// class C extends B { |
| 3373 /// m() => super.o++; | 3372 /// m() => super.o++; |
| 3374 /// } | 3373 /// } |
| 3375 /// | 3374 /// |
| 3376 /// | 3375 /// |
| 3377 R visitUnresolvedSuperSetterPostfix(Send node, MethodElement getter, | 3376 R visitUnresolvedSuperSetterPostfix(SendSet node, GetterElement getter, |
| 3378 Element element, IncDecOperator operator, A arg); | 3377 Element element, IncDecOperator operator, A arg); |
| 3379 | 3378 |
| 3380 /// Postfix expression with [operator] on a type literal for a class | 3379 /// Postfix expression with [operator] on a type literal for a class |
| 3381 /// [element]. | 3380 /// [element]. |
| 3382 /// | 3381 /// |
| 3383 /// For instance: | 3382 /// For instance: |
| 3384 /// | 3383 /// |
| 3385 /// class C {} | 3384 /// class C {} |
| 3386 /// m() => C++; | 3385 /// m() => C++; |
| 3387 /// | 3386 /// |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3481 /// m4() => unresolved.foo = 42; | 3480 /// m4() => unresolved.foo = 42; |
| 3482 /// m5() => unresolved.Foo.bar = 42; | 3481 /// m5() => unresolved.Foo.bar = 42; |
| 3483 /// m6() => C.unresolved = 42; | 3482 /// m6() => C.unresolved = 42; |
| 3484 /// m7() => prefix.C.unresolved = 42; | 3483 /// m7() => prefix.C.unresolved = 42; |
| 3485 /// m8() => prefix?.unresolved = 42; | 3484 /// m8() => prefix?.unresolved = 42; |
| 3486 /// m9() => Unresolved?.foo = 42; | 3485 /// m9() => Unresolved?.foo = 42; |
| 3487 /// m10() => unresolved?.foo = 42; | 3486 /// m10() => unresolved?.foo = 42; |
| 3488 /// m11() => unresolved?.Foo?.bar = 42; | 3487 /// m11() => unresolved?.Foo?.bar = 42; |
| 3489 /// | 3488 /// |
| 3490 // TODO(johnniwinther): Split the cases in which a prefix is resolved. | 3489 // TODO(johnniwinther): Split the cases in which a prefix is resolved. |
| 3491 R visitUnresolvedSet(Send node, Element element, Node rhs, A arg); | 3490 R visitUnresolvedSet(SendSet node, Element element, Node rhs, A arg); |
| 3492 | 3491 |
| 3493 /// Assignment of [rhs] to the unresolved super [element]. | 3492 /// Assignment of [rhs] to the unresolved super [element]. |
| 3494 /// | 3493 /// |
| 3495 /// For instance: | 3494 /// For instance: |
| 3496 /// | 3495 /// |
| 3497 /// class B {} | 3496 /// class B {} |
| 3498 /// class C { | 3497 /// class C { |
| 3499 /// m() => super.foo = 42; | 3498 /// m() => super.foo = 42; |
| 3500 /// } | 3499 /// } |
| 3501 /// | 3500 /// |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3538 /// non-existing static getter and writing to the static [setter]. | 3537 /// non-existing static getter and writing to the static [setter]. |
| 3539 /// | 3538 /// |
| 3540 /// For instance: | 3539 /// For instance: |
| 3541 /// | 3540 /// |
| 3542 /// class C { | 3541 /// class C { |
| 3543 /// set foo(_) {} | 3542 /// set foo(_) {} |
| 3544 /// } | 3543 /// } |
| 3545 /// m1() => C.foo += 42; | 3544 /// m1() => C.foo += 42; |
| 3546 /// | 3545 /// |
| 3547 R visitUnresolvedStaticGetterCompound(Send node, Element element, | 3546 R visitUnresolvedStaticGetterCompound(Send node, Element element, |
| 3548 MethodElement setter, AssignmentOperator operator, Node rhs, A arg); | 3547 SetterElement setter, AssignmentOperator operator, Node rhs, A arg); |
| 3549 | 3548 |
| 3550 /// Compound assignment of [rhs] with [operator] reading from the | 3549 /// Compound assignment of [rhs] with [operator] reading from the |
| 3551 /// non-existing top level getter and writing to the top level [setter]. | 3550 /// non-existing top level getter and writing to the top level [setter]. |
| 3552 /// | 3551 /// |
| 3553 /// For instance: | 3552 /// For instance: |
| 3554 /// | 3553 /// |
| 3555 /// set foo(_) {} | 3554 /// set foo(_) {} |
| 3556 /// m1() => foo += 42; | 3555 /// m1() => foo += 42; |
| 3557 /// | 3556 /// |
| 3558 R visitUnresolvedTopLevelGetterCompound(Send node, Element element, | 3557 R visitUnresolvedTopLevelGetterCompound(Send node, Element element, |
| 3559 MethodElement setter, AssignmentOperator operator, Node rhs, A arg); | 3558 SetterElement setter, AssignmentOperator operator, Node rhs, A arg); |
| 3560 | 3559 |
| 3561 /// Compound assignment of [rhs] with [operator] reading from the static | 3560 /// Compound assignment of [rhs] with [operator] reading from the static |
| 3562 /// [getter] and writing to the non-existing static setter. | 3561 /// [getter] and writing to the non-existing static setter. |
| 3563 /// | 3562 /// |
| 3564 /// For instance: | 3563 /// For instance: |
| 3565 /// | 3564 /// |
| 3566 /// class C { | 3565 /// class C { |
| 3567 /// get foo => 42; | 3566 /// get foo => 42; |
| 3568 /// } | 3567 /// } |
| 3569 /// m1() => C.foo += 42; | 3568 /// m1() => C.foo += 42; |
| 3570 /// | 3569 /// |
| 3571 R visitUnresolvedStaticSetterCompound(Send node, MethodElement getter, | 3570 R visitUnresolvedStaticSetterCompound(Send node, GetterElement getter, |
| 3572 Element element, AssignmentOperator operator, Node rhs, A arg); | 3571 Element element, AssignmentOperator operator, Node rhs, A arg); |
| 3573 | 3572 |
| 3574 /// Compound assignment of [rhs] with [operator] reading from the top level | 3573 /// Compound assignment of [rhs] with [operator] reading from the top level |
| 3575 /// [getter] and writing to the non-existing top level setter. | 3574 /// [getter] and writing to the non-existing top level setter. |
| 3576 /// | 3575 /// |
| 3577 /// For instance: | 3576 /// For instance: |
| 3578 /// | 3577 /// |
| 3579 /// get foo => 42; | 3578 /// get foo => 42; |
| 3580 /// m1() => foo += 42; | 3579 /// m1() => foo += 42; |
| 3581 /// | 3580 /// |
| 3582 R visitUnresolvedTopLevelSetterCompound(Send node, MethodElement getter, | 3581 R visitUnresolvedTopLevelSetterCompound(Send node, GetterElement getter, |
| 3583 Element element, AssignmentOperator operator, Node rhs, A arg); | 3582 Element element, AssignmentOperator operator, Node rhs, A arg); |
| 3584 | 3583 |
| 3585 /// Compound assignment of [rhs] with [operator] reading the closurized static | 3584 /// Compound assignment of [rhs] with [operator] reading the closurized static |
| 3586 /// [method] and trying to invoke the non-existing setter. | 3585 /// [method] and trying to invoke the non-existing setter. |
| 3587 /// | 3586 /// |
| 3588 /// For instance: | 3587 /// For instance: |
| 3589 /// | 3588 /// |
| 3590 /// class C { | 3589 /// class C { |
| 3591 /// foo() {} | 3590 /// foo() {} |
| 3592 /// } | 3591 /// } |
| (...skipping 13 matching lines...) Expand all Loading... |
| 3606 /// m4() => unresolved.foo += 42; | 3605 /// m4() => unresolved.foo += 42; |
| 3607 /// m5() => unresolved.Foo.bar += 42; | 3606 /// m5() => unresolved.Foo.bar += 42; |
| 3608 /// m6() => C.unresolved += 42; | 3607 /// m6() => C.unresolved += 42; |
| 3609 /// m7() => prefix.C.unresolved += 42; | 3608 /// m7() => prefix.C.unresolved += 42; |
| 3610 /// m8() => prefix?.unresolved += 42; | 3609 /// m8() => prefix?.unresolved += 42; |
| 3611 /// m9() => Unresolved?.foo += 42; | 3610 /// m9() => Unresolved?.foo += 42; |
| 3612 /// m10() => unresolved?.foo += 42; | 3611 /// m10() => unresolved?.foo += 42; |
| 3613 /// m11() => unresolved?.Foo?.bar += 42; | 3612 /// m11() => unresolved?.Foo?.bar += 42; |
| 3614 /// | 3613 /// |
| 3615 // TODO(johnniwinther): Split the cases in which a prefix is resolved. | 3614 // TODO(johnniwinther): Split the cases in which a prefix is resolved. |
| 3616 R visitUnresolvedCompound( | 3615 R visitUnresolvedCompound(Send node, ErroneousElement element, |
| 3617 Send node, Element element, AssignmentOperator operator, Node rhs, A arg); | 3616 AssignmentOperator operator, Node rhs, A arg); |
| 3618 | 3617 |
| 3619 /// Prefix operation of [operator] reading from the non-existing static getter | 3618 /// Prefix operation of [operator] reading from the non-existing static getter |
| 3620 /// and writing to the static [setter]. | 3619 /// and writing to the static [setter]. |
| 3621 /// | 3620 /// |
| 3622 /// For instance: | 3621 /// For instance: |
| 3623 /// | 3622 /// |
| 3624 /// class C { | 3623 /// class C { |
| 3625 /// set foo(_) {} | 3624 /// set foo(_) {} |
| 3626 /// } | 3625 /// } |
| 3627 /// m1() => ++C.foo; | 3626 /// m1() => ++C.foo; |
| 3628 /// | 3627 /// |
| 3629 R visitUnresolvedStaticGetterPrefix(Send node, Element element, | 3628 R visitUnresolvedStaticGetterPrefix(Send node, Element element, |
| 3630 MethodElement setter, IncDecOperator operator, A arg); | 3629 SetterElement setter, IncDecOperator operator, A arg); |
| 3631 | 3630 |
| 3632 /// Prefix operation of [operator] reading from the non-existing top level | 3631 /// Prefix operation of [operator] reading from the non-existing top level |
| 3633 /// getter and writing to the top level [setter]. | 3632 /// getter and writing to the top level [setter]. |
| 3634 /// | 3633 /// |
| 3635 /// For instance: | 3634 /// For instance: |
| 3636 /// | 3635 /// |
| 3637 /// set foo(_) {} | 3636 /// set foo(_) {} |
| 3638 /// m1() => ++foo; | 3637 /// m1() => ++foo; |
| 3639 /// | 3638 /// |
| 3640 R visitUnresolvedTopLevelGetterPrefix(Send node, Element element, | 3639 R visitUnresolvedTopLevelGetterPrefix(Send node, Element element, |
| 3641 MethodElement setter, IncDecOperator operator, A arg); | 3640 SetterElement setter, IncDecOperator operator, A arg); |
| 3642 | 3641 |
| 3643 /// Prefix operation of [operator] reading from the static [getter] and | 3642 /// Prefix operation of [operator] reading from the static [getter] and |
| 3644 /// writing to the non-existing static setter. | 3643 /// writing to the non-existing static setter. |
| 3645 /// | 3644 /// |
| 3646 /// For instance: | 3645 /// For instance: |
| 3647 /// | 3646 /// |
| 3648 /// class C { | 3647 /// class C { |
| 3649 /// get foo => 42; | 3648 /// get foo => 42; |
| 3650 /// } | 3649 /// } |
| 3651 /// m1() => ++C.foo; | 3650 /// m1() => ++C.foo; |
| 3652 /// | 3651 /// |
| 3653 R visitUnresolvedStaticSetterPrefix(Send node, MethodElement getter, | 3652 R visitUnresolvedStaticSetterPrefix(Send node, GetterElement getter, |
| 3654 Element element, IncDecOperator operator, A arg); | 3653 Element element, IncDecOperator operator, A arg); |
| 3655 | 3654 |
| 3656 /// Postfix operation of [operator] reading from the top level [getter] and | 3655 /// Postfix operation of [operator] reading from the top level [getter] and |
| 3657 /// writing to the non-existing top level setter. | 3656 /// writing to the non-existing top level setter. |
| 3658 /// | 3657 /// |
| 3659 /// For instance: | 3658 /// For instance: |
| 3660 /// | 3659 /// |
| 3661 /// get foo => 42; | 3660 /// get foo => 42; |
| 3662 /// m1() => ++foo; | 3661 /// m1() => ++foo; |
| 3663 /// | 3662 /// |
| 3664 R visitUnresolvedTopLevelSetterPrefix(Send node, MethodElement getter, | 3663 R visitUnresolvedTopLevelSetterPrefix(Send node, GetterElement getter, |
| 3665 Element element, IncDecOperator operator, A arg); | 3664 Element element, IncDecOperator operator, A arg); |
| 3666 | 3665 |
| 3667 /// Prefix operation of [operator] reading the closurized static [method] and | 3666 /// Prefix operation of [operator] reading the closurized static [method] and |
| 3668 /// trying to invoke the non-existing setter. | 3667 /// trying to invoke the non-existing setter. |
| 3669 /// | 3668 /// |
| 3670 /// For instance: | 3669 /// For instance: |
| 3671 /// | 3670 /// |
| 3672 /// class C { | 3671 /// class C { |
| 3673 /// foo() {} | 3672 /// foo() {} |
| 3674 /// } | 3673 /// } |
| (...skipping 27 matching lines...) Expand all Loading... |
| 3702 /// m5() => ++unresolved.Foo.bar; | 3701 /// m5() => ++unresolved.Foo.bar; |
| 3703 /// m6() => ++C.unresolved; | 3702 /// m6() => ++C.unresolved; |
| 3704 /// m7() => ++prefix.C.unresolved; | 3703 /// m7() => ++prefix.C.unresolved; |
| 3705 /// m8() => ++prefix?.unresolved; | 3704 /// m8() => ++prefix?.unresolved; |
| 3706 /// m9() => ++Unresolved?.foo; | 3705 /// m9() => ++Unresolved?.foo; |
| 3707 /// m10() => ++unresolved?.foo; | 3706 /// m10() => ++unresolved?.foo; |
| 3708 /// m11() => ++unresolved?.Foo?.bar; | 3707 /// m11() => ++unresolved?.Foo?.bar; |
| 3709 /// | 3708 /// |
| 3710 // TODO(johnniwinther): Split the cases in which a prefix is resolved. | 3709 // TODO(johnniwinther): Split the cases in which a prefix is resolved. |
| 3711 R visitUnresolvedPrefix( | 3710 R visitUnresolvedPrefix( |
| 3712 Send node, Element element, IncDecOperator operator, A arg); | 3711 Send node, ErroneousElement element, IncDecOperator operator, A arg); |
| 3713 | 3712 |
| 3714 /// Postfix operation of [operator] reading from the non-existing static | 3713 /// Postfix operation of [operator] reading from the non-existing static |
| 3715 /// getter and writing to the static [setter]. | 3714 /// getter and writing to the static [setter]. |
| 3716 /// | 3715 /// |
| 3717 /// For instance: | 3716 /// For instance: |
| 3718 /// | 3717 /// |
| 3719 /// class C { | 3718 /// class C { |
| 3720 /// set foo(_) {} | 3719 /// set foo(_) {} |
| 3721 /// } | 3720 /// } |
| 3722 /// m1() => C.foo++; | 3721 /// m1() => C.foo++; |
| 3723 /// | 3722 /// |
| 3724 R visitUnresolvedStaticGetterPostfix(Send node, Element element, | 3723 R visitUnresolvedStaticGetterPostfix(Send node, Element element, |
| 3725 MethodElement setter, IncDecOperator operator, A arg); | 3724 SetterElement setter, IncDecOperator operator, A arg); |
| 3726 | 3725 |
| 3727 /// Postfix operation of [operator] reading from the non-existing top level | 3726 /// Postfix operation of [operator] reading from the non-existing top level |
| 3728 /// getter and writing to the top level [setter]. | 3727 /// getter and writing to the top level [setter]. |
| 3729 /// | 3728 /// |
| 3730 /// For instance: | 3729 /// For instance: |
| 3731 /// | 3730 /// |
| 3732 /// set foo(_) {} | 3731 /// set foo(_) {} |
| 3733 /// m1() => foo++; | 3732 /// m1() => foo++; |
| 3734 /// | 3733 /// |
| 3735 R visitUnresolvedTopLevelGetterPostfix(Send node, Element element, | 3734 R visitUnresolvedTopLevelGetterPostfix(Send node, Element element, |
| 3736 MethodElement setter, IncDecOperator operator, A arg); | 3735 SetterElement setter, IncDecOperator operator, A arg); |
| 3737 | 3736 |
| 3738 /// Postfix operation of [operator] reading from the static [getter] and | 3737 /// Postfix operation of [operator] reading from the static [getter] and |
| 3739 /// writing to the non-existing static setter. | 3738 /// writing to the non-existing static setter. |
| 3740 /// | 3739 /// |
| 3741 /// For instance: | 3740 /// For instance: |
| 3742 /// | 3741 /// |
| 3743 /// class C { | 3742 /// class C { |
| 3744 /// get foo => 42; | 3743 /// get foo => 42; |
| 3745 /// } | 3744 /// } |
| 3746 /// m1() => C.foo++; | 3745 /// m1() => C.foo++; |
| 3747 /// | 3746 /// |
| 3748 R visitUnresolvedStaticSetterPostfix(Send node, MethodElement getter, | 3747 R visitUnresolvedStaticSetterPostfix(Send node, GetterElement getter, |
| 3749 Element element, IncDecOperator operator, A arg); | 3748 Element element, IncDecOperator operator, A arg); |
| 3750 | 3749 |
| 3751 /// Postfix operation of [operator] reading from the top level [getter] and | 3750 /// Postfix operation of [operator] reading from the top level [getter] and |
| 3752 /// writing to the non-existing top level setter. | 3751 /// writing to the non-existing top level setter. |
| 3753 /// | 3752 /// |
| 3754 /// For instance: | 3753 /// For instance: |
| 3755 /// | 3754 /// |
| 3756 /// get foo => 42; | 3755 /// get foo => 42; |
| 3757 /// m1() => foo++; | 3756 /// m1() => foo++; |
| 3758 /// | 3757 /// |
| 3759 R visitUnresolvedTopLevelSetterPostfix(Send node, MethodElement getter, | 3758 R visitUnresolvedTopLevelSetterPostfix(Send node, GetterElement getter, |
| 3760 Element element, IncDecOperator operator, A arg); | 3759 Element element, IncDecOperator operator, A arg); |
| 3761 | 3760 |
| 3762 /// Postfix operation of [operator] reading the closurized static [method] and | 3761 /// Postfix operation of [operator] reading the closurized static [method] and |
| 3763 /// trying to invoke the non-existing setter. | 3762 /// trying to invoke the non-existing setter. |
| 3764 /// | 3763 /// |
| 3765 /// For instance: | 3764 /// For instance: |
| 3766 /// | 3765 /// |
| 3767 /// class C { | 3766 /// class C { |
| 3768 /// foo() {} | 3767 /// foo() {} |
| 3769 /// } | 3768 /// } |
| (...skipping 27 matching lines...) Expand all Loading... |
| 3797 /// m5() => unresolved.Foo.bar++; | 3796 /// m5() => unresolved.Foo.bar++; |
| 3798 /// m6() => C.unresolved++; | 3797 /// m6() => C.unresolved++; |
| 3799 /// m7() => prefix.C.unresolved++; | 3798 /// m7() => prefix.C.unresolved++; |
| 3800 /// m8() => prefix?.unresolved++; | 3799 /// m8() => prefix?.unresolved++; |
| 3801 /// m9() => Unresolved?.foo++; | 3800 /// m9() => Unresolved?.foo++; |
| 3802 /// m10() => unresolved?.foo++; | 3801 /// m10() => unresolved?.foo++; |
| 3803 /// m11() => unresolved?.Foo?.bar++; | 3802 /// m11() => unresolved?.Foo?.bar++; |
| 3804 /// | 3803 /// |
| 3805 // TODO(johnniwinther): Split the cases in which a prefix is resolved. | 3804 // TODO(johnniwinther): Split the cases in which a prefix is resolved. |
| 3806 R visitUnresolvedPostfix( | 3805 R visitUnresolvedPostfix( |
| 3807 Send node, Element element, IncDecOperator operator, A arg); | 3806 Send node, ErroneousElement element, IncDecOperator operator, A arg); |
| 3808 | 3807 |
| 3809 /// Invocation of an undefined unary [operator] on [expression]. | 3808 /// Invocation of an undefined unary [operator] on [expression]. |
| 3810 R errorUndefinedUnaryExpression( | 3809 R errorUndefinedUnaryExpression( |
| 3811 Send node, Operator operator, Node expression, A arg); | 3810 Send node, Operator operator, Node expression, A arg); |
| 3812 | 3811 |
| 3813 /// Invocation of an undefined unary [operator] with operands | 3812 /// Invocation of an undefined unary [operator] with operands |
| 3814 /// [left] and [right]. | 3813 /// [left] and [right]. |
| 3815 R errorUndefinedBinaryExpression( | 3814 R errorUndefinedBinaryExpression( |
| 3816 Send node, Node left, Operator operator, Node right, A arg); | 3815 Send node, Node left, Operator operator, Node right, A arg); |
| 3817 | 3816 |
| (...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4240 /// Apply this visitor to the initializers of [constructor]. | 4239 /// Apply this visitor to the initializers of [constructor]. |
| 4241 applyInitializers(FunctionExpression constructor, A arg); | 4240 applyInitializers(FunctionExpression constructor, A arg); |
| 4242 | 4241 |
| 4243 /// A declaration of a top level [getter]. | 4242 /// A declaration of a top level [getter]. |
| 4244 /// | 4243 /// |
| 4245 /// For instance: | 4244 /// For instance: |
| 4246 /// | 4245 /// |
| 4247 /// get m => 42; | 4246 /// get m => 42; |
| 4248 /// | 4247 /// |
| 4249 R visitTopLevelGetterDeclaration( | 4248 R visitTopLevelGetterDeclaration( |
| 4250 FunctionExpression node, MethodElement getter, Node body, A arg); | 4249 FunctionExpression node, GetterElement getter, Node body, A arg); |
| 4251 | 4250 |
| 4252 /// A declaration of a top level [setter]. | 4251 /// A declaration of a top level [setter]. |
| 4253 /// | 4252 /// |
| 4254 /// For instance: | 4253 /// For instance: |
| 4255 /// | 4254 /// |
| 4256 /// set m(a) {} | 4255 /// set m(a) {} |
| 4257 /// | 4256 /// |
| 4258 R visitTopLevelSetterDeclaration(FunctionExpression node, | 4257 R visitTopLevelSetterDeclaration(FunctionExpression node, |
| 4259 MethodElement setter, NodeList parameters, Node body, A arg); | 4258 SetterElement setter, NodeList parameters, Node body, A arg); |
| 4260 | 4259 |
| 4261 /// A declaration of a top level [function]. | 4260 /// A declaration of a top level [function]. |
| 4262 /// | 4261 /// |
| 4263 /// For instance: | 4262 /// For instance: |
| 4264 /// | 4263 /// |
| 4265 /// m(a) {} | 4264 /// m(a) {} |
| 4266 /// | 4265 /// |
| 4267 R visitTopLevelFunctionDeclaration(FunctionExpression node, | 4266 R visitTopLevelFunctionDeclaration(FunctionExpression node, |
| 4268 MethodElement function, NodeList parameters, Node body, A arg); | 4267 MethodElement function, NodeList parameters, Node body, A arg); |
| 4269 | 4268 |
| 4270 /// A declaration of a static [getter]. | 4269 /// A declaration of a static [getter]. |
| 4271 /// | 4270 /// |
| 4272 /// For instance: | 4271 /// For instance: |
| 4273 /// | 4272 /// |
| 4274 /// class C { | 4273 /// class C { |
| 4275 /// static get m => 42; | 4274 /// static get m => 42; |
| 4276 /// } | 4275 /// } |
| 4277 /// | 4276 /// |
| 4278 R visitStaticGetterDeclaration( | 4277 R visitStaticGetterDeclaration( |
| 4279 FunctionExpression node, MethodElement getter, Node body, A arg); | 4278 FunctionExpression node, GetterElement getter, Node body, A arg); |
| 4280 | 4279 |
| 4281 /// A declaration of a static [setter]. | 4280 /// A declaration of a static [setter]. |
| 4282 /// | 4281 /// |
| 4283 /// For instance: | 4282 /// For instance: |
| 4284 /// | 4283 /// |
| 4285 /// class C { | 4284 /// class C { |
| 4286 /// static set m(a) {} | 4285 /// static set m(a) {} |
| 4287 /// } | 4286 /// } |
| 4288 /// | 4287 /// |
| 4289 R visitStaticSetterDeclaration(FunctionExpression node, MethodElement setter, | 4288 R visitStaticSetterDeclaration(FunctionExpression node, SetterElement setter, |
| 4290 NodeList parameters, Node body, A arg); | 4289 NodeList parameters, Node body, A arg); |
| 4291 | 4290 |
| 4292 /// A declaration of a static [function]. | 4291 /// A declaration of a static [function]. |
| 4293 /// | 4292 /// |
| 4294 /// For instance: | 4293 /// For instance: |
| 4295 /// | 4294 /// |
| 4296 /// class C { | 4295 /// class C { |
| 4297 /// static m(a) {} | 4296 /// static m(a) {} |
| 4298 /// } | 4297 /// } |
| 4299 /// | 4298 /// |
| 4300 R visitStaticFunctionDeclaration(FunctionExpression node, | 4299 R visitStaticFunctionDeclaration(FunctionExpression node, |
| 4301 MethodElement function, NodeList parameters, Node body, A arg); | 4300 MethodElement function, NodeList parameters, Node body, A arg); |
| 4302 | 4301 |
| 4303 /// A declaration of an abstract instance [getter]. | 4302 /// A declaration of an abstract instance [getter]. |
| 4304 /// | 4303 /// |
| 4305 /// For instance: | 4304 /// For instance: |
| 4306 /// | 4305 /// |
| 4307 /// abstract class C { | 4306 /// abstract class C { |
| 4308 /// get m; | 4307 /// get m; |
| 4309 /// } | 4308 /// } |
| 4310 /// | 4309 /// |
| 4311 R visitAbstractGetterDeclaration( | 4310 R visitAbstractGetterDeclaration( |
| 4312 FunctionExpression node, MethodElement getter, A arg); | 4311 FunctionExpression node, GetterElement getter, A arg); |
| 4313 | 4312 |
| 4314 /// A declaration of an abstract instance [setter]. | 4313 /// A declaration of an abstract instance [setter]. |
| 4315 /// | 4314 /// |
| 4316 /// For instance: | 4315 /// For instance: |
| 4317 /// | 4316 /// |
| 4318 /// abstract class C { | 4317 /// abstract class C { |
| 4319 /// set m(a); | 4318 /// set m(a); |
| 4320 /// } | 4319 /// } |
| 4321 /// | 4320 /// |
| 4322 R visitAbstractSetterDeclaration(FunctionExpression node, | 4321 R visitAbstractSetterDeclaration(FunctionExpression node, |
| 4323 MethodElement setter, NodeList parameters, A arg); | 4322 SetterElement setter, NodeList parameters, A arg); |
| 4324 | 4323 |
| 4325 /// A declaration of an abstract instance [method]. | 4324 /// A declaration of an abstract instance [method]. |
| 4326 /// | 4325 /// |
| 4327 /// For instance: | 4326 /// For instance: |
| 4328 /// | 4327 /// |
| 4329 /// abstract class C { | 4328 /// abstract class C { |
| 4330 /// m(a); | 4329 /// m(a); |
| 4331 /// } | 4330 /// } |
| 4332 /// | 4331 /// |
| 4333 R visitAbstractMethodDeclaration(FunctionExpression node, | 4332 R visitAbstractMethodDeclaration(FunctionExpression node, |
| 4334 MethodElement method, NodeList parameters, A arg); | 4333 MethodElement method, NodeList parameters, A arg); |
| 4335 | 4334 |
| 4336 /// A declaration of an instance [getter]. | 4335 /// A declaration of an instance [getter]. |
| 4337 /// | 4336 /// |
| 4338 /// For instance: | 4337 /// For instance: |
| 4339 /// | 4338 /// |
| 4340 /// class C { | 4339 /// class C { |
| 4341 /// get m => 42; | 4340 /// get m => 42; |
| 4342 /// } | 4341 /// } |
| 4343 /// | 4342 /// |
| 4344 R visitInstanceGetterDeclaration( | 4343 R visitInstanceGetterDeclaration( |
| 4345 FunctionExpression node, MethodElement getter, Node body, A arg); | 4344 FunctionExpression node, GetterElement getter, Node body, A arg); |
| 4346 | 4345 |
| 4347 /// A declaration of an instance [setter]. | 4346 /// A declaration of an instance [setter]. |
| 4348 /// | 4347 /// |
| 4349 /// For instance: | 4348 /// For instance: |
| 4350 /// | 4349 /// |
| 4351 /// class C { | 4350 /// class C { |
| 4352 /// set m(a) {} | 4351 /// set m(a) {} |
| 4353 /// } | 4352 /// } |
| 4354 /// | 4353 /// |
| 4355 R visitInstanceSetterDeclaration(FunctionExpression node, | 4354 R visitInstanceSetterDeclaration(FunctionExpression node, |
| 4356 MethodElement setter, NodeList parameters, Node body, A arg); | 4355 SetterElement setter, NodeList parameters, Node body, A arg); |
| 4357 | 4356 |
| 4358 /// A declaration of an instance [method]. | 4357 /// A declaration of an instance [method]. |
| 4359 /// | 4358 /// |
| 4360 /// For instance: | 4359 /// For instance: |
| 4361 /// | 4360 /// |
| 4362 /// class C { | 4361 /// class C { |
| 4363 /// m(a) {} | 4362 /// m(a) {} |
| 4364 /// } | 4363 /// } |
| 4365 /// | 4364 /// |
| 4366 R visitInstanceMethodDeclaration(FunctionExpression node, | 4365 R visitInstanceMethodDeclaration(FunctionExpression node, |
| (...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4717 /// | 4716 /// |
| 4718 /// For instance `this._(42)` in: | 4717 /// For instance `this._(42)` in: |
| 4719 /// | 4718 /// |
| 4720 /// class C { | 4719 /// class C { |
| 4721 /// C() : this._(42); | 4720 /// C() : this._(42); |
| 4722 /// } | 4721 /// } |
| 4723 /// | 4722 /// |
| 4724 R errorUnresolvedThisConstructorInvoke( | 4723 R errorUnresolvedThisConstructorInvoke( |
| 4725 Send node, Element element, NodeList arguments, Selector selector, A arg); | 4724 Send node, Element element, NodeList arguments, Selector selector, A arg); |
| 4726 } | 4725 } |
| OLD | NEW |