"Quick fix" for Import on VSCode seems to modify random code
tanin47 opened this issue · comments
Describe the bug
To Reproduce Steps to reproduce the behavior:
![image](https://private-user-images.githubusercontent.com/494417/313495025-452a2696-e7fc-4053-99d9-61cfe7ab744f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTU1NzQ4MzksIm5iZiI6MTcxNTU3NDUzOSwicGF0aCI6Ii80OTQ0MTcvMzEzNDk1MDI1LTQ1MmEyNjk2LWU3ZmMtNDA1My05OWQ5LTYxY2ZlN2FiNzQ0Zi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNTEzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDUxM1QwNDI4NTlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hY2RjMGVlYmQ1OGQzMmI4MTczYTYzYzQyMjQ1ZTlhMmEzM2UxZTU3ZTY1NjE4NjM1NzI4YmVhMTUyMjJlNjhmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.iwywqBm8XAfOyC15x6YJfsHtf0mskn2rrKlxOSwWTC0)
Then, if we choose the second quickfix, the previewed change looks like this:
![image](https://private-user-images.githubusercontent.com/494417/313495095-8143ca43-593c-44df-ae7c-7dd4d92a4a96.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTU1NzQ4MzksIm5iZiI6MTcxNTU3NDUzOSwicGF0aCI6Ii80OTQ0MTcvMzEzNDk1MDk1LTgxNDNjYTQzLTU5M2MtNDRkZi1hZTdjLTdkZDRkOTJhNGE5Ni5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNTEzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDUxM1QwNDI4NTlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0wYmQ2OTJjMGFiZDFiM2RiMDQxMDExMDEzYWM3ODUzY2VlYThlNjNlNGFlZDkwNDA0OTI4MzFmYTA5YzQ3MWIzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.n3YlwHBZ-v135_50iwzwNSLgfxpRaa5bEEnftr_dgoI)
Expected behavior
It shouldn't modify the line: sealed abstract class Value extends EnumValue
at all.
I'm using Vim. I don't know it that matters. But there could be a conflict in shortcut if modifying the code uses a shortcut?
Thanks for reporting! We need to confirm a reproduction, if possible could you paste a self contained example?
Which Scala and Metals versions do you use?
VSCode: 1.87.2, Metal: v1.29.0, Scala: 2.13.12
I'll make a small self-contained example!
Thank you for acknowledging the issue promptly!
Here's the POC: https://github.com/tanin47/poc-metals-6232
- We can see that
Queue
is not imported correctly:
![image](https://private-user-images.githubusercontent.com/494417/316424331-5b3d9180-7731-47eb-a5b5-bd92bf2e5dc5.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTU1NzQ4MzksIm5iZiI6MTcxNTU3NDUzOSwicGF0aCI6Ii80OTQ0MTcvMzE2NDI0MzMxLTViM2Q5MTgwLTc3MzEtNDdlYi1hNWI1LWJkOTJiZjJlNWRjNS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNTEzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDUxM1QwNDI4NTlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iY2IzYzEyNDkzZjUxZTFhZjc2OTVmYjc2MGUyMmJhN2UwOTliZjIxOTc0YzMwMDkzZjY0NzIyMWYxMTZhYzFmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.0ijDm1zQtXYrhLJDPbWtuQzhyL9ofgg0rWL74oS0IVw)
- We hover over
Queue
and clickQuick fix...
:
![image](https://private-user-images.githubusercontent.com/494417/316424452-ef42baf7-349a-4d6f-b803-d530f96aca7d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTU1NzQ4MzksIm5iZiI6MTcxNTU3NDUzOSwicGF0aCI6Ii80OTQ0MTcvMzE2NDI0NDUyLWVmNDJiYWY3LTM0OWEtNGQ2Zi1iODAzLWQ1MzBmOTZhY2E3ZC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNTEzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDUxM1QwNDI4NTlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hN2ZmZTg1MzAwNGYzY2U4NDI0NTk4YzA5NzU2YjU0NzBhMzM1NWQ2MDEzN2RjYmUyMDliNzU5MjBhZjM4Nzk5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9._qCVCq3XdQ-KUsEpdavE2vIDSlEENe_HD4_EAJBA7iE)
- We choose
Import 'Queue' from package 'java.util
. Then, we'll see the below:
![image](https://private-user-images.githubusercontent.com/494417/316424805-22dca7a5-8a60-4986-8295-0e4379252c78.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTU1NzQ4MzksIm5iZiI6MTcxNTU3NDUzOSwicGF0aCI6Ii80OTQ0MTcvMzE2NDI0ODA1LTIyZGNhN2E1LThhNjAtNDk4Ni04Mjk1LTBlNDM3OTI1MmM3OC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNTEzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDUxM1QwNDI4NTlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1kMThkZjRmYjBlNTI0ODIwNGQwNTE2YzllOThjMDZhNjZkYTkzYmVhMGNiNWFhMzhmZTIzYjFlYWFjYWU0Njc5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.snQq6eNEvy3OZho4QRLnNjgjSwT81reO5WOA6ts94dA)
I've confirmed that, even without the vim extension, the problem still occurs.