Author |
Topic |
|
diavo
Senior Member
Germany
31 Posts |
Posted - May 10 2007 : 02:30:17 AM
|
Hello, there is an odd behaviour that occurs just spontaneous, so that I can't explain when: If I move some implementation from a header file, it will be removed there but is not beeing inserted in the cpp. Undoing that operation and trying it one more time, all is OK. This can be very dangerous, if I don't check that moving each time. |
|
feline
Whole Tomato Software
United Kingdom
19015 Posts |
Posted - May 10 2007 : 08:11:36 AM
|
Clearly that is bad. I have run Move Implementation a LOT of times when testing things and I have never seen this problem.
How often does this happen? Is there any form of pattern? Do you use source control? I am wondering if the cpp file is checked in and read only, so the first time you try Move Implementation the cpp file gets checked out, but since it was read only the move failed. Then the second time you try the move the file can be edited, so it works.
Beyond this I am not sure what might trigger this problem. |
zen is the art of being at one with the two'ness |
|
|
diavo
Senior Member
Germany
31 Posts |
Posted - May 10 2007 : 10:21:06 AM
|
Well, both files are not read only. I think the behaviour occurs only, if the method that is moved is positioned between other function in the source file and not at the end. But...only sometimes. Maybe if there is something, that is unexpected like comments or so?! Another NEW problem is, that I cannot move the implementation of operators. |
|
|
feline
Whole Tomato Software
United Kingdom
19015 Posts |
Posted - May 10 2007 : 12:28:37 PM
|
Do you see this on overloaded functions? Does the cpp file contain methods from more than one class? Or non class methods?
I am searching for any sort of clue.
Next time you notice this would you be able to quit and reload the IDE before doing the second move? If you do this and the move fails a second time then maybe we will have a reproducible test case.
Refactoring on overloaded operators, this is a known issue. We have found some cases where refactoring on overloaded operators creates the wrong code, so we have disabled refactoring on these functions while we work on the issue. |
zen is the art of being at one with the two'ness |
|
|
diavo
Senior Member
Germany
31 Posts |
Posted - May 11 2007 : 03:52:44 AM
|
The file has more than one classes. I found one hint for the problem: In a case the implementation is erased, the header file wasn't saved. After saving the header file, moving implementation worked fine.
|
|
|
feline
Whole Tomato Software
United Kingdom
19015 Posts |
Posted - May 11 2007 : 08:10:36 AM
|
I have just tried this 6 times, using VS2005 and VA 1555, with a modified header file, and all of the moves worked.
Which IDE are you using? Have you modified your "Refactor Create Implementation" autotext entry? Do you have any other plugin's installed?
I am searching for any clues that might explain why you are seeing this problem, but I don't think I have ever seen it in all of my testing. |
zen is the art of being at one with the two'ness |
|
|
diavo
Senior Member
Germany
31 Posts |
Posted - May 14 2007 : 04:09:17 AM
|
1. VS2005 Pro 2. no 3. no
I'm sorry that I can't provide you with a more detailed description of the beaviour. |
|
|
feline
Whole Tomato Software
United Kingdom
19015 Posts |
Posted - May 14 2007 : 08:57:11 AM
|
Do you see any problems with any other refactoring operations? any problems with alt-g?
When this happens are you running more than one IDE, or only one IDE?
I am searching for any clues.
Using VS2005 if I make my cpp file read only, turn off editing of read only files in the IDE options, and then trigger Move Implementation then I see the same problem. The trigger is clearly different, but I have reproduced something, which gives us something to fix.
case=6565 |
zen is the art of being at one with the two'ness |
|
|
support
Whole Tomato Software
5566 Posts |
Posted - May 31 2007 : 01:15:56 AM
|
fixed in build 1557 |
|
|
|
Topic |
|