incorrect go-to-implementation for overloaded function
0xalpharush opened this issue · 0 comments
0xalpharush commented
When I go click go-to-definition on the following overloaded example, it points at the incorrect function definition and makes it appear as a recursive call (notice the number of parameters is different).
contract X {
function overload(
address _a,
address _b,
address _c,
address _d,
uint256 _e,
uint256 _f,
bytes memory _data
) internal returns (uint256) {
return
overload(
_a,
_b,
_c,
_d,
msg.sender,
_e,
_f,
_data
);
}
function overload(
address _a,
address _b,
address _c,
address _d,
address,
uint256 _e,
uint256 _f,
bytes memory _data
) internal returns (uint256) {
}
}
![Screenshot 2023-10-02 at 9 56 02 AM](https://private-user-images.githubusercontent.com/87383155/272006735-94685c88-c266-471b-91ec-b618950f22b8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTc1MDM3MjUsIm5iZiI6MTcxNzUwMzQyNSwicGF0aCI6Ii84NzM4MzE1NS8yNzIwMDY3MzUtOTQ2ODVjODgtYzI2Ni00NzFiLTkxZWMtYjYxODk1MGYyMmI4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MDQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjA0VDEyMTcwNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTc5ZWMxMmI3ZDFkOTJmODQxN2I0ZjJhZTFjYmQ1MWYyMjM4NGM2ZmVkOTk5ODIwNzRiNzFkZGI0NzVjYWI4NWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.-zVig5PYJPKI4HDZhwePF0ZKDoLMeCECpJ5hV8Nhia8)