type RenameTest() =
member __.TestMethod() = "Hello, World!"
member __.TestMethodDoubleUnderscore() = __.TestMethod()
Pressing F2 on the __ in member __.TestMethodDoubleUnderscore() does nothing — no rename session starts. Pressing F2 on the __ in the body does start one, but it rewrites only the body occurrence and leaves member __. untouched, producing code that no longer compiles.
this, self and _ all rename correctly; only __ is affected. FCS reports the uses of the __ value but not its declaration, so the rename never sees the declaration to rewrite.
Pressing F2 on the
__inmember __.TestMethodDoubleUnderscore()does nothing — no rename session starts. Pressing F2 on the__in the body does start one, but it rewrites only the body occurrence and leavesmember __.untouched, producing code that no longer compiles.this,selfand_all rename correctly; only__is affected. FCS reports the uses of the__value but not its declaration, so the rename never sees the declaration to rewrite.