Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(334)

Side by Side Diff: pkg/compiler/lib/src/resolution/semantic_visitor.dart

Issue 1088933004: Use CallStructure instead of Selector in SemanticSendVisitor. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library dart2js.semantics_visitor; 5 library dart2js.semantics_visitor;
6 6
7 import '../constants/expressions.dart'; 7 import '../constants/expressions.dart';
8 import '../dart2jslib.dart' show invariant; 8 import '../dart2jslib.dart' show invariant;
9 import '../dart_types.dart'; 9 import '../dart_types.dart';
10 import '../elements/elements.dart'; 10 import '../elements/elements.dart';
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 /// 185 ///
186 /// For instance: 186 /// For instance:
187 /// m(parameter) { 187 /// m(parameter) {
188 /// parameter(null, 42); 188 /// parameter(null, 42);
189 /// } 189 /// }
190 /// 190 ///
191 R visitParameterInvoke( 191 R visitParameterInvoke(
192 Send node, 192 Send node,
193 ParameterElement parameter, 193 ParameterElement parameter,
194 NodeList arguments, 194 NodeList arguments,
195 Selector selector, 195 CallStructure callStructure,
196 A arg); 196 A arg);
197 197
198 /// Read of the local [variable]. 198 /// Read of the local [variable].
199 /// 199 ///
200 /// For instance: 200 /// For instance:
201 /// m() { 201 /// m() {
202 /// var variable; 202 /// var variable;
203 /// return variable; 203 /// return variable;
204 /// } 204 /// }
205 /// 205 ///
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 /// For instance: 241 /// For instance:
242 /// m() { 242 /// m() {
243 /// var variable; 243 /// var variable;
244 /// variable(null, 42); 244 /// variable(null, 42);
245 /// } 245 /// }
246 /// 246 ///
247 R visitLocalVariableInvoke( 247 R visitLocalVariableInvoke(
248 Send node, 248 Send node,
249 LocalVariableElement variable, 249 LocalVariableElement variable,
250 NodeList arguments, 250 NodeList arguments,
251 Selector selector, 251 CallStructure callStructure,
252 A arg); 252 A arg);
253 253
254 /// Closurization of the local [function]. 254 /// Closurization of the local [function].
255 /// 255 ///
256 /// For instance: 256 /// For instance:
257 /// m() { 257 /// m() {
258 /// o(a, b) {} 258 /// o(a, b) {}
259 /// return o; 259 /// return o;
260 /// } 260 /// }
261 /// 261 ///
(...skipping 21 matching lines...) Expand all
283 /// For instance: 283 /// For instance:
284 /// m() { 284 /// m() {
285 /// o(a, b) {} 285 /// o(a, b) {}
286 /// return o(null, 42); 286 /// return o(null, 42);
287 /// } 287 /// }
288 /// 288 ///
289 R visitLocalFunctionInvoke( 289 R visitLocalFunctionInvoke(
290 Send node, 290 Send node,
291 LocalFunctionElement function, 291 LocalFunctionElement function,
292 NodeList arguments, 292 NodeList arguments,
293 Selector selector, 293 CallStructure callStructure,
294 A arg); 294 A arg);
295 295
296 /// Getter call on [receiver] of the property defined by [selector]. 296 /// Getter call on [receiver] of the property defined by [selector].
297 /// 297 ///
298 /// For instance 298 /// For instance
299 /// m(receiver) => receiver.foo; 299 /// m(receiver) => receiver.foo;
300 /// 300 ///
301 R visitDynamicPropertyGet( 301 R visitDynamicPropertyGet(
302 Send node, 302 Send node,
303 Node receiver, 303 Node receiver,
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 /// Invocation of `this` with [arguments]. 405 /// Invocation of `this` with [arguments].
406 /// 406 ///
407 /// For instance 407 /// For instance
408 /// class C { 408 /// class C {
409 /// m() => this(null, 42); 409 /// m() => this(null, 42);
410 /// } 410 /// }
411 /// 411 ///
412 R visitThisInvoke( 412 R visitThisInvoke(
413 Send node, 413 Send node,
414 NodeList arguments, 414 NodeList arguments,
415 Selector selector, 415 CallStructure callStructure,
416 A arg); 416 A arg);
417 417
418 418
419 /// Read of the super [field]. 419 /// Read of the super [field].
420 /// 420 ///
421 /// For instance 421 /// For instance
422 /// class B { 422 /// class B {
423 /// var foo; 423 /// var foo;
424 /// } 424 /// }
425 /// class C extends B { 425 /// class C extends B {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
470 /// var foo; 470 /// var foo;
471 /// } 471 /// }
472 /// class C extends B { 472 /// class C extends B {
473 /// m() { super.foo(null, 42); } 473 /// m() { super.foo(null, 42); }
474 /// } 474 /// }
475 /// 475 ///
476 R visitSuperFieldInvoke( 476 R visitSuperFieldInvoke(
477 Send node, 477 Send node,
478 FieldElement field, 478 FieldElement field,
479 NodeList arguments, 479 NodeList arguments,
480 Selector selector, 480 CallStructure callStructure,
481 A arg); 481 A arg);
482 482
483 /// Closurization of the super [method]. 483 /// Closurization of the super [method].
484 /// 484 ///
485 /// For instance 485 /// For instance
486 /// class B { 486 /// class B {
487 /// foo(a, b) {} 487 /// foo(a, b) {}
488 /// } 488 /// }
489 /// class C extends B { 489 /// class C extends B {
490 /// m() => super.foo; 490 /// m() => super.foo;
(...skipping 11 matching lines...) Expand all
502 /// foo(a, b) {} 502 /// foo(a, b) {}
503 /// } 503 /// }
504 /// class C extends B { 504 /// class C extends B {
505 /// m() { super.foo(null, 42); } 505 /// m() { super.foo(null, 42); }
506 /// } 506 /// }
507 /// 507 ///
508 R visitSuperMethodInvoke( 508 R visitSuperMethodInvoke(
509 Send node, 509 Send node,
510 MethodElement method, 510 MethodElement method,
511 NodeList arguments, 511 NodeList arguments,
512 Selector selector, 512 CallStructure callStructure,
513 A arg); 513 A arg);
514 514
515 /// Assignment of [rhs] to the super [method]. 515 /// Assignment of [rhs] to the super [method].
516 /// 516 ///
517 /// For instance 517 /// For instance
518 /// class B { 518 /// class B {
519 /// foo(a, b) {} 519 /// foo(a, b) {}
520 /// } 520 /// }
521 /// class C extends B { 521 /// class C extends B {
522 /// m() { super.foo = rhs; } 522 /// m() { super.foo = rhs; }
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
597 /// get foo => null; 597 /// get foo => null;
598 /// } 598 /// }
599 /// class C extends B { 599 /// class C extends B {
600 /// m() { super.foo(null, 42; } 600 /// m() { super.foo(null, 42; }
601 /// } 601 /// }
602 /// 602 ///
603 R visitSuperGetterInvoke( 603 R visitSuperGetterInvoke(
604 Send node, 604 Send node,
605 FunctionElement getter, 605 FunctionElement getter,
606 NodeList arguments, 606 NodeList arguments,
607 Selector selector, 607 CallStructure callStructure,
608 A arg); 608 A arg);
609 609
610 /// Invocation of the super [setter] with [arguments]. 610 /// Invocation of the super [setter] with [arguments].
611 /// 611 ///
612 /// For instance 612 /// For instance
613 /// class B { 613 /// class B {
614 /// set foo(_) {} 614 /// set foo(_) {}
615 /// } 615 /// }
616 /// class C extends B { 616 /// class C extends B {
617 /// m() { super.foo(null, 42; } 617 /// m() { super.foo(null, 42; }
618 /// } 618 /// }
619 /// 619 ///
620 R errorSuperSetterInvoke( 620 R errorSuperSetterInvoke(
621 Send node, 621 Send node,
622 FunctionElement setter, 622 FunctionElement setter,
623 NodeList arguments, 623 NodeList arguments,
624 Selector selector, 624 CallStructure callStructure,
625 A arg); 625 A arg);
626 626
627 /// Invocation of a [expression] with [arguments]. 627 /// Invocation of a [expression] with [arguments].
628 /// 628 ///
629 /// For instance 629 /// For instance
630 /// m() => (a, b){}(null, 42); 630 /// m() => (a, b){}(null, 42);
631 /// 631 ///
632 R visitExpressionInvoke( 632 R visitExpressionInvoke(
633 Send node, 633 Send node,
634 Node expression, 634 Node expression,
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
682 /// For instance 682 /// For instance
683 /// class C { 683 /// class C {
684 /// static var foo; 684 /// static var foo;
685 /// } 685 /// }
686 /// m() { C.foo(null, 42); } 686 /// m() { C.foo(null, 42); }
687 /// 687 ///
688 R visitStaticFieldInvoke( 688 R visitStaticFieldInvoke(
689 Send node, 689 Send node,
690 FieldElement field, 690 FieldElement field,
691 NodeList arguments, 691 NodeList arguments,
692 Selector selector, 692 CallStructure callStructure,
693 A arg); 693 A arg);
694 694
695 /// Closurization of the static [function]. 695 /// Closurization of the static [function].
696 /// 696 ///
697 /// For instance 697 /// For instance
698 /// class C { 698 /// class C {
699 /// static foo(a, b) {} 699 /// static foo(a, b) {}
700 /// } 700 /// }
701 /// m() => C.foo; 701 /// m() => C.foo;
702 /// 702 ///
703 R visitStaticFunctionGet( 703 R visitStaticFunctionGet(
704 Send node, 704 Send node,
705 MethodElement function, 705 MethodElement function,
706 A arg); 706 A arg);
707 707
708 /// Invocation of the static [function] with [arguments]. 708 /// Invocation of the static [function] with [arguments].
709 /// 709 ///
710 /// For instance 710 /// For instance
711 /// class C { 711 /// class C {
712 /// static foo(a, b) {} 712 /// static foo(a, b) {}
713 /// } 713 /// }
714 /// m() { C.foo(null, 42); } 714 /// m() { C.foo(null, 42); }
715 /// 715 ///
716 R visitStaticFunctionInvoke( 716 R visitStaticFunctionInvoke(
717 Send node, 717 Send node,
718 MethodElement function, 718 MethodElement function,
719 NodeList arguments, 719 NodeList arguments,
720 Selector selector, 720 CallStructure callStructure,
721 A arg); 721 A arg);
722 722
723 /// Assignment of [rhs] to the static [function]. 723 /// Assignment of [rhs] to the static [function].
724 /// 724 ///
725 /// For instance 725 /// For instance
726 /// class C { 726 /// class C {
727 /// static foo(a, b) {} 727 /// static foo(a, b) {}
728 /// } 728 /// }
729 /// m() { C.foo = rhs; } 729 /// m() { C.foo = rhs; }
730 /// 730 ///
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
793 /// For instance 793 /// For instance
794 /// class C { 794 /// class C {
795 /// static get foo => null; 795 /// static get foo => null;
796 /// } 796 /// }
797 /// m() { C.foo(null, 42; } 797 /// m() { C.foo(null, 42; }
798 /// 798 ///
799 R visitStaticGetterInvoke( 799 R visitStaticGetterInvoke(
800 Send node, 800 Send node,
801 FunctionElement getter, 801 FunctionElement getter,
802 NodeList arguments, 802 NodeList arguments,
803 Selector selector, 803 CallStructure callStructure,
804 A arg); 804 A arg);
805 805
806 /// Invocation of the static [setter] with [arguments]. 806 /// Invocation of the static [setter] with [arguments].
807 /// 807 ///
808 /// For instance 808 /// For instance
809 /// class C { 809 /// class C {
810 /// static set foo(_) {} 810 /// static set foo(_) {}
811 /// } 811 /// }
812 /// m() { C.foo(null, 42; } 812 /// m() { C.foo(null, 42; }
813 /// 813 ///
814 R errorStaticSetterInvoke( 814 R errorStaticSetterInvoke(
815 Send node, 815 Send node,
816 FunctionElement setter, 816 FunctionElement setter,
817 NodeList arguments, 817 NodeList arguments,
818 Selector selector, 818 CallStructure callStructure,
819 A arg); 819 A arg);
820 820
821 /// Read of the top level [field]. 821 /// Read of the top level [field].
822 /// 822 ///
823 /// For instance 823 /// For instance
824 /// var foo; 824 /// var foo;
825 /// m() => foo; 825 /// m() => foo;
826 /// 826 ///
827 R visitTopLevelFieldGet( 827 R visitTopLevelFieldGet(
828 Send node, 828 Send node,
(...skipping 27 matching lines...) Expand all
856 /// Invocation of the top level [field] with [arguments]. 856 /// Invocation of the top level [field] with [arguments].
857 /// 857 ///
858 /// For instance 858 /// For instance
859 /// var foo; 859 /// var foo;
860 /// m() { foo(null, 42); } 860 /// m() { foo(null, 42); }
861 /// 861 ///
862 R visitTopLevelFieldInvoke( 862 R visitTopLevelFieldInvoke(
863 Send node, 863 Send node,
864 FieldElement field, 864 FieldElement field,
865 NodeList arguments, 865 NodeList arguments,
866 Selector selector, 866 CallStructure callStructure,
867 A arg); 867 A arg);
868 868
869 /// Closurization of the top level [function]. 869 /// Closurization of the top level [function].
870 /// 870 ///
871 /// For instance 871 /// For instance
872 /// foo(a, b) {}; 872 /// foo(a, b) {};
873 /// m() => foo; 873 /// m() => foo;
874 /// 874 ///
875 R visitTopLevelFunctionGet( 875 R visitTopLevelFunctionGet(
876 Send node, 876 Send node,
877 MethodElement function, 877 MethodElement function,
878 A arg); 878 A arg);
879 879
880 /// Invocation of the top level [function] with [arguments]. 880 /// Invocation of the top level [function] with [arguments].
881 /// 881 ///
882 /// For instance 882 /// For instance
883 /// foo(a, b) {}; 883 /// foo(a, b) {};
884 /// m() { foo(null, 42); } 884 /// m() { foo(null, 42); }
885 /// 885 ///
886 R visitTopLevelFunctionInvoke( 886 R visitTopLevelFunctionInvoke(
887 Send node, 887 Send node,
888 MethodElement function, 888 MethodElement function,
889 NodeList arguments, 889 NodeList arguments,
890 Selector selector, 890 CallStructure callStructure,
891 A arg); 891 A arg);
892 892
893 /// Assignment of [rhs] to the top level [function]. 893 /// Assignment of [rhs] to the top level [function].
894 /// 894 ///
895 /// For instance 895 /// For instance
896 /// foo(a, b) {}; 896 /// foo(a, b) {};
897 /// m() { foo = rhs; } 897 /// m() { foo = rhs; }
898 /// 898 ///
899 R errorTopLevelFunctionSet( 899 R errorTopLevelFunctionSet(
900 Send node, 900 Send node,
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
951 /// Invocation of the top level [getter] with [arguments]. 951 /// Invocation of the top level [getter] with [arguments].
952 /// 952 ///
953 /// For instance 953 /// For instance
954 /// get foo => null; 954 /// get foo => null;
955 /// m() { foo(null, 42); } 955 /// m() { foo(null, 42); }
956 /// 956 ///
957 R visitTopLevelGetterInvoke( 957 R visitTopLevelGetterInvoke(
958 Send node, 958 Send node,
959 FunctionElement getter, 959 FunctionElement getter,
960 NodeList arguments, 960 NodeList arguments,
961 Selector selector, 961 CallStructure callStructure,
962 A arg); 962 A arg);
963 963
964 /// Invocation of the top level [setter] with [arguments]. 964 /// Invocation of the top level [setter] with [arguments].
965 /// 965 ///
966 /// For instance 966 /// For instance
967 /// set foo(_) {}; 967 /// set foo(_) {};
968 /// m() { foo(null, 42); } 968 /// m() { foo(null, 42); }
969 /// 969 ///
970 R errorTopLevelSetterInvoke( 970 R errorTopLevelSetterInvoke(
971 Send node, 971 Send node,
972 FunctionElement setter, 972 FunctionElement setter,
973 NodeList arguments, 973 NodeList arguments,
974 Selector selector, 974 CallStructure callStructure,
975 A arg); 975 A arg);
976 976
977 /// Read of the type literal for class [element]. 977 /// Read of the type literal for class [element].
978 /// 978 ///
979 /// For instance 979 /// For instance
980 /// class C {} 980 /// class C {}
981 /// m() => C; 981 /// m() => C;
982 /// 982 ///
983 R visitClassTypeLiteralGet( 983 R visitClassTypeLiteralGet(
984 Send node, 984 Send node,
985 ConstantExpression constant, 985 ConstantExpression constant,
986 A arg); 986 A arg);
987 987
988 /// Invocation of the type literal for class [element] with [arguments]. 988 /// Invocation of the type literal for class [element] with [arguments].
989 /// 989 ///
990 /// For instance 990 /// For instance
991 /// class C {} 991 /// class C {}
992 /// m() => C(null, 42); 992 /// m() => C(null, 42);
993 /// 993 ///
994 R visitClassTypeLiteralInvoke( 994 R visitClassTypeLiteralInvoke(
995 Send node, 995 Send node,
996 ConstantExpression constant, 996 ConstantExpression constant,
997 NodeList arguments, 997 NodeList arguments,
998 Selector selector, 998 CallStructure callStructure,
999 A arg); 999 A arg);
1000 1000
1001 /// Assignment of [rhs] to the type literal for class [element]. 1001 /// Assignment of [rhs] to the type literal for class [element].
1002 /// 1002 ///
1003 /// For instance 1003 /// For instance
1004 /// class C {} 1004 /// class C {}
1005 /// m() { C = rhs; } 1005 /// m() { C = rhs; }
1006 /// 1006 ///
1007 R errorClassTypeLiteralSet( 1007 R errorClassTypeLiteralSet(
1008 SendSet node, 1008 SendSet node,
(...skipping 15 matching lines...) Expand all
1024 /// Invocation of the type literal for typedef [element] with [arguments]. 1024 /// Invocation of the type literal for typedef [element] with [arguments].
1025 /// 1025 ///
1026 /// For instance 1026 /// For instance
1027 /// typedef F(); 1027 /// typedef F();
1028 /// m() => F(null, 42); 1028 /// m() => F(null, 42);
1029 /// 1029 ///
1030 R visitTypedefTypeLiteralInvoke( 1030 R visitTypedefTypeLiteralInvoke(
1031 Send node, 1031 Send node,
1032 ConstantExpression constant, 1032 ConstantExpression constant,
1033 NodeList arguments, 1033 NodeList arguments,
1034 Selector selector, 1034 CallStructure callStructure,
1035 A arg); 1035 A arg);
1036 1036
1037 /// Assignment of [rhs] to the type literal for typedef [element]. 1037 /// Assignment of [rhs] to the type literal for typedef [element].
1038 /// 1038 ///
1039 /// For instance 1039 /// For instance
1040 /// typedef F(); 1040 /// typedef F();
1041 /// m() { F = rhs; } 1041 /// m() { F = rhs; }
1042 /// 1042 ///
1043 R errorTypedefTypeLiteralSet( 1043 R errorTypedefTypeLiteralSet(
1044 SendSet node, 1044 SendSet node,
(...skipping 18 matching lines...) Expand all
1063 /// 1063 ///
1064 /// For instance 1064 /// For instance
1065 /// class C<T> { 1065 /// class C<T> {
1066 /// m() { T(null, 42); } 1066 /// m() { T(null, 42); }
1067 /// } 1067 /// }
1068 /// 1068 ///
1069 R visitTypeVariableTypeLiteralInvoke( 1069 R visitTypeVariableTypeLiteralInvoke(
1070 Send node, 1070 Send node,
1071 TypeVariableElement element, 1071 TypeVariableElement element,
1072 NodeList arguments, 1072 NodeList arguments,
1073 Selector selector, 1073 CallStructure callStructure,
1074 A arg); 1074 A arg);
1075 1075
1076 /// Assignment of [rhs] to the type literal for type variable [element]. 1076 /// Assignment of [rhs] to the type literal for type variable [element].
1077 /// 1077 ///
1078 /// For instance 1078 /// For instance
1079 /// class C<T> { 1079 /// class C<T> {
1080 /// m() { T = rhs; } 1080 /// m() { T = rhs; }
1081 /// } 1081 /// }
1082 /// 1082 ///
1083 R errorTypeVariableTypeLiteralSet( 1083 R errorTypeVariableTypeLiteralSet(
(...skipping 14 matching lines...) Expand all
1098 1098
1099 /// Invocation of the type literal for `dynamic` with [arguments]. 1099 /// Invocation of the type literal for `dynamic` with [arguments].
1100 /// 1100 ///
1101 /// For instance 1101 /// For instance
1102 /// m() { dynamic(null, 42); } 1102 /// m() { dynamic(null, 42); }
1103 /// 1103 ///
1104 R visitDynamicTypeLiteralInvoke( 1104 R visitDynamicTypeLiteralInvoke(
1105 Send node, 1105 Send node,
1106 ConstantExpression constant, 1106 ConstantExpression constant,
1107 NodeList arguments, 1107 NodeList arguments,
1108 Selector selector, 1108 CallStructure callStructure,
1109 A arg); 1109 A arg);
1110 1110
1111 /// Assignment of [rhs] to the type literal for `dynamic`. 1111 /// Assignment of [rhs] to the type literal for `dynamic`.
1112 /// 1112 ///
1113 /// For instance 1113 /// For instance
1114 /// m() { dynamic = rhs; } 1114 /// m() { dynamic = rhs; }
1115 /// 1115 ///
1116 R errorDynamicTypeLiteralSet( 1116 R errorDynamicTypeLiteralSet(
1117 SendSet node, 1117 SendSet node,
1118 ConstantExpression constant, 1118 ConstantExpression constant,
(...skipping 1523 matching lines...) Expand 10 before | Expand all | Expand 10 after
2642 /// Invocation of the [constant] with [arguments]. 2642 /// Invocation of the [constant] with [arguments].
2643 /// 2643 ///
2644 /// For instance 2644 /// For instance
2645 /// const c = null; 2645 /// const c = null;
2646 /// m() => c(null, 42); 2646 /// m() => c(null, 42);
2647 /// 2647 ///
2648 R visitConstantInvoke( 2648 R visitConstantInvoke(
2649 Send node, 2649 Send node,
2650 ConstantExpression constant, 2650 ConstantExpression constant,
2651 NodeList arguments, 2651 NodeList arguments,
2652 Selector selector, 2652 CallStructure callStreucture,
2653 A arg); 2653 A arg);
2654 2654
2655 /// Read of the unresolved [element]. 2655 /// Read of the unresolved [element].
2656 /// 2656 ///
2657 /// For instance 2657 /// For instance
2658 /// class C {} 2658 /// class C {}
2659 /// m1() => unresolved; 2659 /// m1() => unresolved;
2660 /// m2() => prefix.unresolved; 2660 /// m2() => prefix.unresolved;
2661 /// m3() => Unresolved.foo; 2661 /// m3() => Unresolved.foo;
2662 /// m4() => unresolved.foo; 2662 /// m4() => unresolved.foo;
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
2869 /// } 2869 /// }
2870 /// m() => new C<int>(true, 42); 2870 /// m() => new C<int>(true, 42);
2871 /// 2871 ///
2872 /// where [type] is `C<int>`. 2872 /// where [type] is `C<int>`.
2873 /// 2873 ///
2874 R visitGenerativeConstructorInvoke( 2874 R visitGenerativeConstructorInvoke(
2875 NewExpression node, 2875 NewExpression node,
2876 ConstructorElement constructor, 2876 ConstructorElement constructor,
2877 InterfaceType type, 2877 InterfaceType type,
2878 NodeList arguments, 2878 NodeList arguments,
2879 Selector selector, 2879 CallStructure callStructure,
2880 A arg); 2880 A arg);
2881 2881
2882 /// Invocation of a redirecting generative [constructor] on [type] with 2882 /// Invocation of a redirecting generative [constructor] on [type] with
2883 /// [arguments]. 2883 /// [arguments].
2884 /// 2884 ///
2885 /// For instance 2885 /// For instance
2886 /// class C<T> { 2886 /// class C<T> {
2887 /// C(a, b) : this._(b, a); 2887 /// C(a, b) : this._(b, a);
2888 /// C._(b, a); 2888 /// C._(b, a);
2889 /// } 2889 /// }
2890 /// m() => new C<int>(true, 42); 2890 /// m() => new C<int>(true, 42);
2891 /// 2891 ///
2892 /// where [type] is `C<int>`. 2892 /// where [type] is `C<int>`.
2893 /// 2893 ///
2894 R visitRedirectingGenerativeConstructorInvoke( 2894 R visitRedirectingGenerativeConstructorInvoke(
2895 NewExpression node, 2895 NewExpression node,
2896 ConstructorElement constructor, 2896 ConstructorElement constructor,
2897 InterfaceType type, 2897 InterfaceType type,
2898 NodeList arguments, 2898 NodeList arguments,
2899 Selector selector, 2899 CallStructure callStructure,
2900 A arg); 2900 A arg);
2901 2901
2902 /// Invocation of a factory [constructor] on [type] with [arguments]. 2902 /// Invocation of a factory [constructor] on [type] with [arguments].
2903 /// 2903 ///
2904 /// For instance 2904 /// For instance
2905 /// class C<T> { 2905 /// class C<T> {
2906 /// factory C(a, b) => new C<T>._(b, a); 2906 /// factory C(a, b) => new C<T>._(b, a);
2907 /// C._(b, a); 2907 /// C._(b, a);
2908 /// } 2908 /// }
2909 /// m() => new C<int>(true, 42); 2909 /// m() => new C<int>(true, 42);
2910 /// 2910 ///
2911 /// where [type] is `C<int>`. 2911 /// where [type] is `C<int>`.
2912 /// 2912 ///
2913 R visitFactoryConstructorInvoke( 2913 R visitFactoryConstructorInvoke(
2914 NewExpression node, 2914 NewExpression node,
2915 ConstructorElement constructor, 2915 ConstructorElement constructor,
2916 InterfaceType type, 2916 InterfaceType type,
2917 NodeList arguments, 2917 NodeList arguments,
2918 Selector selector, 2918 CallStructure callStructure,
2919 A arg); 2919 A arg);
2920 2920
2921 /// Invocation of a factory [constructor] on [type] with [arguments] where 2921 /// Invocation of a factory [constructor] on [type] with [arguments] where
2922 /// [effectiveTarget] and [effectiveTargetType] are the constructor effective 2922 /// [effectiveTarget] and [effectiveTargetType] are the constructor effective
2923 /// invoked and its type, respectively. 2923 /// invoked and its type, respectively.
2924 /// 2924 ///
2925 /// For instance 2925 /// For instance
2926 /// class C<T> { 2926 /// class C<T> {
2927 /// factory C(a, b) = C<int>.a; 2927 /// factory C(a, b) = C<int>.a;
2928 /// factory C.a(a, b) = C<C<T>>.b; 2928 /// factory C.a(a, b) = C<C<T>>.b;
2929 /// C.b(a, b); 2929 /// C.b(a, b);
2930 /// } 2930 /// }
2931 /// m() => new C<double>(true, 42); 2931 /// m() => new C<double>(true, 42);
2932 /// 2932 ///
2933 /// where [type] is `C<double>`, [effectiveTarget] is `C.b` and 2933 /// where [type] is `C<double>`, [effectiveTarget] is `C.b` and
2934 /// [effectiveTargetType] is `C<C<int>>`. 2934 /// [effectiveTargetType] is `C<C<int>>`.
2935 /// 2935 ///
2936 R visitRedirectingFactoryConstructorInvoke( 2936 R visitRedirectingFactoryConstructorInvoke(
2937 NewExpression node, 2937 NewExpression node,
2938 ConstructorElement constructor, 2938 ConstructorElement constructor,
2939 InterfaceType type, 2939 InterfaceType type,
2940 ConstructorElement effectiveTarget, 2940 ConstructorElement effectiveTarget,
2941 InterfaceType effectiveTargetType, 2941 InterfaceType effectiveTargetType,
2942 NodeList arguments, 2942 NodeList arguments,
2943 Selector selector, 2943 CallStructure callStructure,
2944 A arg); 2944 A arg);
2945 2945
2946 /// Invocation of an unresolved [constructor] on [type] with [arguments]. 2946 /// Invocation of an unresolved [constructor] on [type] with [arguments].
2947 /// 2947 ///
2948 /// For instance 2948 /// For instance
2949 /// class C<T> { 2949 /// class C<T> {
2950 /// C(); 2950 /// C();
2951 /// } 2951 /// }
2952 /// m() => new C<int>.unresolved(true, 42); 2952 /// m() => new C<int>.unresolved(true, 42);
2953 /// 2953 ///
(...skipping 29 matching lines...) Expand all
2983 /// For instance 2983 /// For instance
2984 /// m() => new Unresolved(true, 42); 2984 /// m() => new Unresolved(true, 42);
2985 /// 2985 ///
2986 /// where [type] is the malformed type `Unresolved`. 2986 /// where [type] is the malformed type `Unresolved`.
2987 /// 2987 ///
2988 R errorAbstractClassConstructorInvoke( 2988 R errorAbstractClassConstructorInvoke(
2989 NewExpression node, 2989 NewExpression node,
2990 ConstructorElement element, 2990 ConstructorElement element,
2991 InterfaceType type, 2991 InterfaceType type,
2992 NodeList arguments, 2992 NodeList arguments,
2993 Selector selector, 2993 CallStructure callStructure,
2994 A arg); 2994 A arg);
2995 2995
2996 /// Invocation of a factory [constructor] on [type] with [arguments] where 2996 /// Invocation of a factory [constructor] on [type] with [arguments] where
2997 /// [effectiveTarget] and [effectiveTargetType] are the constructor effective 2997 /// [effectiveTarget] and [effectiveTargetType] are the constructor effective
2998 /// invoked and its type, respectively. 2998 /// invoked and its type, respectively.
2999 /// 2999 ///
3000 /// For instance 3000 /// For instance
3001 /// class C { 3001 /// class C {
3002 /// factory C(a, b) = Unresolved; 3002 /// factory C(a, b) = Unresolved;
3003 /// factory C.a(a, b) = C.unresolved; 3003 /// factory C.a(a, b) = C.unresolved;
(...skipping 551 matching lines...) Expand 10 before | Expand all | Expand 10 after
3555 /// C() : this._(42); 3555 /// C() : this._(42);
3556 /// } 3556 /// }
3557 /// 3557 ///
3558 R errorUnresolvedThisConstructorInvoke( 3558 R errorUnresolvedThisConstructorInvoke(
3559 Send node, 3559 Send node,
3560 Element element, 3560 Element element,
3561 NodeList arguments, 3561 NodeList arguments,
3562 Selector selector, 3562 Selector selector,
3563 A arg); 3563 A arg);
3564 } 3564 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698