1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
|
package main
import . "./overload_simple"
func main() {
if Foo(3) != "foo:int" {
panic("foo(int)")
}
if Foo(3.0) != "foo:double" {
panic("foo(double)")
}
if Foo("hello") != "foo:char *" {
panic("foo(char *)")
}
f := NewFoos()
b := NewBar()
if Foo(f) != "foo:Foo *" {
panic("foo(Foo *)")
}
if Foo(b) != "foo:Bar *" {
panic("foo(Bar *)")
}
v := Malloc_void(32)
if Foo(v) != "foo:void *" {
panic("foo(void *)")
}
s := NewSpam()
if s.Foo(3) != "foo:int" {
panic("Spam::foo(int)")
}
if s.Foo(3.0) != "foo:double" {
panic("Spam::foo(double)")
}
if s.Foo("hello") != "foo:char *" {
panic("Spam::foo(char *)")
}
if s.Foo(f) != "foo:Foo *" {
panic("Spam::foo(Foo *)")
}
if s.Foo(b) != "foo:Bar *" {
panic("Spam::foo(Bar *)")
}
if s.Foo(v) != "foo:void *" {
panic("Spam::foo(void *)")
}
if SpamBar(3) != "bar:int" {
panic("Spam::bar(int)")
}
if SpamBar(3.0) != "bar:double" {
panic("Spam::bar(double)")
}
if SpamBar("hello") != "bar:char *" {
panic("Spam::bar(char *)")
}
if SpamBar(f) != "bar:Foo *" {
panic("Spam::bar(Foo *)")
}
if SpamBar(b) != "bar:Bar *" {
panic("Spam::bar(Bar *)")
}
if SpamBar(v) != "bar:void *" {
panic("Spam::bar(void *)")
}
// Test constructors
s = NewSpam()
if s.GetXtype() != "none" {
panic("Spam()")
}
s = NewSpam(3)
if s.GetXtype() != "int" {
panic("Spam(int)")
}
s = NewSpam(3.4)
if s.GetXtype() != "double" {
panic("Spam(double)")
}
s = NewSpam("hello")
if s.GetXtype() != "char *" {
panic("Spam(char *)")
}
s = NewSpam(f)
if s.GetXtype() != "Foo *" {
panic("Spam(Foo *)")
}
s = NewSpam(b)
if s.GetXtype() != "Bar *" {
panic("Spam(Bar *)")
}
s = NewSpam(v)
if s.GetXtype() != "void *" {
panic("Spam(void *)")
}
Free_void(v)
a := NewClassA()
_ = a.Method1(1)
}
|