patch 8.2.1183: assert_fails() checks the last error message
Problem: assert_fails() checks the last error message.
Solution: Check the first error, it is more relevant. Fix all the tests
that rely on the old behavior.
diff --git a/src/globals.h b/src/globals.h
index 3d40cc1..5e2306b 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -220,6 +220,10 @@
// expression that is skipped
EXTERN int emsg_severe INIT(= FALSE); // use message of next of several
// emsg() calls for throw
+// used by assert_fails()
+EXTERN int emsg_assert_fails_used INIT(= FALSE);
+EXTERN char_u *emsg_assert_fails_msg INIT(= NULL);
+
EXTERN int did_endif INIT(= FALSE); // just had ":endif"
#endif
EXTERN int did_emsg; // set by emsg() when the message