patch 9.0.1179: not all errors around inheritance are tested

Problem:    Not all errors around inheritance are tested.
Solution:   Add more tests.  Fix uncovered problems.
diff --git a/src/vim9expr.c b/src/vim9expr.c
index 27f3bc4..bbf3059 100644
--- a/src/vim9expr.c
+++ b/src/vim9expr.c
@@ -268,14 +268,14 @@
     if (type == &t_super)
     {
 	if (cctx->ctx_ufunc == NULL || cctx->ctx_ufunc->uf_class == NULL)
-	    emsg(_(e_using_super_not_in_class_function));
-	else
 	{
-	    is_super = TRUE;
-	    cl = cctx->ctx_ufunc->uf_class;
-	    // Remove &t_super from the stack.
-	    --cctx->ctx_type_stack.ga_len;
+	    emsg(_(e_using_super_not_in_class_function));
+	    return FAIL;
 	}
+	is_super = TRUE;
+	cl = cctx->ctx_ufunc->uf_class;
+	// Remove &t_super from the stack.
+	--cctx->ctx_type_stack.ga_len;
     }
     else if (type->tt_type == VAR_CLASS)
     {
@@ -2261,6 +2261,7 @@
 	    // class constructor: SomeClass.new()
 	    // object member: someObject.varname, this.varname
 	    // object method: someObject.SomeMethod(), this.SomeMethod()
+	    *arg = p;
 	    if (compile_class_object_index(cctx, arg, type) == FAIL)
 		return FAIL;
 	}