| 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 part of dart2js.semantics_visitor; | 5 part of dart2js.semantics_visitor; |
| 6 | 6 |
| 7 /// Mixin that implements all `errorX` methods of [SemanticSendVisitor] by | 7 /// Mixin that implements all `errorX` methods of [SemanticSendVisitor] by |
| 8 /// delegating to a bulk handler. | 8 /// delegating to a bulk handler. |
| 9 /// | 9 /// |
| 10 /// Use this mixin to provide a trivial implementation for all `errorX` methods. | 10 /// Use this mixin to provide a trivial implementation for all `errorX` methods. |
| 11 abstract class ErrorBulkMixin<R, A> implements SemanticSendVisitor<R, A> { | 11 abstract class ErrorBulkMixin<R, A> implements SemanticSendVisitor<R, A> { |
| 12 R bulkHandleNode(Node node, String message); | 12 R bulkHandleNode(Node node, String message); |
| 13 | 13 |
| 14 R bulkHandleError(Send node) { | 14 R bulkHandleError(Send node) { |
| 15 return bulkHandleNode(node, "Error expression `$node` unhandled."); | 15 return bulkHandleNode(node, "Error expression `$node` unhandled."); |
| 16 } | 16 } |
| 17 | 17 |
| 18 @override | 18 @override |
| 19 R errorInvalidAssert( | 19 R errorInvalidAssert( |
| 20 Send node, | 20 Send node, |
| 21 NodeList arguments, | 21 NodeList arguments, |
| 22 A arg) { | 22 A arg) { |
| 23 bulkHandleError(node); | 23 return bulkHandleError(node); |
| 24 } | 24 } |
| 25 | 25 |
| 26 @override | 26 @override |
| 27 R errorClassTypeLiteralCompound( |
| 28 Send node, |
| 29 TypeConstantExpression constant, |
| 30 AssignmentOperator operator, |
| 31 Node rhs, |
| 32 A arg) { |
| 33 return bulkHandleError(node); |
| 34 } |
| 35 |
| 36 @override |
| 37 R errorClassTypeLiteralPostfix( |
| 38 Send node, |
| 39 TypeConstantExpression constant, |
| 40 IncDecOperator operator, |
| 41 A arg) { |
| 42 return bulkHandleError(node); |
| 43 } |
| 44 |
| 45 @override |
| 46 R errorClassTypeLiteralPrefix( |
| 47 Send node, |
| 48 TypeConstantExpression constant, |
| 49 IncDecOperator operator, |
| 50 A arg) { |
| 51 return bulkHandleError(node); |
| 52 } |
| 53 |
| 54 @override |
| 27 R errorClassTypeLiteralSet( | 55 R errorClassTypeLiteralSet( |
| 28 SendSet node, | 56 SendSet node, |
| 29 TypeConstantExpression constant, | 57 TypeConstantExpression constant, |
| 30 Node rhs, | 58 Node rhs, |
| 31 A arg) { | 59 A arg) { |
| 32 return bulkHandleError(node); | 60 return bulkHandleError(node); |
| 33 } | 61 } |
| 34 | 62 |
| 35 @override | 63 @override |
| 64 R errorDynamicTypeLiteralCompound( |
| 65 Send node, |
| 66 TypeConstantExpression constant, |
| 67 AssignmentOperator operator, |
| 68 Node rhs, |
| 69 A arg) { |
| 70 return bulkHandleError(node); |
| 71 } |
| 72 |
| 73 @override |
| 74 R errorDynamicTypeLiteralPostfix( |
| 75 Send node, |
| 76 TypeConstantExpression constant, |
| 77 IncDecOperator operator, |
| 78 A arg) { |
| 79 return bulkHandleError(node); |
| 80 } |
| 81 |
| 82 @override |
| 83 R errorDynamicTypeLiteralPrefix( |
| 84 Send node, |
| 85 TypeConstantExpression constant, |
| 86 IncDecOperator operator, |
| 87 A arg) { |
| 88 return bulkHandleError(node); |
| 89 } |
| 90 |
| 91 @override |
| 36 R errorDynamicTypeLiteralSet( | 92 R errorDynamicTypeLiteralSet( |
| 37 SendSet node, | 93 SendSet node, |
| 38 TypeConstantExpression constant, | 94 TypeConstantExpression constant, |
| 39 Node rhs, | 95 Node rhs, |
| 40 A arg) { | 96 A arg) { |
| 41 return bulkHandleError(node); | 97 return bulkHandleError(node); |
| 42 } | 98 } |
| 43 | 99 |
| 44 @override | 100 @override |
| 45 R errorFinalLocalVariableCompound( | 101 R errorFinalLocalVariableCompound( |
| (...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 276 R errorTopLevelSetterInvoke( | 332 R errorTopLevelSetterInvoke( |
| 277 Send node, | 333 Send node, |
| 278 FunctionElement setter, | 334 FunctionElement setter, |
| 279 NodeList arguments, | 335 NodeList arguments, |
| 280 Selector selector, | 336 Selector selector, |
| 281 A arg) { | 337 A arg) { |
| 282 return bulkHandleError(node); | 338 return bulkHandleError(node); |
| 283 } | 339 } |
| 284 | 340 |
| 285 @override | 341 @override |
| 342 R errorTypeVariableTypeLiteralCompound( |
| 343 Send node, |
| 344 TypeVariableElement element, |
| 345 AssignmentOperator operator, |
| 346 Node rhs, |
| 347 A arg) { |
| 348 return bulkHandleError(node); |
| 349 } |
| 350 |
| 351 @override |
| 352 R errorTypeVariableTypeLiteralPostfix( |
| 353 Send node, |
| 354 TypeVariableElement element, |
| 355 IncDecOperator operator, |
| 356 A arg) { |
| 357 return bulkHandleError(node); |
| 358 } |
| 359 |
| 360 @override |
| 361 R errorTypeVariableTypeLiteralPrefix( |
| 362 Send node, |
| 363 TypeVariableElement element, |
| 364 IncDecOperator operator, |
| 365 A arg) { |
| 366 return bulkHandleError(node); |
| 367 } |
| 368 |
| 369 @override |
| 286 R errorTypeVariableTypeLiteralSet( | 370 R errorTypeVariableTypeLiteralSet( |
| 287 SendSet node, | 371 SendSet node, |
| 288 TypeVariableElement element, | 372 TypeVariableElement element, |
| 289 Node rhs, | 373 Node rhs, |
| 290 A arg) { | 374 A arg) { |
| 291 return bulkHandleError(node); | 375 return bulkHandleError(node); |
| 292 } | 376 } |
| 293 | 377 |
| 294 @override | 378 @override |
| 379 R errorTypedefTypeLiteralCompound( |
| 380 Send node, |
| 381 TypeConstantExpression constant, |
| 382 AssignmentOperator operator, |
| 383 Node rhs, |
| 384 A arg) { |
| 385 return bulkHandleError(node); |
| 386 } |
| 387 |
| 388 @override |
| 389 R errorTypedefTypeLiteralPostfix( |
| 390 Send node, |
| 391 TypeConstantExpression constant, |
| 392 IncDecOperator operator, |
| 393 A arg) { |
| 394 return bulkHandleError(node); |
| 395 } |
| 396 |
| 397 @override |
| 398 R errorTypedefTypeLiteralPrefix( |
| 399 Send node, |
| 400 TypeConstantExpression constant, |
| 401 IncDecOperator operator, |
| 402 A arg) { |
| 403 return bulkHandleError(node); |
| 404 } |
| 405 |
| 406 @override |
| 295 R errorTypedefTypeLiteralSet( | 407 R errorTypedefTypeLiteralSet( |
| 296 SendSet node, | 408 SendSet node, |
| 297 TypeConstantExpression constant, | 409 TypeConstantExpression constant, |
| 298 Node rhs, | 410 Node rhs, |
| 299 A arg) { | 411 A arg) { |
| 300 return bulkHandleError(node); | 412 return bulkHandleError(node); |
| 301 } | 413 } |
| 302 | 414 |
| 303 @override | 415 @override |
| 304 R errorUnresolvedCompound( | 416 R errorUnresolvedCompound( |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 350 R errorUnresolvedSet( | 462 R errorUnresolvedSet( |
| 351 Send node, | 463 Send node, |
| 352 Element element, | 464 Element element, |
| 353 Node rhs, | 465 Node rhs, |
| 354 A arg) { | 466 A arg) { |
| 355 return bulkHandleError(node); | 467 return bulkHandleError(node); |
| 356 } | 468 } |
| 357 | 469 |
| 358 @override | 470 @override |
| 359 R errorUnresolvedSuperCompoundIndexSet( | 471 R errorUnresolvedSuperCompoundIndexSet( |
| 360 Send node, | 472 SendSet node, |
| 361 Element element, | 473 Element element, |
| 362 Node index, | 474 Node index, |
| 363 AssignmentOperator operator, | 475 AssignmentOperator operator, |
| 364 Node rhs, | 476 Node rhs, |
| 365 A arg) { | 477 A arg) { |
| 366 return bulkHandleError(node); | 478 return bulkHandleError(node); |
| 367 } | 479 } |
| 368 | 480 |
| 369 @override | 481 @override |
| 370 R errorUnresolvedSuperIndexSet( | 482 R errorUnresolvedSuperIndexSet( |
| 371 Send node, | 483 SendSet node, |
| 372 Element element, | 484 Element element, |
| 373 Node index, | 485 Node index, |
| 374 Node rhs, | 486 Node rhs, |
| 375 A arg) { | 487 A arg) { |
| 376 return bulkHandleError(node); | 488 return bulkHandleError(node); |
| 377 } | 489 } |
| 378 | 490 |
| 379 @override | 491 @override |
| 380 R errorUnresolvedSuperBinary( | 492 R errorUnresolvedSuperBinary( |
| 381 Send node, | 493 Send node, |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 421 /// Use this mixin to provide a trivial implementation for all `visitXPrefix` | 533 /// Use this mixin to provide a trivial implementation for all `visitXPrefix` |
| 422 /// methods. | 534 /// methods. |
| 423 abstract class PrefixBulkMixin<R, A> implements SemanticSendVisitor<R, A> { | 535 abstract class PrefixBulkMixin<R, A> implements SemanticSendVisitor<R, A> { |
| 424 R bulkHandleNode(Node node, String message); | 536 R bulkHandleNode(Node node, String message); |
| 425 | 537 |
| 426 R bulkHandlePrefix(Send node) { | 538 R bulkHandlePrefix(Send node) { |
| 427 return bulkHandleNode(node, "Prefix expression `$node` unhandled."); | 539 return bulkHandleNode(node, "Prefix expression `$node` unhandled."); |
| 428 } | 540 } |
| 429 | 541 |
| 430 @override | 542 @override |
| 431 R visitClassTypeLiteralPrefix( | |
| 432 Send node, | |
| 433 TypeConstantExpression constant, | |
| 434 IncDecOperator operator, | |
| 435 A arg) { | |
| 436 return bulkHandlePrefix(node); | |
| 437 } | |
| 438 | |
| 439 @override | |
| 440 R visitDynamicPropertyPrefix( | 543 R visitDynamicPropertyPrefix( |
| 441 Send node, | 544 Send node, |
| 442 Node receiver, | 545 Node receiver, |
| 443 IncDecOperator operator, | 546 IncDecOperator operator, |
| 444 Selector getterSelector, | 547 Selector getterSelector, |
| 445 Selector setterSelector, | 548 Selector setterSelector, |
| 446 A arg) { | 549 A arg) { |
| 447 return bulkHandlePrefix(node); | 550 return bulkHandlePrefix(node); |
| 448 } | 551 } |
| 449 | 552 |
| 450 @override | 553 @override |
| 451 R visitDynamicTypeLiteralPrefix( | |
| 452 Send node, | |
| 453 TypeConstantExpression constant, | |
| 454 IncDecOperator operator, | |
| 455 A arg) { | |
| 456 return bulkHandlePrefix(node); | |
| 457 } | |
| 458 | |
| 459 @override | |
| 460 R visitLocalVariablePrefix( | 554 R visitLocalVariablePrefix( |
| 461 Send node, | 555 Send node, |
| 462 LocalVariableElement variable, | 556 LocalVariableElement variable, |
| 463 IncDecOperator operator, | 557 IncDecOperator operator, |
| 464 A arg) { | 558 A arg) { |
| 465 return bulkHandlePrefix(node); | 559 return bulkHandlePrefix(node); |
| 466 } | 560 } |
| 467 | 561 |
| 468 @override | 562 @override |
| 469 R visitParameterPrefix( | 563 R visitParameterPrefix( |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 593 | 687 |
| 594 @override | 688 @override |
| 595 R visitTopLevelMethodSetterPrefix( | 689 R visitTopLevelMethodSetterPrefix( |
| 596 Send node, | 690 Send node, |
| 597 FunctionElement method, | 691 FunctionElement method, |
| 598 FunctionElement setter, | 692 FunctionElement setter, |
| 599 IncDecOperator operator, | 693 IncDecOperator operator, |
| 600 A arg) { | 694 A arg) { |
| 601 return bulkHandlePrefix(node); | 695 return bulkHandlePrefix(node); |
| 602 } | 696 } |
| 603 | |
| 604 @override | |
| 605 R visitTypeVariableTypeLiteralPrefix( | |
| 606 Send node, | |
| 607 TypeVariableElement element, | |
| 608 IncDecOperator operator, | |
| 609 A arg) { | |
| 610 return bulkHandlePrefix(node); | |
| 611 } | |
| 612 | |
| 613 @override | |
| 614 R visitTypedefTypeLiteralPrefix( | |
| 615 Send node, | |
| 616 TypeConstantExpression constant, | |
| 617 IncDecOperator operator, | |
| 618 A arg) { | |
| 619 return bulkHandlePrefix(node); | |
| 620 } | |
| 621 } | 697 } |
| 622 | 698 |
| 623 /// Mixin that implements all `visitXPostfix` methods of [SemanticSendVisitor] | 699 /// Mixin that implements all `visitXPostfix` methods of [SemanticSendVisitor] |
| 624 /// by delegating to a bulk handler. | 700 /// by delegating to a bulk handler. |
| 625 /// | 701 /// |
| 626 /// Use this mixin to provide a trivial implementation for all `visitXPostfix` | 702 /// Use this mixin to provide a trivial implementation for all `visitXPostfix` |
| 627 /// methods. | 703 /// methods. |
| 628 abstract class PostfixBulkMixin<R, A> implements SemanticSendVisitor<R, A> { | 704 abstract class PostfixBulkMixin<R, A> implements SemanticSendVisitor<R, A> { |
| 629 R bulkHandleNode(Node node, String message); | 705 R bulkHandleNode(Node node, String message); |
| 630 | 706 |
| 631 R bulkHandlePostfix(Send node) { | 707 R bulkHandlePostfix(Send node) { |
| 632 return bulkHandleNode(node, "Postfix expression `$node` unhandled."); | 708 return bulkHandleNode(node, "Postfix expression `$node` unhandled."); |
| 633 } | 709 } |
| 634 | 710 |
| 635 @override | 711 @override |
| 636 R visitClassTypeLiteralPostfix( | |
| 637 Send node, | |
| 638 TypeConstantExpression constant, | |
| 639 IncDecOperator operator, | |
| 640 A arg) { | |
| 641 return bulkHandlePostfix(node); | |
| 642 } | |
| 643 | |
| 644 @override | |
| 645 R visitDynamicPropertyPostfix( | 712 R visitDynamicPropertyPostfix( |
| 646 Send node, | 713 Send node, |
| 647 Node receiver, | 714 Node receiver, |
| 648 IncDecOperator operator, | 715 IncDecOperator operator, |
| 649 Selector getterSelector, | 716 Selector getterSelector, |
| 650 Selector setterSelector, | 717 Selector setterSelector, |
| 651 A arg) { | 718 A arg) { |
| 652 return bulkHandlePostfix(node); | 719 return bulkHandlePostfix(node); |
| 653 } | 720 } |
| 654 | 721 |
| 655 @override | 722 @override |
| 656 R visitDynamicTypeLiteralPostfix( | |
| 657 Send node, | |
| 658 TypeConstantExpression constant, | |
| 659 IncDecOperator operator, | |
| 660 A arg) { | |
| 661 return bulkHandlePostfix(node); | |
| 662 } | |
| 663 | |
| 664 @override | |
| 665 R visitLocalVariablePostfix( | 723 R visitLocalVariablePostfix( |
| 666 Send node, | 724 Send node, |
| 667 LocalVariableElement variable, | 725 LocalVariableElement variable, |
| 668 IncDecOperator operator, | 726 IncDecOperator operator, |
| 669 A arg) { | 727 A arg) { |
| 670 return bulkHandlePostfix(node); | 728 return bulkHandlePostfix(node); |
| 671 } | 729 } |
| 672 | 730 |
| 673 @override | 731 @override |
| 674 R visitParameterPostfix( | 732 R visitParameterPostfix( |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 798 | 856 |
| 799 @override | 857 @override |
| 800 R visitTopLevelMethodSetterPostfix( | 858 R visitTopLevelMethodSetterPostfix( |
| 801 Send node, | 859 Send node, |
| 802 FunctionElement method, | 860 FunctionElement method, |
| 803 FunctionElement setter, | 861 FunctionElement setter, |
| 804 IncDecOperator operator, | 862 IncDecOperator operator, |
| 805 A arg) { | 863 A arg) { |
| 806 return bulkHandlePostfix(node); | 864 return bulkHandlePostfix(node); |
| 807 } | 865 } |
| 808 | |
| 809 @override | |
| 810 R visitTypeVariableTypeLiteralPostfix( | |
| 811 Send node, | |
| 812 TypeVariableElement element, | |
| 813 IncDecOperator operator, | |
| 814 A arg) { | |
| 815 return bulkHandlePostfix(node); | |
| 816 } | |
| 817 | |
| 818 @override | |
| 819 R visitTypedefTypeLiteralPostfix( | |
| 820 Send node, | |
| 821 TypeConstantExpression constant, | |
| 822 IncDecOperator operator, | |
| 823 A arg) { | |
| 824 return bulkHandlePostfix(node); | |
| 825 } | |
| 826 } | 866 } |
| 827 | 867 |
| 828 /// Mixin that implements all `visitXCompound` methods of [SemanticSendVisitor] | 868 /// Mixin that implements all `visitXCompound` methods of [SemanticSendVisitor] |
| 829 /// by delegating to a bulk handler. | 869 /// by delegating to a bulk handler. |
| 830 /// | 870 /// |
| 831 /// Use this mixin to provide a trivial implementation for all `xCompound` | 871 /// Use this mixin to provide a trivial implementation for all `xCompound` |
| 832 /// methods. | 872 /// methods. |
| 833 abstract class CompoundBulkMixin<R, A> implements SemanticSendVisitor<R, A> { | 873 abstract class CompoundBulkMixin<R, A> implements SemanticSendVisitor<R, A> { |
| 834 R bulkHandleNode(Node node, String message); | 874 R bulkHandleNode(Node node, String message); |
| 835 | 875 |
| 836 R bulkHandleCompound(Send node) { | 876 R bulkHandleCompound(Send node) { |
| 837 return bulkHandleNode(node, "Compound assignment `$node` unhandled."); | 877 return bulkHandleNode(node, "Compound assignment `$node` unhandled."); |
| 838 } | 878 } |
| 839 | 879 |
| 840 @override | 880 @override |
| 841 R visitClassTypeLiteralCompound( | |
| 842 Send node, | |
| 843 TypeConstantExpression constant, | |
| 844 AssignmentOperator operator, | |
| 845 Node rhs, | |
| 846 A arg) { | |
| 847 return bulkHandleCompound(node); | |
| 848 } | |
| 849 | |
| 850 @override | |
| 851 R visitDynamicPropertyCompound( | 881 R visitDynamicPropertyCompound( |
| 852 Send node, | 882 Send node, |
| 853 Node receiver, | 883 Node receiver, |
| 854 AssignmentOperator operator, | 884 AssignmentOperator operator, |
| 855 Node rhs, | 885 Node rhs, |
| 856 Selector getterSelector, | 886 Selector getterSelector, |
| 857 Selector setterSelector, | 887 Selector setterSelector, |
| 858 A arg) { | 888 A arg) { |
| 859 return bulkHandleCompound(node); | 889 return bulkHandleCompound(node); |
| 860 } | 890 } |
| 861 | 891 |
| 862 @override | 892 @override |
| 863 R visitDynamicTypeLiteralCompound( | |
| 864 Send node, | |
| 865 TypeConstantExpression constant, | |
| 866 AssignmentOperator operator, | |
| 867 Node rhs, | |
| 868 A arg) { | |
| 869 return bulkHandleCompound(node); | |
| 870 } | |
| 871 | |
| 872 @override | |
| 873 R visitLocalVariableCompound( | 893 R visitLocalVariableCompound( |
| 874 Send node, | 894 Send node, |
| 875 LocalVariableElement variable, | 895 LocalVariableElement variable, |
| 876 AssignmentOperator operator, | 896 AssignmentOperator operator, |
| 877 Node rhs, | 897 Node rhs, |
| 878 A arg) { | 898 A arg) { |
| 879 return bulkHandleCompound(node); | 899 return bulkHandleCompound(node); |
| 880 } | 900 } |
| 881 | 901 |
| 882 @override | 902 @override |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1010 @override | 1030 @override |
| 1011 R visitTopLevelMethodSetterCompound( | 1031 R visitTopLevelMethodSetterCompound( |
| 1012 Send node, | 1032 Send node, |
| 1013 FunctionElement method, | 1033 FunctionElement method, |
| 1014 FunctionElement setter, | 1034 FunctionElement setter, |
| 1015 AssignmentOperator operator, | 1035 AssignmentOperator operator, |
| 1016 Node rhs, | 1036 Node rhs, |
| 1017 A arg) { | 1037 A arg) { |
| 1018 return bulkHandleCompound(node); | 1038 return bulkHandleCompound(node); |
| 1019 } | 1039 } |
| 1020 | |
| 1021 @override | |
| 1022 R visitTypeVariableTypeLiteralCompound( | |
| 1023 Send node, | |
| 1024 TypeVariableElement element, | |
| 1025 AssignmentOperator operator, | |
| 1026 Node rhs, | |
| 1027 A arg) { | |
| 1028 return bulkHandleCompound(node); | |
| 1029 } | |
| 1030 | |
| 1031 @override | |
| 1032 R visitTypedefTypeLiteralCompound( | |
| 1033 Send node, | |
| 1034 TypeConstantExpression constant, | |
| 1035 AssignmentOperator operator, | |
| 1036 Node rhs, | |
| 1037 A arg) { | |
| 1038 return bulkHandleCompound(node); | |
| 1039 } | |
| 1040 } | 1040 } |
| 1041 | 1041 |
| 1042 /// Mixin that implements all `visitXInvoke` methods of [SemanticSendVisitor] by | 1042 /// Mixin that implements all `visitXInvoke` methods of [SemanticSendVisitor] by |
| 1043 /// delegating to a bulk handler. | 1043 /// delegating to a bulk handler. |
| 1044 /// | 1044 /// |
| 1045 /// Use this mixin to provide a trivial implementation for all `visitXInvoke` | 1045 /// Use this mixin to provide a trivial implementation for all `visitXInvoke` |
| 1046 /// methods. | 1046 /// methods. |
| 1047 abstract class InvokeBulkMixin<R, A> implements SemanticSendVisitor<R, A> { | 1047 abstract class InvokeBulkMixin<R, A> implements SemanticSendVisitor<R, A> { |
| 1048 R bulkHandleNode(Node node, String message); | 1048 R bulkHandleNode(Node node, String message); |
| 1049 | 1049 |
| (...skipping 478 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1528 @override | 1528 @override |
| 1529 R visitTopLevelSetterSet( | 1529 R visitTopLevelSetterSet( |
| 1530 SendSet node, | 1530 SendSet node, |
| 1531 FunctionElement setter, | 1531 FunctionElement setter, |
| 1532 Node rhs, | 1532 Node rhs, |
| 1533 A arg) { | 1533 A arg) { |
| 1534 return bulkHandleSet(node); | 1534 return bulkHandleSet(node); |
| 1535 } | 1535 } |
| 1536 } | 1536 } |
| 1537 | 1537 |
| 1538 /// Mixin that implements all `visitXIndexSet` methods of [SemanticSendVisitor]
by | 1538 /// Mixin that implements all `visitXIndexSet` methods of [SemanticSendVisitor] |
| 1539 /// delegating to a bulk handler. | 1539 /// by delegating to a bulk handler. |
| 1540 /// | 1540 /// |
| 1541 /// Use this mixin to provide a trivial implementation for all `visitXIndexSet` | 1541 /// Use this mixin to provide a trivial implementation for all `visitXIndexSet` |
| 1542 /// methods. | 1542 /// methods. |
| 1543 abstract class IndexSetBulkMixin<R, A> implements SemanticSendVisitor<R, A> { | 1543 abstract class IndexSetBulkMixin<R, A> implements SemanticSendVisitor<R, A> { |
| 1544 R bulkHandleNode(Node node, String message); | 1544 R bulkHandleNode(Node node, String message); |
| 1545 | 1545 |
| 1546 R bulkHandleIndexSet(Send node) { | 1546 R bulkHandleIndexSet(Send node) { |
| 1547 return bulkHandleNode(node, "Index set expression `$node` unhandled."); | 1547 return bulkHandleNode(node, "Index set expression `$node` unhandled."); |
| 1548 } | 1548 } |
| 1549 | 1549 |
| 1550 @override | 1550 @override |
| 1551 R visitCompoundIndexSet( | 1551 R visitCompoundIndexSet( |
| 1552 Send node, | 1552 SendSet node, |
| 1553 Node receiver, | 1553 Node receiver, |
| 1554 Node index, | 1554 Node index, |
| 1555 AssignmentOperator operator, | 1555 AssignmentOperator operator, |
| 1556 Node rhs, | 1556 Node rhs, |
| 1557 A arg) { | 1557 A arg) { |
| 1558 return bulkHandleIndexSet(node); | 1558 return bulkHandleIndexSet(node); |
| 1559 } | 1559 } |
| 1560 | 1560 |
| 1561 @override | 1561 @override |
| 1562 R visitIndexSet( | 1562 R visitIndexSet( |
| 1563 Send node, | 1563 SendSet node, |
| 1564 Node receiver, | 1564 Node receiver, |
| 1565 Node index, | 1565 Node index, |
| 1566 Node rhs, | 1566 Node rhs, |
| 1567 A arg) { | 1567 A arg) { |
| 1568 return bulkHandleIndexSet(node); | 1568 return bulkHandleIndexSet(node); |
| 1569 } | 1569 } |
| 1570 | 1570 |
| 1571 @override | 1571 @override |
| 1572 R visitSuperCompoundIndexSet( | 1572 R visitSuperCompoundIndexSet( |
| 1573 Send node, | 1573 SendSet node, |
| 1574 FunctionElement getter, | 1574 FunctionElement getter, |
| 1575 FunctionElement setter, | 1575 FunctionElement setter, |
| 1576 Node index, | 1576 Node index, |
| 1577 AssignmentOperator operator, | 1577 AssignmentOperator operator, |
| 1578 Node rhs, | 1578 Node rhs, |
| 1579 A arg) { | 1579 A arg) { |
| 1580 return bulkHandleIndexSet(node); | 1580 return bulkHandleIndexSet(node); |
| 1581 } | 1581 } |
| 1582 | 1582 |
| 1583 @override | 1583 @override |
| 1584 R visitSuperIndexSet( | 1584 R visitSuperIndexSet( |
| 1585 Send node, | 1585 SendSet node, |
| 1586 FunctionElement function, | 1586 FunctionElement function, |
| 1587 Node index, | 1587 Node index, |
| 1588 Node rhs, | 1588 Node rhs, |
| 1589 A arg) { | 1589 A arg) { |
| 1590 return bulkHandleIndexSet(node); | 1590 return bulkHandleIndexSet(node); |
| 1591 } | 1591 } |
| 1592 } | 1592 } |
| 1593 | 1593 |
| 1594 /// Mixin that implements all binary visitor methods in [SemanticSendVisitor] by | 1594 /// Mixin that implements all binary visitor methods in [SemanticSendVisitor] by |
| 1595 /// delegating to a bulk handler. | 1595 /// delegating to a bulk handler. |
| (...skipping 29 matching lines...) Expand all Loading... |
| 1625 @override | 1625 @override |
| 1626 R visitNotEquals( | 1626 R visitNotEquals( |
| 1627 Send node, | 1627 Send node, |
| 1628 Node left, | 1628 Node left, |
| 1629 Node right, | 1629 Node right, |
| 1630 A arg) { | 1630 A arg) { |
| 1631 return bulkHandleBinary(node); | 1631 return bulkHandleBinary(node); |
| 1632 } | 1632 } |
| 1633 | 1633 |
| 1634 @override | 1634 @override |
| 1635 R visitIndex( |
| 1636 Send node, |
| 1637 Node receiver, |
| 1638 Node index, |
| 1639 A arg) { |
| 1640 return bulkHandleBinary(node); |
| 1641 } |
| 1642 |
| 1643 @override |
| 1635 R visitSuperBinary( | 1644 R visitSuperBinary( |
| 1636 Send node, | 1645 Send node, |
| 1637 FunctionElement function, | 1646 FunctionElement function, |
| 1638 BinaryOperator operator, | 1647 BinaryOperator operator, |
| 1639 Node argument, | 1648 Node argument, |
| 1640 A arg) { | 1649 A arg) { |
| 1641 return bulkHandleBinary(node); | 1650 return bulkHandleBinary(node); |
| 1642 } | 1651 } |
| 1643 | 1652 |
| 1644 @override | 1653 @override |
| 1645 R visitSuperEquals( | 1654 R visitSuperEquals( |
| 1646 Send node, | 1655 Send node, |
| 1647 FunctionElement function, | 1656 FunctionElement function, |
| 1648 Node argument, | 1657 Node argument, |
| 1649 A arg) { | 1658 A arg) { |
| 1650 return bulkHandleBinary(node); | 1659 return bulkHandleBinary(node); |
| 1651 } | 1660 } |
| 1652 | 1661 |
| 1653 @override | 1662 @override |
| 1654 R visitSuperNotEquals( | 1663 R visitSuperNotEquals( |
| 1655 Send node, | 1664 Send node, |
| 1656 FunctionElement function, | 1665 FunctionElement function, |
| 1657 Node argument, | 1666 Node argument, |
| 1658 A arg) { | 1667 A arg) { |
| 1659 return bulkHandleBinary(node); | 1668 return bulkHandleBinary(node); |
| 1660 } | 1669 } |
| 1670 |
| 1671 @override |
| 1672 R visitSuperIndex( |
| 1673 Send node, |
| 1674 FunctionElement function, |
| 1675 Node index, |
| 1676 A arg) { |
| 1677 return bulkHandleBinary(node); |
| 1678 } |
| 1661 } | 1679 } |
| 1662 | 1680 |
| 1663 /// Mixin that implements all unary visitor methods in [SemanticSendVisitor] by | 1681 /// Mixin that implements all unary visitor methods in [SemanticSendVisitor] by |
| 1664 /// delegating to a bulk handler. | 1682 /// delegating to a bulk handler. |
| 1665 /// | 1683 /// |
| 1666 /// Use this mixin to provide a trivial implementation for all unary visitor | 1684 /// Use this mixin to provide a trivial implementation for all unary visitor |
| 1667 /// methods. | 1685 /// methods. |
| 1668 abstract class UnaryBulkMixin<R, A> implements SemanticSendVisitor<R, A> { | 1686 abstract class UnaryBulkMixin<R, A> implements SemanticSendVisitor<R, A> { |
| 1669 R bulkHandleNode(Node node, String message); | 1687 R bulkHandleNode(Node node, String message); |
| 1670 | 1688 |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1775 Send node, | 1793 Send node, |
| 1776 FunctionElement function, | 1794 FunctionElement function, |
| 1777 BinaryOperator operator, | 1795 BinaryOperator operator, |
| 1778 Node argument, | 1796 Node argument, |
| 1779 A arg) { | 1797 A arg) { |
| 1780 return bulkHandleSuper(node); | 1798 return bulkHandleSuper(node); |
| 1781 } | 1799 } |
| 1782 | 1800 |
| 1783 @override | 1801 @override |
| 1784 R visitSuperCompoundIndexSet( | 1802 R visitSuperCompoundIndexSet( |
| 1785 Send node, | 1803 SendSet node, |
| 1786 FunctionElement getter, | 1804 FunctionElement getter, |
| 1787 FunctionElement setter, | 1805 FunctionElement setter, |
| 1788 Node index, | 1806 Node index, |
| 1789 AssignmentOperator operator, | 1807 AssignmentOperator operator, |
| 1790 Node rhs, | 1808 Node rhs, |
| 1791 A arg) { | 1809 A arg) { |
| 1792 return bulkHandleSuper(node); | 1810 return bulkHandleSuper(node); |
| 1793 } | 1811 } |
| 1794 | 1812 |
| 1795 @override | 1813 @override |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1982 Send node, | 2000 Send node, |
| 1983 FunctionElement getter, | 2001 FunctionElement getter, |
| 1984 FunctionElement setter, | 2002 FunctionElement setter, |
| 1985 IncDecOperator operator, | 2003 IncDecOperator operator, |
| 1986 A arg) { | 2004 A arg) { |
| 1987 return bulkHandleSuper(node); | 2005 return bulkHandleSuper(node); |
| 1988 } | 2006 } |
| 1989 | 2007 |
| 1990 @override | 2008 @override |
| 1991 R visitSuperIndexSet( | 2009 R visitSuperIndexSet( |
| 1992 Send node, | 2010 SendSet node, |
| 1993 FunctionElement function, | 2011 FunctionElement function, |
| 1994 Node index, | 2012 Node index, |
| 1995 Node rhs, | 2013 Node rhs, |
| 1996 A arg) { | 2014 A arg) { |
| 1997 return bulkHandleSuper(node); | 2015 return bulkHandleSuper(node); |
| 1998 } | 2016 } |
| 1999 | 2017 |
| 2000 @override | 2018 @override |
| 2001 R visitSuperMethodGet( | 2019 R visitSuperMethodGet( |
| 2002 Send node, | 2020 Send node, |
| (...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2445 Node left, | 2463 Node left, |
| 2446 BinaryOperator operator, | 2464 BinaryOperator operator, |
| 2447 Node right, | 2465 Node right, |
| 2448 A arg) { | 2466 A arg) { |
| 2449 apply(left, arg); | 2467 apply(left, arg); |
| 2450 apply(right, arg); | 2468 apply(right, arg); |
| 2451 return null; | 2469 return null; |
| 2452 } | 2470 } |
| 2453 | 2471 |
| 2454 @override | 2472 @override |
| 2455 R visitClassTypeLiteralCompound( | 2473 R errorClassTypeLiteralCompound( |
| 2456 Send node, | 2474 Send node, |
| 2457 TypeConstantExpression constant, | 2475 TypeConstantExpression constant, |
| 2458 AssignmentOperator operator, | 2476 AssignmentOperator operator, |
| 2459 Node rhs, | 2477 Node rhs, |
| 2460 A arg) { | 2478 A arg) { |
| 2461 apply(rhs, arg); | 2479 apply(rhs, arg); |
| 2462 return null; | 2480 return null; |
| 2463 } | 2481 } |
| 2464 | 2482 |
| 2465 @override | 2483 @override |
| 2466 R visitClassTypeLiteralGet( | 2484 R visitClassTypeLiteralGet( |
| 2467 Send node, | 2485 Send node, |
| 2468 TypeConstantExpression constant, | 2486 TypeConstantExpression constant, |
| 2469 A arg) { | 2487 A arg) { |
| 2470 return null; | 2488 return null; |
| 2471 } | 2489 } |
| 2472 | 2490 |
| 2473 @override | 2491 @override |
| 2474 R visitClassTypeLiteralInvoke( | 2492 R visitClassTypeLiteralInvoke( |
| 2475 Send node, | 2493 Send node, |
| 2476 TypeConstantExpression constant, | 2494 TypeConstantExpression constant, |
| 2477 NodeList arguments, | 2495 NodeList arguments, |
| 2478 Selector selector, | 2496 Selector selector, |
| 2479 A arg) { | 2497 A arg) { |
| 2480 apply(arguments, arg); | 2498 apply(arguments, arg); |
| 2481 return null; | 2499 return null; |
| 2482 } | 2500 } |
| 2483 | 2501 |
| 2484 @override | 2502 @override |
| 2485 R visitClassTypeLiteralPostfix( | 2503 R errorClassTypeLiteralPostfix( |
| 2486 Send node, | 2504 Send node, |
| 2487 TypeConstantExpression constant, | 2505 TypeConstantExpression constant, |
| 2488 IncDecOperator operator, | 2506 IncDecOperator operator, |
| 2489 A arg) { | 2507 A arg) { |
| 2490 return null; | 2508 return null; |
| 2491 } | 2509 } |
| 2492 | 2510 |
| 2493 @override | 2511 @override |
| 2494 R visitClassTypeLiteralPrefix( | 2512 R errorClassTypeLiteralPrefix( |
| 2495 Send node, | 2513 Send node, |
| 2496 TypeConstantExpression constant, | 2514 TypeConstantExpression constant, |
| 2497 IncDecOperator operator, | 2515 IncDecOperator operator, |
| 2498 A arg) { | 2516 A arg) { |
| 2499 return null; | 2517 return null; |
| 2500 } | 2518 } |
| 2501 | 2519 |
| 2502 @override | 2520 @override |
| 2503 R visitCompoundIndexSet( | 2521 R visitCompoundIndexSet( |
| 2504 Send node, | 2522 SendSet node, |
| 2505 Node receiver, | 2523 Node receiver, |
| 2506 Node index, | 2524 Node index, |
| 2507 AssignmentOperator operator, | 2525 AssignmentOperator operator, |
| 2508 Node rhs, | 2526 Node rhs, |
| 2509 A arg) { | 2527 A arg) { |
| 2510 apply(receiver, arg); | 2528 apply(receiver, arg); |
| 2511 apply(index, arg); | 2529 apply(index, arg); |
| 2512 apply(rhs, arg); | 2530 apply(rhs, arg); |
| 2513 return null; | 2531 return null; |
| 2514 } | 2532 } |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2597 SendSet node, | 2615 SendSet node, |
| 2598 Node receiver, | 2616 Node receiver, |
| 2599 Selector selector, | 2617 Selector selector, |
| 2600 Node rhs, | 2618 Node rhs, |
| 2601 A arg) { | 2619 A arg) { |
| 2602 apply(rhs, arg); | 2620 apply(rhs, arg); |
| 2603 return null; | 2621 return null; |
| 2604 } | 2622 } |
| 2605 | 2623 |
| 2606 @override | 2624 @override |
| 2607 R visitDynamicTypeLiteralCompound( | 2625 R errorDynamicTypeLiteralCompound( |
| 2608 Send node, | 2626 Send node, |
| 2609 TypeConstantExpression constant, | 2627 TypeConstantExpression constant, |
| 2610 AssignmentOperator operator, | 2628 AssignmentOperator operator, |
| 2611 Node rhs, | 2629 Node rhs, |
| 2612 A arg) { | 2630 A arg) { |
| 2613 apply(rhs, arg); | 2631 apply(rhs, arg); |
| 2614 return null; | 2632 return null; |
| 2615 } | 2633 } |
| 2616 | 2634 |
| 2617 @override | 2635 @override |
| 2618 R visitDynamicTypeLiteralGet( | 2636 R visitDynamicTypeLiteralGet( |
| 2619 Send node, | 2637 Send node, |
| 2620 TypeConstantExpression constant, | 2638 TypeConstantExpression constant, |
| 2621 A arg) { | 2639 A arg) { |
| 2622 return null; | 2640 return null; |
| 2623 } | 2641 } |
| 2624 | 2642 |
| 2625 @override | 2643 @override |
| 2626 R visitDynamicTypeLiteralInvoke( | 2644 R visitDynamicTypeLiteralInvoke( |
| 2627 Send node, | 2645 Send node, |
| 2628 TypeConstantExpression constant, | 2646 TypeConstantExpression constant, |
| 2629 NodeList arguments, | 2647 NodeList arguments, |
| 2630 Selector selector, | 2648 Selector selector, |
| 2631 A arg) { | 2649 A arg) { |
| 2632 apply(arguments, arg); | 2650 apply(arguments, arg); |
| 2633 return null; | 2651 return null; |
| 2634 } | 2652 } |
| 2635 | 2653 |
| 2636 @override | 2654 @override |
| 2637 R visitDynamicTypeLiteralPostfix( | 2655 R errorDynamicTypeLiteralPostfix( |
| 2638 Send node, | 2656 Send node, |
| 2639 TypeConstantExpression constant, | 2657 TypeConstantExpression constant, |
| 2640 IncDecOperator operator, | 2658 IncDecOperator operator, |
| 2641 A arg) { | 2659 A arg) { |
| 2642 return null; | 2660 return null; |
| 2643 } | 2661 } |
| 2644 | 2662 |
| 2645 @override | 2663 @override |
| 2646 R visitDynamicTypeLiteralPrefix( | 2664 R errorDynamicTypeLiteralPrefix( |
| 2647 Send node, | 2665 Send node, |
| 2648 TypeConstantExpression constant, | 2666 TypeConstantExpression constant, |
| 2649 IncDecOperator operator, | 2667 IncDecOperator operator, |
| 2650 A arg) { | 2668 A arg) { |
| 2651 return null; | 2669 return null; |
| 2652 } | 2670 } |
| 2653 | 2671 |
| 2654 @override | 2672 @override |
| 2655 R visitEquals( | 2673 R visitEquals( |
| 2656 Send node, | 2674 Send node, |
| (...skipping 11 matching lines...) Expand all Loading... |
| 2668 Node expression, | 2686 Node expression, |
| 2669 NodeList arguments, | 2687 NodeList arguments, |
| 2670 Selector selector, | 2688 Selector selector, |
| 2671 A arg) { | 2689 A arg) { |
| 2672 apply(expression, arg); | 2690 apply(expression, arg); |
| 2673 apply(arguments, arg); | 2691 apply(arguments, arg); |
| 2674 return null; | 2692 return null; |
| 2675 } | 2693 } |
| 2676 | 2694 |
| 2677 @override | 2695 @override |
| 2696 R visitIndex( |
| 2697 Send node, |
| 2698 Node receiver, |
| 2699 Node index, |
| 2700 A arg) { |
| 2701 apply(receiver, arg); |
| 2702 apply(index, arg); |
| 2703 return null; |
| 2704 } |
| 2705 |
| 2706 @override |
| 2678 R visitIndexSet( | 2707 R visitIndexSet( |
| 2679 Send node, | 2708 SendSet node, |
| 2680 Node receiver, | 2709 Node receiver, |
| 2681 Node index, | 2710 Node index, |
| 2682 Node rhs, | 2711 Node rhs, |
| 2683 A arg) { | 2712 A arg) { |
| 2684 apply(receiver, arg); | 2713 apply(receiver, arg); |
| 2685 apply(index, arg); | 2714 apply(index, arg); |
| 2686 apply(rhs, arg); | 2715 apply(rhs, arg); |
| 2687 return null; | 2716 return null; |
| 2688 } | 2717 } |
| 2689 | 2718 |
| (...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3060 FunctionElement function, | 3089 FunctionElement function, |
| 3061 BinaryOperator operator, | 3090 BinaryOperator operator, |
| 3062 Node argument, | 3091 Node argument, |
| 3063 A arg) { | 3092 A arg) { |
| 3064 apply(argument, arg); | 3093 apply(argument, arg); |
| 3065 return null; | 3094 return null; |
| 3066 } | 3095 } |
| 3067 | 3096 |
| 3068 @override | 3097 @override |
| 3069 R visitSuperCompoundIndexSet( | 3098 R visitSuperCompoundIndexSet( |
| 3070 Send node, | 3099 SendSet node, |
| 3071 FunctionElement getter, | 3100 FunctionElement getter, |
| 3072 FunctionElement setter, | 3101 FunctionElement setter, |
| 3073 Node index, | 3102 Node index, |
| 3074 AssignmentOperator operator, | 3103 AssignmentOperator operator, |
| 3075 Node rhs, | 3104 Node rhs, |
| 3076 A arg) { | 3105 A arg) { |
| 3077 apply(rhs, arg); | 3106 apply(rhs, arg); |
| 3078 return null; | 3107 return null; |
| 3079 } | 3108 } |
| 3080 | 3109 |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3275 R visitSuperGetterSetterPrefix( | 3304 R visitSuperGetterSetterPrefix( |
| 3276 Send node, | 3305 Send node, |
| 3277 FunctionElement getter, | 3306 FunctionElement getter, |
| 3278 FunctionElement setter, | 3307 FunctionElement setter, |
| 3279 IncDecOperator operator, | 3308 IncDecOperator operator, |
| 3280 A arg) { | 3309 A arg) { |
| 3281 return null; | 3310 return null; |
| 3282 } | 3311 } |
| 3283 | 3312 |
| 3284 @override | 3313 @override |
| 3314 R visitSuperIndex( |
| 3315 Send node, |
| 3316 FunctionElement function, |
| 3317 Node index, |
| 3318 A arg) { |
| 3319 apply(index, arg); |
| 3320 return null; |
| 3321 } |
| 3322 |
| 3323 @override |
| 3285 R visitSuperIndexSet( | 3324 R visitSuperIndexSet( |
| 3286 Send node, | 3325 SendSet node, |
| 3287 FunctionElement function, | 3326 FunctionElement function, |
| 3288 Node index, | 3327 Node index, |
| 3289 Node rhs, | 3328 Node rhs, |
| 3290 A arg) { | 3329 A arg) { |
| 3291 apply(index, arg); | 3330 apply(index, arg); |
| 3292 apply(rhs, arg); | 3331 apply(rhs, arg); |
| 3293 return null; | 3332 return null; |
| 3294 } | 3333 } |
| 3295 | 3334 |
| 3296 @override | 3335 @override |
| (...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3612 R visitTopLevelSetterSet( | 3651 R visitTopLevelSetterSet( |
| 3613 SendSet node, | 3652 SendSet node, |
| 3614 FunctionElement setter, | 3653 FunctionElement setter, |
| 3615 Node rhs, | 3654 Node rhs, |
| 3616 A arg) { | 3655 A arg) { |
| 3617 apply(rhs, arg); | 3656 apply(rhs, arg); |
| 3618 return null; | 3657 return null; |
| 3619 } | 3658 } |
| 3620 | 3659 |
| 3621 @override | 3660 @override |
| 3622 R visitTypeVariableTypeLiteralCompound( | 3661 R errorTypeVariableTypeLiteralCompound( |
| 3623 Send node, | 3662 Send node, |
| 3624 TypeVariableElement element, | 3663 TypeVariableElement element, |
| 3625 AssignmentOperator operator, | 3664 AssignmentOperator operator, |
| 3626 Node rhs, | 3665 Node rhs, |
| 3627 A arg) { | 3666 A arg) { |
| 3628 apply(rhs, arg); | 3667 apply(rhs, arg); |
| 3629 return null; | 3668 return null; |
| 3630 } | 3669 } |
| 3631 | 3670 |
| 3632 @override | 3671 @override |
| 3633 R visitTypeVariableTypeLiteralGet( | 3672 R visitTypeVariableTypeLiteralGet( |
| 3634 Send node, | 3673 Send node, |
| 3635 TypeVariableElement element, | 3674 TypeVariableElement element, |
| 3636 A arg) { | 3675 A arg) { |
| 3637 return null; | 3676 return null; |
| 3638 } | 3677 } |
| 3639 | 3678 |
| 3640 @override | 3679 @override |
| 3641 R visitTypeVariableTypeLiteralInvoke( | 3680 R visitTypeVariableTypeLiteralInvoke( |
| 3642 Send node, | 3681 Send node, |
| 3643 TypeVariableElement element, | 3682 TypeVariableElement element, |
| 3644 NodeList arguments, | 3683 NodeList arguments, |
| 3645 Selector selector, | 3684 Selector selector, |
| 3646 A arg) { | 3685 A arg) { |
| 3647 apply(arguments, arg); | 3686 apply(arguments, arg); |
| 3648 return null; | 3687 return null; |
| 3649 } | 3688 } |
| 3650 | 3689 |
| 3651 @override | 3690 @override |
| 3652 R visitTypeVariableTypeLiteralPostfix( | 3691 R errorTypeVariableTypeLiteralPostfix( |
| 3653 Send node, | 3692 Send node, |
| 3654 TypeVariableElement element, | 3693 TypeVariableElement element, |
| 3655 IncDecOperator operator, | 3694 IncDecOperator operator, |
| 3656 A arg) { | 3695 A arg) { |
| 3657 return null; | 3696 return null; |
| 3658 } | 3697 } |
| 3659 | 3698 |
| 3660 @override | 3699 @override |
| 3661 R visitTypeVariableTypeLiteralPrefix( | 3700 R errorTypeVariableTypeLiteralPrefix( |
| 3662 Send node, | 3701 Send node, |
| 3663 TypeVariableElement element, | 3702 TypeVariableElement element, |
| 3664 IncDecOperator operator, | 3703 IncDecOperator operator, |
| 3665 A arg) { | 3704 A arg) { |
| 3666 return null; | 3705 return null; |
| 3667 } | 3706 } |
| 3668 | 3707 |
| 3669 @override | 3708 @override |
| 3670 R visitTypedefTypeLiteralCompound( | 3709 R errorTypedefTypeLiteralCompound( |
| 3671 Send node, | 3710 Send node, |
| 3672 TypeConstantExpression constant, | 3711 TypeConstantExpression constant, |
| 3673 AssignmentOperator operator, | 3712 AssignmentOperator operator, |
| 3674 Node rhs, | 3713 Node rhs, |
| 3675 A arg) { | 3714 A arg) { |
| 3676 apply(rhs, arg); | 3715 apply(rhs, arg); |
| 3677 return null; | 3716 return null; |
| 3678 } | 3717 } |
| 3679 | 3718 |
| 3680 @override | 3719 @override |
| 3681 R visitTypedefTypeLiteralGet( | 3720 R visitTypedefTypeLiteralGet( |
| 3682 Send node, | 3721 Send node, |
| 3683 TypeConstantExpression constant, | 3722 TypeConstantExpression constant, |
| 3684 A arg) { | 3723 A arg) { |
| 3685 return null; | 3724 return null; |
| 3686 } | 3725 } |
| 3687 | 3726 |
| 3688 @override | 3727 @override |
| 3689 R visitTypedefTypeLiteralInvoke( | 3728 R visitTypedefTypeLiteralInvoke( |
| 3690 Send node, | 3729 Send node, |
| 3691 TypeConstantExpression constant, | 3730 TypeConstantExpression constant, |
| 3692 NodeList arguments, | 3731 NodeList arguments, |
| 3693 Selector selector, | 3732 Selector selector, |
| 3694 A arg) { | 3733 A arg) { |
| 3695 apply(arguments, arg); | 3734 apply(arguments, arg); |
| 3696 return null; | 3735 return null; |
| 3697 } | 3736 } |
| 3698 | 3737 |
| 3699 @override | 3738 @override |
| 3700 R visitTypedefTypeLiteralPostfix( | 3739 R errorTypedefTypeLiteralPostfix( |
| 3701 Send node, | 3740 Send node, |
| 3702 TypeConstantExpression constant, | 3741 TypeConstantExpression constant, |
| 3703 IncDecOperator operator, | 3742 IncDecOperator operator, |
| 3704 A arg) { | 3743 A arg) { |
| 3705 return null; | 3744 return null; |
| 3706 } | 3745 } |
| 3707 | 3746 |
| 3708 @override | 3747 @override |
| 3709 R visitTypedefTypeLiteralPrefix( | 3748 R errorTypedefTypeLiteralPrefix( |
| 3710 Send node, | 3749 Send node, |
| 3711 TypeConstantExpression constant, | 3750 TypeConstantExpression constant, |
| 3712 IncDecOperator operator, | 3751 IncDecOperator operator, |
| 3713 A arg) { | 3752 A arg) { |
| 3714 return null; | 3753 return null; |
| 3715 } | 3754 } |
| 3716 | 3755 |
| 3717 @override | 3756 @override |
| 3718 R visitUnary( | 3757 R visitUnary( |
| 3719 Send node, | 3758 Send node, |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3811 Node index, | 3850 Node index, |
| 3812 Node rhs, | 3851 Node rhs, |
| 3813 A arg) { | 3852 A arg) { |
| 3814 apply(index, arg); | 3853 apply(index, arg); |
| 3815 apply(rhs, arg); | 3854 apply(rhs, arg); |
| 3816 return null; | 3855 return null; |
| 3817 } | 3856 } |
| 3818 | 3857 |
| 3819 @override | 3858 @override |
| 3820 R errorUnresolvedSuperCompoundIndexSet( | 3859 R errorUnresolvedSuperCompoundIndexSet( |
| 3821 Send node, | 3860 SendSet node, |
| 3822 Element element, | 3861 Element element, |
| 3823 Node index, | 3862 Node index, |
| 3824 AssignmentOperator operator, | 3863 AssignmentOperator operator, |
| 3825 Node rhs, | 3864 Node rhs, |
| 3826 A arg) { | 3865 A arg) { |
| 3827 apply(index, arg); | 3866 apply(index, arg); |
| 3828 apply(rhs, arg); | 3867 apply(rhs, arg); |
| 3829 return null; | 3868 return null; |
| 3830 } | 3869 } |
| 3831 | 3870 |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3894 visitParameters(node.parameters); | 3933 visitParameters(node.parameters); |
| 3895 } | 3934 } |
| 3896 if (node.initializers != null) { | 3935 if (node.initializers != null) { |
| 3897 visitInitializers(node.initializers); | 3936 visitInitializers(node.initializers); |
| 3898 } | 3937 } |
| 3899 if (node.body != null) { | 3938 if (node.body != null) { |
| 3900 apply(node.body, null); | 3939 apply(node.body, null); |
| 3901 } | 3940 } |
| 3902 return null; | 3941 return null; |
| 3903 } | 3942 } |
| 3904 } | 3943 } |
| 3944 |
| 3945 /// Mixin that groups all `visitStaticX` and `visitTopLevelX` method by |
| 3946 /// delegating calls to `handleStaticX` methods. |
| 3947 /// |
| 3948 /// This mixin is useful for the cases where both top level members and static |
| 3949 /// class members are handled uniformly. |
| 3950 abstract class GroupStaticMixin<R, A> implements SemanticSendVisitor<R, A> { |
| 3951 R handleStaticFieldCompound( |
| 3952 Send node, |
| 3953 FieldElement field, |
| 3954 AssignmentOperator operator, |
| 3955 Node rhs, |
| 3956 A arg); |
| 3957 |
| 3958 R handleStaticFieldGet( |
| 3959 Send node, |
| 3960 FieldElement field, |
| 3961 A arg); |
| 3962 |
| 3963 R handleStaticFieldInvoke( |
| 3964 Send node, |
| 3965 FieldElement field, |
| 3966 NodeList arguments, |
| 3967 Selector selector, |
| 3968 A arg); |
| 3969 |
| 3970 R handleStaticFieldPostfixPrefix( |
| 3971 Send node, |
| 3972 FieldElement field, |
| 3973 IncDecOperator operator, |
| 3974 A arg, |
| 3975 {bool isPrefix}); |
| 3976 |
| 3977 R handleStaticFieldSet( |
| 3978 SendSet node, |
| 3979 FieldElement field, |
| 3980 Node rhs, |
| 3981 A arg); |
| 3982 |
| 3983 R handleStaticFunctionGet( |
| 3984 Send node, |
| 3985 MethodElement function, |
| 3986 A arg); |
| 3987 |
| 3988 R handleStaticFunctionInvoke( |
| 3989 Send node, |
| 3990 MethodElement function, |
| 3991 NodeList arguments, |
| 3992 Selector selector, |
| 3993 A arg); |
| 3994 |
| 3995 R handleStaticGetterGet( |
| 3996 Send node, |
| 3997 FunctionElement getter, |
| 3998 A arg); |
| 3999 |
| 4000 R handleStaticGetterInvoke( |
| 4001 Send node, |
| 4002 FunctionElement getter, |
| 4003 NodeList arguments, |
| 4004 Selector selector, |
| 4005 A arg); |
| 4006 |
| 4007 R handleStaticGetterSetterCompound( |
| 4008 Send node, |
| 4009 FunctionElement getter, |
| 4010 FunctionElement setter, |
| 4011 AssignmentOperator operator, |
| 4012 Node rhs, |
| 4013 A arg); |
| 4014 |
| 4015 R handleStaticGetterSetterPostfixPrefix( |
| 4016 Send node, |
| 4017 FunctionElement getter, |
| 4018 FunctionElement setter, |
| 4019 IncDecOperator operator, |
| 4020 A arg, |
| 4021 {bool isPrefix}); |
| 4022 |
| 4023 R handleStaticMethodSetterCompound( |
| 4024 Send node, |
| 4025 FunctionElement method, |
| 4026 FunctionElement setter, |
| 4027 AssignmentOperator operator, |
| 4028 Node rhs, |
| 4029 A arg); |
| 4030 |
| 4031 R handleStaticMethodSetterPostfixPrefix( |
| 4032 Send node, |
| 4033 FunctionElement getter, |
| 4034 FunctionElement setter, |
| 4035 IncDecOperator operator, |
| 4036 A arg, |
| 4037 {bool isPrefix}); |
| 4038 |
| 4039 R handleStaticSetterSet( |
| 4040 SendSet node, |
| 4041 FunctionElement setter, |
| 4042 Node rhs, |
| 4043 A arg); |
| 4044 |
| 4045 @override |
| 4046 R visitStaticFieldCompound( |
| 4047 Send node, |
| 4048 FieldElement field, |
| 4049 AssignmentOperator operator, |
| 4050 Node rhs, |
| 4051 A arg) { |
| 4052 return handleStaticFieldCompound(node, field, operator, rhs, arg); |
| 4053 } |
| 4054 |
| 4055 @override |
| 4056 R visitStaticFieldGet( |
| 4057 Send node, |
| 4058 FieldElement field, |
| 4059 A arg) { |
| 4060 return handleStaticFieldGet(node, field, arg); |
| 4061 } |
| 4062 |
| 4063 @override |
| 4064 R visitStaticFieldInvoke( |
| 4065 Send node, |
| 4066 FieldElement field, |
| 4067 NodeList arguments, |
| 4068 Selector selector, |
| 4069 A arg) { |
| 4070 return handleStaticFieldInvoke(node, field, arguments, selector, arg); |
| 4071 } |
| 4072 |
| 4073 @override |
| 4074 R visitStaticFieldPostfix( |
| 4075 Send node, |
| 4076 FieldElement field, |
| 4077 IncDecOperator operator, |
| 4078 A arg) { |
| 4079 return handleStaticFieldPostfixPrefix( |
| 4080 node, field, operator, arg, isPrefix: false); |
| 4081 } |
| 4082 |
| 4083 @override |
| 4084 R visitStaticFieldPrefix( |
| 4085 Send node, |
| 4086 FieldElement field, |
| 4087 IncDecOperator operator, |
| 4088 A arg) { |
| 4089 return handleStaticFieldPostfixPrefix( |
| 4090 node, field, operator, arg, isPrefix: true); |
| 4091 } |
| 4092 |
| 4093 @override |
| 4094 R visitStaticFieldSet( |
| 4095 SendSet node, |
| 4096 FieldElement field, |
| 4097 Node rhs, |
| 4098 A arg) { |
| 4099 return handleStaticFieldSet(node, field, rhs, arg); |
| 4100 } |
| 4101 |
| 4102 @override |
| 4103 R visitStaticFunctionGet( |
| 4104 Send node, |
| 4105 MethodElement function, |
| 4106 A arg) { |
| 4107 return handleStaticFunctionGet(node, function, arg); |
| 4108 } |
| 4109 |
| 4110 @override |
| 4111 R visitStaticFunctionInvoke( |
| 4112 Send node, |
| 4113 MethodElement function, |
| 4114 NodeList arguments, |
| 4115 Selector selector, |
| 4116 A arg) { |
| 4117 return handleStaticFunctionInvoke(node, function, arguments, selector, arg); |
| 4118 } |
| 4119 |
| 4120 @override |
| 4121 R visitStaticGetterGet( |
| 4122 Send node, |
| 4123 FunctionElement getter, |
| 4124 A arg) { |
| 4125 return handleStaticGetterGet(node, getter, arg); |
| 4126 } |
| 4127 |
| 4128 @override |
| 4129 R visitStaticGetterInvoke( |
| 4130 Send node, |
| 4131 FunctionElement getter, |
| 4132 NodeList arguments, |
| 4133 Selector selector, |
| 4134 A arg) { |
| 4135 return handleStaticGetterInvoke(node, getter, arguments, selector, arg); |
| 4136 } |
| 4137 |
| 4138 @override |
| 4139 R visitStaticGetterSetterCompound( |
| 4140 Send node, |
| 4141 FunctionElement getter, |
| 4142 FunctionElement setter, |
| 4143 AssignmentOperator operator, |
| 4144 Node rhs, |
| 4145 A arg) { |
| 4146 return handleStaticGetterSetterCompound( |
| 4147 node, getter, setter, operator, rhs, arg); |
| 4148 } |
| 4149 |
| 4150 @override |
| 4151 R visitStaticGetterSetterPostfix( |
| 4152 Send node, |
| 4153 FunctionElement getter, |
| 4154 FunctionElement setter, |
| 4155 IncDecOperator operator, |
| 4156 A arg) { |
| 4157 return handleStaticGetterSetterPostfixPrefix( |
| 4158 node, getter, setter, operator, arg, isPrefix: false); |
| 4159 } |
| 4160 |
| 4161 @override |
| 4162 R visitStaticGetterSetterPrefix( |
| 4163 Send node, |
| 4164 FunctionElement getter, |
| 4165 FunctionElement setter, |
| 4166 IncDecOperator operator, |
| 4167 A arg) { |
| 4168 return handleStaticGetterSetterPostfixPrefix( |
| 4169 node, getter, setter, operator, arg, isPrefix: true); |
| 4170 } |
| 4171 |
| 4172 @override |
| 4173 R visitStaticMethodSetterCompound( |
| 4174 Send node, |
| 4175 FunctionElement method, |
| 4176 FunctionElement setter, |
| 4177 AssignmentOperator operator, |
| 4178 Node rhs, |
| 4179 A arg) { |
| 4180 return handleStaticMethodSetterCompound( |
| 4181 node, method, setter, operator, rhs, arg); |
| 4182 } |
| 4183 |
| 4184 @override |
| 4185 R visitStaticMethodSetterPostfix( |
| 4186 Send node, |
| 4187 FunctionElement getter, |
| 4188 FunctionElement setter, |
| 4189 IncDecOperator operator, |
| 4190 A arg) { |
| 4191 return handleStaticMethodSetterPostfixPrefix( |
| 4192 node, getter, setter, operator, arg, isPrefix: false); |
| 4193 } |
| 4194 |
| 4195 @override |
| 4196 R visitStaticMethodSetterPrefix( |
| 4197 Send node, |
| 4198 FunctionElement getter, |
| 4199 FunctionElement setter, |
| 4200 IncDecOperator operator, |
| 4201 A arg) { |
| 4202 return handleStaticMethodSetterPostfixPrefix( |
| 4203 node, getter, setter, operator, arg, isPrefix: true); |
| 4204 } |
| 4205 |
| 4206 @override |
| 4207 R visitStaticSetterSet( |
| 4208 SendSet node, |
| 4209 FunctionElement setter, |
| 4210 Node rhs, |
| 4211 A arg) { |
| 4212 return handleStaticSetterSet(node, setter, rhs, arg); |
| 4213 } |
| 4214 |
| 4215 @override |
| 4216 R visitTopLevelFieldCompound( |
| 4217 Send node, |
| 4218 FieldElement field, |
| 4219 AssignmentOperator operator, |
| 4220 Node rhs, |
| 4221 A arg) { |
| 4222 return handleStaticFieldCompound(node, field, operator, rhs, arg); |
| 4223 } |
| 4224 |
| 4225 @override |
| 4226 R visitTopLevelFieldGet( |
| 4227 Send node, |
| 4228 FieldElement field, |
| 4229 A arg) { |
| 4230 return handleStaticFieldGet(node, field, arg); |
| 4231 } |
| 4232 |
| 4233 @override |
| 4234 R visitTopLevelFieldInvoke( |
| 4235 Send node, |
| 4236 FieldElement field, |
| 4237 NodeList arguments, |
| 4238 Selector selector, |
| 4239 A arg) { |
| 4240 return handleStaticFieldInvoke(node, field, arguments, selector, arg); |
| 4241 } |
| 4242 |
| 4243 @override |
| 4244 R visitTopLevelFieldPostfix( |
| 4245 Send node, |
| 4246 FieldElement field, |
| 4247 IncDecOperator operator, |
| 4248 A arg) { |
| 4249 return handleStaticFieldPostfixPrefix( |
| 4250 node, field, operator, arg, isPrefix: false); |
| 4251 } |
| 4252 |
| 4253 @override |
| 4254 R visitTopLevelFieldPrefix( |
| 4255 Send node, |
| 4256 FieldElement field, |
| 4257 IncDecOperator operator, |
| 4258 A arg) { |
| 4259 return handleStaticFieldPostfixPrefix( |
| 4260 node, field, operator, arg, isPrefix: true); |
| 4261 } |
| 4262 |
| 4263 @override |
| 4264 R visitTopLevelFieldSet( |
| 4265 SendSet node, |
| 4266 FieldElement field, |
| 4267 Node rhs, |
| 4268 A arg) { |
| 4269 return handleStaticFieldSet(node, field, rhs, arg); |
| 4270 } |
| 4271 |
| 4272 @override |
| 4273 R visitTopLevelFunctionGet( |
| 4274 Send node, |
| 4275 MethodElement function, |
| 4276 A arg) { |
| 4277 return handleStaticFunctionGet(node, function, arg); |
| 4278 } |
| 4279 |
| 4280 @override |
| 4281 R visitTopLevelFunctionInvoke( |
| 4282 Send node, |
| 4283 MethodElement function, |
| 4284 NodeList arguments, |
| 4285 Selector selector, |
| 4286 A arg) { |
| 4287 return handleStaticFunctionInvoke(node, function, arguments, selector, arg); |
| 4288 } |
| 4289 |
| 4290 @override |
| 4291 R visitTopLevelGetterGet( |
| 4292 Send node, |
| 4293 FunctionElement getter, |
| 4294 A arg) { |
| 4295 return handleStaticGetterGet(node, getter, arg); |
| 4296 } |
| 4297 |
| 4298 @override |
| 4299 R visitTopLevelGetterInvoke( |
| 4300 Send node, |
| 4301 FunctionElement getter, |
| 4302 NodeList arguments, |
| 4303 Selector selector, |
| 4304 A arg) { |
| 4305 return handleStaticGetterInvoke(node, getter, arguments, selector, arg); |
| 4306 } |
| 4307 |
| 4308 @override |
| 4309 R visitTopLevelGetterSetterCompound( |
| 4310 Send node, |
| 4311 FunctionElement getter, |
| 4312 FunctionElement setter, |
| 4313 AssignmentOperator operator, |
| 4314 Node rhs, |
| 4315 A arg) { |
| 4316 return handleStaticGetterSetterCompound( |
| 4317 node, getter, setter, operator, rhs, arg); |
| 4318 } |
| 4319 |
| 4320 @override |
| 4321 R visitTopLevelGetterSetterPostfix( |
| 4322 Send node, |
| 4323 FunctionElement getter, |
| 4324 FunctionElement setter, |
| 4325 IncDecOperator operator, |
| 4326 A arg) { |
| 4327 return handleStaticGetterSetterPostfixPrefix( |
| 4328 node, getter, setter, operator, arg, isPrefix: false); |
| 4329 } |
| 4330 |
| 4331 @override |
| 4332 R visitTopLevelGetterSetterPrefix( |
| 4333 Send node, |
| 4334 FunctionElement getter, |
| 4335 FunctionElement setter, |
| 4336 IncDecOperator operator, |
| 4337 A arg) { |
| 4338 return handleStaticGetterSetterPostfixPrefix( |
| 4339 node, getter, setter, operator, arg, isPrefix: true); |
| 4340 } |
| 4341 |
| 4342 @override |
| 4343 R visitTopLevelMethodSetterCompound( |
| 4344 Send node, |
| 4345 FunctionElement method, |
| 4346 FunctionElement setter, |
| 4347 AssignmentOperator operator, |
| 4348 Node rhs, |
| 4349 A arg) { |
| 4350 return handleStaticMethodSetterCompound( |
| 4351 node, method, setter, operator, rhs, arg); |
| 4352 } |
| 4353 |
| 4354 @override |
| 4355 R visitTopLevelMethodSetterPostfix( |
| 4356 Send node, |
| 4357 FunctionElement method, |
| 4358 FunctionElement setter, |
| 4359 IncDecOperator operator, |
| 4360 A arg) { |
| 4361 return handleStaticMethodSetterPostfixPrefix( |
| 4362 node, method, setter, operator, arg, isPrefix: false); |
| 4363 } |
| 4364 |
| 4365 @override |
| 4366 R visitTopLevelMethodSetterPrefix( |
| 4367 Send node, |
| 4368 FunctionElement method, |
| 4369 FunctionElement setter, |
| 4370 IncDecOperator operator, |
| 4371 A arg) { |
| 4372 return handleStaticMethodSetterPostfixPrefix( |
| 4373 node, method, setter, operator, arg, isPrefix: true); |
| 4374 } |
| 4375 |
| 4376 @override |
| 4377 R visitTopLevelSetterSet( |
| 4378 SendSet node, |
| 4379 FunctionElement setter, |
| 4380 Node rhs, |
| 4381 A arg) { |
| 4382 return handleStaticSetterSet(node, setter, rhs, arg); |
| 4383 } |
| 4384 } |
| 4385 |
| 4386 /// Mixin that groups all `visitLocalX` and `visitParameterX` method by |
| 4387 /// delegating calls to `handleLocalX` methods. |
| 4388 /// |
| 4389 /// This mixin is useful for the cases where both parameters, local variables, |
| 4390 /// and local functions, captured or not, are handled uniformly. |
| 4391 abstract class GroupLocalMixin<R, A> implements SemanticSendVisitor<R, A> { |
| 4392 R handleLocalCompound( |
| 4393 Send node, |
| 4394 LocalElement element, |
| 4395 AssignmentOperator operator, |
| 4396 Node rhs, |
| 4397 A arg); |
| 4398 |
| 4399 R handleLocalGet( |
| 4400 Send node, |
| 4401 LocalElement element, |
| 4402 A arg); |
| 4403 |
| 4404 R handleLocalInvoke( |
| 4405 Send node, |
| 4406 LocalElement element, |
| 4407 NodeList arguments, |
| 4408 Selector selector, |
| 4409 A arg); |
| 4410 |
| 4411 R handleLocalPostfixPrefix( |
| 4412 Send node, |
| 4413 LocalElement element, |
| 4414 IncDecOperator operator, |
| 4415 A arg, |
| 4416 {bool isPrefix}); |
| 4417 |
| 4418 R handleLocalSet( |
| 4419 SendSet node, |
| 4420 LocalElement element, |
| 4421 Node rhs, |
| 4422 A arg); |
| 4423 |
| 4424 @override |
| 4425 R visitLocalFunctionGet( |
| 4426 Send node, |
| 4427 LocalFunctionElement function, |
| 4428 A arg) { |
| 4429 return handleLocalGet(node, function, arg); |
| 4430 } |
| 4431 |
| 4432 @override |
| 4433 R visitLocalFunctionInvoke( |
| 4434 Send node, |
| 4435 LocalFunctionElement function, |
| 4436 NodeList arguments, |
| 4437 Selector selector, |
| 4438 A arg) { |
| 4439 return handleLocalInvoke(node, function, arguments, selector, arg); |
| 4440 } |
| 4441 |
| 4442 @override |
| 4443 R visitLocalVariableCompound( |
| 4444 Send node, |
| 4445 LocalVariableElement variable, |
| 4446 AssignmentOperator operator, |
| 4447 Node rhs, |
| 4448 A arg) { |
| 4449 return handleLocalCompound(node, variable, operator, rhs, arg); |
| 4450 } |
| 4451 |
| 4452 @override |
| 4453 R visitLocalVariableGet( |
| 4454 Send node, |
| 4455 LocalVariableElement variable, |
| 4456 A arg) { |
| 4457 return handleLocalGet(node, variable, arg); |
| 4458 } |
| 4459 |
| 4460 @override |
| 4461 R visitLocalVariableInvoke( |
| 4462 Send node, |
| 4463 LocalVariableElement variable, |
| 4464 NodeList arguments, |
| 4465 Selector selector, |
| 4466 A arg) { |
| 4467 return handleLocalInvoke(node, variable, arguments, selector, arg); |
| 4468 } |
| 4469 |
| 4470 @override |
| 4471 R visitLocalVariablePostfix( |
| 4472 Send node, |
| 4473 LocalVariableElement variable, |
| 4474 IncDecOperator operator, |
| 4475 A arg) { |
| 4476 return handleLocalPostfixPrefix( |
| 4477 node, variable, operator, arg, isPrefix: false); |
| 4478 } |
| 4479 |
| 4480 @override |
| 4481 R visitLocalVariablePrefix( |
| 4482 Send node, |
| 4483 LocalVariableElement variable, |
| 4484 IncDecOperator operator, |
| 4485 A arg) { |
| 4486 return handleLocalPostfixPrefix( |
| 4487 node, variable, operator, arg, isPrefix: true); |
| 4488 } |
| 4489 |
| 4490 @override |
| 4491 R visitLocalVariableSet( |
| 4492 SendSet node, |
| 4493 LocalVariableElement variable, |
| 4494 Node rhs, |
| 4495 A arg) { |
| 4496 return handleLocalSet(node, variable, rhs, arg); |
| 4497 } |
| 4498 |
| 4499 @override |
| 4500 R visitParameterCompound( |
| 4501 Send node, |
| 4502 ParameterElement parameter, |
| 4503 AssignmentOperator operator, |
| 4504 Node rhs, |
| 4505 A arg) { |
| 4506 return handleLocalCompound(node, parameter, operator, rhs, arg); |
| 4507 } |
| 4508 |
| 4509 @override |
| 4510 R visitParameterGet( |
| 4511 Send node, |
| 4512 ParameterElement parameter, |
| 4513 A arg) { |
| 4514 return handleLocalGet(node, parameter, arg); |
| 4515 } |
| 4516 |
| 4517 @override |
| 4518 R visitParameterInvoke( |
| 4519 Send node, |
| 4520 ParameterElement parameter, |
| 4521 NodeList arguments, |
| 4522 Selector selector, |
| 4523 A arg) { |
| 4524 return handleLocalInvoke(node, parameter, arguments, selector, arg); |
| 4525 } |
| 4526 |
| 4527 @override |
| 4528 R visitParameterPostfix( |
| 4529 Send node, |
| 4530 ParameterElement parameter, |
| 4531 IncDecOperator operator, |
| 4532 A arg) { |
| 4533 return handleLocalPostfixPrefix( |
| 4534 node, parameter, operator, arg, isPrefix: false); |
| 4535 } |
| 4536 |
| 4537 @override |
| 4538 R visitParameterPrefix( |
| 4539 Send node, |
| 4540 ParameterElement parameter, |
| 4541 IncDecOperator operator, |
| 4542 A arg) { |
| 4543 return handleLocalPostfixPrefix( |
| 4544 node, parameter, operator, arg, isPrefix: true); |
| 4545 } |
| 4546 |
| 4547 @override |
| 4548 R visitParameterSet( |
| 4549 SendSet node, |
| 4550 ParameterElement parameter, |
| 4551 Node rhs, |
| 4552 A arg) { |
| 4553 return handleLocalSet(node, parameter, rhs, arg); |
| 4554 } |
| 4555 } |
| 4556 |
| 4557 /// Mixin that groups all `visitConstantX` and `visitXTypeLiteralY` methods for |
| 4558 /// constant type literals by delegating calls to `handleConstantX` methods. |
| 4559 /// |
| 4560 /// This mixin is useful for the cases where expressions on constants are |
| 4561 /// handled uniformly. |
| 4562 abstract class GroupConstantMixin<R, A> implements SemanticSendVisitor<R, A> { |
| 4563 R handleConstantGet( |
| 4564 Send node, |
| 4565 ConstantExpression constant, |
| 4566 A arg); |
| 4567 |
| 4568 R handleConstantInvoke( |
| 4569 Send node, |
| 4570 ConstantExpression constant, |
| 4571 NodeList arguments, |
| 4572 Selector selector, |
| 4573 A arg); |
| 4574 |
| 4575 @override |
| 4576 R visitClassTypeLiteralGet( |
| 4577 Send node, |
| 4578 TypeConstantExpression constant, |
| 4579 A arg) { |
| 4580 return handleConstantGet(node, constant, arg); |
| 4581 } |
| 4582 |
| 4583 @override |
| 4584 R visitClassTypeLiteralInvoke( |
| 4585 Send node, |
| 4586 TypeConstantExpression constant, |
| 4587 NodeList arguments, |
| 4588 Selector selector, |
| 4589 A arg) { |
| 4590 return handleConstantInvoke(node, constant, arguments, selector, arg); |
| 4591 } |
| 4592 |
| 4593 @override |
| 4594 R visitConstantGet( |
| 4595 Send node, |
| 4596 ConstantExpression constant, |
| 4597 A arg) { |
| 4598 return handleConstantGet(node, constant, arg); |
| 4599 } |
| 4600 |
| 4601 @override |
| 4602 R visitConstantInvoke( |
| 4603 Send node, |
| 4604 ConstantExpression constant, |
| 4605 NodeList arguments, |
| 4606 Selector selector, |
| 4607 A arg) { |
| 4608 return handleConstantInvoke(node, constant, arguments, selector, arg); |
| 4609 } |
| 4610 |
| 4611 @override |
| 4612 R visitDynamicTypeLiteralGet( |
| 4613 Send node, |
| 4614 TypeConstantExpression constant, |
| 4615 A arg) { |
| 4616 return handleConstantGet(node, constant, arg); |
| 4617 } |
| 4618 |
| 4619 @override |
| 4620 R visitDynamicTypeLiteralInvoke( |
| 4621 Send node, |
| 4622 TypeConstantExpression constant, |
| 4623 NodeList arguments, |
| 4624 Selector selector, |
| 4625 A arg) { |
| 4626 return handleConstantInvoke(node, constant, arguments, selector, arg); |
| 4627 } |
| 4628 |
| 4629 @override |
| 4630 R visitTypedefTypeLiteralGet( |
| 4631 Send node, |
| 4632 TypeConstantExpression constant, |
| 4633 A arg) { |
| 4634 return handleConstantGet(node, constant, arg); |
| 4635 } |
| 4636 |
| 4637 @override |
| 4638 R visitTypedefTypeLiteralInvoke( |
| 4639 Send node, |
| 4640 TypeConstantExpression constant, |
| 4641 NodeList arguments, |
| 4642 Selector selector, |
| 4643 A arg) { |
| 4644 return handleConstantInvoke(node, constant, arguments, selector, arg); |
| 4645 } |
| 4646 } |
| 4647 |
| 4648 /// Mixin that groups all `visitDynamicPropertyX` and `visitThisPropertyY` |
| 4649 /// methods for by delegating calls to `handleDynamicX` methods, providing |
| 4650 /// `null` as the receiver for the this properties. |
| 4651 /// |
| 4652 /// This mixin is useful for the cases where dynamic and this properties are |
| 4653 /// handled uniformly. |
| 4654 abstract class GroupDynamicMixin<R, A> implements SemanticSendVisitor<R, A> { |
| 4655 R handleDynamicCompound( |
| 4656 Send node, |
| 4657 Node receiver, |
| 4658 AssignmentOperator operator, |
| 4659 Node rhs, |
| 4660 Selector getterSelector, |
| 4661 Selector setterSelector, |
| 4662 A arg); |
| 4663 |
| 4664 R handleDynamicGet( |
| 4665 Send node, |
| 4666 Node receiver, |
| 4667 Selector selector, |
| 4668 A arg); |
| 4669 |
| 4670 R handleDynamicInvoke( |
| 4671 Send node, |
| 4672 Node receiver, |
| 4673 NodeList arguments, |
| 4674 Selector selector, |
| 4675 A arg); |
| 4676 |
| 4677 R handleDynamicPostfixPrefix( |
| 4678 Send node, |
| 4679 Node receiver, |
| 4680 IncDecOperator operator, |
| 4681 Selector getterSelector, |
| 4682 Selector setterSelector, |
| 4683 A arg, |
| 4684 {bool isPrefix}); |
| 4685 |
| 4686 R handleDynamicSet( |
| 4687 SendSet node, |
| 4688 Node receiver, |
| 4689 Selector selector, |
| 4690 Node rhs, |
| 4691 A arg); |
| 4692 |
| 4693 @override |
| 4694 R visitDynamicPropertyCompound( |
| 4695 Send node, |
| 4696 Node receiver, |
| 4697 AssignmentOperator operator, |
| 4698 Node rhs, |
| 4699 Selector getterSelector, |
| 4700 Selector setterSelector, |
| 4701 A arg) { |
| 4702 return handleDynamicCompound( |
| 4703 node, receiver, operator, rhs, getterSelector, setterSelector, arg); |
| 4704 } |
| 4705 |
| 4706 @override |
| 4707 R visitDynamicPropertyGet( |
| 4708 Send node, |
| 4709 Node receiver, |
| 4710 Selector selector, |
| 4711 A arg) { |
| 4712 return handleDynamicGet(node, receiver, selector, arg); |
| 4713 } |
| 4714 |
| 4715 @override |
| 4716 R visitDynamicPropertyInvoke( |
| 4717 Send node, |
| 4718 Node receiver, |
| 4719 NodeList arguments, |
| 4720 Selector selector, |
| 4721 A arg) { |
| 4722 return handleDynamicInvoke(node, receiver, arguments, selector, arg); |
| 4723 } |
| 4724 |
| 4725 @override |
| 4726 R visitDynamicPropertyPostfix( |
| 4727 Send node, |
| 4728 Node receiver, |
| 4729 IncDecOperator operator, |
| 4730 Selector getterSelector, |
| 4731 Selector setterSelector, |
| 4732 A arg) { |
| 4733 return handleDynamicPostfixPrefix( |
| 4734 node, receiver, operator, |
| 4735 getterSelector, setterSelector, arg, isPrefix: false); |
| 4736 } |
| 4737 |
| 4738 @override |
| 4739 R visitDynamicPropertyPrefix( |
| 4740 Send node, |
| 4741 Node receiver, |
| 4742 IncDecOperator operator, |
| 4743 Selector getterSelector, |
| 4744 Selector setterSelector, |
| 4745 A arg) { |
| 4746 return handleDynamicPostfixPrefix( |
| 4747 node, receiver, operator, |
| 4748 getterSelector, setterSelector, arg, isPrefix: true); |
| 4749 } |
| 4750 |
| 4751 @override |
| 4752 R visitDynamicPropertySet( |
| 4753 SendSet node, |
| 4754 Node receiver, |
| 4755 Selector selector, |
| 4756 Node rhs, |
| 4757 A arg) { |
| 4758 return handleDynamicSet(node, receiver, selector, rhs, arg); |
| 4759 } |
| 4760 |
| 4761 @override |
| 4762 R visitThisPropertyCompound( |
| 4763 Send node, |
| 4764 AssignmentOperator operator, |
| 4765 Node rhs, |
| 4766 Selector getterSelector, |
| 4767 Selector setterSelector, |
| 4768 A arg) { |
| 4769 return handleDynamicCompound( |
| 4770 node, null, operator, rhs, getterSelector, setterSelector, arg); |
| 4771 } |
| 4772 |
| 4773 @override |
| 4774 R visitThisPropertyGet( |
| 4775 Send node, |
| 4776 Selector selector, |
| 4777 A arg) { |
| 4778 return handleDynamicGet(node, null, selector, arg); |
| 4779 } |
| 4780 |
| 4781 @override |
| 4782 R visitThisPropertyInvoke( |
| 4783 Send node, |
| 4784 NodeList arguments, |
| 4785 Selector selector, |
| 4786 A arg) { |
| 4787 return handleDynamicInvoke(node, null, arguments, selector, arg); |
| 4788 } |
| 4789 |
| 4790 @override |
| 4791 R visitThisPropertyPostfix( |
| 4792 Send node, |
| 4793 IncDecOperator operator, |
| 4794 Selector getterSelector, |
| 4795 Selector setterSelector, |
| 4796 A arg) { |
| 4797 return handleDynamicPostfixPrefix( |
| 4798 node, null, operator, |
| 4799 getterSelector, setterSelector, arg, isPrefix: false); |
| 4800 } |
| 4801 |
| 4802 @override |
| 4803 R visitThisPropertyPrefix( |
| 4804 Send node, |
| 4805 IncDecOperator operator, |
| 4806 Selector getterSelector, |
| 4807 Selector setterSelector, |
| 4808 A arg) { |
| 4809 return handleDynamicPostfixPrefix( |
| 4810 node, null, operator, |
| 4811 getterSelector, setterSelector, arg, isPrefix: true); |
| 4812 } |
| 4813 |
| 4814 @override |
| 4815 R visitThisPropertySet( |
| 4816 SendSet node, |
| 4817 Selector selector, |
| 4818 Node rhs, |
| 4819 A arg) { |
| 4820 return handleDynamicSet(node, null, selector, rhs, arg); |
| 4821 } |
| 4822 } |
| 4823 |
| 4824 /// Mixin that groups all `visitSuperXPrefix`, `visitSuperXPostfix` methods for |
| 4825 /// by delegating calls to `handleSuperXPostfixPrefix` methods. |
| 4826 /// |
| 4827 /// This mixin is useful for the cases where super prefix/postfix expression are |
| 4828 /// handled uniformly. |
| 4829 abstract class GroupSuperMixin<R, A> implements SemanticSendVisitor<R, A> { |
| 4830 R handleSuperFieldFieldPostfixPrefix( |
| 4831 Send node, |
| 4832 FieldElement readField, |
| 4833 FieldElement writtenField, |
| 4834 IncDecOperator operator, |
| 4835 A arg, |
| 4836 {bool isPrefix}); |
| 4837 |
| 4838 R handleSuperFieldSetterPostfixPrefix( |
| 4839 Send node, |
| 4840 FieldElement field, |
| 4841 FunctionElement setter, |
| 4842 IncDecOperator operator, |
| 4843 A arg, |
| 4844 {bool isPrefix}); |
| 4845 |
| 4846 R handleSuperGetterFieldPostfixPrefix( |
| 4847 Send node, |
| 4848 FunctionElement getter, |
| 4849 FieldElement field, |
| 4850 IncDecOperator operator, |
| 4851 A arg, |
| 4852 {bool isPrefix}); |
| 4853 |
| 4854 R handleSuperGetterSetterPostfixPrefix( |
| 4855 Send node, |
| 4856 FunctionElement getter, |
| 4857 FunctionElement setter, |
| 4858 IncDecOperator operator, |
| 4859 A arg, |
| 4860 {bool isPrefix}); |
| 4861 |
| 4862 R handleSuperMethodSetterPostfixPrefix( |
| 4863 Send node, |
| 4864 FunctionElement method, |
| 4865 FunctionElement setter, |
| 4866 IncDecOperator operator, |
| 4867 A arg, |
| 4868 {bool isPrefix}); |
| 4869 |
| 4870 @override |
| 4871 R visitSuperFieldFieldPostfix( |
| 4872 Send node, |
| 4873 FieldElement readField, |
| 4874 FieldElement writtenField, |
| 4875 IncDecOperator operator, |
| 4876 A arg) { |
| 4877 return handleSuperFieldFieldPostfixPrefix( |
| 4878 node, readField, writtenField, operator, arg, isPrefix: false); |
| 4879 } |
| 4880 |
| 4881 @override |
| 4882 R visitSuperFieldFieldPrefix( |
| 4883 Send node, |
| 4884 FieldElement readField, |
| 4885 FieldElement writtenField, |
| 4886 IncDecOperator operator, |
| 4887 A arg) { |
| 4888 return handleSuperFieldFieldPostfixPrefix( |
| 4889 node, readField, writtenField, operator, arg, isPrefix: true); |
| 4890 } |
| 4891 |
| 4892 @override |
| 4893 R visitSuperFieldPostfix( |
| 4894 Send node, |
| 4895 FieldElement field, |
| 4896 IncDecOperator operator, |
| 4897 A arg) { |
| 4898 return handleSuperFieldFieldPostfixPrefix( |
| 4899 node, field, field, operator, arg, isPrefix: false); |
| 4900 } |
| 4901 |
| 4902 @override |
| 4903 R visitSuperFieldPrefix( |
| 4904 Send node, |
| 4905 FieldElement field, |
| 4906 IncDecOperator operator, |
| 4907 A arg) { |
| 4908 return handleSuperFieldFieldPostfixPrefix( |
| 4909 node, field, field, operator, arg, isPrefix: true); |
| 4910 } |
| 4911 |
| 4912 @override |
| 4913 R visitSuperFieldSetterPostfix( |
| 4914 Send node, |
| 4915 FieldElement field, |
| 4916 FunctionElement setter, |
| 4917 IncDecOperator operator, |
| 4918 A arg) { |
| 4919 return handleSuperFieldSetterPostfixPrefix( |
| 4920 node, field, setter, operator, arg, isPrefix: false); |
| 4921 } |
| 4922 |
| 4923 @override |
| 4924 R visitSuperFieldSetterPrefix( |
| 4925 Send node, |
| 4926 FieldElement field, |
| 4927 FunctionElement setter, |
| 4928 IncDecOperator operator, |
| 4929 A arg) { |
| 4930 return handleSuperFieldSetterPostfixPrefix( |
| 4931 node, field, setter, operator, arg, isPrefix: true); |
| 4932 } |
| 4933 |
| 4934 @override |
| 4935 R visitSuperGetterFieldPostfix( |
| 4936 Send node, |
| 4937 FunctionElement getter, |
| 4938 FieldElement field, |
| 4939 IncDecOperator operator, |
| 4940 A arg) { |
| 4941 return handleSuperGetterFieldPostfixPrefix( |
| 4942 node, getter, field, operator, arg, isPrefix: false); |
| 4943 } |
| 4944 |
| 4945 @override |
| 4946 R visitSuperGetterFieldPrefix( |
| 4947 Send node, |
| 4948 FunctionElement getter, |
| 4949 FieldElement field, |
| 4950 IncDecOperator operator, |
| 4951 A arg) { |
| 4952 return handleSuperGetterFieldPostfixPrefix( |
| 4953 node, getter, field, operator, arg, isPrefix: true); |
| 4954 } |
| 4955 |
| 4956 @override |
| 4957 R visitSuperGetterSetterPostfix( |
| 4958 Send node, |
| 4959 FunctionElement getter, |
| 4960 FunctionElement setter, |
| 4961 IncDecOperator operator, |
| 4962 A arg) { |
| 4963 return handleSuperGetterSetterPostfixPrefix( |
| 4964 node, getter, setter, operator, arg, isPrefix: false); |
| 4965 } |
| 4966 |
| 4967 @override |
| 4968 R visitSuperGetterSetterPrefix( |
| 4969 Send node, |
| 4970 FunctionElement getter, |
| 4971 FunctionElement setter, |
| 4972 IncDecOperator operator, |
| 4973 A arg) { |
| 4974 return handleSuperGetterSetterPostfixPrefix( |
| 4975 node, getter, setter, operator, arg, isPrefix: true); |
| 4976 } |
| 4977 |
| 4978 @override |
| 4979 R visitSuperMethodSetterPostfix( |
| 4980 Send node, |
| 4981 FunctionElement method, |
| 4982 FunctionElement setter, |
| 4983 IncDecOperator operator, |
| 4984 A arg) { |
| 4985 return handleSuperMethodSetterPostfixPrefix( |
| 4986 node, method, setter, operator, arg, isPrefix: false); |
| 4987 } |
| 4988 |
| 4989 @override |
| 4990 R visitSuperMethodSetterPrefix( |
| 4991 Send node, |
| 4992 FunctionElement method, |
| 4993 FunctionElement setter, |
| 4994 IncDecOperator operator, |
| 4995 A arg) { |
| 4996 return handleSuperMethodSetterPostfixPrefix( |
| 4997 node, method, setter, operator, arg, isPrefix: true); |
| 4998 } |
| 4999 } |
| OLD | NEW |