patch 8.2.4573: a nested function is compiled for debugging without context

Problem:    A nested function (closure) is compiled for debugging without
            context.
Solution:   Check if a nested function is marked for debugging before
            compiling it.  Give an error when trying to compile a closure
            without its context. (closes #9951)
diff --git a/src/vim9expr.c b/src/vim9expr.c
index 19cd55d..e2e4f8e 100644
--- a/src/vim9expr.c
+++ b/src/vim9expr.c
@@ -1007,6 +1007,14 @@
        )
 	compile_def_function(ufunc, FALSE, CT_NONE, cctx);
 
+    // if the outer function is not compiled for debugging, this one might be
+    if (cctx->ctx_compile_type != CT_DEBUG)
+    {
+	update_has_breakpoint(ufunc);
+	if (COMPILE_TYPE(ufunc) == CT_DEBUG)
+	    compile_def_function(ufunc, FALSE, CT_DEBUG, cctx);
+    }
+
     // The last entry in evalarg.eval_tofree_ga is a copy of the last line and
     // "*arg" may point into it.  Point into the original line to avoid a
     // dangling pointer.