init
	Test.init( ref args )
	Test.add_func( "/FunctionalTests/Genie/Variables/TypeInference/01", var1 )
	Test.add_func( "/FunctionalTests/Genie/Variables/TypeInference/02", var2 )
	Test.add_func( "/FunctionalTests/Genie/Variables/TypeInference/03", var3 )
	Test.add_func( "/FunctionalTests/Genie/Variables/TypeInference/04", var4 )
	Test.run()

// Type inference for fundamental type
def var1()
	var test = 1 + 2 + 3
	assert( test == 6 )
	return

// Type inference for fundamental type
def var2()
	var test = "abc"
	assert( test == "abc" )
	return

// Type inference for object
def var3()
	var test = new TestObject
	assert( test isa TestObject )
	return

class TestObject
	test:bool = true

// Block var
def var4()
	var 
		test1 = 1 + 2 + 3; test2 = "abc"
		test3 = new TestObject
	assert( test1 == 6 )
	assert( test2 == "abc" )
	assert( test3 isa TestObject )
	return

