# HG changeset patch # User Bram Moolenaar # Date 1680383703 -7200 # Node ID 012facc8e25cc9fd09e494663c206ed3de5b6812 # Parent ce69b374b64fa97af5ff185330e6afc33fc747d9 patch 9.0.1436: cannot compare a typed variable with v:none Commit: https://github.com/vim/vim/commit/2ed57ac3675624b9d943d7753f48855e5dbebdbb Author: Bram Moolenaar Date: Sat Apr 1 22:05:38 2023 +0100 patch 9.0.1436: cannot compare a typed variable with v:none Problem: Cannot compare a typed variable with v:none. Solution: Allow for "x is v:none" and "x isnot v:none". (issue https://github.com/vim/vim/issues/12194) diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim index 0f28ba038ff712b9394a0dfee34d1938e90b017b..2965afac8fa3bd4e600c669e2c21100a1a06853f GIT binary patch literal 105165 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 zGFkec_stack, 1)) goto theend; - copy_tv(STACK_TV_VAR(iptr->isn_arg.number), STACK_TV_BOT(0)); + tv = STACK_TV_VAR(iptr->isn_arg.number); + if (tv->v_type == VAR_UNKNOWN) + { + // missing argument or default value v:none + STACK_TV_BOT(0)->v_type = VAR_SPECIAL; + STACK_TV_BOT(0)->vval.v_number = VVAL_NONE; + } + else + copy_tv(tv, STACK_TV_BOT(0)); ++ectx->ec_stack.ga_len; break; diff --git a/src/vim9instr.c b/src/vim9instr.c --- a/src/vim9instr.c +++ b/src/vim9instr.c @@ -413,7 +413,7 @@ generate_two_op(cctx_T *cctx, char_u *op */ static isntype_T get_compare_isn( - exprtype_T exprtype, + exprtype_T exprtype, typval_T *tv1, typval_T *tv2, type_T *type1, @@ -485,13 +485,17 @@ get_compare_isn( return ISN_DROP; } if (isntype == ISN_DROP - || ((exprtype != EXPR_EQUAL && exprtype != EXPR_NEQUAL - && (vartype1 == VAR_BOOL || vartype1 == VAR_SPECIAL - || vartype2 == VAR_BOOL || vartype2 == VAR_SPECIAL))) - || ((exprtype != EXPR_EQUAL && exprtype != EXPR_NEQUAL - && exprtype != EXPR_IS && exprtype != EXPR_ISNOT - && (vartype1 == VAR_BLOB || vartype2 == VAR_BLOB - || vartype1 == VAR_LIST || vartype2 == VAR_LIST)))) + || (isntype != ISN_COMPARENULL + && (((exprtype != EXPR_EQUAL + && exprtype != EXPR_NEQUAL + && (vartype1 == VAR_BOOL || vartype1 == VAR_SPECIAL + || vartype2 == VAR_BOOL || vartype2 == VAR_SPECIAL))) + || ((exprtype != EXPR_EQUAL + && exprtype != EXPR_NEQUAL + && exprtype != EXPR_IS + && exprtype != EXPR_ISNOT + && (vartype1 == VAR_BLOB || vartype2 == VAR_BLOB + || vartype1 == VAR_LIST || vartype2 == VAR_LIST)))))) { semsg(_(e_cannot_compare_str_with_str), vartype_name(vartype1), vartype_name(vartype2));