| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 part of dart2js.semantics_visitor_test; | 5 part of dart2js.semantics_visitor_test; |
| 6 | 6 |
| 7 const Map<String, List<Test>> SEND_TESTS = const { | 7 const Map<String, List<Test>> SEND_TESTS = const { |
| 8 'Parameters': const [ | 8 'Parameters': const [ |
| 9 // Parameters | 9 // Parameters |
| 10 const Test('m(o) => o;', | 10 const Test('m(o) => o;', |
| (...skipping 2256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2267 error: MessageKind.NO_SUPER_IN_STATIC, index: '1', rhs: '2')), | 2267 error: MessageKind.NO_SUPER_IN_STATIC, index: '1', rhs: '2')), |
| 2268 ], | 2268 ], |
| 2269 'Compound assignment': const [ | 2269 'Compound assignment': const [ |
| 2270 // Compound assignment | 2270 // Compound assignment |
| 2271 const Test( | 2271 const Test( |
| 2272 ''' | 2272 ''' |
| 2273 m(a) => a.b += 42; | 2273 m(a) => a.b += 42; |
| 2274 ''', | 2274 ''', |
| 2275 const [ | 2275 const [ |
| 2276 const Visit(VisitKind.VISIT_DYNAMIC_PROPERTY_COMPOUND, | 2276 const Visit(VisitKind.VISIT_DYNAMIC_PROPERTY_COMPOUND, |
| 2277 receiver: 'a', operator: '+=', rhs: '42', | 2277 receiver: 'a', name: 'b', operator: '+=', rhs: '42'), |
| 2278 getter: 'Selector(getter, b, arity=0)', | |
| 2279 setter: 'Selector(setter, b, arity=1)'), | |
| 2280 const Visit(VisitKind.VISIT_PARAMETER_GET, | 2278 const Visit(VisitKind.VISIT_PARAMETER_GET, |
| 2281 element: 'parameter(m#a)') | 2279 element: 'parameter(m#a)') |
| 2282 ]), | 2280 ]), |
| 2283 const Test( | 2281 const Test( |
| 2284 ''' | 2282 ''' |
| 2285 m(a) => a += 42; | 2283 m(a) => a += 42; |
| 2286 ''', | 2284 ''', |
| 2287 const Visit(VisitKind.VISIT_PARAMETER_COMPOUND, | 2285 const Visit(VisitKind.VISIT_PARAMETER_COMPOUND, |
| 2288 element: 'parameter(m#a)', operator: '+=', rhs: '42')), | 2286 element: 'parameter(m#a)', operator: '+=', rhs: '42')), |
| 2289 const Test( | 2287 const Test( |
| (...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2479 getter: 'function(C#a)', setter: 'setter(C#a)', | 2477 getter: 'function(C#a)', setter: 'setter(C#a)', |
| 2480 operator: '+=', rhs: '42')),*/ | 2478 operator: '+=', rhs: '42')),*/ |
| 2481 const Test.clazz( | 2479 const Test.clazz( |
| 2482 ''' | 2480 ''' |
| 2483 class C { | 2481 class C { |
| 2484 var a; | 2482 var a; |
| 2485 m() => a += 42; | 2483 m() => a += 42; |
| 2486 } | 2484 } |
| 2487 ''', | 2485 ''', |
| 2488 const Visit(VisitKind.VISIT_THIS_PROPERTY_COMPOUND, | 2486 const Visit(VisitKind.VISIT_THIS_PROPERTY_COMPOUND, |
| 2489 operator: '+=', rhs: '42', | 2487 operator: '+=', name: 'a', rhs: '42')), |
| 2490 getter: 'Selector(getter, a, arity=0)', | |
| 2491 setter: 'Selector(setter, a, arity=1)')), | |
| 2492 const Test.clazz( | 2488 const Test.clazz( |
| 2493 ''' | 2489 ''' |
| 2494 class C { | 2490 class C { |
| 2495 var a = 0; | 2491 var a = 0; |
| 2496 m() => this.a += 42; | 2492 m() => this.a += 42; |
| 2497 } | 2493 } |
| 2498 ''', | 2494 ''', |
| 2499 const Visit(VisitKind.VISIT_THIS_PROPERTY_COMPOUND, | 2495 const Visit(VisitKind.VISIT_THIS_PROPERTY_COMPOUND, |
| 2500 operator: '+=', rhs: '42', | 2496 name: 'a', operator: '+=', rhs: '42')), |
| 2501 getter: 'Selector(getter, a, arity=0)', | |
| 2502 setter: 'Selector(setter, a, arity=1)')), | |
| 2503 const Test.clazz( | 2497 const Test.clazz( |
| 2504 ''' | 2498 ''' |
| 2505 class B { | 2499 class B { |
| 2506 var a = 0; | 2500 var a = 0; |
| 2507 } | 2501 } |
| 2508 class C extends B { | 2502 class C extends B { |
| 2509 m() => super.a += 42; | 2503 m() => super.a += 42; |
| 2510 } | 2504 } |
| 2511 ''', | 2505 ''', |
| 2512 const Visit(VisitKind.VISIT_SUPER_FIELD_COMPOUND, | 2506 const Visit(VisitKind.VISIT_SUPER_FIELD_COMPOUND, |
| (...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2793 index: '1', operator: '+=', rhs: '42')), | 2787 index: '1', operator: '+=', rhs: '42')), |
| 2794 ], | 2788 ], |
| 2795 'Prefix expression': const [ | 2789 'Prefix expression': const [ |
| 2796 // Prefix expression | 2790 // Prefix expression |
| 2797 const Test( | 2791 const Test( |
| 2798 ''' | 2792 ''' |
| 2799 m(a) => --a.b; | 2793 m(a) => --a.b; |
| 2800 ''', | 2794 ''', |
| 2801 const [ | 2795 const [ |
| 2802 const Visit(VisitKind.VISIT_DYNAMIC_PROPERTY_PREFIX, | 2796 const Visit(VisitKind.VISIT_DYNAMIC_PROPERTY_PREFIX, |
| 2803 receiver: 'a', operator: '--', | 2797 receiver: 'a', name: 'b', operator: '--'), |
| 2804 getter: 'Selector(getter, b, arity=0)', | |
| 2805 setter: 'Selector(setter, b, arity=1)'), | |
| 2806 const Visit(VisitKind.VISIT_PARAMETER_GET, | 2798 const Visit(VisitKind.VISIT_PARAMETER_GET, |
| 2807 element: 'parameter(m#a)') | 2799 element: 'parameter(m#a)') |
| 2808 ]), | 2800 ]), |
| 2809 const Test( | 2801 const Test( |
| 2810 ''' | 2802 ''' |
| 2811 m(a) => ++a; | 2803 m(a) => ++a; |
| 2812 ''', | 2804 ''', |
| 2813 const Visit(VisitKind.VISIT_PARAMETER_PREFIX, | 2805 const Visit(VisitKind.VISIT_PARAMETER_PREFIX, |
| 2814 element: 'parameter(m#a)', operator: '++')), | 2806 element: 'parameter(m#a)', operator: '++')), |
| 2815 const Test( | 2807 const Test( |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2956 getter: 'getter(C#a)', setter: 'setter(C#a)', | 2948 getter: 'getter(C#a)', setter: 'setter(C#a)', |
| 2957 operator: '++')), | 2949 operator: '++')), |
| 2958 const Test.clazz( | 2950 const Test.clazz( |
| 2959 ''' | 2951 ''' |
| 2960 class C { | 2952 class C { |
| 2961 var a; | 2953 var a; |
| 2962 m() => --a; | 2954 m() => --a; |
| 2963 } | 2955 } |
| 2964 ''', | 2956 ''', |
| 2965 const Visit(VisitKind.VISIT_THIS_PROPERTY_PREFIX, | 2957 const Visit(VisitKind.VISIT_THIS_PROPERTY_PREFIX, |
| 2966 operator: '--', | 2958 name: 'a', operator: '--')), |
| 2967 getter: 'Selector(getter, a, arity=0)', | |
| 2968 setter: 'Selector(setter, a, arity=1)')), | |
| 2969 const Test.clazz( | 2959 const Test.clazz( |
| 2970 ''' | 2960 ''' |
| 2971 class C { | 2961 class C { |
| 2972 var a = 0; | 2962 var a = 0; |
| 2973 m() => ++this.a; | 2963 m() => ++this.a; |
| 2974 } | 2964 } |
| 2975 ''', | 2965 ''', |
| 2976 const Visit(VisitKind.VISIT_THIS_PROPERTY_PREFIX, | 2966 const Visit(VisitKind.VISIT_THIS_PROPERTY_PREFIX, |
| 2977 operator: '++', | 2967 name: 'a', operator: '++')), |
| 2978 getter: 'Selector(getter, a, arity=0)', | |
| 2979 setter: 'Selector(setter, a, arity=1)')), | |
| 2980 const Test.clazz( | 2968 const Test.clazz( |
| 2981 ''' | 2969 ''' |
| 2982 class B { | 2970 class B { |
| 2983 var a = 0; | 2971 var a = 0; |
| 2984 } | 2972 } |
| 2985 class C extends B { | 2973 class C extends B { |
| 2986 m() => --super.a; | 2974 m() => --super.a; |
| 2987 } | 2975 } |
| 2988 ''', | 2976 ''', |
| 2989 const Visit(VisitKind.VISIT_SUPER_FIELD_PREFIX, | 2977 const Visit(VisitKind.VISIT_SUPER_FIELD_PREFIX, |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3184 operator: '++')), | 3172 operator: '++')), |
| 3185 ], | 3173 ], |
| 3186 'Postfix expression': const [ | 3174 'Postfix expression': const [ |
| 3187 // Postfix expression | 3175 // Postfix expression |
| 3188 const Test( | 3176 const Test( |
| 3189 ''' | 3177 ''' |
| 3190 m(a) => a.b--; | 3178 m(a) => a.b--; |
| 3191 ''', | 3179 ''', |
| 3192 const [ | 3180 const [ |
| 3193 const Visit(VisitKind.VISIT_DYNAMIC_PROPERTY_POSTFIX, | 3181 const Visit(VisitKind.VISIT_DYNAMIC_PROPERTY_POSTFIX, |
| 3194 receiver: 'a', operator: '--', | 3182 receiver: 'a', name: 'b', operator: '--'), |
| 3195 getter: 'Selector(getter, b, arity=0)', | |
| 3196 setter: 'Selector(setter, b, arity=1)'), | |
| 3197 const Visit(VisitKind.VISIT_PARAMETER_GET, | 3183 const Visit(VisitKind.VISIT_PARAMETER_GET, |
| 3198 element: 'parameter(m#a)') | 3184 element: 'parameter(m#a)') |
| 3199 ]), | 3185 ]), |
| 3200 const Test( | 3186 const Test( |
| 3201 ''' | 3187 ''' |
| 3202 m(a) => a++; | 3188 m(a) => a++; |
| 3203 ''', | 3189 ''', |
| 3204 const Visit(VisitKind.VISIT_PARAMETER_POSTFIX, | 3190 const Visit(VisitKind.VISIT_PARAMETER_POSTFIX, |
| 3205 element: 'parameter(m#a)', operator: '++')), | 3191 element: 'parameter(m#a)', operator: '++')), |
| 3206 const Test( | 3192 const Test( |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3347 getter: 'getter(C#a)', setter: 'setter(C#a)', | 3333 getter: 'getter(C#a)', setter: 'setter(C#a)', |
| 3348 operator: '++')), | 3334 operator: '++')), |
| 3349 const Test.clazz( | 3335 const Test.clazz( |
| 3350 ''' | 3336 ''' |
| 3351 class C { | 3337 class C { |
| 3352 var a; | 3338 var a; |
| 3353 m() => a--; | 3339 m() => a--; |
| 3354 } | 3340 } |
| 3355 ''', | 3341 ''', |
| 3356 const Visit(VisitKind.VISIT_THIS_PROPERTY_POSTFIX, | 3342 const Visit(VisitKind.VISIT_THIS_PROPERTY_POSTFIX, |
| 3357 operator: '--', | 3343 name: 'a', operator: '--')), |
| 3358 getter: 'Selector(getter, a, arity=0)', | |
| 3359 setter: 'Selector(setter, a, arity=1)')), | |
| 3360 const Test.clazz( | 3344 const Test.clazz( |
| 3361 ''' | 3345 ''' |
| 3362 class C { | 3346 class C { |
| 3363 var a = 0; | 3347 var a = 0; |
| 3364 m() => this.a++; | 3348 m() => this.a++; |
| 3365 } | 3349 } |
| 3366 ''', | 3350 ''', |
| 3367 const Visit(VisitKind.VISIT_THIS_PROPERTY_POSTFIX, | 3351 const Visit(VisitKind.VISIT_THIS_PROPERTY_POSTFIX, |
| 3368 operator: '++', | 3352 name: 'a', operator: '++')), |
| 3369 getter: 'Selector(getter, a, arity=0)', | |
| 3370 setter: 'Selector(setter, a, arity=1)')), | |
| 3371 const Test.clazz( | 3353 const Test.clazz( |
| 3372 ''' | 3354 ''' |
| 3373 class B { | 3355 class B { |
| 3374 var a = 0; | 3356 var a = 0; |
| 3375 } | 3357 } |
| 3376 class C extends B { | 3358 class C extends B { |
| 3377 m() => super.a--; | 3359 m() => super.a--; |
| 3378 } | 3360 } |
| 3379 ''', | 3361 ''', |
| 3380 const Visit(VisitKind.VISIT_SUPER_FIELD_POSTFIX, | 3362 const Visit(VisitKind.VISIT_SUPER_FIELD_POSTFIX, |
| (...skipping 535 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3916 VisitKind.VISIT_PARAMETER_GET, | 3898 VisitKind.VISIT_PARAMETER_GET, |
| 3917 element: 'parameter(m#a)'), | 3899 element: 'parameter(m#a)'), |
| 3918 ]), | 3900 ]), |
| 3919 const Test( | 3901 const Test( |
| 3920 ''' | 3902 ''' |
| 3921 m(a) => ++a?.b; | 3903 m(a) => ++a?.b; |
| 3922 ''', | 3904 ''', |
| 3923 const [ | 3905 const [ |
| 3924 const Visit( | 3906 const Visit( |
| 3925 VisitKind.VISIT_IF_NOT_NULL_DYNAMIC_PROPERTY_PREFIX, | 3907 VisitKind.VISIT_IF_NOT_NULL_DYNAMIC_PROPERTY_PREFIX, |
| 3926 receiver: 'a', | 3908 receiver: 'a', name: 'b', operator: '++'), |
| 3927 getter: 'Selector(getter, b, arity=0)', | |
| 3928 setter: 'Selector(setter, b, arity=1)', | |
| 3929 operator: '++'), | |
| 3930 const Visit( | 3909 const Visit( |
| 3931 VisitKind.VISIT_PARAMETER_GET, | 3910 VisitKind.VISIT_PARAMETER_GET, |
| 3932 element: 'parameter(m#a)'), | 3911 element: 'parameter(m#a)'), |
| 3933 ]), | 3912 ]), |
| 3934 const Test( | 3913 const Test( |
| 3935 ''' | 3914 ''' |
| 3936 m(a) => a?.b--; | 3915 m(a) => a?.b--; |
| 3937 ''', | 3916 ''', |
| 3938 const [ | 3917 const [ |
| 3939 const Visit( | 3918 const Visit( |
| 3940 VisitKind.VISIT_IF_NOT_NULL_DYNAMIC_PROPERTY_POSTFIX, | 3919 VisitKind.VISIT_IF_NOT_NULL_DYNAMIC_PROPERTY_POSTFIX, |
| 3941 receiver: 'a', | 3920 receiver: 'a', name: 'b', operator: '--'), |
| 3942 getter: 'Selector(getter, b, arity=0)', | |
| 3943 setter: 'Selector(setter, b, arity=1)', | |
| 3944 operator: '--'), | |
| 3945 const Visit( | 3921 const Visit( |
| 3946 VisitKind.VISIT_PARAMETER_GET, | 3922 VisitKind.VISIT_PARAMETER_GET, |
| 3947 element: 'parameter(m#a)'), | 3923 element: 'parameter(m#a)'), |
| 3948 ]), | 3924 ]), |
| 3949 const Test( | 3925 const Test( |
| 3950 ''' | 3926 ''' |
| 3951 m(a) => a?.b *= 42; | 3927 m(a) => a?.b *= 42; |
| 3952 ''', | 3928 ''', |
| 3953 const [ | 3929 const [ |
| 3954 const Visit( | 3930 const Visit( |
| 3955 VisitKind.VISIT_IF_NOT_NULL_DYNAMIC_PROPERTY_COMPOUND, | 3931 VisitKind.VISIT_IF_NOT_NULL_DYNAMIC_PROPERTY_COMPOUND, |
| 3956 receiver: 'a', | 3932 receiver: 'a', name: 'b', operator: '*=', rhs: '42'), |
| 3957 getter: 'Selector(getter, b, arity=0)', | |
| 3958 setter: 'Selector(setter, b, arity=1)', | |
| 3959 operator: '*=', | |
| 3960 rhs: '42'), | |
| 3961 const Visit( | 3933 const Visit( |
| 3962 VisitKind.VISIT_PARAMETER_GET, | 3934 VisitKind.VISIT_PARAMETER_GET, |
| 3963 element: 'parameter(m#a)'), | 3935 element: 'parameter(m#a)'), |
| 3964 ]), | 3936 ]), |
| 3965 const Test( | 3937 const Test( |
| 3966 ''' | 3938 ''' |
| 3967 m(a, b) => a ?? b; | 3939 m(a, b) => a ?? b; |
| 3968 ''', | 3940 ''', |
| 3969 const [ | 3941 const [ |
| 3970 const Visit(VisitKind.VISIT_IF_NULL, | 3942 const Visit(VisitKind.VISIT_IF_NULL, |
| (...skipping 16 matching lines...) Expand all Loading... |
| 3987 rhs: '42')), | 3959 rhs: '42')), |
| 3988 const Test.prefix( | 3960 const Test.prefix( |
| 3989 ''' | 3961 ''' |
| 3990 var o; | 3962 var o; |
| 3991 ''', | 3963 ''', |
| 3992 'm() => p?.o;', | 3964 'm() => p?.o;', |
| 3993 const Visit(VisitKind.ERROR_INVALID_GET, | 3965 const Visit(VisitKind.ERROR_INVALID_GET, |
| 3994 error: MessageKind.PREFIX_AS_EXPRESSION)), | 3966 error: MessageKind.PREFIX_AS_EXPRESSION)), |
| 3995 ], | 3967 ], |
| 3996 }; | 3968 }; |
| OLD | NEW |