"is" operator.

This commit is contained in:
Bob Nystrom
2013-11-07 17:07:32 -08:00
parent 55e433f980
commit 166d74930f
8 changed files with 140 additions and 79 deletions
+4
View File
@@ -0,0 +1,4 @@
class Foo {}
var foo = Foo.new
io.write(foo is Foo) // expect: true
+7
View File
@@ -0,0 +1,7 @@
// Empty body.
class A {}
// Newline body.
class B {
}
+16
View File
@@ -0,0 +1,16 @@
io.write(true is Bool) // expect: true
io.write((fn 1) is Function) // expect: true
io.write(123 is Num) // expect: true
io.write(null is Null) // expect: true
io.write("s" is String) // expect: true
io.write(Num is Bool) // expect: false
io.write(null is Class) // expect: false
io.write(true is Function) // expect: false
io.write((fn 1) is Num) // expect: false
io.write("s" is Null) // expect: false
io.write(123 is String) // expect: false
// TODO(bob): Non-class on RHS.
// TODO(bob): Precedence and associativity.
// TODO(bob): Metaclasses ("Num is Class").