Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rename refactoring incorrectly renames references to declarations that were imported under an alias #635

Closed
lars-reimann opened this issue Oct 12, 2023 · 1 comment · Fixed by #825
Assignees
Labels
released Included in a release
Milestone

Comments

@lars-reimann
Copy link
Member

lars-reimann commented Oct 12, 2023

Describe the bug

Renaming a declaration updates the $reftext of all references to that declaration, even if the declaration was imported under an alias.

To Reproduce

Example code:

// file1.sdstest
package package1

class C
// file2.sdstest
package package2

from package1 import C as D

fun f(p: D)
  1. Rename class C to E
  2. The code in file2.sdstest now changes to
// file2.sdstest
package package2

from package1 import E as D

fun f(p: E)

This no longer compiles

Expected behavior

Only the import should be updated:

// file2.sdstest
package package2

from package1 import E as D

fun f(p: D)

We could ensure that the $reftext is equal to the declaration name.

This is not good enough, since we might also have this code in file2.sdstest:

// file2.sdstest
package package2

from package1 import C as C

fun f(p: C)

Now the $refText matches the declaration name, but it should still not be changed. We generally need to check whether a declaration was imported using an alias.

Screenshots (optional)

No response

Additional Context (optional)

No response

@lars-reimann lars-reimann added this to DSL Oct 12, 2023
@github-project-automation github-project-automation bot moved this to Backlog in DSL Oct 12, 2023
@lars-reimann lars-reimann changed the title Rename refactoring incorrect renames references to declarations that were imported under an alias Rename refactoring incorrectly renames references to declarations that were imported under an alias Oct 16, 2023
@lars-reimann lars-reimann added this to the v0.5.0 milestone Nov 24, 2023
@lars-reimann lars-reimann self-assigned this Nov 24, 2023
@lars-reimann lars-reimann moved this from Backlog to Todo in DSL Nov 30, 2023
lars-reimann added a commit that referenced this issue Jan 15, 2024
Closes #635

### Summary of Changes

Declarations that are imported under an alias are now correctly ignored
during renaming. The renaming behavior is always the same, no matter
whether it is triggered on a declaration or any reference. An alias can
only be changed manually.
@github-project-automation github-project-automation bot moved this from Todo to ✔️ Done in DSL Jan 15, 2024
lars-reimann pushed a commit that referenced this issue Jan 15, 2024
## [0.6.0](v0.5.1...v0.6.0) (2024-01-15)

### Features

* CLI command to run formatting ([#824](#824)) ([a74b8e0](a74b8e0)), closes [#702](#702)
* CLI command to run validation ([#820](#820)) ([7c2526d](7c2526d)), closes [#703](#703)
* Partial execution of pipelines ([#821](#821)) ([1e0d03b](1e0d03b))
* python server (runtime) ([#726](#726)) ([78d16f1](78d16f1)), closes [#806](#806)

### Bug Fixes

* **deps-dev:** Bump vite from 4.4.9 to 5.0.5 ([#808](#808)) ([c9575e7](c9575e7)), closes [#15203](https://github.com/Safe-DS/DSL/issues/15203) [#15203](https://github.com/Safe-DS/DSL/issues/15203) [#15140](https://github.com/Safe-DS/DSL/issues/15140) [#15140](https://github.com/Safe-DS/DSL/issues/15140) [#15225](https://github.com/Safe-DS/DSL/issues/15225) [#15225](https://github.com/Safe-DS/DSL/issues/15225) [#15223](https://github.com/Safe-DS/DSL/issues/15223) [#15223](https://github.com/Safe-DS/DSL/issues/15223) [#15233](https://github.com/Safe-DS/DSL/issues/15233) [#15233](https://github.com/Safe-DS/DSL/issues/15233) [#15229](https://github.com/Safe-DS/DSL/issues/15229) [#15229](https://github.com/Safe-DS/DSL/issues/15229) [#15189](https://github.com/Safe-DS/DSL/issues/15189) [#15189](https://github.com/Safe-DS/DSL/issues/15189) [#15218](https://github.com/Safe-DS/DSL/issues/15218) [#15218](https://github.com/Safe-DS/DSL/issues/15218) [#15220](https://github.com/Safe-DS/DSL/issues/15220) [#15220](https://github.com/Safe-DS/DSL/issues/15220) [#15181](https://github.com/Safe-DS/DSL/issues/15181) [#15181](https://github.com/Safe-DS/DSL/issues/15181) [#15194](https://github.com/Safe-DS/DSL/issues/15194) [#15194](https://github.com/Safe-DS/DSL/issues/15194) [#15179](https://github.com/Safe-DS/DSL/issues/15179) [#15179](https://github.com/Safe-DS/DSL/issues/15179) [#15228](https://github.com/Safe-DS/DSL/issues/15228) [#15228](https://github.com/Safe-DS/DSL/issues/15228) [#15204](https://github.com/Safe-DS/DSL/issues/15204) [#15204](https://github.com/Safe-DS/DSL/issues/15204) [#15207](https://github.com/Safe-DS/DSL/issues/15207) [#15207](https://github.com/Safe-DS/DSL/issues/15207) [#15162](https://github.com/Safe-DS/DSL/issues/15162) [#15162](https://github.com/Safe-DS/DSL/issues/15162) [#15135](https://github.com/Safe-DS/DSL/issues/15135) [#15178](https://github.com/Safe-DS/DSL/issues/15178) [#15135](https://github.com/Safe-DS/DSL/issues/15135) [#15178](https://github.com/Safe-DS/DSL/issues/15178) [#15173](https://github.com/Safe-DS/DSL/issues/15173) [#15173](https://github.com/Safe-DS/DSL/issues/15173) [#15137](https://github.com/Safe-DS/DSL/issues/15137) [#15137](https://github.com/Safe-DS/DSL/issues/15137) [#15166](https://github.com/Safe-DS/DSL/issues/15166) [#15166](https://github.com/Safe-DS/DSL/issues/15166) [#15171](https://github.com/Safe-DS/DSL/issues/15171) [#15171](https://github.com/Safe-DS/DSL/issues/15171) [#15093](https://github.com/Safe-DS/DSL/issues/15093) [#15093](https://github.com/Safe-DS/DSL/issues/15093) [#15135](https://github.com/Safe-DS/DSL/issues/15135) [#15135](https://github.com/Safe-DS/DSL/issues/15135) [#15154](https://github.com/Safe-DS/DSL/issues/15154) [#15154](https://github.com/Safe-DS/DSL/issues/15154) [#15155](https://github.com/Safe-DS/DSL/issues/15155) [#15155](https://github.com/Safe-DS/DSL/issues/15155) [#14569](https://github.com/Safe-DS/DSL/issues/14569) [#14569](https://github.com/Safe-DS/DSL/issues/14569) [#15145](https://github.com/Safe-DS/DSL/issues/15145) [#15145](https://github.com/Safe-DS/DSL/issues/15145) [#15049](https://github.com/Safe-DS/DSL/issues/15049) [#15049](https://github.com/Safe-DS/DSL/issues/15049) [#15059](https://github.com/Safe-DS/DSL/issues/15059) [#15059](https://github.com/Safe-DS/DSL/issues/15059) [#15233](https://github.com/Safe-DS/DSL/issues/15233) [#15189](https://github.com/Safe-DS/DSL/issues/15189) [#15229](https://github.com/Safe-DS/DSL/issues/15229) [#15220](https://github.com/Safe-DS/DSL/issues/15220) [#15225](https://github.com/Safe-DS/DSL/issues/15225) [#15228](https://github.com/Safe-DS/DSL/issues/15228) [#15223](https://github.com/Safe-DS/DSL/issues/15223) [#15207](https://github.com/Safe-DS/DSL/issues/15207) [#15218](https://github.com/Safe-DS/DSL/issues/15218)
* renaming of declarations that are imported under an alias ([#825](#825)) ([9f7363d](9f7363d)), closes [#635](#635)
* use correct paths and module names to correctly execute Safe-DS files with spaces ([#811](#811)) ([191ef33](191ef33)), closes [#810](#810)
* Wait for tree-kill during deactivation if child process does not respond ([#807](#807)) ([baf4a3c](baf4a3c))
@lars-reimann
Copy link
Member Author

🎉 This issue has been resolved in version 0.6.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

@lars-reimann lars-reimann added the released Included in a release label Jan 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
released Included in a release
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

1 participant