[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#31688: 26.1.50; Byte compiler confuses two string variables
From: |
Gemini Lasswell |
Subject: |
bug#31688: 26.1.50; Byte compiler confuses two string variables |
Date: |
Sat, 02 Jun 2018 10:51:18 -0700 |
Here is a test which succeeds when interpreted and fails when
byte-compiled. The byte compiler is apparently confusing two string
variables, or optimizing away one of them. I've tried it both
with and without lexical-binding with the same results.
To reproduce, save this to bug.el:
(require 'ert)
(ert-deftest test-strings-props ()
(let* ((str1 "abcdefghij")
(obj '(a b))
(str2 "abcdefghij"))
(put-text-property 0 5 'test obj str2)
(should (equal "\"abcdefghij\"" (prin1-to-string str1)))))
Then:
C-u M-x byte-compile-file RET bug.el RET
M-x ert RET t RET
Result:
(ert-test-failed
((should
(equal "\"abcdefghij\""
(prin1-to-string str1)))
:form
(equal "\"abcdefghij\"" "#(\"abcdefghij\" 0 5 (test (a b)))")
:value nil :explanation
(arrays-of-different-length 12 32 "\"abcdefghij\"" "#(\"abcdefghij\" 0 5
(test (a b)))" first-mismatch-at 0)))
- bug#31688: 26.1.50; Byte compiler confuses two string variables,
Gemini Lasswell <=