chapel
chapel copied to clipboard
How could we/should we deprecate symbols that are made available via public uses?
When deprecating some symbols for the Sort module, I got deprecation messages for public uses of them in the SortedSet and SortedMap modules.
It's easy enough to remove the deprecated symbol from the public use
statement, but then clients of those modules that weren't also using the Sort module suddenly will have those references turn into unresolved symbols. If I put a deprecated copy of the symbol in SortedSet/SortedMap, then users with uses of both modules will now encounter errors about the symbol being defined in multiple places.
It seems like we should have a way to deprecate the symbol without breaking users' code in one situation or the other.