patch 8.2.4137: Vim9: calling import with and without method is inconsistent

Problem:    Vim9: calling import with and without method is inconsistent.
Solution:   Set a flag that a parenthsis follows to compile_load_scriptvar().
            Add some more tests.  Improve error message.
diff --git a/src/vim9execute.c b/src/vim9execute.c
index 0037f51..5ede04c 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -2240,33 +2240,19 @@
 						   iptr->isn_arg.string, TRUE);
 			if (did_emsg)
 			    goto on_error;
-			if (di == NULL)
-			{
-			    isn_T   *next = &ectx->ec_instr[ectx->ec_iidx];
-
-			    // When compiling "script.Func()" when "script" is
-			    // an autoload import then this results in
-			    // "LOADG script#Func" because we don't know if it
-			    // is a funcref variable or a function name.  In
-			    // that case a PCALL follows, push the function
-			    // name instead.
-			    if (next->isn_type == ISN_PCALL)
-			    {
-				tv = STACK_TV_BOT(0);
-				tv->v_type = VAR_FUNC;
-				tv->v_lock = 0;
-				tv->vval.v_string =
-					     vim_strsave(iptr->isn_arg.string);
-				++ectx->ec_stack.ga_len;
-				break;
-			    }
-			}
 		    }
 
 		    if (di == NULL)
 		    {
 			SOURCING_LNUM = iptr->isn_lnum;
-			semsg(_(e_undefined_variable_char_str),
+			if (vim_strchr(iptr->isn_arg.string,
+							AUTOLOAD_CHAR) != NULL)
+			    // no check if the item exists in the script but
+			    // isn't exported, it is too complicated
+			    semsg(_(e_item_not_found_in_script_str),
+							 iptr->isn_arg.string);
+			else
+			    semsg(_(e_undefined_variable_char_str),
 					     namespace, iptr->isn_arg.string);
 			goto on_error;
 		    }