patch 8.2.1011: Vim9: some code not tested

Problem:    Vim9: some code not tested.
Solution:   Add a few more test cases.  Reorder checks for clearer error.
            Remove unreachable code.
diff --git a/src/evalvars.c b/src/evalvars.c
index 0a0bbc4..fa52e96 100644
--- a/src/evalvars.c
+++ b/src/evalvars.c
@@ -2886,10 +2886,6 @@
 		return;
 	    }
 
-	    if (var_check_ro(di->di_flags, name, FALSE)
-			       || var_check_lock(di->di_tv.v_lock, name, FALSE))
-		return;
-
 	    if (is_script_local
 			     && current_sctx.sc_version == SCRIPT_VERSION_VIM9)
 	    {
@@ -2900,8 +2896,13 @@
 		}
 
 		// check the type
-		check_script_var_type(&di->di_tv, tv, name);
+		if (check_script_var_type(&di->di_tv, tv, name) == FAIL)
+		    return;
 	    }
+
+	    if (var_check_ro(di->di_flags, name, FALSE)
+			       || var_check_lock(di->di_tv.v_lock, name, FALSE))
+		return;
 	}
 	else
 	    // can only redefine once