| // Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file | |
| // for details. All rights reserved. Use of this source code is governed by a | |
| // BSD-style license that can be found in the LICENSE file. | |
| // Primitive '==' tests compile to '===', or '==' when both sides can be null. | |
| /*member: test1a:function(value) { | |
| return value == null; | |
| }*/ | |
| test1a(int? value) { | |
| return value == null; | |
| } | |
| /*member: test1b:function(value) { | |
| return value == null; | |
| }*/ | |
| test1b(int? value) { | |
| return null == value; | |
| } | |
| /*member: test2a:function(value) { | |
| return value === 1; | |
| }*/ | |
| test2a(int? value) { | |
| return value == 1; | |
| } | |
| /*member: test2b:function(value) { | |
| return 1 === value; | |
| }*/ | |
| test2b(int? value) { | |
| return 1 == value; | |
| } | |
| /*member: test3a:function(value) { | |
| return value === "foo"; | |
| }*/ | |
| test3a(String? value) { | |
| return value == 'foo'; | |
| } | |
| /*member: test3b:function(value) { | |
| return "foo" === value; | |
| }*/ | |
| test3b(String? value) { | |
| return 'foo' == value; | |
| } | |
| /*member: test4a:function(value) { | |
| return value === 1; | |
| }*/ | |
| test4a(int value) { | |
| return value == 1; | |
| } | |
| /*member: test4b:function(value) { | |
| return 1 === value; | |
| }*/ | |
| test4b(int value) { | |
| return 1 == value; | |
| } | |
| /*member: test5:function(x, y) { | |
| return x === y; | |
| }*/ | |
| test5(int x, int y) { | |
| return x == y; | |
| } | |
| /*member: test6:function(x, y) { | |
| return x == y; | |
| }*/ | |
| test6(int? x, int? y) { | |
| return x == y; | |
| } | |
| /*member: test7a:function(value) { | |
| return value === "foo"; | |
| }*/ | |
| test7a(String value) { | |
| return value == 'foo'; | |
| } | |
| /*member: test7b:function(value) { | |
| return "foo" === value; | |
| }*/ | |
| test7b(String value) { | |
| return 'foo' == value; | |
| } | |
| /*member: test8:function(a, b) { | |
| return a === b; | |
| }*/ | |
| test8(String a, String b) { | |
| return a == b; | |
| } | |
| /*member: test9:function(a, b) { | |
| return a == b; | |
| }*/ | |
| test9(String? a, String? b) { | |
| return a == b; | |
| } | |
| /*member: main:ignore*/ | |
| @pragma('dart2js:disable-inlining') | |
| main() { | |
| test1a(-1); | |
| test1a(1); | |
| test1a(null); | |
| test1b(-1); | |
| test1b(1); | |
| test1b(null); | |
| test2a(-1); | |
| test2a(1); | |
| test2a(null); | |
| test2b(-1); | |
| test2b(1); | |
| test2b(null); | |
| test3a('x'); | |
| test3a('y'); | |
| test3a(null); | |
| test3b('x'); | |
| test3b('y'); | |
| test3b(null); | |
| test4a(-1); | |
| test4a(1); | |
| test4b(-1); | |
| test4b(1); | |
| test5(1, -1); | |
| test5(1, 1); | |
| test5(-1, 1); | |
| test5(-1, -1); | |
| test6(null, -1); | |
| test6(1, -1); | |
| test6(1, 1); | |
| test6(-1, 1); | |
| test6(-1, null); | |
| test7a('foo'); | |
| test7a('bar'); | |
| test7b('foo'); | |
| test7b('bar'); | |
| test8('foo', 'bar'); | |
| test8('foo', 'foo'); | |
| test8('bar', 'foo'); | |
| test8('bar', 'bar'); | |
| test9(null, 'foo'); | |
| test9(null, null); | |
| test9('foo', 'foo'); | |
| test9('foo', 'bar'); | |
| test9('bar', null); | |
| } |