patch 8.2.0508: Vim9: func and partial types not done yet
Problem: Vim9: func and partial types not done yet
Solution: Fill in details about func declaration, drop a separate partial
declaration.
diff --git a/src/testdir/test_vim9_disassemble.vim b/src/testdir/test_vim9_disassemble.vim
index 36c098c..e71782b 100644
--- a/src/testdir/test_vim9_disassemble.vim
+++ b/src/testdir/test_vim9_disassemble.vim
@@ -362,8 +362,7 @@
def WithFunc()
let funky1: func
let funky2: func = function("len")
- let party1: partial
- let party2: partial = funcref("UserFunc")
+ let party2: func = funcref("UserFunc")
enddef
def Test_disassemble_function()
@@ -376,15 +375,12 @@
\ .. '2 PUSHS "len".*'
\ .. '3 BCALL function(argc 1).*'
\ .. '4 STORE $1.*'
- \ .. 'let party1: partial.*'
- \ .. '5 PUSHPARTIAL "\[none]".*'
- \ .. '6 STORE $2.*'
- \ .. 'let party2: partial = funcref("UserFunc").*'
- \ .. '7 PUSHS "UserFunc".*'
- \ .. '8 BCALL funcref(argc 1).*'
- \ .. '9 STORE $3.*'
- \ .. '10 PUSHNR 0.*'
- \ .. '11 RETURN.*'
+ \ .. 'let party2: func = funcref("UserFunc").*'
+ \ .. '\d PUSHS "UserFunc".*'
+ \ .. '\d BCALL funcref(argc 1).*'
+ \ .. '\d STORE $2.*'
+ \ .. '\d PUSHNR 0.*'
+ \ .. '\d RETURN.*'
\, instr)
enddef
@@ -753,10 +749,10 @@
\ ['#{a:1} is #{x:2}', 'COMPAREDICT is'],
\ ['#{a:1} isnot #{x:2}', 'COMPAREDICT isnot'],
\
- \ ['{->33} == {->44}', 'COMPAREPARTIAL =='],
- \ ['{->33} != {->44}', 'COMPAREPARTIAL !='],
- \ ['{->33} is {->44}', 'COMPAREPARTIAL is'],
- \ ['{->33} isnot {->44}', 'COMPAREPARTIAL isnot'],
+ \ ['{->33} == {->44}', 'COMPAREFUNC =='],
+ \ ['{->33} != {->44}', 'COMPAREFUNC !='],
+ \ ['{->33} is {->44}', 'COMPAREFUNC is'],
+ \ ['{->33} isnot {->44}', 'COMPAREFUNC isnot'],
\
\ ['77 == g:xx', 'COMPAREANY =='],
\ ['77 != g:xx', 'COMPAREANY !='],
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index 8f27c6d..d9c20ac 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -461,7 +461,7 @@
call CheckDefFailureMult(['let j: job', 'let chan: channel', 'let r = j == chan'], 'Cannot compare job with channel')
call CheckDefFailureMult(['let j: job', 'let x: list<any>', 'let r = j == x'], 'Cannot compare job with list')
call CheckDefFailureMult(['let j: job', 'let x: func', 'let r = j == x'], 'Cannot compare job with func')
- call CheckDefFailureMult(['let j: job', 'let x: partial', 'let r = j == x'], 'Cannot compare job with partial')
+ call CheckDefFailureMult(['let j: job', 'let x: func', 'let r = j == x'], 'Cannot compare job with func')
endfunc
" test addition, subtraction, concatenation
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 518f60c..cf12e85 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -68,8 +68,7 @@
endif
let funky1: func
let funky2: func = function('len')
- let party1: partial
- let party2: partial = funcref('Test_syntax')
+ let party2: func = funcref('Test_syntax')
" type becomes list<any>
let somelist = rand() > 0 ? [1, 2, 3] : ['a', 'b', 'c']
@@ -157,9 +156,6 @@
let thefunc: func
assert_equal(test_null_function(), thefunc)
- let thepartial: partial
- assert_equal(test_null_partial(), thepartial)
-
let thelist: list<any>
assert_equal([], thelist)
@@ -213,7 +209,7 @@
call CheckDefFailure(['let var = feedkeys("0")'], 'E1031:')
call CheckDefFailure(['let var: number = feedkeys("0")'], 'expected number but got void')
- call CheckDefFailure(['let var: dict <number>'], 'E1007:')
+ call CheckDefFailure(['let var: dict <number>'], 'E1068:')
call CheckDefFailure(['let var: dict<number'], 'E1009:')
endfunc