News for hackers. Stuff that matters.
Re:(On | No) Syntactic Support for Error Handling by packetlost on Wednesday June 04, 2025 @10:34AM (#44181135)
I was actually referring to the implementation of errors.Is, which uses string comparison internally if you use the error type returned by errors.New and a type cast or switch if you use a custom type (or the cases where the stdlib defines a custom error type).
Re:(On | No) Syntactic Support for Error Handling by kiitos on Wednesday June 04, 2025 @04:40PM (#44185268)
errors.Is definitely doesn't use string comparison internally:

https://cs.opensource.google/go/go/+/refs/tags/go1.24.3:src/...

Re:(On | No) Syntactic Support for Error Handling by masklinn on Thursday June 05, 2025 @01:08AM (#44188474)
Of course it does. What do you think an errors.New contains and how do you figure it compares by value when checking placeholder errors?

The answer is that errors.New just wraps the error message in an errorString struct, and the second line of `is` is a string comparison.

Re:(On | No) Syntactic Support for Error Handling by kiitos on Friday June 06, 2025 @12:14PM (#44202340)
Re:(On | No) Syntactic Support for Error Handling by masklinn on Saturday June 07, 2025 @05:09AM (#44208429)
Oh hell, I always forget equality doesn't go through pointers in go, you're right.

And as you demonstrate I could have tested it easily enough to confirm I was reading the code correctly...

Re:(On | No) Syntactic Support for Error Handling by Yoric on Friday June 06, 2025 @01:45AM (#44198105)
My bad, I misunderstood your previous comment.