updated for version 7.3.996
Problem:    Python: Can't check types of what is returned by bindeval().
Solution:   Add vim.List, vim.Dictionary and vim.Function types. (ZyX)
diff --git a/src/testdir/test86.in b/src/testdir/test86.in
index 6a10bd7..c49eb3b 100644
--- a/src/testdir/test86.in
+++ b/src/testdir/test86.in
@@ -631,10 +631,26 @@
 cb.append('Current line: ' + repr(vim.current.line))
 for b in vim.buffers:
     if b is not cb:
-        vim.command('bwipeout! ' + b.number)
+        vim.command('bwipeout! ' + str(b.number))
 EOF
 :tabonly!
 :only!
+:"
+:" Test types
+py << EOF
+for expr, attr in (
+    ('vim.vars',                         'Dictionary'),
+    ('vim.options',                      'Options'),
+    ('vim.bindeval("{}")',               'Dictionary'),
+    ('vim.bindeval("[]")',               'List'),
+    ('vim.bindeval("function(\'tr\')")', 'Function'),
+    ('vim.current.buffer',               'Buffer'),
+    ('vim.current.range',                'Range'),
+    ('vim.current.window',               'Window'),
+    ('vim.current.tabpage',              'TabPage'),
+):
+    cb.append(expr + ':' + attr + ':' + repr(type(eval(expr)) is getattr(vim, attr)))
+EOF
 :endfun
 :"
 :call Test()