"{{{ youcomplete
Execute (func()):
  let completed_item = {'menu': 'func()', 'kind': 'f'}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['()'], result

Execute (func(a)):
  let completed_item = {'menu': 'func(a)', 'kind': 'f'}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a)'], result

Execute (func(a int)):
  let completed_item = {'menu': 'func(a int)', 'kind': 'f'}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a)'], result

Execute (func(a net.Conn)):
  let completed_item = {'menu': 'func(a net.Conn)', 'kind': 'f'}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a)'], result

Execute (func(a net.Conn, b, c int)):
  let completed_item = {'menu': 'func(a net.Conn, b, c int)', 'kind': 'f'}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result
  
Execute (func(a net.Conn, b, c int) error):
  let completed_item = {'menu': 'func(a net.Conn, b, c int) error', 'kind': 'f'}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func(a net.Conn, b, c int) (int, error)):
  let completed_item = {'menu': 'func(a net.Conn, b, c int) (int, error)', 'kind': 'f'}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func(a net.Conn, b, c int) (a int, err error)):
  let completed_item = {'menu': 'func(a net.Conn, b, c int) (a int, err error)', 'kind': 'f'}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func(a net.Conn, b func()int, c int) (a int, err error)):
  let completed_item = {'menu': 'func(a net.Conn, b func()int, c int) (a int, err error)', 'kind': 'f'}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func(a net.Conn, b func() int, c int) (a int, err error)):
  let completed_item = {'menu': 'func(a net.Conn, b func() int, c int) (a int, err error)', 'kind': 'f'}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func(a net.Conn, b func(a int) int, c int) (a int, err error)):
  let completed_item = {'menu': 'func(a net.Conn, b func(a int) int, c int) (a int, err error)', 'kind': 'f'}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func(a net.Conn, b func(a int), c int) (a int, err error)):
  let completed_item = {'menu': 'func(a net.Conn, b func(a int), c int) (a int, err error)', 'kind': 'f'}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func(a net.Conn, b func(a func(a int) float)   string, c int) (a int, err error)):
  let completed_item = {'menu': 'func(a net.Conn, b func(a func(a int) float)  string, c int) (a int, err error)', 'kind': 'f'}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result
"}}}

"{{{ completor
Execute (func()):
  let completed_item = {'menu': 'func()'}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['()'], result

Execute (func(a)):
  let completed_item = {'menu': 'func(a)'}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a)'], result

Execute (func(a int)):
  let completed_item = {'menu': 'func(a int)'}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a)'], result

Execute (func(a net.Conn)):
  let completed_item = {'menu': 'func(a net.Conn)'}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a)'], result

Execute (func(a net.Conn, b, c int)):
  let completed_item = {'menu': 'func(a net.Conn, b, c int)'}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result
  
Execute (func(a net.Conn, b, c int) error):
  let completed_item = {'menu': 'func(a net.Conn, b, c int) error'}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func(a net.Conn, b, c int) (int, error)):
  let completed_item = {'menu': 'func(a net.Conn, b, c int) (int, error)'}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func(a net.Conn, b, c int) (a int, err error)):
  let completed_item = {'menu': 'func(a net.Conn, b, c int) (a int, err error)'}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func(a net.Conn, b func()int, c int) (a int, err error)):
  let completed_item = {'menu': 'func(a net.Conn, b func()int, c int) (a int, err error)'}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func(a net.Conn, b func() int, c int) (a int, err error)):
  let completed_item = {'menu': 'func(a net.Conn, b func() int, c int) (a int, err error)'}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func(a net.Conn, b func(a int) int, c int) (a int, err error)):
  let completed_item = {'menu': 'func(a net.Conn, b func(a int) int, c int) (a int, err error)'}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func(a net.Conn, b func(a int), c int) (a int, err error)):
  let completed_item = {'menu': 'func(a net.Conn, b func(a int), c int) (a int, err error)'}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func(a net.Conn, b func(a func(a int) float)   string, c int) (a int, err error)):
  let completed_item = {'menu': 'func(a net.Conn, b func(a func(a int) float)  string, c int) (a int, err error)'}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result
"}}}

"{{{ neocomplete
Execute (func Scan()):
  let completed_item = {'info': 'func Scan()', 'word': 'Scan('}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['()'], result

Execute (func Scan(a)):
  let completed_item = {'info': 'func Scan(a)', 'word': 'Scan('}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a)'], result

Execute (func Scan(a int)):
  let completed_item = {'info': 'func Scan(a int)', 'word': 'Scan('}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a)'], result

Execute (func Scan(a net.Conn)):
  let completed_item = {'info': 'func Scan(a net.Conn)', 'word': 'Scan('}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a)'], result

Execute (func Scan(a net.Conn, b, c int)):
  let completed_item = {'info': 'func Scan(a net.Conn, b, c int)', 'word': 'Scan('}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result
  
Execute (func Scan(a net.Conn, b, c int) error):
  let completed_item = {'info': 'func Scan(a net.Conn, b, c int) error', 'word': 'Scan('}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func Scan(a net.Conn, b, c int) (int, error)):
  let completed_item = {'info': 'func Scan(a net.Conn, b, c int) (int, error)', 'word': 'Scan('}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func Scan(a net.Conn, b, c int) (a int, err error)):
  let completed_item = {'info': 'func Scan(a net.Conn, b, c int) (a int, err error)', 'word': 'Scan('}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func(a net.Conn, b func()int, c int) (a int, err error)):
  let completed_item = {'info': 'func fun(a net.Conn, b func()int, c int) (a int, err error)', 'word': 'fun('}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func(a net.Conn, b func() int, c int) (a int, err error)):
  let completed_item = {'info': 'func fun(a net.Conn, b func() int, c int) (a int, err error)', 'word': 'func('}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func(a net.Conn, b func(a int) int, c int) (a int, err error)):
  let completed_item = {'info': 'func fun(a net.Conn, b func(a int) int, c int) (a int, err error)', 'word': 'func('}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func(a net.Conn, b func(a int), c int) (a int, err error)):
  let completed_item = {'info': 'func fun(a net.Conn, b func(a int), c int) (a int, err error)', 'word': 'func('}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func(a net.Conn, b func(a func(a int) float)   string, c int) (a int, err error)):
  let completed_item = {'info': 'func fun(a net.Conn, b func(a func(a int) float)  string, c int) (a int, err error)', 'word': 'func('}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result
"}}}

"{{{ deoplete
Execute (func()):
  let completed_item = {'info': 'func()', 'word': 'Scan('}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['()'], result

Execute (func(a)):
  let completed_item = {'info': 'func(a)', 'word': 'Scan('}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a)'], result

Execute (func(a int)):
  let completed_item = {'info': 'func(a int)', 'word': 'Scan('}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a)'], result

Execute (func(a net.Conn)):
  let completed_item = {'info': 'func(a net.Conn)', 'word': 'Scan('}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a)'], result

Execute (func(a net.Conn, b, c int)):
  let completed_item = {'info': 'func(a net.Conn, b, c int)', 'word': 'Scan('}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result
  
Execute (func(a net.Conn, b, c int) error):
  let completed_item = {'info': 'func(a net.Conn, b, c int) error', 'word': 'Scan('}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func(a net.Conn, b, c int) (int, error)):
  let completed_item = {'info': 'func(a net.Conn, b, c int) (int, error)', 'word': 'Scan('}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func(a net.Conn, b, c int) (a int, err error)):
  let completed_item = {'info': 'func(a net.Conn, b, c int) (a int, err error)', 'word': 'Scan('}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func(a net.Conn, b func()int, c int) (a int, err error)):
  let completed_item = {'info': 'func fun(a net.Conn, b func()int, c int) (a int, err error)', 'word': 'fun('}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func(a net.Conn, b func() int, c int) (a int, err error)):
  let completed_item = {'info': 'func fun(a net.Conn, b func() int, c int) (a int, err error)', 'word': 'func('}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func(a net.Conn, b func(a int) int, c int) (a int, err error)):
  let completed_item = {'info': 'func fun(a net.Conn, b func(a int) int, c int) (a int, err error)', 'word': 'func('}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func(a net.Conn, b func(a int), c int) (a int, err error)):
  let completed_item = {'info': 'func fun(a net.Conn, b func(a int), c int) (a int, err error)', 'word': 'func('}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result

Execute (func(a net.Conn, b func(a func(a int) float)   string, c int) (a int, err error)):
  let completed_item = {'info': 'func fun(a net.Conn, b func(a func(a int) float)  string, c int) (a int, err error)', 'word': 'func('}
  let result = cm_parser#go#parameters(completed_item)
  AssertEqual ['(a, b, c)'], result
"}}}

