Fix create function

The code
```
type Person struct {
}

func tc(arg *Person) bool {
	return true
}

var c complex64 = complex(2, -2)

func main() {
	f := func(n int) int {
		return 7 + n + /*begin*/Foo/*end*/([]string{"1", "2", "3"}, tc, tc(nil), func() int { return 0 }(), 50/5, 2*.5*2, .5*2 == 1, 'w', 1.0 << 2, c, complex(2, -2))
	}
	println(f(5))
}
```
generates
```
func Foo(arg0 []string, arg1 func(*Person) bool, arg2 bool, arg3 int, arg4 int, arg5 int, arg6 bool, arg7 string, arg8 int, arg9 complex64, arg10 identifier) {
	//TODO: implements Foo
}
```
in old version, where arg5, arg7, arg10 types are wrong.
The new version generates 
```
func Foo(arg0 []string, arg1 func(*Person) bool, arg2 bool, arg3 int, arg4 int, arg5 float64, arg6 bool, arg7 rune, arg8 int, arg9 complex64, arg10 complex128) {
	//TODO: implements Foo<caret>
}
```
which is seemed correct.