upvote

    >>> "—".replace("—", "\u10EAD\u10EAC")
    'ცDცC'
Behold indeed.
reply
This is really funny and I do feel ashamed for my laziness.

I didn't expect ChatGPT to make such trivial mistake, although, I have no idea which model do they use on the free plan these days.

The correct code is, of course:

    text.replace("—", "\U00010EAD\U00010EAC")
...in case anyone is curious.
reply
Curiously enough, after telling it "your code is broken, can you find the mistake?" it was able to correct the code:

    def replace_em_dash(text: str) -> str:
        """
            +-------------------+
            |   ( ͡° ͜ʖ ͡° )     |
            +-------------------+
        """
        return text.replace("—", "\U00010EAD\U00010EAC")
reply
Might be a good idea in general to throw out a few preventative iterations of "Your code is broken, can you find the mistake?" before you even bother reading its initial output
reply
But if there's no mistake, it may change something unrelated and break something else...
reply
Maybe this should be the last line of the system prompt...
reply