jackfirth / jackfirth/resyntax
Deprecated aliases
Nobody has claimed this yet.
- Dominant language
- Racket
- Stars
- 70
- Forks
- 11
- PR merge metrics
- No merged PRs in 30d
Description
When a library wants to rename an identifier, it has to keep the old name around to avoid breaking backward compatibility. This is usually achieved with rename-out. It would be nice for library authors to be able to specify that a renamed identifier is a deprecated alias of another identifier. If this was done in such a way that it exposed static information for Resyntax to use, then Resyntax could automatically migrate uses of deprecated aliases. One way this could work is to extend rename-out (and the rename option of contract-out) with a #:deprecated keyword, like so:
(provide foo
(rename-out [foo old-foo #:deprecated]))
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by investigating how rename-out and the rename option of contract-out represent renamed identifiers, then trace how Resyntax could access that information. Done means a deprecated alias can be declared with the proposed #:deprecated form and Resyntax can use the exposed metadata to migrate its uses.
Written by the indexing model from the issue text.
Assessment
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100