Community
Participate
Working Groups
Using 8.0.1 int main() { foo(); //note that foo is not declared! return 0; } 1. Initiate Rename refactoring on foo (alt+shift+r) 2. Rename foo to something else. Press enter. 3. Message is shown "The selected name cannot be renamed" Instead, this message could be shown as soon as Rename is invoked (alt+shift+r).
JDT is less strict in a situation like this and allows unresolved names to be renamed. It even renames other unresolved names that are somewhat similar: class A { } class B { A a; void test() { a.foo(); a.foo(1); } } JDT renames both instances of foo. We don't have to be as lax as JDT, but shouldn't be too strict either.
Oh I didn't know JDT did that. I think we should try to do something similar, I'll change the title to reflect that.