2015-05-01 07:55:28 -07:00
|
|
|
// Value types compare by value.
|
2015-09-15 07:46:09 -07:00
|
|
|
System.print(Object.same(true, true)) // expect: true
|
|
|
|
|
System.print(Object.same(true, false)) // expect: false
|
2015-05-01 07:55:28 -07:00
|
|
|
|
2015-09-15 07:46:09 -07:00
|
|
|
System.print(Object.same(null, null)) // expect: true
|
2015-05-01 07:55:28 -07:00
|
|
|
|
2015-09-15 07:46:09 -07:00
|
|
|
System.print(Object.same(1 + 2, 2 + 1)) // expect: true
|
|
|
|
|
System.print(Object.same(1 + 2, 2 + 2)) // expect: false
|
2015-05-01 07:55:28 -07:00
|
|
|
|
2015-09-15 07:46:09 -07:00
|
|
|
System.print(Object.same(1..2, 1..2)) // expect: true
|
|
|
|
|
System.print(Object.same(1..2, 1..3)) // expect: false
|
2015-05-01 07:55:28 -07:00
|
|
|
|
2015-09-15 07:46:09 -07:00
|
|
|
System.print(Object.same("ab", "a" + "b")) // expect: true
|
|
|
|
|
System.print(Object.same("ab", "a" + "c")) // expect: false
|
2015-05-01 07:55:28 -07:00
|
|
|
|
|
|
|
|
// Different types are never the same.
|
2015-09-15 07:46:09 -07:00
|
|
|
System.print(Object.same(null, false)) // expect: false
|
|
|
|
|
System.print(Object.same(true, 2)) // expect: false
|
|
|
|
|
System.print(Object.same(1..2, 2)) // expect: false
|
|
|
|
|
System.print(Object.same("1", 1)) // expect: false
|
2015-05-01 07:55:28 -07:00
|
|
|
|
|
|
|
|
// Classes compare by identity.
|
2015-09-15 07:46:09 -07:00
|
|
|
System.print(Object.same(Bool, Num)) // expect: false
|
|
|
|
|
System.print(Object.same(Bool, Bool)) // expect: true
|
2015-05-01 07:55:28 -07:00
|
|
|
|
|
|
|
|
// Other types compare by identity.
|
2015-09-01 08:16:04 -07:00
|
|
|
class Foo {
|
|
|
|
|
construct new() {}
|
|
|
|
|
}
|
2015-05-01 07:55:28 -07:00
|
|
|
|
2015-07-10 09:18:22 -07:00
|
|
|
var foo = Foo.new()
|
2015-09-15 07:46:09 -07:00
|
|
|
System.print(Object.same(foo, foo)) // expect: true
|
|
|
|
|
System.print(Object.same(foo, Foo.new())) // expect: false
|
2015-05-01 07:55:28 -07:00
|
|
|
|
|
|
|
|
// Ignores == operators.
|
|
|
|
|
class Bar {
|
2015-09-01 08:16:04 -07:00
|
|
|
construct new() {}
|
2015-05-01 07:55:28 -07:00
|
|
|
==(other) { true }
|
|
|
|
|
}
|
|
|
|
|
|
2015-07-10 09:18:22 -07:00
|
|
|
var bar = Bar.new()
|
2015-09-15 07:46:09 -07:00
|
|
|
System.print(Object.same(bar, bar)) // expect: true
|
|
|
|
|
System.print(Object.same(bar, Bar.new())) // expect: false
|