patch 8.1.1982: more functions can be used as methods

Problem:    More functions can be used as methods.
Solution:   Make popup functions usable as a method.
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 4fbecc3..784132f 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -633,26 +633,26 @@
     {"perleval",	1, 1, 0,	  f_perleval},
 #endif
 #ifdef FEAT_TEXT_PROP
-    {"popup_atcursor",	2, 2, 0,	  f_popup_atcursor},
-    {"popup_beval",	2, 2, 0,	  f_popup_beval},
+    {"popup_atcursor",	2, 2, FEARG_1,	  f_popup_atcursor},
+    {"popup_beval",	2, 2, FEARG_1,	  f_popup_beval},
     {"popup_clear",	0, 0, 0,	  f_popup_clear},
-    {"popup_close",	1, 2, 0,	  f_popup_close},
-    {"popup_create",	2, 2, 0,	  f_popup_create},
-    {"popup_dialog",	2, 2, 0,	  f_popup_dialog},
+    {"popup_close",	1, 2, FEARG_1,	  f_popup_close},
+    {"popup_create",	2, 2, FEARG_1,	  f_popup_create},
+    {"popup_dialog",	2, 2, FEARG_1,	  f_popup_dialog},
     {"popup_filter_menu", 2, 2, 0,	  f_popup_filter_menu},
     {"popup_filter_yesno", 2, 2, 0,	  f_popup_filter_yesno},
     {"popup_findinfo",	0, 0, 0,	  f_popup_findinfo},
     {"popup_findpreview", 0, 0, 0,	  f_popup_findpreview},
-    {"popup_getoptions", 1, 1, 0,	  f_popup_getoptions},
-    {"popup_getpos",	1, 1, 0,	  f_popup_getpos},
-    {"popup_hide",	1, 1, 0,	  f_popup_hide},
+    {"popup_getoptions", 1, 1, FEARG_1,	  f_popup_getoptions},
+    {"popup_getpos",	1, 1, FEARG_1,	  f_popup_getpos},
+    {"popup_hide",	1, 1, FEARG_1,	  f_popup_hide},
     {"popup_locate",	2, 2, 0,	  f_popup_locate},
-    {"popup_menu",	2, 2, 0,	  f_popup_menu},
-    {"popup_move",	2, 2, 0,	  f_popup_move},
-    {"popup_notification", 2, 2, 0,	  f_popup_notification},
-    {"popup_setoptions", 2, 2, 0,	  f_popup_setoptions},
-    {"popup_settext",	2, 2, 0,	  f_popup_settext},
-    {"popup_show",	1, 1, 0,	  f_popup_show},
+    {"popup_menu",	2, 2, FEARG_1,	  f_popup_menu},
+    {"popup_move",	2, 2, FEARG_1,	  f_popup_move},
+    {"popup_notification", 2, 2, FEARG_1, f_popup_notification},
+    {"popup_setoptions", 2, 2, FEARG_1,	  f_popup_setoptions},
+    {"popup_settext",	2, 2, FEARG_1,	  f_popup_settext},
+    {"popup_show",	1, 1, FEARG_1,	  f_popup_show},
 #endif
 #ifdef FEAT_FLOAT
     {"pow",		2, 2, FEARG_1,	  f_pow},
diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim
index 36cf306..03cada3 100644
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -145,7 +145,7 @@
 	\ scrollbar: 0,
 	\ visible: 1}
   let winid = popup_create('hello border', #{line: 2, col: 3, border: []})",
-  call assert_equal(with_border_or_padding, popup_getpos(winid))
+  call assert_equal(with_border_or_padding, winid->popup_getpos())
   let options = popup_getoptions(winid)
   call assert_equal([], options.border)
   call assert_false(has_key(options, "padding"))
@@ -337,7 +337,7 @@
   call assert_equal(3, popup_getoptions(winid).firstline)
   call popup_setoptions(winid, #{firstline: 1})
   call assert_equal(1, popup_getoptions(winid).firstline)
-  call popup_close(winid)
+  eval winid->popup_close()
 
   let winid = popup_create(['xxx']->repeat(50), #{
 	\ maxheight: 3,
@@ -878,7 +878,7 @@
   " buffer is still listed but hidden
   call assert_match(winbufnr(winid) .. 'u h.*\[Popup\]', execute('ls u'))
 
-  call popup_show(winid)
+  eval winid->popup_show()
   redraw
   let line = join(map(range(1, 5), 'screenstring(1, v:val)'), '')
   call assert_equal('world', line)
@@ -894,7 +894,7 @@
   call assert_fails('call popup_hide(win_getid())', 'E993:')
 
   " no error non-existing window
-  call popup_hide(1234234)
+  eval 1234234->popup_hide()
   call popup_show(41234234)
 
   bwipe!
@@ -920,7 +920,7 @@
   let line = join(map(range(1, 6), 'screenstring(2, v:val)'), '')
   call assert_equal('~world', line)
 
-  call popup_move(winid, #{line: 1})
+  eval winid->popup_move(#{line: 1})
   redraw
   let line = join(map(range(1, 6), 'screenstring(1, v:val)'), '')
   call assert_equal('hworld', line)
@@ -1076,7 +1076,7 @@
 
   call cursor(3, 4)
   redraw
-  let winid = popup_atcursor('vim', {})
+  let winid = 'vim'->popup_atcursor({})
   redraw
   let line = join(map(range(1, 17), 'screenstring(2, v:val)'), '')
   call assert_equal('xxxvimxxxxxxxxxxx', line)
@@ -1144,7 +1144,7 @@
 	set balloonexpr=BalloonExpr()
 	set balloondelay=100
 	func BalloonExpr()
-	  let s:winid = popup_beval([v:beval_text], {})
+	  let s:winid = [v:beval_text]->popup_beval({})
 	  return ''
 	endfunc
 	func Hover()
@@ -1199,7 +1199,7 @@
     return 0
   endfunc
 
-  let winid = popup_create('something', #{filter: 'MyPopupFilter'})
+  let winid = 'something'->popup_create(#{filter: 'MyPopupFilter'})
   redraw
 
   " e is consumed by the filter
@@ -1787,7 +1787,7 @@
   let lines =<< trim END
     let opts = #{wrap: 0}
     let p = popup_create('test', opts)
-    call popup_settext(p, 'this is a text')
+    eval p->popup_settext('this is a text')
   END
 
   call writefile(lines, 'XtestPopupSetText')
@@ -1840,7 +1840,7 @@
     let s:cb_winid = a:id
     let s:cb_res = a:res
   endfunc
-  let winid = popup_dialog('make a choice', #{hidden: 1,
+  let winid = 'make a choice'->popup_dialog(#{hidden: 1,
 	  \ filter: 'popup_filter_yesno',
 	  \ callback: 'QuitCallback',
 	  \ })
@@ -2020,7 +2020,7 @@
 	\ maxheight: 10,
 	\ })
   for top in range(1, 20)
-    call popup_setoptions(winid, #{firstline: top})
+    eval winid->popup_setoptions(#{firstline: top})
     redraw
     call assert_equal(19, popup_getpos(winid).width)
   endfor
@@ -2100,8 +2100,9 @@
     call setline(1, range(1, 20))
     hi ScrollThumb ctermbg=blue
     hi ScrollBar ctermbg=red
-    call popup_menu(['one', 'two', 'three', 'four', 'five',
-	  \ 'six', 'seven', 'eight', 'nine'], #{
+    eval ['one', 'two', 'three', 'four', 'five',
+	  \ 'six', 'seven', 'eight', 'nine']
+	  \ ->popup_menu(#{
 	  \ minwidth: 8,
 	  \ maxheight: 3,
 	  \ })
@@ -2435,7 +2436,7 @@
       call setline(1, 'text text text text text text text ')
       func ChangeColor()
 	let id = popup_findinfo()
-	call popup_setoptions(id, #{highlight: 'InfoPopup'})
+	eval id->popup_setoptions(#{highlight: 'InfoPopup'})
       endfunc
   END
   return lines
@@ -2522,7 +2523,7 @@
 func Test_popupwin_recycle_bnr()
   let bufnr = popup_notification('nothing wrong', {})->winbufnr()
   call popup_clear()
-  let winid = popup_notification('nothing wrong', {})
+  let winid = 'nothing wrong'->popup_notification({})
   call assert_equal(bufnr, winbufnr(winid))
   call popup_clear()
 endfunc
diff --git a/src/version.c b/src/version.c
index fb68068..515564d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -758,6 +758,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1982,
+/**/
     1981,
 /**/
     1980,