patch 8.2.3695: confusing error for missing key

Problem:    Confusing error for missing key.
Solution:   Use the actualy key for the error. (closes #9241)
diff --git a/src/eval.c b/src/eval.c
index 0e8b6a6..bebe2f0 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -4287,12 +4287,18 @@
 			return FAIL;
 		}
 
-		item = dict_find(rettv->vval.v_dict, key, (int)keylen);
+		item = dict_find(rettv->vval.v_dict, key, keylen);
 
-		if (item == NULL && verbose)
-		    semsg(_(e_dictkey), key);
 		if (item == NULL)
+		{
+		    if (verbose)
+		    {
+			if (keylen > 0)
+			    key[keylen] = NUL;
+			semsg(_(e_dictkey), key);
+		    }
 		    return FAIL;
+		}
 
 		copy_tv(&item->di_tv, &tmp);
 		clear_tv(rettv);
diff --git a/src/testdir/test_listdict.vim b/src/testdir/test_listdict.vim
index 2eda9a8..0b024a0 100644
--- a/src/testdir/test_listdict.vim
+++ b/src/testdir/test_listdict.vim
@@ -455,6 +455,25 @@
   call CheckLegacyAndVim9Failure(lines, 'E716:')
 
   let lines =<< trim END
+      let d = {'a-b': 55}
+      echo d.a-b
+  END
+  call CheckScriptFailure(lines, 'E716: Key not present in Dictionary: "a"')
+
+  let lines =<< trim END
+      vim9script
+      var d = {'a-b': 55}
+      echo d.a-b
+  END
+  call CheckScriptFailure(lines, 'E716: Key not present in Dictionary: "a"')
+
+  let lines =<< trim END
+      var d = {'a-b': 55}
+      echo d.a-b
+  END
+  call CheckDefFailure(lines, 'E1004: White space required before and after ''-''')
+
+  let lines =<< trim END
       let d = {1: 'a', 3: 'c'}
       call remove(d, [])
   END
diff --git a/src/version.c b/src/version.c
index 623afb2..e4c8589 100644
--- a/src/version.c
+++ b/src/version.c
@@ -758,6 +758,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3695,
+/**/
     3694,
 /**/
     3693,