racket / racket/drracket

Renaming doesn't warn about established names (v6.5 & later)

Open
#95 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug check-syntax
Dominant language
Racket
Stars
516
Forks
103
PR merge metrics
No merged PRs in 30d

Description

Open DrRacket, paste in this program:

#lang racket
(define (f x)
  (lambda (y)
    (+ x y)))

Then click the x in (f x), right-click, rename, and pick y as the new name.

On DrRacket v6.2.1, a pop-up warns that the new name conflicts with an established name in the scope.

On DrRacket v6.5 and later, there's no warning and x gets replaced with y everywhere:

#lang racket
(define (f y)
  (lambda (y)
    (+ y y)))

Contributor guide

No contributing guide indexed for this repository

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

Reproduce the rename scenario in DrRacket using the supplied program, comparing v6.2.1 with v6.5 or later. Start from the DrRacket rename entry point and trace how established names are checked; done means renaming x to y again produces a conflict warning and avoids the unsafe replacement.

Written by the indexing model from the issue text.

Assessment

Domain
tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.