On Tuesday, 1 April 2025 at 09:21:25 UTC, Daniel Donnelly, Jr.
wrote:
Something like this. I know I could very well hash latex
member, but what if the user redefines toString() ? So I would
like to call toString(), but DMD compiler bitches:
```
Error: @safe function def.Def.toHash cannot call @system
function def.Def.toString: def.Def.toString is declared here...
```
This works for me:
```d
@safe nothrow override string toString() const
{
return latex;
}
override nothrow @safe size_t toHash()
{
auto s = toString();
return hashOf(s);
}
```
Changes made:
* Mark `toString` as `@safe` and `nothrow`.
* Use [`hashOf`][1] instead of `getHash`.
[1]: https://dlang.org/phobos/object.html#.hashOf