patch 8.2.1067: expression "!expr->func()" does not work

Problem:    Expression "!expr->func()" does not work.
Solution:   Apply plus and minus earlier. (closes #6348)
diff --git a/src/testdir/test_expr.vim b/src/testdir/test_expr.vim
index ec73aea..c5dd1f3 100644
--- a/src/testdir/test_expr.vim
+++ b/src/testdir/test_expr.vim
@@ -110,6 +110,13 @@
   call assert_fails('echo "\<C-">')
 endfunc
 
+func Test_method_with_prefix()
+  call assert_equal(1, !range(5)->empty())
+  call assert_equal([0, 1, 2], --3->range())
+  call assert_equal(0, !-3)
+  call assert_equal(1, !+-+0)
+endfunc
+
 func Test_option_value()
   " boolean
   set bri
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index 33a282b..0976d9c 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -1081,6 +1081,8 @@
   assert_equal(6, --6)
   assert_equal(6, -+-6)
   assert_equal(-6, ---6)
+  assert_equal(false, !-3)
+  assert_equal(true, !+-+0)
 enddef
 
 def Test_expr7_negate()
@@ -1102,6 +1104,8 @@
 def Test_expr7_call()
   assert_equal('yes', 'yes'->Echo())
   assert_equal('yes', 'yes'->s:EchoArg())
+  assert_equal(1, !range(5)->empty())
+  assert_equal([0, 1, 2], --3->range())
 
   call CheckDefFailure(["let x = 'yes'->Echo"], 'E107:')
 enddef