samples: add Terra samples

source: https://github.com/zdevito/terra/tree/master/tests
This commit is contained in:
Bayu Aldi Yansyah
2016-01-28 11:22:27 +07:00
parent e32a837fb2
commit 9b8b39f444
370 changed files with 11921 additions and 0 deletions

45
samples/Terra/class2.t Normal file
View File

@@ -0,0 +1,45 @@
local Interface = require("lib/golike")
local I = Interface.create {
get = {} -> int;
set = int -> {};
}
struct A {
data : int
}
terra A:get()
return self.data
end
terra A:set(a : int)
self.data = a
end
struct B {
data : int
}
terra B:get()
return self.data + 1
end
terra B:set(a : int)
self.data = self.data + a
end
terra anInterface(a : I)
a:set(3)
return a:get()
end
terra foo()
var a = A { 0 }
var b = B { 2 }
return anInterface(&a) + anInterface(&b)
end
local test = require("test")
test.eq(foo(),9)