patch 9.0.1890: Vim9: lookup code for class/object repaeated

Problem:  Vim9: lookup code for class/object repaeated
Solution: Refactor and make use of lookup functions

closes: #13067

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
diff --git a/src/vim9instr.c b/src/vim9instr.c
index 68fad25..dcbe897 100644
--- a/src/vim9instr.c
+++ b/src/vim9instr.c
@@ -1837,17 +1837,12 @@
 		if (class_constructor && expected->tt_type == VAR_ANY)
 		{
 		    class_T *clp = mtype->tt_class;
-		    char_u *aname = ((char_u **)ufunc->uf_args.ga_data)[i];
-		    for (int om = 0; om < clp->class_obj_member_count; ++om)
-		    {
-			if (STRCMP(aname, clp->class_obj_members[om].ocm_name)
-									== 0)
-			{
-			    expected = clp->class_obj_members[om].ocm_type;
-			    break;
-			}
-		    }
-
+		    char_u  *aname = ((char_u **)ufunc->uf_args.ga_data)[i];
+		    int	    m_idx;
+		    ocmember_T *m = object_member_lookup(clp, aname, 0,
+									&m_idx);
+		    if (m != NULL)
+			expected = m->ocm_type;
 		}
 	    }
 	    else if (ufunc->uf_va_type == NULL