Files
sdk/pkg/compiler/test/codegen/data/equals.dart
T
Stephen Adams 9162f0f9c9 Reapply "[dart2js] Make more use of kernel's static type"
This reverts commit f9aec1c997.

Change-Id: I731b29714797fbea38da09ed48a0dd4852af986b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/379669
Reviewed-by: Mayank Patke <fishythefish@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2024-08-15 18:58:55 +00:00

161 lines
2.6 KiB
Dart

// 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);
}