Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Avoid invalid expression and type mismatch #491

Open
wants to merge 1 commit into from

3 participants

@davebv

Invalid expression error is produced when trying to open certain tags: This avoids the error:

Error detected while processing function 57_AcceptSelection:
line 30:
E685: Internal error: get_tv_string_buf()
E15: Invalid expression: type == 'dict' ? [{ 'action': md, 'line': line, 'icr': icr }] : [md, line]
line 31:
E121: Undefined variable: actargs
E116: Invalid arguments for function call

@davebv davebv Avoid invalid expression and type mismatch
Invalid expression error is produced when trying to open certain tags
bc44c38
@davebv davebv commented on the diff
autoload/ctrlp.vim
@@ -1084,8 +1084,11 @@ fu! s:AcceptSelection(action)
let type = exttype == 'dict' ? exttype : 'list'
en
en
- let actargs = type == 'dict' ? [{ 'action': md, 'line': line, 'icr': icr }]
@davebv
davebv added a note

Invalid expression error was triggered with this line.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
@kien
Owner

Can you provide steps to reproduce the error? Does updating Vim help? It looks like the parser confuses the colons in the Dictionary with operators.

@davebv

To reproduce the error:
1. Create tags file in ctags
2. :CtrlPTags
3. Search for any tag and try to open it.
4. Error pops up.

Tested with vim 7.1

@kien
Owner

Thanks! I can't reproduce it in Vim 7.1.0 to 7.4.0, but in 7.0.0. Looks like it's an old bug with the parser when Dictionary was new. I use ternary operators often, however, so I may have to change a few other places as well.

@davebv

Thank you for the quick response! :+1:

@d11wtq

@davebv is this still an issue? Wondering if this needs merging into https://github.com/ctrlpvim/ctrlp.vim or not.

@davebv

I believe this will help when using dictionaries in Vim. I have problems with 7.1 but cannot reproduce it in newer versions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Oct 16, 2013
  1. @davebv

    Avoid invalid expression and type mismatch

    davebv authored
    Invalid expression error is produced when trying to open certain tags
This page is out of date. Refresh to see the latest.
Showing with 5 additions and 2 deletions.
  1. +5 −2 autoload/ctrlp.vim
View
7 autoload/ctrlp.vim
@@ -1084,8 +1084,11 @@ fu! s:AcceptSelection(action)
let type = exttype == 'dict' ? exttype : 'list'
en
en
- let actargs = type == 'dict' ? [{ 'action': md, 'line': line, 'icr': icr }]
@davebv
davebv added a note

Invalid expression error was triggered with this line.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
- \ : [md, line]
+ if type ==# 'dict'
+ let actargs = [{ 'action': md, 'line': line, 'icr': icr }]
+ el
+ let actargs = [md, line]
+ en
cal call(actfunc, actargs)
endf
" - CreateNewFile() {{{1
Something went wrong with that request. Please try again.