emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master b8b1d8d: Add fast-path to ert--explain-string-equal


From: Stefan Kangas
Subject: master b8b1d8d: Add fast-path to ert--explain-string-equal
Date: Sun, 26 Sep 2021 09:31:05 -0400 (EDT)

branch: master
commit b8b1d8dee7e30415b057b7a45f288fda3601274f
Author: Stefan Kangas <stefan@marxist.se>
Commit: Stefan Kangas <stefan@marxist.se>

    Add fast-path to ert--explain-string-equal
    
    * lisp/emacs-lisp/ert.el (ert--explain-string-equal): Add fast-path to
    avoid doing extra work.
    Problem reported by Mattias EngdegÄrd <mattiase@acm.org>.
---
 lisp/emacs-lisp/ert.el | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/lisp/emacs-lisp/ert.el b/lisp/emacs-lisp/ert.el
index e72321f..72fe194 100644
--- a/lisp/emacs-lisp/ert.el
+++ b/lisp/emacs-lisp/ert.el
@@ -543,9 +543,11 @@ Returns nil if they are."
 (defun ert--explain-string-equal (a b)
   "Explainer function for `string-equal'."
   ;; Convert if they are symbols.
-  (let ((as (if (symbolp a) (symbol-name a) a))
-        (bs (if (symbolp b) (symbol-name b) b)))
-    (ert--explain-equal-rec as bs)))
+  (if (string-equal a b)
+      nil
+    (let ((as (if (symbolp a) (symbol-name a) a))
+          (bs (if (symbolp b) (symbol-name b) b)))
+      (ert--explain-equal-rec as bs))))
 (put 'string-equal 'ert-explainer 'ert--explain-string-equal)
 
 (defun ert--significant-plist-keys (plist)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]