mirror of
				https://github.com/vim/vim.git
				synced 2025-10-31 09:57:14 -04:00 
			
		
		
		
	patch 8.2.3154: Vim9: some type checks for builtin functions fail
Problem: Vim9: some type checks for builtin functions fail. Solution: Correct the type checks. (Yegappan Lakshmanan, closes #8551, closes #8550)
This commit is contained in:
		
				
					committed by
					
						 Bram Moolenaar
						Bram Moolenaar
					
				
			
			
				
	
			
			
			
						parent
						
							7b7a118e74
						
					
				
				
					commit
					841e498c5d
				
			| @@ -431,7 +431,8 @@ arg_item_of_prev(type_T *type, argcontext_T *context) | |||||||
|     static int |     static int | ||||||
| arg_str_or_nr_or_list(type_T *type, argcontext_T *context) | arg_str_or_nr_or_list(type_T *type, argcontext_T *context) | ||||||
| { | { | ||||||
|     if (type->tt_type == VAR_STRING |     if (type->tt_type == VAR_ANY | ||||||
|  | 		|| type->tt_type == VAR_STRING | ||||||
| 		|| type->tt_type == VAR_NUMBER | 		|| type->tt_type == VAR_NUMBER | ||||||
| 		|| type->tt_type == VAR_LIST) | 		|| type->tt_type == VAR_LIST) | ||||||
| 	return OK; | 	return OK; | ||||||
|   | |||||||
| @@ -1523,6 +1523,12 @@ enddef | |||||||
| def Test_popup_atcursor() | def Test_popup_atcursor() | ||||||
|   CheckDefAndScriptFailure2(['popup_atcursor({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E450: buffer number, text or a list required') |   CheckDefAndScriptFailure2(['popup_atcursor({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E450: buffer number, text or a list required') | ||||||
|   CheckDefAndScriptFailure2(['popup_atcursor("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E715: Dictionary required') |   CheckDefAndScriptFailure2(['popup_atcursor("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E715: Dictionary required') | ||||||
|  |  | ||||||
|  |   # Pass variable of type 'any' to popup_atcursor() | ||||||
|  |   var what: any = 'Hello' | ||||||
|  |   var popupID = what->popup_atcursor({moved: 'any'}) | ||||||
|  |   assert_equal(0, popupID->popup_getoptions().tabpage) | ||||||
|  |   popupID->popup_close() | ||||||
| enddef | enddef | ||||||
|  |  | ||||||
| def Test_popup_beval() | def Test_popup_beval() | ||||||
| @@ -1530,6 +1536,14 @@ def Test_popup_beval() | |||||||
|   CheckDefAndScriptFailure2(['popup_beval("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E715: Dictionary required') |   CheckDefAndScriptFailure2(['popup_beval("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E715: Dictionary required') | ||||||
| enddef | enddef | ||||||
|  |  | ||||||
|  | def Test_popup_create() | ||||||
|  |   # Pass variable of type 'any' to popup_create() | ||||||
|  |   var what: any = 'Hello' | ||||||
|  |   var popupID = what->popup_create({}) | ||||||
|  |   assert_equal(0, popupID->popup_getoptions().tabpage) | ||||||
|  |   popupID->popup_close() | ||||||
|  | enddef | ||||||
|  |  | ||||||
| def Test_popup_dialog() | def Test_popup_dialog() | ||||||
|   CheckDefAndScriptFailure2(['popup_dialog({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E450: buffer number, text or a list required') |   CheckDefAndScriptFailure2(['popup_dialog({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E450: buffer number, text or a list required') | ||||||
|   CheckDefAndScriptFailure2(['popup_dialog("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E715: Dictionary required') |   CheckDefAndScriptFailure2(['popup_dialog("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E715: Dictionary required') | ||||||
| @@ -2358,6 +2372,7 @@ def Test_virtcol() | |||||||
|   setline(1, ['abcdefgh']) |   setline(1, ['abcdefgh']) | ||||||
|   cursor(1, 4) |   cursor(1, 4) | ||||||
|   assert_equal(4, virtcol('.')) |   assert_equal(4, virtcol('.')) | ||||||
|  |   assert_equal(4, virtcol([1, 4])) | ||||||
|   assert_equal(9, virtcol([1, '$'])) |   assert_equal(9, virtcol([1, '$'])) | ||||||
|   assert_equal(0, virtcol([10, '$'])) |   assert_equal(0, virtcol([10, '$'])) | ||||||
|   bw! |   bw! | ||||||
|   | |||||||
| @@ -755,6 +755,8 @@ static char *(features[]) = | |||||||
|  |  | ||||||
| static int included_patches[] = | static int included_patches[] = | ||||||
| {   /* Add new patch number below this line */ | {   /* Add new patch number below this line */ | ||||||
|  | /**/ | ||||||
|  |     3154, | ||||||
| /**/ | /**/ | ||||||
|     3153, |     3153, | ||||||
| /**/ | /**/ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user