Files
wren/test/core/object/same.wren
T
Bob Nystrom e19ff59cce feat: replace new keyword with this constructor syntax and ClassName.new() calls across core library and docs
Replace all uses of the `new` reserved word with explicit `this new()` constructor definitions and `ClassName.new()` instantiation calls in builtin/core.wren. Update all documentation files (classes.markdown, fiber.markdown, fn.markdown, sequence.markdown, error-handling.markdown, expressions.markdown, fibers.markdown, functions.markdown) to reflect the new constructor syntax, removing `new` keyword examples and replacing them with `ClassName.new()` patterns and `this new()` definitions.
2015-07-10 16:18:22 +00:00

41 lines
1.2 KiB
Plaintext

// Value types compare by value.
IO.print(Object.same(true, true)) // expect: true
IO.print(Object.same(true, false)) // expect: false
IO.print(Object.same(null, null)) // expect: true
IO.print(Object.same(1 + 2, 2 + 1)) // expect: true
IO.print(Object.same(1 + 2, 2 + 2)) // expect: false
IO.print(Object.same(1..2, 1..2)) // expect: true
IO.print(Object.same(1..2, 1..3)) // expect: false
IO.print(Object.same("ab", "a" + "b")) // expect: true
IO.print(Object.same("ab", "a" + "c")) // expect: false
// Different types are never the same.
IO.print(Object.same(null, false)) // expect: false
IO.print(Object.same(true, 2)) // expect: false
IO.print(Object.same(1..2, 2)) // expect: false
IO.print(Object.same("1", 1)) // expect: false
// Classes compare by identity.
IO.print(Object.same(Bool, Num)) // expect: false
IO.print(Object.same(Bool, Bool)) // expect: true
// Other types compare by identity.
class Foo {}
var foo = Foo.new()
IO.print(Object.same(foo, foo)) // expect: true
IO.print(Object.same(foo, Foo.new())) // expect: false
// Ignores == operators.
class Bar {
==(other) { true }
}
var bar = Bar.new()
IO.print(Object.same(bar, bar)) // expect: true
IO.print(Object.same(bar, Bar.new())) // expect: false