Files
kraken/tests/test_functionTemplateInference.krak

44 lines
604 B
Plaintext

import io:*
obj Traited(Traits) {}
fun funcID<T>(genFun: fun():T):T {
return genFun()
}
fun retInt():int {
return 9
}
fun doThePrint<T>(func: fun(T):void):void {
func(10)
}
fun printInt(it:int):void {
println(it)
}
fun ptrFn<T>(ptr: *T):void {
println(*ptr)
}
fun traitAware<T>(it:*T):void {
println("Does not have Traits")
}
fun traitAware<T(Traits)>(it:*T):void {
println("Does have Traits")
}
fun main():int {
var a = 8
ptrFn(&a)
println(funcID(retInt))
doThePrint(printInt)
var t:Traited
traitAware(&t)
traitAware(&a)
return 0
}