| 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.send_structure; | 5 library dart2js.send_structure; |
| 6 | 6 |
| 7 import 'access_semantics.dart'; | 7 import 'access_semantics.dart'; |
| 8 import 'operators.dart'; | 8 import 'operators.dart'; |
| 9 import 'semantic_visitor.dart'; | 9 import 'semantic_visitor.dart'; |
| 10 import '../dart_types.dart'; | 10 import '../dart_types.dart'; |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 170 case AccessKind.LOCAL_FUNCTION: | 170 case AccessKind.LOCAL_FUNCTION: |
| 171 return visitor.visitLocalFunctionInvoke( | 171 return visitor.visitLocalFunctionInvoke( |
| 172 node, | 172 node, |
| 173 semantics.element, | 173 semantics.element, |
| 174 node.argumentsNode, | 174 node.argumentsNode, |
| 175 // TODO(johnniwinther): Store the call selector instead of the | 175 // TODO(johnniwinther): Store the call selector instead of the |
| 176 // selector using the name of the function. | 176 // selector using the name of the function. |
| 177 callStructure, | 177 callStructure, |
| 178 arg); | 178 arg); |
| 179 case AccessKind.LOCAL_VARIABLE: | 179 case AccessKind.LOCAL_VARIABLE: |
| 180 case AccessKind.FINAL_LOCAL_VARIABLE: |
| 180 return visitor.visitLocalVariableInvoke( | 181 return visitor.visitLocalVariableInvoke( |
| 181 node, | 182 node, |
| 182 semantics.element, | 183 semantics.element, |
| 183 node.argumentsNode, | 184 node.argumentsNode, |
| 184 // TODO(johnniwinther): Store the call selector instead of the | 185 // TODO(johnniwinther): Store the call selector instead of the |
| 185 // selector using the name of the variable. | 186 // selector using the name of the variable. |
| 186 callStructure, | 187 callStructure, |
| 187 arg); | 188 arg); |
| 188 case AccessKind.PARAMETER: | 189 case AccessKind.PARAMETER: |
| 190 case AccessKind.FINAL_PARAMETER: |
| 189 return visitor.visitParameterInvoke( | 191 return visitor.visitParameterInvoke( |
| 190 node, | 192 node, |
| 191 semantics.element, | 193 semantics.element, |
| 192 node.argumentsNode, | 194 node.argumentsNode, |
| 193 // TODO(johnniwinther): Store the call selector instead of the | 195 // TODO(johnniwinther): Store the call selector instead of the |
| 194 // selector using the name of the parameter. | 196 // selector using the name of the parameter. |
| 195 callStructure, | 197 callStructure, |
| 196 arg); | 198 arg); |
| 197 case AccessKind.STATIC_FIELD: | 199 case AccessKind.STATIC_FIELD: |
| 200 case AccessKind.FINAL_STATIC_FIELD: |
| 198 return visitor.visitStaticFieldInvoke( | 201 return visitor.visitStaticFieldInvoke( |
| 199 node, | 202 node, |
| 200 semantics.element, | 203 semantics.element, |
| 201 node.argumentsNode, | 204 node.argumentsNode, |
| 202 callStructure, | 205 callStructure, |
| 203 arg); | 206 arg); |
| 204 case AccessKind.STATIC_METHOD: | 207 case AccessKind.STATIC_METHOD: |
| 205 return visitor.visitStaticFunctionInvoke( | 208 return visitor.visitStaticFunctionInvoke( |
| 206 node, | 209 node, |
| 207 semantics.element, | 210 semantics.element, |
| 208 node.argumentsNode, | 211 node.argumentsNode, |
| 209 callStructure, | 212 callStructure, |
| 210 arg); | 213 arg); |
| 211 case AccessKind.STATIC_GETTER: | 214 case AccessKind.STATIC_GETTER: |
| 212 return visitor.visitStaticGetterInvoke( | 215 return visitor.visitStaticGetterInvoke( |
| 213 node, | 216 node, |
| 214 semantics.element, | 217 semantics.element, |
| 215 node.argumentsNode, | 218 node.argumentsNode, |
| 216 callStructure, | 219 callStructure, |
| 217 arg); | 220 arg); |
| 218 case AccessKind.STATIC_SETTER: | 221 case AccessKind.STATIC_SETTER: |
| 219 return visitor.errorStaticSetterInvoke( | 222 return visitor.errorStaticSetterInvoke( |
| 220 node, | 223 node, |
| 221 semantics.element, | 224 semantics.element, |
| 222 node.argumentsNode, | 225 node.argumentsNode, |
| 223 callStructure, | 226 callStructure, |
| 224 arg); | 227 arg); |
| 225 case AccessKind.TOPLEVEL_FIELD: | 228 case AccessKind.TOPLEVEL_FIELD: |
| 229 case AccessKind.FINAL_TOPLEVEL_FIELD: |
| 226 return visitor.visitTopLevelFieldInvoke( | 230 return visitor.visitTopLevelFieldInvoke( |
| 227 node, | 231 node, |
| 228 semantics.element, | 232 semantics.element, |
| 229 node.argumentsNode, | 233 node.argumentsNode, |
| 230 callStructure, | 234 callStructure, |
| 231 arg); | 235 arg); |
| 232 case AccessKind.TOPLEVEL_METHOD: | 236 case AccessKind.TOPLEVEL_METHOD: |
| 233 return visitor.visitTopLevelFunctionInvoke( | 237 return visitor.visitTopLevelFunctionInvoke( |
| 234 node, | 238 node, |
| 235 semantics.element, | 239 semantics.element, |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 291 node.argumentsNode, | 295 node.argumentsNode, |
| 292 callStructure, | 296 callStructure, |
| 293 arg); | 297 arg); |
| 294 case AccessKind.THIS_PROPERTY: | 298 case AccessKind.THIS_PROPERTY: |
| 295 return visitor.visitThisPropertyInvoke( | 299 return visitor.visitThisPropertyInvoke( |
| 296 node, | 300 node, |
| 297 node.argumentsNode, | 301 node.argumentsNode, |
| 298 selector, | 302 selector, |
| 299 arg); | 303 arg); |
| 300 case AccessKind.SUPER_FIELD: | 304 case AccessKind.SUPER_FIELD: |
| 305 case AccessKind.SUPER_FINAL_FIELD: |
| 301 return visitor.visitSuperFieldInvoke( | 306 return visitor.visitSuperFieldInvoke( |
| 302 node, | 307 node, |
| 303 semantics.element, | 308 semantics.element, |
| 304 node.argumentsNode, | 309 node.argumentsNode, |
| 305 callStructure, | 310 callStructure, |
| 306 arg); | 311 arg); |
| 307 case AccessKind.SUPER_METHOD: | 312 case AccessKind.SUPER_METHOD: |
| 308 return visitor.visitSuperMethodInvoke( | 313 return visitor.visitSuperMethodInvoke( |
| 309 node, | 314 node, |
| 310 semantics.element, | 315 semantics.element, |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 423 node, | 428 node, |
| 424 node.receiver, | 429 node.receiver, |
| 425 selector, | 430 selector, |
| 426 arg); | 431 arg); |
| 427 case AccessKind.LOCAL_FUNCTION: | 432 case AccessKind.LOCAL_FUNCTION: |
| 428 return visitor.visitLocalFunctionGet( | 433 return visitor.visitLocalFunctionGet( |
| 429 node, | 434 node, |
| 430 semantics.element, | 435 semantics.element, |
| 431 arg); | 436 arg); |
| 432 case AccessKind.LOCAL_VARIABLE: | 437 case AccessKind.LOCAL_VARIABLE: |
| 438 case AccessKind.FINAL_LOCAL_VARIABLE: |
| 433 return visitor.visitLocalVariableGet( | 439 return visitor.visitLocalVariableGet( |
| 434 node, | 440 node, |
| 435 semantics.element, | 441 semantics.element, |
| 436 arg); | 442 arg); |
| 437 case AccessKind.PARAMETER: | 443 case AccessKind.PARAMETER: |
| 444 case AccessKind.FINAL_PARAMETER: |
| 438 return visitor.visitParameterGet( | 445 return visitor.visitParameterGet( |
| 439 node, | 446 node, |
| 440 semantics.element, | 447 semantics.element, |
| 441 arg); | 448 arg); |
| 442 case AccessKind.STATIC_FIELD: | 449 case AccessKind.STATIC_FIELD: |
| 450 case AccessKind.FINAL_STATIC_FIELD: |
| 443 return visitor.visitStaticFieldGet( | 451 return visitor.visitStaticFieldGet( |
| 444 node, | 452 node, |
| 445 semantics.element, | 453 semantics.element, |
| 446 arg); | 454 arg); |
| 447 case AccessKind.STATIC_METHOD: | 455 case AccessKind.STATIC_METHOD: |
| 448 return visitor.visitStaticFunctionGet( | 456 return visitor.visitStaticFunctionGet( |
| 449 node, | 457 node, |
| 450 semantics.element, | 458 semantics.element, |
| 451 arg); | 459 arg); |
| 452 case AccessKind.STATIC_GETTER: | 460 case AccessKind.STATIC_GETTER: |
| 453 return visitor.visitStaticGetterGet( | 461 return visitor.visitStaticGetterGet( |
| 454 node, | 462 node, |
| 455 semantics.element, | 463 semantics.element, |
| 456 arg); | 464 arg); |
| 457 case AccessKind.STATIC_SETTER: | 465 case AccessKind.STATIC_SETTER: |
| 458 return visitor.errorStaticSetterGet( | 466 return visitor.errorStaticSetterGet( |
| 459 node, | 467 node, |
| 460 semantics.element, | 468 semantics.element, |
| 461 arg); | 469 arg); |
| 462 case AccessKind.TOPLEVEL_FIELD: | 470 case AccessKind.TOPLEVEL_FIELD: |
| 471 case AccessKind.FINAL_TOPLEVEL_FIELD: |
| 463 return visitor.visitTopLevelFieldGet( | 472 return visitor.visitTopLevelFieldGet( |
| 464 node, | 473 node, |
| 465 semantics.element, | 474 semantics.element, |
| 466 arg); | 475 arg); |
| 467 case AccessKind.TOPLEVEL_METHOD: | 476 case AccessKind.TOPLEVEL_METHOD: |
| 468 return visitor.visitTopLevelFunctionGet( | 477 return visitor.visitTopLevelFunctionGet( |
| 469 node, | 478 node, |
| 470 semantics.element, | 479 semantics.element, |
| 471 arg); | 480 arg); |
| 472 case AccessKind.TOPLEVEL_GETTER: | 481 case AccessKind.TOPLEVEL_GETTER: |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 504 break; | 513 break; |
| 505 case AccessKind.THIS: | 514 case AccessKind.THIS: |
| 506 // TODO(johnniwinther): Handle this when `this` is a [Send]. | 515 // TODO(johnniwinther): Handle this when `this` is a [Send]. |
| 507 break; | 516 break; |
| 508 case AccessKind.THIS_PROPERTY: | 517 case AccessKind.THIS_PROPERTY: |
| 509 return visitor.visitThisPropertyGet( | 518 return visitor.visitThisPropertyGet( |
| 510 node, | 519 node, |
| 511 selector, | 520 selector, |
| 512 arg); | 521 arg); |
| 513 case AccessKind.SUPER_FIELD: | 522 case AccessKind.SUPER_FIELD: |
| 523 case AccessKind.SUPER_FINAL_FIELD: |
| 514 return visitor.visitSuperFieldGet( | 524 return visitor.visitSuperFieldGet( |
| 515 node, | 525 node, |
| 516 semantics.element, | 526 semantics.element, |
| 517 arg); | 527 arg); |
| 518 case AccessKind.SUPER_METHOD: | 528 case AccessKind.SUPER_METHOD: |
| 519 return visitor.visitSuperMethodGet( | 529 return visitor.visitSuperMethodGet( |
| 520 node, | 530 node, |
| 521 semantics.element, | 531 semantics.element, |
| 522 arg); | 532 arg); |
| 523 case AccessKind.SUPER_GETTER: | 533 case AccessKind.SUPER_GETTER: |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 579 node, | 589 node, |
| 580 semantics.element, | 590 semantics.element, |
| 581 node.arguments.single, | 591 node.arguments.single, |
| 582 arg); | 592 arg); |
| 583 case AccessKind.LOCAL_VARIABLE: | 593 case AccessKind.LOCAL_VARIABLE: |
| 584 return visitor.visitLocalVariableSet( | 594 return visitor.visitLocalVariableSet( |
| 585 node, | 595 node, |
| 586 semantics.element, | 596 semantics.element, |
| 587 node.arguments.single, | 597 node.arguments.single, |
| 588 arg); | 598 arg); |
| 599 case AccessKind.FINAL_LOCAL_VARIABLE: |
| 600 return visitor.errorFinalLocalVariableSet( |
| 601 node, |
| 602 semantics.element, |
| 603 node.arguments.single, |
| 604 arg); |
| 589 case AccessKind.PARAMETER: | 605 case AccessKind.PARAMETER: |
| 590 return visitor.visitParameterSet( | 606 return visitor.visitParameterSet( |
| 591 node, | 607 node, |
| 592 semantics.element, | 608 semantics.element, |
| 593 node.arguments.single, | 609 node.arguments.single, |
| 594 arg); | 610 arg); |
| 611 case AccessKind.FINAL_PARAMETER: |
| 612 return visitor.errorFinalParameterSet( |
| 613 node, |
| 614 semantics.element, |
| 615 node.arguments.single, |
| 616 arg); |
| 595 case AccessKind.STATIC_FIELD: | 617 case AccessKind.STATIC_FIELD: |
| 596 return visitor.visitStaticFieldSet( | 618 return visitor.visitStaticFieldSet( |
| 597 node, | 619 node, |
| 598 semantics.element, | 620 semantics.element, |
| 599 node.arguments.single, | 621 node.arguments.single, |
| 600 arg); | 622 arg); |
| 623 case AccessKind.FINAL_STATIC_FIELD: |
| 624 return visitor.errorFinalStaticFieldSet( |
| 625 node, |
| 626 semantics.element, |
| 627 node.arguments.single, |
| 628 arg); |
| 601 case AccessKind.STATIC_METHOD: | 629 case AccessKind.STATIC_METHOD: |
| 602 return visitor.errorStaticFunctionSet( | 630 return visitor.errorStaticFunctionSet( |
| 603 node, | 631 node, |
| 604 semantics.element, | 632 semantics.element, |
| 605 node.arguments.single, | 633 node.arguments.single, |
| 606 arg); | 634 arg); |
| 607 case AccessKind.STATIC_GETTER: | 635 case AccessKind.STATIC_GETTER: |
| 608 return visitor.errorStaticGetterSet( | 636 return visitor.errorStaticGetterSet( |
| 609 node, | 637 node, |
| 610 semantics.element, | 638 semantics.element, |
| 611 node.arguments.single, | 639 node.arguments.single, |
| 612 arg); | 640 arg); |
| 613 case AccessKind.STATIC_SETTER: | 641 case AccessKind.STATIC_SETTER: |
| 614 return visitor.visitStaticSetterSet( | 642 return visitor.visitStaticSetterSet( |
| 615 node, | 643 node, |
| 616 semantics.element, | 644 semantics.element, |
| 617 node.arguments.single, | 645 node.arguments.single, |
| 618 arg); | 646 arg); |
| 619 case AccessKind.TOPLEVEL_FIELD: | 647 case AccessKind.TOPLEVEL_FIELD: |
| 620 return visitor.visitTopLevelFieldSet( | 648 return visitor.visitTopLevelFieldSet( |
| 621 node, | 649 node, |
| 622 semantics.element, | 650 semantics.element, |
| 623 node.arguments.single, | 651 node.arguments.single, |
| 624 arg); | 652 arg); |
| 653 case AccessKind.FINAL_TOPLEVEL_FIELD: |
| 654 return visitor.errorFinalTopLevelFieldSet( |
| 655 node, |
| 656 semantics.element, |
| 657 node.arguments.single, |
| 658 arg); |
| 625 case AccessKind.TOPLEVEL_METHOD: | 659 case AccessKind.TOPLEVEL_METHOD: |
| 626 return visitor.errorTopLevelFunctionSet( | 660 return visitor.errorTopLevelFunctionSet( |
| 627 node, | 661 node, |
| 628 semantics.element, | 662 semantics.element, |
| 629 node.arguments.single, | 663 node.arguments.single, |
| 630 arg); | 664 arg); |
| 631 case AccessKind.TOPLEVEL_GETTER: | 665 case AccessKind.TOPLEVEL_GETTER: |
| 632 return visitor.errorTopLevelGetterSet( | 666 return visitor.errorTopLevelGetterSet( |
| 633 node, | 667 node, |
| 634 semantics.element, | 668 semantics.element, |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 675 node, | 709 node, |
| 676 selector, | 710 selector, |
| 677 node.arguments.single, | 711 node.arguments.single, |
| 678 arg); | 712 arg); |
| 679 case AccessKind.SUPER_FIELD: | 713 case AccessKind.SUPER_FIELD: |
| 680 return visitor.visitSuperFieldSet( | 714 return visitor.visitSuperFieldSet( |
| 681 node, | 715 node, |
| 682 semantics.element, | 716 semantics.element, |
| 683 node.arguments.single, | 717 node.arguments.single, |
| 684 arg); | 718 arg); |
| 719 case AccessKind.SUPER_FINAL_FIELD: |
| 720 return visitor.errorFinalSuperFieldSet( |
| 721 node, |
| 722 semantics.element, |
| 723 node.arguments.single, |
| 724 arg); |
| 685 case AccessKind.SUPER_METHOD: | 725 case AccessKind.SUPER_METHOD: |
| 686 return visitor.errorSuperMethodSet( | 726 return visitor.errorSuperMethodSet( |
| 687 node, | 727 node, |
| 688 semantics.element, | 728 semantics.element, |
| 689 node.arguments.single, | 729 node.arguments.single, |
| 690 arg); | 730 arg); |
| 691 case AccessKind.SUPER_GETTER: | 731 case AccessKind.SUPER_GETTER: |
| 692 return visitor.errorSuperGetterSet( | 732 return visitor.errorSuperGetterSet( |
| 693 node, | 733 node, |
| 694 semantics.element, | 734 semantics.element, |
| (...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1060 | 1100 |
| 1061 R dispatch(SemanticSendVisitor<R, A> visitor, Send node, A arg) { | 1101 R dispatch(SemanticSendVisitor<R, A> visitor, Send node, A arg) { |
| 1062 switch (semantics.kind) { | 1102 switch (semantics.kind) { |
| 1063 case AccessKind.DYNAMIC_PROPERTY: | 1103 case AccessKind.DYNAMIC_PROPERTY: |
| 1064 return visitor.visitIndexPrefix( | 1104 return visitor.visitIndexPrefix( |
| 1065 node, | 1105 node, |
| 1066 node.receiver, | 1106 node.receiver, |
| 1067 node.arguments.single, | 1107 node.arguments.single, |
| 1068 operator, | 1108 operator, |
| 1069 arg); | 1109 arg); |
| 1110 case AccessKind.UNRESOLVED_SUPER: |
| 1111 return visitor.visitUnresolvedSuperIndexPrefix( |
| 1112 node, |
| 1113 semantics.element, |
| 1114 node.arguments.single, |
| 1115 operator, |
| 1116 arg); |
| 1070 case AccessKind.COMPOUND: | 1117 case AccessKind.COMPOUND: |
| 1071 CompoundAccessSemantics compoundSemantics = semantics; | 1118 CompoundAccessSemantics compoundSemantics = semantics; |
| 1072 switch (compoundSemantics.compoundAccessKind) { | 1119 switch (compoundSemantics.compoundAccessKind) { |
| 1073 case CompoundAccessKind.SUPER_GETTER_SETTER: | 1120 case CompoundAccessKind.SUPER_GETTER_SETTER: |
| 1074 return visitor.visitSuperIndexPrefix( | 1121 return visitor.visitSuperIndexPrefix( |
| 1075 node, | 1122 node, |
| 1076 compoundSemantics.getter, | 1123 compoundSemantics.getter, |
| 1077 compoundSemantics.setter, | 1124 compoundSemantics.setter, |
| 1078 node.arguments.single, | 1125 node.arguments.single, |
| 1079 operator, | 1126 operator, |
| 1080 arg); | 1127 arg); |
| 1081 case CompoundAccessKind.UNRESOLVED_SUPER_GETTER: | 1128 case CompoundAccessKind.UNRESOLVED_SUPER_GETTER: |
| 1082 return visitor.visitUnresolvedSuperGetterIndexPrefix( | 1129 return visitor.visitUnresolvedSuperGetterIndexPrefix( |
| 1083 node, | 1130 node, |
| 1084 compoundSemantics.getter, | 1131 compoundSemantics.getter, |
| 1132 compoundSemantics.setter, |
| 1085 node.arguments.single, | 1133 node.arguments.single, |
| 1086 operator, | 1134 operator, |
| 1087 arg); | 1135 arg); |
| 1088 case CompoundAccessKind.UNRESOLVED_SUPER_SETTER: | 1136 case CompoundAccessKind.UNRESOLVED_SUPER_SETTER: |
| 1089 return visitor.visitUnresolvedSuperSetterIndexPrefix( | 1137 return visitor.visitUnresolvedSuperSetterIndexPrefix( |
| 1090 node, | 1138 node, |
| 1091 compoundSemantics.getter, | 1139 compoundSemantics.getter, |
| 1092 compoundSemantics.setter, | 1140 compoundSemantics.setter, |
| 1093 node.arguments.single, | 1141 node.arguments.single, |
| 1094 operator, | 1142 operator, |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1131 | 1179 |
| 1132 R dispatch(SemanticSendVisitor<R, A> visitor, Send node, A arg) { | 1180 R dispatch(SemanticSendVisitor<R, A> visitor, Send node, A arg) { |
| 1133 switch (semantics.kind) { | 1181 switch (semantics.kind) { |
| 1134 case AccessKind.DYNAMIC_PROPERTY: | 1182 case AccessKind.DYNAMIC_PROPERTY: |
| 1135 return visitor.visitIndexPostfix( | 1183 return visitor.visitIndexPostfix( |
| 1136 node, | 1184 node, |
| 1137 node.receiver, | 1185 node.receiver, |
| 1138 node.arguments.single, | 1186 node.arguments.single, |
| 1139 operator, | 1187 operator, |
| 1140 arg); | 1188 arg); |
| 1189 case AccessKind.UNRESOLVED_SUPER: |
| 1190 return visitor.visitUnresolvedSuperIndexPostfix( |
| 1191 node, |
| 1192 semantics.element, |
| 1193 node.arguments.single, |
| 1194 operator, |
| 1195 arg); |
| 1141 case AccessKind.COMPOUND: | 1196 case AccessKind.COMPOUND: |
| 1142 CompoundAccessSemantics compoundSemantics = semantics; | 1197 CompoundAccessSemantics compoundSemantics = semantics; |
| 1143 switch (compoundSemantics.compoundAccessKind) { | 1198 switch (compoundSemantics.compoundAccessKind) { |
| 1144 case CompoundAccessKind.SUPER_GETTER_SETTER: | 1199 case CompoundAccessKind.SUPER_GETTER_SETTER: |
| 1145 return visitor.visitSuperIndexPostfix( | 1200 return visitor.visitSuperIndexPostfix( |
| 1146 node, | 1201 node, |
| 1147 compoundSemantics.getter, | 1202 compoundSemantics.getter, |
| 1148 compoundSemantics.setter, | 1203 compoundSemantics.setter, |
| 1149 node.arguments.single, | 1204 node.arguments.single, |
| 1150 operator, | 1205 operator, |
| 1151 arg); | 1206 arg); |
| 1152 case CompoundAccessKind.UNRESOLVED_SUPER_GETTER: | 1207 case CompoundAccessKind.UNRESOLVED_SUPER_GETTER: |
| 1153 return visitor.visitUnresolvedSuperGetterIndexPostfix( | 1208 return visitor.visitUnresolvedSuperGetterIndexPostfix( |
| 1154 node, | 1209 node, |
| 1155 compoundSemantics.getter, | 1210 compoundSemantics.getter, |
| 1211 compoundSemantics.setter, |
| 1156 node.arguments.single, | 1212 node.arguments.single, |
| 1157 operator, | 1213 operator, |
| 1158 arg); | 1214 arg); |
| 1159 case CompoundAccessKind.UNRESOLVED_SUPER_SETTER: | 1215 case CompoundAccessKind.UNRESOLVED_SUPER_SETTER: |
| 1160 return visitor.visitUnresolvedSuperSetterIndexPostfix( | 1216 return visitor.visitUnresolvedSuperSetterIndexPostfix( |
| 1161 node, | 1217 node, |
| 1162 compoundSemantics.getter, | 1218 compoundSemantics.getter, |
| 1163 compoundSemantics.setter, | 1219 compoundSemantics.setter, |
| 1164 node.arguments.single, | 1220 node.arguments.single, |
| 1165 operator, | 1221 operator, |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1203 case AccessKind.DYNAMIC_PROPERTY: | 1259 case AccessKind.DYNAMIC_PROPERTY: |
| 1204 return visitor.visitDynamicPropertyCompound( | 1260 return visitor.visitDynamicPropertyCompound( |
| 1205 node, | 1261 node, |
| 1206 node.receiver, | 1262 node.receiver, |
| 1207 operator, | 1263 operator, |
| 1208 node.arguments.single, | 1264 node.arguments.single, |
| 1209 getterSelector, | 1265 getterSelector, |
| 1210 setterSelector, | 1266 setterSelector, |
| 1211 arg); | 1267 arg); |
| 1212 case AccessKind.LOCAL_FUNCTION: | 1268 case AccessKind.LOCAL_FUNCTION: |
| 1213 return visitor.errorLocalFunctionCompound( | 1269 return visitor.visitLocalFunctionCompound( |
| 1214 node, | 1270 node, |
| 1215 semantics.element, | 1271 semantics.element, |
| 1216 operator, | 1272 operator, |
| 1217 node.arguments.single, | 1273 node.arguments.single, |
| 1218 arg); | 1274 arg); |
| 1219 case AccessKind.LOCAL_VARIABLE: | 1275 case AccessKind.LOCAL_VARIABLE: |
| 1220 return visitor.visitLocalVariableCompound( | 1276 return visitor.visitLocalVariableCompound( |
| 1221 node, | 1277 node, |
| 1222 semantics.element, | 1278 semantics.element, |
| 1223 operator, | 1279 operator, |
| 1224 node.arguments.single, | 1280 node.arguments.single, |
| 1225 arg); | 1281 arg); |
| 1282 case AccessKind.FINAL_LOCAL_VARIABLE: |
| 1283 return visitor.visitFinalLocalVariableCompound( |
| 1284 node, |
| 1285 semantics.element, |
| 1286 operator, |
| 1287 node.arguments.single, |
| 1288 arg); |
| 1226 case AccessKind.PARAMETER: | 1289 case AccessKind.PARAMETER: |
| 1227 return visitor.visitParameterCompound( | 1290 return visitor.visitParameterCompound( |
| 1228 node, | 1291 node, |
| 1229 semantics.element, | 1292 semantics.element, |
| 1230 operator, | 1293 operator, |
| 1231 node.arguments.single, | 1294 node.arguments.single, |
| 1232 arg); | 1295 arg); |
| 1296 case AccessKind.FINAL_PARAMETER: |
| 1297 return visitor.visitFinalParameterCompound( |
| 1298 node, |
| 1299 semantics.element, |
| 1300 operator, |
| 1301 node.arguments.single, |
| 1302 arg); |
| 1233 case AccessKind.STATIC_FIELD: | 1303 case AccessKind.STATIC_FIELD: |
| 1234 return visitor.visitStaticFieldCompound( | 1304 return visitor.visitStaticFieldCompound( |
| 1235 node, | 1305 node, |
| 1236 semantics.element, | 1306 semantics.element, |
| 1237 operator, | 1307 operator, |
| 1238 node.arguments.single, | 1308 node.arguments.single, |
| 1239 arg); | 1309 arg); |
| 1310 case AccessKind.FINAL_STATIC_FIELD: |
| 1311 return visitor.visitFinalStaticFieldCompound( |
| 1312 node, |
| 1313 semantics.element, |
| 1314 operator, |
| 1315 node.arguments.single, |
| 1316 arg); |
| 1240 case AccessKind.STATIC_METHOD: | 1317 case AccessKind.STATIC_METHOD: |
| 1241 // TODO(johnniwinther): Handle this. | 1318 return visitor.visitStaticMethodCompound( |
| 1242 break; | 1319 node, |
| 1320 semantics.element, |
| 1321 operator, |
| 1322 node.arguments.single, |
| 1323 arg); |
| 1243 case AccessKind.STATIC_GETTER: | 1324 case AccessKind.STATIC_GETTER: |
| 1244 // This is not a valid case. | 1325 // This is not a valid case. |
| 1245 break; | 1326 break; |
| 1246 case AccessKind.STATIC_SETTER: | 1327 case AccessKind.STATIC_SETTER: |
| 1247 // This is not a valid case. | 1328 // This is not a valid case. |
| 1248 break; | 1329 break; |
| 1249 case AccessKind.TOPLEVEL_FIELD: | 1330 case AccessKind.TOPLEVEL_FIELD: |
| 1250 return visitor.visitTopLevelFieldCompound( | 1331 return visitor.visitTopLevelFieldCompound( |
| 1251 node, | 1332 node, |
| 1252 semantics.element, | 1333 semantics.element, |
| 1253 operator, | 1334 operator, |
| 1254 node.arguments.single, | 1335 node.arguments.single, |
| 1255 arg); | 1336 arg); |
| 1337 case AccessKind.FINAL_TOPLEVEL_FIELD: |
| 1338 return visitor.visitFinalTopLevelFieldCompound( |
| 1339 node, |
| 1340 semantics.element, |
| 1341 operator, |
| 1342 node.arguments.single, |
| 1343 arg); |
| 1256 case AccessKind.TOPLEVEL_METHOD: | 1344 case AccessKind.TOPLEVEL_METHOD: |
| 1257 // TODO(johnniwinther): Handle this. | 1345 return visitor.visitTopLevelMethodCompound( |
| 1258 break; | 1346 node, |
| 1347 semantics.element, |
| 1348 operator, |
| 1349 node.arguments.single, |
| 1350 arg); |
| 1259 case AccessKind.TOPLEVEL_GETTER: | 1351 case AccessKind.TOPLEVEL_GETTER: |
| 1260 // This is not a valid case. | 1352 // This is not a valid case. |
| 1261 break; | 1353 break; |
| 1262 case AccessKind.TOPLEVEL_SETTER: | 1354 case AccessKind.TOPLEVEL_SETTER: |
| 1263 // This is not a valid case. | 1355 // This is not a valid case. |
| 1264 break; | 1356 break; |
| 1265 case AccessKind.CLASS_TYPE_LITERAL: | 1357 case AccessKind.CLASS_TYPE_LITERAL: |
| 1266 return visitor.errorClassTypeLiteralCompound( | 1358 return visitor.visitClassTypeLiteralCompound( |
| 1267 node, | 1359 node, |
| 1268 semantics.constant, | 1360 semantics.constant, |
| 1269 operator, | 1361 operator, |
| 1270 node.arguments.single, | 1362 node.arguments.single, |
| 1271 arg); | 1363 arg); |
| 1272 case AccessKind.TYPEDEF_TYPE_LITERAL: | 1364 case AccessKind.TYPEDEF_TYPE_LITERAL: |
| 1273 return visitor.errorTypedefTypeLiteralCompound( | 1365 return visitor.visitTypedefTypeLiteralCompound( |
| 1274 node, | 1366 node, |
| 1275 semantics.constant, | 1367 semantics.constant, |
| 1276 operator, | 1368 operator, |
| 1277 node.arguments.single, | 1369 node.arguments.single, |
| 1278 arg); | 1370 arg); |
| 1279 case AccessKind.DYNAMIC_TYPE_LITERAL: | 1371 case AccessKind.DYNAMIC_TYPE_LITERAL: |
| 1280 return visitor.errorDynamicTypeLiteralCompound( | 1372 return visitor.visitDynamicTypeLiteralCompound( |
| 1281 node, | 1373 node, |
| 1282 semantics.constant, | 1374 semantics.constant, |
| 1283 operator, | 1375 operator, |
| 1284 node.arguments.single, | 1376 node.arguments.single, |
| 1285 arg); | 1377 arg); |
| 1286 case AccessKind.TYPE_PARAMETER_TYPE_LITERAL: | 1378 case AccessKind.TYPE_PARAMETER_TYPE_LITERAL: |
| 1287 return visitor.errorTypeVariableTypeLiteralCompound( | 1379 return visitor.visitTypeVariableTypeLiteralCompound( |
| 1288 node, | 1380 node, |
| 1289 semantics.element, | 1381 semantics.element, |
| 1290 operator, | 1382 operator, |
| 1291 node.arguments.single, | 1383 node.arguments.single, |
| 1292 arg); | 1384 arg); |
| 1293 case AccessKind.EXPRESSION: | 1385 case AccessKind.EXPRESSION: |
| 1294 // This is not a valid case. | 1386 // This is not a valid case. |
| 1295 break; | 1387 break; |
| 1296 case AccessKind.THIS: | 1388 case AccessKind.THIS: |
| 1297 // This is not a valid case. | 1389 // This is not a valid case. |
| 1298 break; | 1390 break; |
| 1299 case AccessKind.THIS_PROPERTY: | 1391 case AccessKind.THIS_PROPERTY: |
| 1300 return visitor.visitThisPropertyCompound( | 1392 return visitor.visitThisPropertyCompound( |
| 1301 node, | 1393 node, |
| 1302 operator, | 1394 operator, |
| 1303 node.arguments.single, | 1395 node.arguments.single, |
| 1304 getterSelector, | 1396 getterSelector, |
| 1305 setterSelector, | 1397 setterSelector, |
| 1306 arg); | 1398 arg); |
| 1307 case AccessKind.SUPER_FIELD: | 1399 case AccessKind.SUPER_FIELD: |
| 1308 return visitor.visitSuperFieldCompound( | 1400 return visitor.visitSuperFieldCompound( |
| 1309 node, | 1401 node, |
| 1310 semantics.element, | 1402 semantics.element, |
| 1311 operator, | 1403 operator, |
| 1312 node.arguments.single, | 1404 node.arguments.single, |
| 1313 arg); | 1405 arg); |
| 1406 case AccessKind.SUPER_FINAL_FIELD: |
| 1407 return visitor.visitFinalSuperFieldCompound( |
| 1408 node, |
| 1409 semantics.element, |
| 1410 operator, |
| 1411 node.arguments.single, |
| 1412 arg); |
| 1314 case AccessKind.SUPER_METHOD: | 1413 case AccessKind.SUPER_METHOD: |
| 1315 // TODO(johnniwinther): Handle this. | 1414 return visitor.visitSuperMethodCompound( |
| 1316 break; | 1415 node, |
| 1416 semantics.element, |
| 1417 operator, |
| 1418 node.arguments.single, |
| 1419 arg); |
| 1317 case AccessKind.SUPER_GETTER: | 1420 case AccessKind.SUPER_GETTER: |
| 1318 // This is not a valid case. | 1421 // This is not a valid case. |
| 1319 break; | 1422 break; |
| 1320 case AccessKind.SUPER_SETTER: | 1423 case AccessKind.SUPER_SETTER: |
| 1321 // This is not a valid case. | 1424 // This is not a valid case. |
| 1322 break; | 1425 break; |
| 1323 case AccessKind.CONSTANT: | 1426 case AccessKind.CONSTANT: |
| 1324 // TODO(johnniwinther): Should this be a valid case? | 1427 // TODO(johnniwinther): Should this be a valid case? |
| 1325 break; | 1428 break; |
| 1326 case AccessKind.UNRESOLVED_SUPER: | 1429 case AccessKind.UNRESOLVED_SUPER: |
| 1327 case AccessKind.UNRESOLVED: | 1430 return visitor.visitUnresolvedSuperCompound( |
| 1328 // TODO(johnniwinther): Support these through [AccessKind.COMPOUND]. | |
| 1329 return visitor.errorUnresolvedCompound( | |
| 1330 node, | 1431 node, |
| 1331 semantics.element, | 1432 semantics.element, |
| 1332 operator, | 1433 operator, |
| 1434 node.arguments.single, |
| 1435 arg); |
| 1436 case AccessKind.UNRESOLVED: |
| 1437 return visitor.visitUnresolvedCompound( |
| 1438 node, |
| 1439 semantics.element, |
| 1440 operator, |
| 1333 node.arguments.single, | 1441 node.arguments.single, |
| 1334 arg); | 1442 arg); |
| 1335 case AccessKind.COMPOUND: | 1443 case AccessKind.COMPOUND: |
| 1336 CompoundAccessSemantics compoundSemantics = semantics; | 1444 CompoundAccessSemantics compoundSemantics = semantics; |
| 1337 switch (compoundSemantics.compoundAccessKind) { | 1445 switch (compoundSemantics.compoundAccessKind) { |
| 1338 case CompoundAccessKind.STATIC_GETTER_SETTER: | 1446 case CompoundAccessKind.STATIC_GETTER_SETTER: |
| 1339 return visitor.visitStaticGetterSetterCompound( | 1447 return visitor.visitStaticGetterSetterCompound( |
| 1340 node, | 1448 node, |
| 1341 compoundSemantics.getter, | 1449 compoundSemantics.getter, |
| 1342 compoundSemantics.setter, | 1450 compoundSemantics.setter, |
| 1343 operator, | 1451 operator, |
| 1344 node.arguments.single, | 1452 node.arguments.single, |
| 1345 arg); | 1453 arg); |
| 1346 case CompoundAccessKind.STATIC_METHOD_SETTER: | 1454 case CompoundAccessKind.STATIC_METHOD_SETTER: |
| 1347 return visitor.visitStaticMethodSetterCompound( | 1455 return visitor.visitStaticMethodSetterCompound( |
| 1348 node, | 1456 node, |
| 1349 compoundSemantics.getter, | 1457 compoundSemantics.getter, |
| 1350 compoundSemantics.setter, | 1458 compoundSemantics.setter, |
| 1351 operator, | 1459 operator, |
| 1352 node.arguments.single, | 1460 node.arguments.single, |
| 1353 arg); | 1461 arg); |
| 1462 case CompoundAccessKind.UNRESOLVED_STATIC_GETTER: |
| 1463 return visitor.visitUnresolvedStaticGetterCompound( |
| 1464 node, |
| 1465 compoundSemantics.getter, |
| 1466 compoundSemantics.setter, |
| 1467 operator, |
| 1468 node.arguments.single, |
| 1469 arg); |
| 1470 case CompoundAccessKind.UNRESOLVED_STATIC_SETTER: |
| 1471 return visitor.visitUnresolvedStaticSetterCompound( |
| 1472 node, |
| 1473 compoundSemantics.getter, |
| 1474 compoundSemantics.setter, |
| 1475 operator, |
| 1476 node.arguments.single, |
| 1477 arg); |
| 1354 case CompoundAccessKind.TOPLEVEL_GETTER_SETTER: | 1478 case CompoundAccessKind.TOPLEVEL_GETTER_SETTER: |
| 1355 return visitor.visitTopLevelGetterSetterCompound( | 1479 return visitor.visitTopLevelGetterSetterCompound( |
| 1356 node, | 1480 node, |
| 1357 compoundSemantics.getter, | 1481 compoundSemantics.getter, |
| 1358 compoundSemantics.setter, | 1482 compoundSemantics.setter, |
| 1359 operator, | 1483 operator, |
| 1360 node.arguments.single, | 1484 node.arguments.single, |
| 1361 arg); | 1485 arg); |
| 1362 case CompoundAccessKind.TOPLEVEL_METHOD_SETTER: | 1486 case CompoundAccessKind.TOPLEVEL_METHOD_SETTER: |
| 1363 return visitor.visitTopLevelMethodSetterCompound( | 1487 return visitor.visitTopLevelMethodSetterCompound( |
| 1364 node, | 1488 node, |
| 1365 compoundSemantics.getter, | 1489 compoundSemantics.getter, |
| 1366 compoundSemantics.setter, | 1490 compoundSemantics.setter, |
| 1367 operator, | 1491 operator, |
| 1368 node.arguments.single, | 1492 node.arguments.single, |
| 1369 arg); | 1493 arg); |
| 1494 case CompoundAccessKind.UNRESOLVED_TOPLEVEL_GETTER: |
| 1495 return visitor.visitUnresolvedTopLevelGetterCompound( |
| 1496 node, |
| 1497 compoundSemantics.getter, |
| 1498 compoundSemantics.setter, |
| 1499 operator, |
| 1500 node.arguments.single, |
| 1501 arg); |
| 1502 case CompoundAccessKind.UNRESOLVED_TOPLEVEL_SETTER: |
| 1503 return visitor.visitUnresolvedTopLevelSetterCompound( |
| 1504 node, |
| 1505 compoundSemantics.getter, |
| 1506 compoundSemantics.setter, |
| 1507 operator, |
| 1508 node.arguments.single, |
| 1509 arg); |
| 1370 case CompoundAccessKind.SUPER_FIELD_FIELD: | 1510 case CompoundAccessKind.SUPER_FIELD_FIELD: |
| 1371 // TODO(johnniwinther): Handle this. | 1511 // TODO(johnniwinther): Handle this. |
| 1372 break; | 1512 break; |
| 1373 case CompoundAccessKind.SUPER_GETTER_SETTER: | 1513 case CompoundAccessKind.SUPER_GETTER_SETTER: |
| 1374 return visitor.visitSuperGetterSetterCompound( | 1514 return visitor.visitSuperGetterSetterCompound( |
| 1375 node, | 1515 node, |
| 1376 compoundSemantics.getter, | 1516 compoundSemantics.getter, |
| 1377 compoundSemantics.setter, | 1517 compoundSemantics.setter, |
| 1378 operator, | 1518 operator, |
| 1379 node.arguments.single, | 1519 node.arguments.single, |
| (...skipping 16 matching lines...) Expand all Loading... |
| 1396 arg); | 1536 arg); |
| 1397 case CompoundAccessKind.SUPER_FIELD_SETTER: | 1537 case CompoundAccessKind.SUPER_FIELD_SETTER: |
| 1398 return visitor.visitSuperFieldSetterCompound( | 1538 return visitor.visitSuperFieldSetterCompound( |
| 1399 node, | 1539 node, |
| 1400 compoundSemantics.getter, | 1540 compoundSemantics.getter, |
| 1401 compoundSemantics.setter, | 1541 compoundSemantics.setter, |
| 1402 operator, | 1542 operator, |
| 1403 node.arguments.single, | 1543 node.arguments.single, |
| 1404 arg); | 1544 arg); |
| 1405 case CompoundAccessKind.UNRESOLVED_SUPER_GETTER: | 1545 case CompoundAccessKind.UNRESOLVED_SUPER_GETTER: |
| 1406 case CompoundAccessKind.UNRESOLVED_SUPER_SETTER: | 1546 return visitor.visitUnresolvedSuperGetterCompound( |
| 1407 // TODO(johnniwinther): Handle these separately. | |
| 1408 return visitor.errorUnresolvedCompound( | |
| 1409 node, | 1547 node, |
| 1410 semantics.element, | 1548 compoundSemantics.getter, |
| 1549 compoundSemantics.setter, |
| 1411 operator, | 1550 operator, |
| 1412 node.arguments.single, | 1551 node.arguments.single, |
| 1413 arg); | 1552 arg); |
| 1553 case CompoundAccessKind.UNRESOLVED_SUPER_SETTER: |
| 1554 return visitor.visitUnresolvedSuperSetterCompound( |
| 1555 node, |
| 1556 compoundSemantics.getter, |
| 1557 compoundSemantics.setter, |
| 1558 operator, |
| 1559 node.arguments.single, |
| 1560 arg); |
| 1414 } | 1561 } |
| 1415 break; | 1562 break; |
| 1416 } | 1563 } |
| 1417 throw new SpannableAssertionFailure(node, | 1564 throw new SpannableAssertionFailure(node, |
| 1418 "Invalid compound assigment: ${semantics}"); | 1565 "Invalid compound assigment: ${semantics}"); |
| 1419 } | 1566 } |
| 1420 | 1567 |
| 1421 String toString() => 'compound($operator,$semantics)'; | 1568 String toString() => 'compound($operator,$semantics)'; |
| 1422 } | 1569 } |
| 1423 | 1570 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 1443 R dispatch(SemanticSendVisitor<R, A> visitor, Send node, A arg) { | 1590 R dispatch(SemanticSendVisitor<R, A> visitor, Send node, A arg) { |
| 1444 switch (semantics.kind) { | 1591 switch (semantics.kind) { |
| 1445 case AccessKind.DYNAMIC_PROPERTY: | 1592 case AccessKind.DYNAMIC_PROPERTY: |
| 1446 return visitor.visitCompoundIndexSet( | 1593 return visitor.visitCompoundIndexSet( |
| 1447 node, | 1594 node, |
| 1448 node.receiver, | 1595 node.receiver, |
| 1449 node.arguments.first, | 1596 node.arguments.first, |
| 1450 operator, | 1597 operator, |
| 1451 node.arguments.tail.head, | 1598 node.arguments.tail.head, |
| 1452 arg); | 1599 arg); |
| 1600 case AccessKind.UNRESOLVED_SUPER: |
| 1601 return visitor.visitUnresolvedSuperCompoundIndexSet( |
| 1602 node, |
| 1603 semantics.element, |
| 1604 node.arguments.first, |
| 1605 operator, |
| 1606 node.arguments.tail.head, |
| 1607 arg); |
| 1453 case AccessKind.COMPOUND: | 1608 case AccessKind.COMPOUND: |
| 1454 CompoundAccessSemantics compoundSemantics = semantics; | 1609 CompoundAccessSemantics compoundSemantics = semantics; |
| 1455 switch (compoundSemantics.compoundAccessKind) { | 1610 switch (compoundSemantics.compoundAccessKind) { |
| 1456 case CompoundAccessKind.SUPER_GETTER_SETTER: | 1611 case CompoundAccessKind.SUPER_GETTER_SETTER: |
| 1457 return visitor.visitSuperCompoundIndexSet( | 1612 return visitor.visitSuperCompoundIndexSet( |
| 1458 node, | 1613 node, |
| 1459 compoundSemantics.getter, | 1614 compoundSemantics.getter, |
| 1460 compoundSemantics.setter, | 1615 compoundSemantics.setter, |
| 1461 node.arguments.first, | 1616 node.arguments.first, |
| 1462 operator, | 1617 operator, |
| 1463 node.arguments.tail.head, | 1618 node.arguments.tail.head, |
| 1464 arg); | 1619 arg); |
| 1465 case CompoundAccessKind.UNRESOLVED_SUPER_GETTER: | 1620 case CompoundAccessKind.UNRESOLVED_SUPER_GETTER: |
| 1466 return visitor.visitUnresolvedSuperGetterCompoundIndexSet( | 1621 return visitor.visitUnresolvedSuperGetterCompoundIndexSet( |
| 1467 node, | 1622 node, |
| 1468 compoundSemantics.getter, | 1623 compoundSemantics.getter, |
| 1624 compoundSemantics.setter, |
| 1469 node.arguments.first, | 1625 node.arguments.first, |
| 1470 operator, | 1626 operator, |
| 1471 node.arguments.tail.head, | 1627 node.arguments.tail.head, |
| 1472 arg); | 1628 arg); |
| 1473 case CompoundAccessKind.UNRESOLVED_SUPER_SETTER: | 1629 case CompoundAccessKind.UNRESOLVED_SUPER_SETTER: |
| 1474 return visitor.visitUnresolvedSuperSetterCompoundIndexSet( | 1630 return visitor.visitUnresolvedSuperSetterCompoundIndexSet( |
| 1475 node, | 1631 node, |
| 1476 compoundSemantics.getter, | 1632 compoundSemantics.getter, |
| 1477 compoundSemantics.setter, | 1633 compoundSemantics.setter, |
| 1478 node.arguments.first, | 1634 node.arguments.first, |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1519 switch (semantics.kind) { | 1675 switch (semantics.kind) { |
| 1520 case AccessKind.DYNAMIC_PROPERTY: | 1676 case AccessKind.DYNAMIC_PROPERTY: |
| 1521 return visitor.visitDynamicPropertyPrefix( | 1677 return visitor.visitDynamicPropertyPrefix( |
| 1522 node, | 1678 node, |
| 1523 node.receiver, | 1679 node.receiver, |
| 1524 operator, | 1680 operator, |
| 1525 getterSelector, | 1681 getterSelector, |
| 1526 setterSelector, | 1682 setterSelector, |
| 1527 arg); | 1683 arg); |
| 1528 case AccessKind.LOCAL_FUNCTION: | 1684 case AccessKind.LOCAL_FUNCTION: |
| 1529 return visitor.errorLocalFunctionPrefix( | 1685 return visitor.visitLocalFunctionPrefix( |
| 1530 node, | 1686 node, |
| 1531 semantics.element, | 1687 semantics.element, |
| 1532 operator, | 1688 operator, |
| 1533 arg); | 1689 arg); |
| 1534 case AccessKind.LOCAL_VARIABLE: | 1690 case AccessKind.LOCAL_VARIABLE: |
| 1535 return visitor.visitLocalVariablePrefix( | 1691 return visitor.visitLocalVariablePrefix( |
| 1536 node, | 1692 node, |
| 1537 semantics.element, | 1693 semantics.element, |
| 1538 operator, | 1694 operator, |
| 1539 arg); | 1695 arg); |
| 1696 case AccessKind.FINAL_LOCAL_VARIABLE: |
| 1697 return visitor.visitFinalLocalVariablePrefix( |
| 1698 node, |
| 1699 semantics.element, |
| 1700 operator, |
| 1701 arg); |
| 1540 case AccessKind.PARAMETER: | 1702 case AccessKind.PARAMETER: |
| 1541 return visitor.visitParameterPrefix( | 1703 return visitor.visitParameterPrefix( |
| 1542 node, | 1704 node, |
| 1543 semantics.element, | 1705 semantics.element, |
| 1544 operator, | 1706 operator, |
| 1545 arg); | 1707 arg); |
| 1708 case AccessKind.FINAL_PARAMETER: |
| 1709 return visitor.visitFinalParameterPrefix( |
| 1710 node, |
| 1711 semantics.element, |
| 1712 operator, |
| 1713 arg); |
| 1546 case AccessKind.STATIC_FIELD: | 1714 case AccessKind.STATIC_FIELD: |
| 1547 return visitor.visitStaticFieldPrefix( | 1715 return visitor.visitStaticFieldPrefix( |
| 1548 node, | 1716 node, |
| 1549 semantics.element, | 1717 semantics.element, |
| 1550 operator, | 1718 operator, |
| 1551 arg); | 1719 arg); |
| 1720 case AccessKind.FINAL_STATIC_FIELD: |
| 1721 return visitor.visitFinalStaticFieldPrefix( |
| 1722 node, |
| 1723 semantics.element, |
| 1724 operator, |
| 1725 arg); |
| 1552 case AccessKind.STATIC_METHOD: | 1726 case AccessKind.STATIC_METHOD: |
| 1553 // TODO(johnniwinther): Handle this. | 1727 return visitor.visitStaticMethodPrefix( |
| 1554 break; | 1728 node, |
| 1729 semantics.element, |
| 1730 operator, |
| 1731 arg); |
| 1555 case AccessKind.STATIC_GETTER: | 1732 case AccessKind.STATIC_GETTER: |
| 1556 // This is not a valid case. | 1733 // This is not a valid case. |
| 1557 break; | 1734 break; |
| 1558 case AccessKind.STATIC_SETTER: | 1735 case AccessKind.STATIC_SETTER: |
| 1559 // This is not a valid case. | 1736 // This is not a valid case. |
| 1560 break; | 1737 break; |
| 1561 case AccessKind.TOPLEVEL_FIELD: | 1738 case AccessKind.TOPLEVEL_FIELD: |
| 1562 return visitor.visitTopLevelFieldPrefix( | 1739 return visitor.visitTopLevelFieldPrefix( |
| 1563 node, | 1740 node, |
| 1564 semantics.element, | 1741 semantics.element, |
| 1565 operator, | 1742 operator, |
| 1566 arg); | 1743 arg); |
| 1744 case AccessKind.FINAL_TOPLEVEL_FIELD: |
| 1745 return visitor.visitFinalTopLevelFieldPrefix( |
| 1746 node, |
| 1747 semantics.element, |
| 1748 operator, |
| 1749 arg); |
| 1567 case AccessKind.TOPLEVEL_METHOD: | 1750 case AccessKind.TOPLEVEL_METHOD: |
| 1568 // TODO(johnniwinther): Handle this. | 1751 return visitor.visitTopLevelMethodPrefix( |
| 1569 break; | 1752 node, |
| 1753 semantics.element, |
| 1754 operator, |
| 1755 arg); |
| 1570 case AccessKind.TOPLEVEL_GETTER: | 1756 case AccessKind.TOPLEVEL_GETTER: |
| 1571 // This is not a valid case. | 1757 // This is not a valid case. |
| 1572 break; | 1758 break; |
| 1573 case AccessKind.TOPLEVEL_SETTER: | 1759 case AccessKind.TOPLEVEL_SETTER: |
| 1574 // This is not a valid case. | 1760 // This is not a valid case. |
| 1575 break; | 1761 break; |
| 1576 case AccessKind.CLASS_TYPE_LITERAL: | 1762 case AccessKind.CLASS_TYPE_LITERAL: |
| 1577 return visitor.errorClassTypeLiteralPrefix( | 1763 return visitor.visitClassTypeLiteralPrefix( |
| 1578 node, | 1764 node, |
| 1579 semantics.constant, | 1765 semantics.constant, |
| 1580 operator, | 1766 operator, |
| 1581 arg); | 1767 arg); |
| 1582 case AccessKind.TYPEDEF_TYPE_LITERAL: | 1768 case AccessKind.TYPEDEF_TYPE_LITERAL: |
| 1583 return visitor.errorTypedefTypeLiteralPrefix( | 1769 return visitor.visitTypedefTypeLiteralPrefix( |
| 1584 node, | 1770 node, |
| 1585 semantics.constant, | 1771 semantics.constant, |
| 1586 operator, | 1772 operator, |
| 1587 arg); | 1773 arg); |
| 1588 case AccessKind.DYNAMIC_TYPE_LITERAL: | 1774 case AccessKind.DYNAMIC_TYPE_LITERAL: |
| 1589 return visitor.errorDynamicTypeLiteralPrefix( | 1775 return visitor.visitDynamicTypeLiteralPrefix( |
| 1590 node, | 1776 node, |
| 1591 semantics.constant, | 1777 semantics.constant, |
| 1592 operator, | 1778 operator, |
| 1593 arg); | 1779 arg); |
| 1594 case AccessKind.TYPE_PARAMETER_TYPE_LITERAL: | 1780 case AccessKind.TYPE_PARAMETER_TYPE_LITERAL: |
| 1595 return visitor.errorTypeVariableTypeLiteralPrefix( | 1781 return visitor.visitTypeVariableTypeLiteralPrefix( |
| 1596 node, | 1782 node, |
| 1597 semantics.element, | 1783 semantics.element, |
| 1598 operator, | 1784 operator, |
| 1599 arg); | 1785 arg); |
| 1600 case AccessKind.EXPRESSION: | 1786 case AccessKind.EXPRESSION: |
| 1601 // This is not a valid case. | 1787 // This is not a valid case. |
| 1602 break; | 1788 break; |
| 1603 case AccessKind.THIS: | 1789 case AccessKind.THIS: |
| 1604 // This is not a valid case. | 1790 // This is not a valid case. |
| 1605 break; | 1791 break; |
| 1606 case AccessKind.THIS_PROPERTY: | 1792 case AccessKind.THIS_PROPERTY: |
| 1607 return visitor.visitThisPropertyPrefix( | 1793 return visitor.visitThisPropertyPrefix( |
| 1608 node, | 1794 node, |
| 1609 operator, | 1795 operator, |
| 1610 getterSelector, | 1796 getterSelector, |
| 1611 setterSelector, | 1797 setterSelector, |
| 1612 arg); | 1798 arg); |
| 1613 case AccessKind.SUPER_FIELD: | 1799 case AccessKind.SUPER_FIELD: |
| 1614 return visitor.visitSuperFieldPrefix( | 1800 return visitor.visitSuperFieldPrefix( |
| 1615 node, | 1801 node, |
| 1616 semantics.element, | 1802 semantics.element, |
| 1617 operator, | 1803 operator, |
| 1618 arg); | 1804 arg); |
| 1805 case AccessKind.SUPER_FINAL_FIELD: |
| 1806 return visitor.visitFinalSuperFieldPrefix( |
| 1807 node, |
| 1808 semantics.element, |
| 1809 operator, |
| 1810 arg); |
| 1619 case AccessKind.SUPER_METHOD: | 1811 case AccessKind.SUPER_METHOD: |
| 1620 // TODO(johnniwinther): Handle this. | 1812 return visitor.visitSuperMethodPrefix( |
| 1621 break; | 1813 node, |
| 1814 semantics.element, |
| 1815 operator, |
| 1816 arg); |
| 1622 case AccessKind.SUPER_GETTER: | 1817 case AccessKind.SUPER_GETTER: |
| 1623 // This is not a valid case. | 1818 // This is not a valid case. |
| 1624 break; | 1819 break; |
| 1625 case AccessKind.SUPER_SETTER: | 1820 case AccessKind.SUPER_SETTER: |
| 1626 // This is not a valid case. | 1821 // This is not a valid case. |
| 1627 break; | 1822 break; |
| 1628 case AccessKind.CONSTANT: | 1823 case AccessKind.CONSTANT: |
| 1629 // TODO(johnniwinther): Should this be a valid case? | 1824 // TODO(johnniwinther): Should this be a valid case? |
| 1630 break; | 1825 break; |
| 1631 case AccessKind.UNRESOLVED_SUPER: | 1826 case AccessKind.UNRESOLVED_SUPER: |
| 1632 case AccessKind.UNRESOLVED: | 1827 return visitor.visitUnresolvedSuperPrefix( |
| 1633 // TODO(johnniwinther): Support these through [AccessKind.COMPOUND]. | |
| 1634 return visitor.errorUnresolvedPrefix( | |
| 1635 node, | 1828 node, |
| 1636 semantics.element, | 1829 semantics.element, |
| 1637 operator, | 1830 operator, |
| 1831 arg); |
| 1832 case AccessKind.UNRESOLVED: |
| 1833 return visitor.visitUnresolvedPrefix( |
| 1834 node, |
| 1835 semantics.element, |
| 1836 operator, |
| 1638 arg); | 1837 arg); |
| 1639 case AccessKind.COMPOUND: | 1838 case AccessKind.COMPOUND: |
| 1640 CompoundAccessSemantics compoundSemantics = semantics; | 1839 CompoundAccessSemantics compoundSemantics = semantics; |
| 1641 switch (compoundSemantics.compoundAccessKind) { | 1840 switch (compoundSemantics.compoundAccessKind) { |
| 1642 case CompoundAccessKind.STATIC_GETTER_SETTER: | 1841 case CompoundAccessKind.STATIC_GETTER_SETTER: |
| 1643 return visitor.visitStaticGetterSetterPrefix( | 1842 return visitor.visitStaticGetterSetterPrefix( |
| 1644 node, | 1843 node, |
| 1645 compoundSemantics.getter, | 1844 compoundSemantics.getter, |
| 1646 compoundSemantics.setter, | 1845 compoundSemantics.setter, |
| 1647 operator, | 1846 operator, |
| 1648 arg); | 1847 arg); |
| 1649 case CompoundAccessKind.STATIC_METHOD_SETTER: | 1848 case CompoundAccessKind.STATIC_METHOD_SETTER: |
| 1650 return visitor.visitStaticMethodSetterPrefix( | 1849 return visitor.visitStaticMethodSetterPrefix( |
| 1651 node, | 1850 node, |
| 1652 compoundSemantics.getter, | 1851 compoundSemantics.getter, |
| 1653 compoundSemantics.setter, | 1852 compoundSemantics.setter, |
| 1654 operator, | 1853 operator, |
| 1655 arg); | 1854 arg); |
| 1855 case CompoundAccessKind.UNRESOLVED_STATIC_GETTER: |
| 1856 return visitor.visitUnresolvedStaticGetterPrefix( |
| 1857 node, |
| 1858 compoundSemantics.getter, |
| 1859 compoundSemantics.setter, |
| 1860 operator, |
| 1861 arg); |
| 1862 case CompoundAccessKind.UNRESOLVED_STATIC_SETTER: |
| 1863 return visitor.visitUnresolvedStaticSetterPrefix( |
| 1864 node, |
| 1865 compoundSemantics.getter, |
| 1866 compoundSemantics.setter, |
| 1867 operator, |
| 1868 arg); |
| 1869 case CompoundAccessKind.STATIC_METHOD_SETTER: |
| 1870 return visitor.visitStaticMethodSetterPrefix( |
| 1871 node, |
| 1872 compoundSemantics.getter, |
| 1873 compoundSemantics.setter, |
| 1874 operator, |
| 1875 arg); |
| 1656 case CompoundAccessKind.TOPLEVEL_GETTER_SETTER: | 1876 case CompoundAccessKind.TOPLEVEL_GETTER_SETTER: |
| 1657 return visitor.visitTopLevelGetterSetterPrefix( | 1877 return visitor.visitTopLevelGetterSetterPrefix( |
| 1658 node, | 1878 node, |
| 1659 compoundSemantics.getter, | 1879 compoundSemantics.getter, |
| 1660 compoundSemantics.setter, | 1880 compoundSemantics.setter, |
| 1661 operator, | 1881 operator, |
| 1662 arg); | 1882 arg); |
| 1663 case CompoundAccessKind.TOPLEVEL_METHOD_SETTER: | 1883 case CompoundAccessKind.TOPLEVEL_METHOD_SETTER: |
| 1664 return visitor.visitTopLevelMethodSetterPrefix( | 1884 return visitor.visitTopLevelMethodSetterPrefix( |
| 1665 node, | 1885 node, |
| 1666 compoundSemantics.getter, | 1886 compoundSemantics.getter, |
| 1667 compoundSemantics.setter, | 1887 compoundSemantics.setter, |
| 1668 operator, | 1888 operator, |
| 1669 arg); | 1889 arg); |
| 1890 case CompoundAccessKind.UNRESOLVED_TOPLEVEL_GETTER: |
| 1891 return visitor.visitUnresolvedTopLevelGetterPrefix( |
| 1892 node, |
| 1893 compoundSemantics.getter, |
| 1894 compoundSemantics.setter, |
| 1895 operator, |
| 1896 arg); |
| 1897 case CompoundAccessKind.UNRESOLVED_TOPLEVEL_SETTER: |
| 1898 return visitor.visitUnresolvedTopLevelSetterPrefix( |
| 1899 node, |
| 1900 compoundSemantics.getter, |
| 1901 compoundSemantics.setter, |
| 1902 operator, |
| 1903 arg); |
| 1670 case CompoundAccessKind.SUPER_FIELD_FIELD: | 1904 case CompoundAccessKind.SUPER_FIELD_FIELD: |
| 1671 return visitor.visitSuperFieldFieldPrefix( | 1905 return visitor.visitSuperFieldFieldPrefix( |
| 1672 node, | 1906 node, |
| 1673 compoundSemantics.getter, | 1907 compoundSemantics.getter, |
| 1674 compoundSemantics.setter, | 1908 compoundSemantics.setter, |
| 1675 operator, | 1909 operator, |
| 1676 arg); | 1910 arg); |
| 1677 case CompoundAccessKind.SUPER_GETTER_SETTER: | 1911 case CompoundAccessKind.SUPER_GETTER_SETTER: |
| 1678 return visitor.visitSuperGetterSetterPrefix( | 1912 return visitor.visitSuperGetterSetterPrefix( |
| 1679 node, | 1913 node, |
| (...skipping 16 matching lines...) Expand all Loading... |
| 1696 operator, | 1930 operator, |
| 1697 arg); | 1931 arg); |
| 1698 case CompoundAccessKind.SUPER_FIELD_SETTER: | 1932 case CompoundAccessKind.SUPER_FIELD_SETTER: |
| 1699 return visitor.visitSuperFieldSetterPrefix( | 1933 return visitor.visitSuperFieldSetterPrefix( |
| 1700 node, | 1934 node, |
| 1701 compoundSemantics.getter, | 1935 compoundSemantics.getter, |
| 1702 compoundSemantics.setter, | 1936 compoundSemantics.setter, |
| 1703 operator, | 1937 operator, |
| 1704 arg); | 1938 arg); |
| 1705 case CompoundAccessKind.UNRESOLVED_SUPER_GETTER: | 1939 case CompoundAccessKind.UNRESOLVED_SUPER_GETTER: |
| 1940 return visitor.visitUnresolvedSuperGetterPrefix( |
| 1941 node, |
| 1942 compoundSemantics.getter, |
| 1943 compoundSemantics.setter, |
| 1944 operator, |
| 1945 arg); |
| 1706 case CompoundAccessKind.UNRESOLVED_SUPER_SETTER: | 1946 case CompoundAccessKind.UNRESOLVED_SUPER_SETTER: |
| 1707 // TODO(johnniwinther): Handle these directly. | 1947 return visitor.visitUnresolvedSuperSetterPrefix( |
| 1708 return visitor.errorUnresolvedPrefix( | |
| 1709 node, | 1948 node, |
| 1710 semantics.element, | 1949 compoundSemantics.getter, |
| 1950 compoundSemantics.setter, |
| 1711 operator, | 1951 operator, |
| 1712 arg); | 1952 arg); |
| 1713 } | 1953 } |
| 1714 } | 1954 } |
| 1715 throw new SpannableAssertionFailure(node, | 1955 throw new SpannableAssertionFailure(node, |
| 1716 "Invalid compound assigment: ${semantics}"); | 1956 "Invalid compound assigment: ${semantics}"); |
| 1717 } | 1957 } |
| 1718 | 1958 |
| 1719 String toString() => 'prefix($operator,$semantics)'; | 1959 String toString() => 'prefix($operator,$semantics)'; |
| 1720 } | 1960 } |
| (...skipping 22 matching lines...) Expand all Loading... |
| 1743 switch (semantics.kind) { | 1983 switch (semantics.kind) { |
| 1744 case AccessKind.DYNAMIC_PROPERTY: | 1984 case AccessKind.DYNAMIC_PROPERTY: |
| 1745 return visitor.visitDynamicPropertyPostfix( | 1985 return visitor.visitDynamicPropertyPostfix( |
| 1746 node, | 1986 node, |
| 1747 node.receiver, | 1987 node.receiver, |
| 1748 operator, | 1988 operator, |
| 1749 getterSelector, | 1989 getterSelector, |
| 1750 setterSelector, | 1990 setterSelector, |
| 1751 arg); | 1991 arg); |
| 1752 case AccessKind.LOCAL_FUNCTION: | 1992 case AccessKind.LOCAL_FUNCTION: |
| 1753 return visitor.errorLocalFunctionPostfix( | 1993 return visitor.visitLocalFunctionPostfix( |
| 1754 node, | 1994 node, |
| 1755 semantics.element, | 1995 semantics.element, |
| 1756 operator, | 1996 operator, |
| 1757 arg); | 1997 arg); |
| 1758 case AccessKind.LOCAL_VARIABLE: | 1998 case AccessKind.LOCAL_VARIABLE: |
| 1759 return visitor.visitLocalVariablePostfix( | 1999 return visitor.visitLocalVariablePostfix( |
| 1760 node, | 2000 node, |
| 1761 semantics.element, | 2001 semantics.element, |
| 1762 operator, | 2002 operator, |
| 1763 arg); | 2003 arg); |
| 2004 case AccessKind.FINAL_LOCAL_VARIABLE: |
| 2005 return visitor.visitFinalLocalVariablePostfix( |
| 2006 node, |
| 2007 semantics.element, |
| 2008 operator, |
| 2009 arg); |
| 1764 case AccessKind.PARAMETER: | 2010 case AccessKind.PARAMETER: |
| 1765 return visitor.visitParameterPostfix( | 2011 return visitor.visitParameterPostfix( |
| 1766 node, | 2012 node, |
| 1767 semantics.element, | 2013 semantics.element, |
| 1768 operator, | 2014 operator, |
| 1769 arg); | 2015 arg); |
| 2016 case AccessKind.FINAL_PARAMETER: |
| 2017 return visitor.visitFinalParameterPostfix( |
| 2018 node, |
| 2019 semantics.element, |
| 2020 operator, |
| 2021 arg); |
| 1770 case AccessKind.STATIC_FIELD: | 2022 case AccessKind.STATIC_FIELD: |
| 1771 return visitor.visitStaticFieldPostfix( | 2023 return visitor.visitStaticFieldPostfix( |
| 1772 node, | 2024 node, |
| 1773 semantics.element, | 2025 semantics.element, |
| 1774 operator, | 2026 operator, |
| 1775 arg); | 2027 arg); |
| 2028 case AccessKind.FINAL_STATIC_FIELD: |
| 2029 return visitor.visitFinalStaticFieldPostfix( |
| 2030 node, |
| 2031 semantics.element, |
| 2032 operator, |
| 2033 arg); |
| 1776 case AccessKind.STATIC_METHOD: | 2034 case AccessKind.STATIC_METHOD: |
| 1777 // TODO(johnniwinther): Handle this. | 2035 return visitor.visitStaticMethodPostfix( |
| 1778 break; | 2036 node, |
| 2037 semantics.element, |
| 2038 operator, |
| 2039 arg); |
| 1779 case AccessKind.STATIC_GETTER: | 2040 case AccessKind.STATIC_GETTER: |
| 1780 // This is not a valid case. | 2041 // This is not a valid case. |
| 1781 break; | 2042 break; |
| 1782 case AccessKind.STATIC_SETTER: | 2043 case AccessKind.STATIC_SETTER: |
| 1783 // This is not a valid case. | 2044 // This is not a valid case. |
| 1784 break; | 2045 break; |
| 1785 case AccessKind.TOPLEVEL_FIELD: | 2046 case AccessKind.TOPLEVEL_FIELD: |
| 1786 return visitor.visitTopLevelFieldPostfix( | 2047 return visitor.visitTopLevelFieldPostfix( |
| 1787 node, | 2048 node, |
| 1788 semantics.element, | 2049 semantics.element, |
| 1789 operator, | 2050 operator, |
| 1790 arg); | 2051 arg); |
| 2052 case AccessKind.FINAL_TOPLEVEL_FIELD: |
| 2053 return visitor.visitFinalTopLevelFieldPostfix( |
| 2054 node, |
| 2055 semantics.element, |
| 2056 operator, |
| 2057 arg); |
| 1791 case AccessKind.TOPLEVEL_METHOD: | 2058 case AccessKind.TOPLEVEL_METHOD: |
| 1792 // TODO(johnniwinther): Handle this. | 2059 return visitor.visitTopLevelMethodPostfix( |
| 1793 break; | 2060 node, |
| 2061 semantics.element, |
| 2062 operator, |
| 2063 arg); |
| 1794 case AccessKind.TOPLEVEL_GETTER: | 2064 case AccessKind.TOPLEVEL_GETTER: |
| 1795 // This is not a valid case. | 2065 // This is not a valid case. |
| 1796 break; | 2066 break; |
| 1797 case AccessKind.TOPLEVEL_SETTER: | 2067 case AccessKind.TOPLEVEL_SETTER: |
| 1798 // This is not a valid case. | 2068 // This is not a valid case. |
| 1799 break; | 2069 break; |
| 1800 case AccessKind.CLASS_TYPE_LITERAL: | 2070 case AccessKind.CLASS_TYPE_LITERAL: |
| 1801 return visitor.errorClassTypeLiteralPostfix( | 2071 return visitor.visitClassTypeLiteralPostfix( |
| 1802 node, | 2072 node, |
| 1803 semantics.constant, | 2073 semantics.constant, |
| 1804 operator, | 2074 operator, |
| 1805 arg); | 2075 arg); |
| 1806 case AccessKind.TYPEDEF_TYPE_LITERAL: | 2076 case AccessKind.TYPEDEF_TYPE_LITERAL: |
| 1807 return visitor.errorTypedefTypeLiteralPostfix( | 2077 return visitor.visitTypedefTypeLiteralPostfix( |
| 1808 node, | 2078 node, |
| 1809 semantics.constant, | 2079 semantics.constant, |
| 1810 operator, | 2080 operator, |
| 1811 arg); | 2081 arg); |
| 1812 case AccessKind.DYNAMIC_TYPE_LITERAL: | 2082 case AccessKind.DYNAMIC_TYPE_LITERAL: |
| 1813 return visitor.errorDynamicTypeLiteralPostfix( | 2083 return visitor.visitDynamicTypeLiteralPostfix( |
| 1814 node, | 2084 node, |
| 1815 semantics.constant, | 2085 semantics.constant, |
| 1816 operator, | 2086 operator, |
| 1817 arg); | 2087 arg); |
| 1818 case AccessKind.TYPE_PARAMETER_TYPE_LITERAL: | 2088 case AccessKind.TYPE_PARAMETER_TYPE_LITERAL: |
| 1819 return visitor.errorTypeVariableTypeLiteralPostfix( | 2089 return visitor.visitTypeVariableTypeLiteralPostfix( |
| 1820 node, | 2090 node, |
| 1821 semantics.element, | 2091 semantics.element, |
| 1822 operator, | 2092 operator, |
| 1823 arg); | 2093 arg); |
| 1824 case AccessKind.EXPRESSION: | 2094 case AccessKind.EXPRESSION: |
| 1825 // This is not a valid case. | 2095 // This is not a valid case. |
| 1826 break; | 2096 break; |
| 1827 case AccessKind.THIS: | 2097 case AccessKind.THIS: |
| 1828 // This is not a valid case. | 2098 // This is not a valid case. |
| 1829 break; | 2099 break; |
| 1830 case AccessKind.THIS_PROPERTY: | 2100 case AccessKind.THIS_PROPERTY: |
| 1831 return visitor.visitThisPropertyPostfix( | 2101 return visitor.visitThisPropertyPostfix( |
| 1832 node, | 2102 node, |
| 1833 operator, | 2103 operator, |
| 1834 getterSelector, | 2104 getterSelector, |
| 1835 setterSelector, | 2105 setterSelector, |
| 1836 arg); | 2106 arg); |
| 1837 case AccessKind.SUPER_FIELD: | 2107 case AccessKind.SUPER_FIELD: |
| 1838 return visitor.visitSuperFieldPostfix( | 2108 return visitor.visitSuperFieldPostfix( |
| 1839 node, | 2109 node, |
| 1840 semantics.element, | 2110 semantics.element, |
| 1841 operator, | 2111 operator, |
| 1842 arg); | 2112 arg); |
| 2113 case AccessKind.SUPER_FINAL_FIELD: |
| 2114 return visitor.visitFinalSuperFieldPostfix( |
| 2115 node, |
| 2116 semantics.element, |
| 2117 operator, |
| 2118 arg); |
| 1843 case AccessKind.SUPER_METHOD: | 2119 case AccessKind.SUPER_METHOD: |
| 1844 // TODO(johnniwinther): Handle this. | 2120 return visitor.visitSuperMethodPostfix( |
| 1845 break; | 2121 node, |
| 2122 semantics.element, |
| 2123 operator, |
| 2124 arg); |
| 1846 case AccessKind.SUPER_GETTER: | 2125 case AccessKind.SUPER_GETTER: |
| 1847 // This is not a valid case. | 2126 // This is not a valid case. |
| 1848 break; | 2127 break; |
| 1849 case AccessKind.SUPER_SETTER: | 2128 case AccessKind.SUPER_SETTER: |
| 1850 // This is not a valid case. | 2129 // This is not a valid case. |
| 1851 break; | 2130 break; |
| 1852 case AccessKind.CONSTANT: | 2131 case AccessKind.CONSTANT: |
| 1853 // TODO(johnniwinther): Should this be a valid case? | 2132 // TODO(johnniwinther): Should this be a valid case? |
| 1854 break; | 2133 break; |
| 1855 case AccessKind.UNRESOLVED_SUPER: | 2134 case AccessKind.UNRESOLVED_SUPER: |
| 1856 case AccessKind.UNRESOLVED: | 2135 return visitor.visitUnresolvedSuperPostfix( |
| 1857 // TODO(johnniwinther): Support these through [AccessKind.COMPOUND]. | |
| 1858 return visitor.errorUnresolvedPostfix( | |
| 1859 node, | 2136 node, |
| 1860 semantics.element, | 2137 semantics.element, |
| 1861 operator, | 2138 operator, |
| 2139 arg); |
| 2140 case AccessKind.UNRESOLVED: |
| 2141 return visitor.visitUnresolvedPostfix( |
| 2142 node, |
| 2143 semantics.element, |
| 2144 operator, |
| 1862 arg); | 2145 arg); |
| 1863 case AccessKind.COMPOUND: | 2146 case AccessKind.COMPOUND: |
| 1864 CompoundAccessSemantics compoundSemantics = semantics; | 2147 CompoundAccessSemantics compoundSemantics = semantics; |
| 1865 switch (compoundSemantics.compoundAccessKind) { | 2148 switch (compoundSemantics.compoundAccessKind) { |
| 1866 case CompoundAccessKind.STATIC_GETTER_SETTER: | 2149 case CompoundAccessKind.STATIC_GETTER_SETTER: |
| 1867 return visitor.visitStaticGetterSetterPostfix( | 2150 return visitor.visitStaticGetterSetterPostfix( |
| 1868 node, | 2151 node, |
| 1869 compoundSemantics.getter, | 2152 compoundSemantics.getter, |
| 1870 compoundSemantics.setter, | 2153 compoundSemantics.setter, |
| 1871 operator, | 2154 operator, |
| 1872 arg); | 2155 arg); |
| 2156 case CompoundAccessKind.UNRESOLVED_STATIC_GETTER: |
| 2157 return visitor.visitUnresolvedStaticGetterPostfix( |
| 2158 node, |
| 2159 compoundSemantics.getter, |
| 2160 compoundSemantics.setter, |
| 2161 operator, |
| 2162 arg); |
| 2163 case CompoundAccessKind.UNRESOLVED_STATIC_SETTER: |
| 2164 return visitor.visitUnresolvedStaticSetterPostfix( |
| 2165 node, |
| 2166 compoundSemantics.getter, |
| 2167 compoundSemantics.setter, |
| 2168 operator, |
| 2169 arg); |
| 1873 case CompoundAccessKind.STATIC_METHOD_SETTER: | 2170 case CompoundAccessKind.STATIC_METHOD_SETTER: |
| 1874 return visitor.visitStaticMethodSetterPostfix( | 2171 return visitor.visitStaticMethodSetterPostfix( |
| 1875 node, | 2172 node, |
| 1876 compoundSemantics.getter, | 2173 compoundSemantics.getter, |
| 1877 compoundSemantics.setter, | 2174 compoundSemantics.setter, |
| 1878 operator, | 2175 operator, |
| 1879 arg); | 2176 arg); |
| 1880 case CompoundAccessKind.TOPLEVEL_GETTER_SETTER: | 2177 case CompoundAccessKind.TOPLEVEL_GETTER_SETTER: |
| 1881 return visitor.visitTopLevelGetterSetterPostfix( | 2178 return visitor.visitTopLevelGetterSetterPostfix( |
| 1882 node, | 2179 node, |
| 1883 compoundSemantics.getter, | 2180 compoundSemantics.getter, |
| 1884 compoundSemantics.setter, | 2181 compoundSemantics.setter, |
| 1885 operator, | 2182 operator, |
| 1886 arg); | 2183 arg); |
| 1887 case CompoundAccessKind.TOPLEVEL_METHOD_SETTER: | 2184 case CompoundAccessKind.TOPLEVEL_METHOD_SETTER: |
| 1888 return visitor.visitTopLevelMethodSetterPostfix( | 2185 return visitor.visitTopLevelMethodSetterPostfix( |
| 1889 node, | 2186 node, |
| 1890 compoundSemantics.getter, | 2187 compoundSemantics.getter, |
| 1891 compoundSemantics.setter, | 2188 compoundSemantics.setter, |
| 1892 operator, | 2189 operator, |
| 1893 arg); | 2190 arg); |
| 2191 case CompoundAccessKind.UNRESOLVED_TOPLEVEL_GETTER: |
| 2192 return visitor.visitUnresolvedTopLevelGetterPostfix( |
| 2193 node, |
| 2194 compoundSemantics.getter, |
| 2195 compoundSemantics.setter, |
| 2196 operator, |
| 2197 arg); |
| 2198 case CompoundAccessKind.UNRESOLVED_TOPLEVEL_SETTER: |
| 2199 return visitor.visitUnresolvedTopLevelSetterPostfix( |
| 2200 node, |
| 2201 compoundSemantics.getter, |
| 2202 compoundSemantics.setter, |
| 2203 operator, |
| 2204 arg); |
| 1894 case CompoundAccessKind.SUPER_FIELD_FIELD: | 2205 case CompoundAccessKind.SUPER_FIELD_FIELD: |
| 1895 return visitor.visitSuperFieldFieldPostfix( | 2206 return visitor.visitSuperFieldFieldPostfix( |
| 1896 node, | 2207 node, |
| 1897 compoundSemantics.getter, | 2208 compoundSemantics.getter, |
| 1898 compoundSemantics.setter, | 2209 compoundSemantics.setter, |
| 1899 operator, | 2210 operator, |
| 1900 arg); | 2211 arg); |
| 1901 case CompoundAccessKind.SUPER_GETTER_SETTER: | 2212 case CompoundAccessKind.SUPER_GETTER_SETTER: |
| 1902 return visitor.visitSuperGetterSetterPostfix( | 2213 return visitor.visitSuperGetterSetterPostfix( |
| 1903 node, | 2214 node, |
| (...skipping 16 matching lines...) Expand all Loading... |
| 1920 operator, | 2231 operator, |
| 1921 arg); | 2232 arg); |
| 1922 case CompoundAccessKind.SUPER_FIELD_SETTER: | 2233 case CompoundAccessKind.SUPER_FIELD_SETTER: |
| 1923 return visitor.visitSuperFieldSetterPostfix( | 2234 return visitor.visitSuperFieldSetterPostfix( |
| 1924 node, | 2235 node, |
| 1925 compoundSemantics.getter, | 2236 compoundSemantics.getter, |
| 1926 compoundSemantics.setter, | 2237 compoundSemantics.setter, |
| 1927 operator, | 2238 operator, |
| 1928 arg); | 2239 arg); |
| 1929 case CompoundAccessKind.UNRESOLVED_SUPER_GETTER: | 2240 case CompoundAccessKind.UNRESOLVED_SUPER_GETTER: |
| 2241 return visitor.visitUnresolvedSuperGetterPostfix( |
| 2242 node, |
| 2243 compoundSemantics.getter, |
| 2244 compoundSemantics.setter, |
| 2245 operator, |
| 2246 arg); |
| 1930 case CompoundAccessKind.UNRESOLVED_SUPER_SETTER: | 2247 case CompoundAccessKind.UNRESOLVED_SUPER_SETTER: |
| 1931 // TODO(johnniwinther): Handle these directly. | 2248 return visitor.visitUnresolvedSuperSetterPostfix( |
| 1932 return visitor.errorUnresolvedPostfix( | |
| 1933 node, | 2249 node, |
| 1934 semantics.element, | 2250 compoundSemantics.getter, |
| 2251 compoundSemantics.setter, |
| 1935 operator, | 2252 operator, |
| 1936 arg); | 2253 arg); |
| 1937 } | 2254 } |
| 1938 } | 2255 } |
| 1939 throw new SpannableAssertionFailure(node, | 2256 throw new SpannableAssertionFailure(node, |
| 1940 "Invalid compound assigment: ${semantics}"); | 2257 "Invalid compound assigment: ${semantics}"); |
| 1941 } | 2258 } |
| 1942 | 2259 |
| 1943 String toString() => 'postfix($operator,$semantics)'; | 2260 String toString() => 'postfix($operator,$semantics)'; |
| 1944 } | 2261 } |
| (...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2213 final ConstructorElement constructor; | 2530 final ConstructorElement constructor; |
| 2214 final Selector selector; | 2531 final Selector selector; |
| 2215 | 2532 |
| 2216 ThisConstructorInvokeStructure(this.constructor, this.selector); | 2533 ThisConstructorInvokeStructure(this.constructor, this.selector); |
| 2217 | 2534 |
| 2218 R dispatch(SemanticDeclarationVisitor<R, A> visitor, Send node, A arg) { | 2535 R dispatch(SemanticDeclarationVisitor<R, A> visitor, Send node, A arg) { |
| 2219 return visitor.visitThisConstructorInvoke( | 2536 return visitor.visitThisConstructorInvoke( |
| 2220 node, constructor, node.argumentsNode, selector, arg); | 2537 node, constructor, node.argumentsNode, selector, arg); |
| 2221 } | 2538 } |
| 2222 } | 2539 } |
| OLD | NEW |