Tests for :let. vim: set ft=vim ts=8 : STARTTEST :so small.vim :set runtimepath+=./sautest :" Test to not autoload when assigning. It causes internal error. :try : let Test104#numvar = function('tr') : $put ='OK: ' . string(Test104#numvar) :catch : $put ='FAIL: ' . v:exception :endtry :let a = 1 :let b = 2 :for letargs in ['a b', '{0 == 1 ? "a" : "b"}', '{0 == 1 ? "a" : "b"} a', 'a {0 == 1 ? "a" : "b"}'] : try : redir => messages : execute 'let' letargs : redir END : $put ='OK:' : $put =split(substitute(messages, '\n', '\0 ', 'g'), '\n') : catch : $put ='FAIL: ' . v:exception : redir END : endtry :endfor :/^Results/,$wq! test.out ENDTEST Results of test104: