diff --git a/test/variable/global_in_initializer.wren b/test/variable/global_in_initializer.wren new file mode 100644 index 00000000..73182fe8 --- /dev/null +++ b/test/variable/global_in_initializer.wren @@ -0,0 +1,2 @@ +var a = a == null +io.write(a) // expect: true diff --git a/test/variable/local_in_initializer.wren b/test/variable/local_in_initializer.wren new file mode 100644 index 00000000..1b83963a --- /dev/null +++ b/test/variable/local_in_initializer.wren @@ -0,0 +1,5 @@ +// skip: Variables should not be in scope in their initializer. +{ + var a = a + 1 // expect error + io.write(a) +} diff --git a/test/variable/shadow_and_local.wren b/test/variable/shadow_and_local.wren new file mode 100644 index 00000000..7430c442 --- /dev/null +++ b/test/variable/shadow_and_local.wren @@ -0,0 +1,8 @@ +{ + var a = "outer" + { + io.write(a) // expect: outer + var a = "inner" + io.write(a) // expect: inner + } +} \ No newline at end of file diff --git a/test/variable/shadow_in_initializer.wren b/test/variable/shadow_in_initializer.wren new file mode 100644 index 00000000..ecf43acb --- /dev/null +++ b/test/variable/shadow_in_initializer.wren @@ -0,0 +1,11 @@ +// skip: Variables should not be in scope in their initializer. +{ + var a = "outer" + { + var a = a + " inner" + io.write(a) // expect: outer inner + } +} + +// TODO: Test referring to class name inside class for class at global scope +// and in local scope.