1
0
forked from aniani/vim

patch 9.1.0400: Vim9: confusing error message for unknown type

Problem:  Vim9: confusing error message for unknown type
          (Doug Kearns)
Solution: For an unknown type, display only the type name in the error
          message (Yegappan Lakshmanan)

fixes: #13153
closes: #14736

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Yegappan Lakshmanan
2024-05-09 09:12:31 +02:00
committed by Christian Brabandt
parent d5c8c0920e
commit 1b53172901
4 changed files with 26 additions and 2 deletions

View File

@@ -5002,7 +5002,7 @@ def Test_invalid_type_in_for()
enddef
defcompile
END
v9.CheckSourceFailure(lines, 'E1010: Type not recognized: x in range(10)', 1)
v9.CheckSourceFailure(lines, 'E1010: Type not recognized: x', 1)
enddef
" Test for using a line break between the variable name and the type in a for
@@ -5083,6 +5083,21 @@ def Test_null_values()
v9.CheckSourceDefAndScriptSuccess(lines)
enddef
" Test for using an unknown type in a typecast
def Test_unknown_type_in_typecast()
var lines =<< trim END
vim9script
var a = <MyType>b
END
v9.CheckSourceFailure(lines, 'E1010: Type not recognized: MyType', 2)
lines =<< trim END
vim9script
var Fn = <funcx(number, number): number>b
END
v9.CheckSourceFailure(lines, 'E1010: Type not recognized: funcx(number, number): number', 2)
enddef
" Keep this last, it messes up highlighting.
def Test_substitute_cmd()
new

View File

@@ -363,7 +363,7 @@ def Test_typealias_import()
var myNum: A.SomeType = 10
END
v9.CheckScriptFailure(lines, 'E1010: Type not recognized: A.SomeType = 10', 4)
v9.CheckScriptFailure(lines, 'E1010: Type not recognized: A.SomeType', 4)
# Use a type alias that is not exported
lines =<< trim END

View File

@@ -704,6 +704,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
400,
/**/
399,
/**/

View File

@@ -1466,7 +1466,14 @@ parse_type_user_defined(
}
if (give_error && (did_emsg == did_emsg_before))
{
char_u *p = skip_type(*arg, FALSE);
char cc = *p;
*p = NUL;
semsg(_(e_type_not_recognized_str), *arg);
*p = cc;
}
return NULL;
}