Page MenuHomePhabricator

errors: create "similarity hint" for UnknownIdentifier eagerly in constructor
ClosedPublic

Authored by martinvonz on Fri, Nov 20, 7:24 PM.

Details

Summary

No code wanted to do anything but to produce a hint from it anyway, so
we might as well just store the hint in the exception (which already
extended Hint). That way we can easily convert it to a
ConfigException when it's parsing of configuration that fails.

I was wondering if the purpose of lazily creating the string was so we
don't create it in cases where it won't get printed anyway. However, I
couldn't find any places where that could happen. If we do find such
places, we could instead revert to making it lazy but add a function
on UnknownIdentifier for creating the hint string.

I dropped the comment saying "make sure to check fileset first, as
revset can invoke fileset", which was added in 4e240d6ab898 (dispatch:
offer near-edit-distance suggestions for {file,rev}set functions,
2015-01-26). I couldn't figure out what it meant. The author of that
patch also did not remember the reason for it. Perhaps changes that
have happened since then made it so it no longer matters.

Diff Detail

Repository
rHG Mercurial
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.