jackfirth / jackfirth/resyntax

Deprecated aliases

Open
#234 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

new lint
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.