patch 8.2.4395: some code lines not covered by tests

Problem:    Some code lines not covered by tests.
Solution:   Add a few more test cases.  Fix getting more than one error for
            invalid assignment.
diff --git a/src/testdir/test_vim9_cmd.vim b/src/testdir/test_vim9_cmd.vim
index f80d5a2..10be691 100644
--- a/src/testdir/test_vim9_cmd.vim
+++ b/src/testdir/test_vim9_cmd.vim
@@ -1355,6 +1355,13 @@
   v9.CheckDefFailure(lines, 'E1146:', 1)
 
   lines =<< trim END
+    if 0
+      d.key = 'asdf'
+    endif
+  END
+  v9.CheckDefSuccess(lines)
+
+  lines =<< trim END
     d['key'] = 'asdf'
   END
   v9.CheckDefFailure(lines, 'E1146:', 1)
@@ -1621,6 +1628,11 @@
   s/text/\=['aaa', 'bbb', 'ccc']/
   assert_equal(['some aaa', 'bbb', 'ccc', ' here'], getline(1, '$'))
   bwipe!
+
+  # inside "if 0" substitute is ignored
+  if 0
+    s/a/\=nothing/ and | some more
+  endif
 enddef
 
 def Test_redir_to_var()
@@ -1664,6 +1676,12 @@
   v9.CheckDefFailure(lines, 'E1089:')
 
   lines =<< trim END
+    var text: string
+    redir => text
+  END
+  v9.CheckDefFailure(lines, 'E1185:')
+
+  lines =<< trim END
     var ls = 'asdf'
     redir => ls[1]
     redir END