build: separate compiler and libs
This commit is contained in:
109
compiler/cl/_testgo/equal/in.go
Normal file
109
compiler/cl/_testgo/equal/in.go
Normal file
@@ -0,0 +1,109 @@
|
||||
package main
|
||||
|
||||
func test() {}
|
||||
|
||||
// func
|
||||
func init() {
|
||||
fn1 := test
|
||||
fn2 := func(i, j int) int { return i + j }
|
||||
var n int
|
||||
fn3 := func() { println(n) }
|
||||
var fn4 func() int
|
||||
assert(test != nil)
|
||||
assert(nil != test)
|
||||
assert(fn1 != nil)
|
||||
assert(nil != fn1)
|
||||
assert(fn2 != nil)
|
||||
assert(nil != fn2)
|
||||
assert(fn3 != nil)
|
||||
assert(nil != fn3)
|
||||
assert(fn4 == nil)
|
||||
assert(nil == fn4)
|
||||
}
|
||||
|
||||
// array
|
||||
func init() {
|
||||
assert([0]float64{} == [0]float64{})
|
||||
ar1 := [...]int{1, 2, 3}
|
||||
ar2 := [...]int{1, 2, 3}
|
||||
assert(ar1 == ar2)
|
||||
ar2[1] = 1
|
||||
assert(ar1 != ar2)
|
||||
}
|
||||
|
||||
type T struct {
|
||||
X int
|
||||
Y int
|
||||
Z string
|
||||
V any
|
||||
}
|
||||
|
||||
type N struct{}
|
||||
|
||||
// struct
|
||||
func init() {
|
||||
var n1, n2 N
|
||||
var t1, t2 T
|
||||
x := T{10, 20, "hello", 1}
|
||||
y := T{10, 20, "hello", 1}
|
||||
z := T{10, 20, "hello", "ok"}
|
||||
assert(n1 == n2)
|
||||
assert(t1 == t2)
|
||||
assert(x == y)
|
||||
assert(x != z)
|
||||
assert(y != z)
|
||||
}
|
||||
|
||||
// slice
|
||||
func init() {
|
||||
var a []int
|
||||
var b = []int{1, 2, 3}
|
||||
c := make([]int, 2)
|
||||
d := make([]int, 0, 2)
|
||||
assert(a == nil)
|
||||
assert(b != nil)
|
||||
assert(c != nil)
|
||||
assert(d != nil)
|
||||
b = nil
|
||||
assert(b == nil)
|
||||
}
|
||||
|
||||
// iface
|
||||
func init() {
|
||||
var a any = 100
|
||||
var b any = struct{}{}
|
||||
var c any = T{10, 20, "hello", 1}
|
||||
x := T{10, 20, "hello", 1}
|
||||
y := T{10, 20, "hello", "ok"}
|
||||
assert(a == 100)
|
||||
assert(b == struct{}{})
|
||||
assert(b != N{})
|
||||
assert(c == x)
|
||||
assert(c != y)
|
||||
}
|
||||
|
||||
// chan
|
||||
func init() {
|
||||
a := make(chan int)
|
||||
b := make(chan int)
|
||||
assert(a == a)
|
||||
assert(a != b)
|
||||
assert(a != nil)
|
||||
}
|
||||
|
||||
// map
|
||||
func init() {
|
||||
m1 := make(map[int]string)
|
||||
var m2 map[int]string
|
||||
assert(m1 != nil)
|
||||
assert(m2 == nil)
|
||||
}
|
||||
|
||||
func assert(cond bool) {
|
||||
if !cond {
|
||||
panic("failed")
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
}
|
||||
Reference in New Issue
Block a user