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

Suggest renaming import if names clash #45660

Merged
merged 2 commits into from Nov 1, 2017

Conversation

@Cldfire
Copy link
Contributor

Cldfire commented Oct 31, 2017

Closes #32354.

The output for the example in the issue looks like this:

~/p/local-rust-dev-testing ❯❯❯ cargo +local-s1 build
   Compiling local-rust-dev-testing v0.1.0 (file:///home/cldfire/programming_projects/local-rust-dev-testing)
error[E0252]: the name `ConstructorExtension` is defined multiple times
  --> src/main.rs:49:5
   |
48 | use extension1::ConstructorExtension;
   |     -------------------------------- previous import of the trait `ConstructorExtension` here
49 | use extension2::ConstructorExtension;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ConstructorExtension` reimported here
   |
   = note: `ConstructorExtension` must be defined only once in the type namespace of this module
help: You can use `as` to change the binding name of the import
   |
49 | use extension2::ConstructorExtension as OtherConstructorExtension;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

...

This is my first PR that touches the compiler in any way, so if there's something else I need to do here (e.g. add a test), please let me know :).

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Oct 31, 2017

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @pnkfelix (or someone else) soon.

If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.

Please see the contribution instructions for more information.

@estebank

This comment has been minimized.

Copy link
Contributor

estebank commented Oct 31, 2017

Looks great! Could you add a test for it? Just create an .rs file in src/test/ui/suggestions with a descriptive name, run the tests (./x.py test src/test/ui --stage 1) which will fail due to the new test file, and run src/test/ui/update-all-references.sh ../../../build/<YOUR_ENV>/test/ui. Doing so will create a new .stderr file with the compiler output to test against. If you test again they should pass now.

Otherwise, r=me.

@Cldfire

This comment has been minimized.

Copy link
Contributor Author

Cldfire commented Oct 31, 2017

Added a stripped-down version of the example from the issue as the test.

@estebank

This comment has been minimized.

Copy link
Contributor

estebank commented Oct 31, 2017

@bors r+ rollup

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Oct 31, 2017

📌 Commit 61396a8 has been approved by estebank

kennytm added a commit to kennytm/rust that referenced this pull request Nov 1, 2017
…tebank

Suggest renaming import if names clash

Closes rust-lang#32354.

The output for the example in the issue looks like this:

```
~/p/local-rust-dev-testing ❯❯❯ cargo +local-s1 build
   Compiling local-rust-dev-testing v0.1.0 (file:///home/cldfire/programming_projects/local-rust-dev-testing)
error[E0252]: the name `ConstructorExtension` is defined multiple times
  --> src/main.rs:49:5
   |
48 | use extension1::ConstructorExtension;
   |     -------------------------------- previous import of the trait `ConstructorExtension` here
49 | use extension2::ConstructorExtension;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ConstructorExtension` reimported here
   |
   = note: `ConstructorExtension` must be defined only once in the type namespace of this module
help: You can use `as` to change the binding name of the import
   |
49 | use extension2::ConstructorExtension as OtherConstructorExtension;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

...
```

This is my first PR that touches the compiler in any way, so if there's something else I need to do here (e.g. add a test), please let me know :).
bors added a commit that referenced this pull request Nov 1, 2017
Rollup of 14 pull requests

- Successful merges: #45450, #45579, #45602, #45619, #45624, #45644, #45646, #45648, #45649, #45650, #45652, #45660, #45664, #45671
- Failed merges:
@bors bors merged commit 61396a8 into rust-lang:master Nov 1, 2017
1 check passed
1 check passed
continuous-integration/travis-ci/pr The Travis CI build passed
Details
@Cldfire Cldfire deleted the Cldfire:suggest-rename-import branch Nov 1, 2017
@bluss bluss added the relnotes label Nov 2, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
7 participants
You can’t perform that action at this time.