mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -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,9 +431,10 @@ arg_item_of_prev(type_T *type, argcontext_T *context) | ||||
|     static int | ||||
| arg_str_or_nr_or_list(type_T *type, argcontext_T *context) | ||||
| { | ||||
|     if (type->tt_type == VAR_STRING | ||||
| 		     || type->tt_type == VAR_NUMBER | ||||
| 		     || type->tt_type == VAR_LIST) | ||||
|     if (type->tt_type == VAR_ANY | ||||
| 		|| type->tt_type == VAR_STRING | ||||
| 		|| type->tt_type == VAR_NUMBER | ||||
| 		|| type->tt_type == VAR_LIST) | ||||
| 	return OK; | ||||
|     arg_type_mismatch(&t_string, type, context->arg_idx + 1); | ||||
|     return FAIL; | ||||
|   | ||||
| @@ -1523,6 +1523,12 @@ enddef | ||||
| 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", [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 | ||||
|  | ||||
| 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') | ||||
| 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() | ||||
|   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') | ||||
| @@ -2358,6 +2372,7 @@ def Test_virtcol() | ||||
|   setline(1, ['abcdefgh']) | ||||
|   cursor(1, 4) | ||||
|   assert_equal(4, virtcol('.')) | ||||
|   assert_equal(4, virtcol([1, 4])) | ||||
|   assert_equal(9, virtcol([1, '$'])) | ||||
|   assert_equal(0, virtcol([10, '$'])) | ||||
|   bw! | ||||
|   | ||||
| @@ -755,6 +755,8 @@ static char *(features[]) = | ||||
|  | ||||
| static int included_patches[] = | ||||
| {   /* Add new patch number below this line */ | ||||
| /**/ | ||||
|     3154, | ||||
| /**/ | ||||
|     3153, | ||||
| /**/ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user