#go run main.go

#setenv script_keepwork true
#godebugtester run -work -srclines=false main.go
godebugtester run main.go

contains stdout "recv: false=(!true)"
contains stdout "recv: true=(1 < 2)"
contains stdout "recv: (_)(nil)"
contains stdout "recv: 7, nil"
contains stdout "recv: 1, 2"
contains stdout "recv: 5"
contains stdout "recv: 6"
contains stdout "recv: (_)(501)"
contains stdout "recv: (false, false)=(int=(501.(_)))"
contains stdout "recv: (501, true)=(int=(501.(_)))"
contains stdout "recv: 506=(501=(501.(_)) + 5)"
contains stdout "recv: 3=(m2[1]) = 3"
contains stdout "recv: (3, true)=(m2[1])"
#contains stdout "recv: 9=(_.September)"
contains stdout "recv: 9"
contains stdout "3=(a[2=(1 + 1)])"
contains stdout "2=(fa()[1])"

#contains stdout "??"
fail contains stdout "TODO:"

-- main.go --
package main
import "time"
func main() {
	main01()
}
func main01() {
	
	_=!true
	_=1<2
	
	_=(func(*int))(nil)
	_=(map[int]bool)(nil)
	
	f:=func(int,*int){}
	f(7,nil)
	
	a,b:=1,2
	a=5
	b=6
	_,_=a,b
	
	d:=(any)(501)
	_,_=d.(bool)
	_,_=d.(int)
	_=d.(int)+5
	
	// maps
	m2:=map[int]int{}
	m2[1]=3
	if v,ok:=m2[1];ok{
		_,_=v,ok
	}
	
	{
		_=&time.Time{}
		_=time.September
	}
	{
		fa:=func() []int{return []int{1,2,3}}
		a:=[]int{1,2,3}
		_=a[1+1]
		_=fa()[1]	
	}
	{
		// TODO: show string binary expr result?
		//a:="a"
		//for i:=0; i<20;i++{a+=a}
		//_=a+"b"
	}
	
	// TODO: _=func()[]int{return []{4,5}}[2]
}
