{"action":"created","issue":{"url":"https://api.github.com/repos/fsprojects/VisualFSharpPowerTools/issues/1044","labels_url":"https://api.github.com/repos/fsprojects/VisualFSharpPowerTools/issues/1044/labels{/name}","comments_url":"https://api.github.com/repos/fsprojects/VisualFSharpPowerTools/issues/1044/comments","events_url":"https://api.github.com/repos/fsprojects/VisualFSharpPowerTools/issues/1044/events","html_url":"https://github.com/fsprojects/VisualFSharpPowerTools/issues/1044","id":95414872,"number":1044,"title":"Renaming virtual methods doesn't work","user":{"login":"buybackoff","id":489852,"avatar_url":"https://avatars.githubusercontent.com/u/489852?v=3","gravatar_id":"","url":"https://api.github.com/users/buybackoff","html_url":"https://github.com/buybackoff","followers_url":"https://api.github.com/users/buybackoff/followers","following_url":"https://api.github.com/users/buybackoff/following{/other_user}","gists_url":"https://api.github.com/users/buybackoff/gists{/gist_id}","starred_url":"https://api.github.com/users/buybackoff/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/buybackoff/subscriptions","organizations_url":"https://api.github.com/users/buybackoff/orgs","repos_url":"https://api.github.com/users/buybackoff/repos","events_url":"https://api.github.com/users/buybackoff/events{/privacy}","received_events_url":"https://api.github.com/users/buybackoff/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/fsprojects/VisualFSharpPowerTools/labels/minor%20bug","name":"minor bug","color":"f7c6c7"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-07-16T11:39:17Z","updated_at":"2015-08-08T18:19:43Z","closed_at":null,"body":"This is an edge case, just stumbled upon it and wanted to let you know. Sorry if this is a know issue already.\r\n\r\nIf I rename the virtual TestMethod, its name in the overloaded method doesn't change. I am using version 1.9.0.\r\n\r\n```\r\ntype Test() =\r\n  abstract TestMethod: unit -> unit      // rename this\r\n  default this.TestMethod() =                // or this with F2\r\n    Console.WriteLine(\"No args\")\r\n\r\n  member this.TestMethod(txt:string) = \r\n    Console.WriteLine(txt)\r\n    this.TestMethod()                             // this is unchanged\r\n```\r\n\r\nThe result of renaming is:\r\n\r\n```\r\ntype Test() =\r\n  abstract TestMethod2: unit -> unit\r\n  default this.TestMethod2() = \r\n    Console.WriteLine(\"No args\")\r\n\r\n  member this.TestMethod(txt:string) = \r\n    Console.WriteLine(txt)\r\n    this.TestMethod()                          // error\r\n```\r\n\r\nFor non-virtual methods it works as expected.\r\n\r\nBefore:\r\n```\r\ntype Test() =\r\n  \r\n  member this.TestMethod() = \r\n    Console.WriteLine(\"No args\")\r\n\r\n  member this.TestMethod(txt:string) = \r\n    Console.WriteLine(txt)\r\n    this.TestMethod() \r\n```\r\n\r\nAfter:\r\n\r\n```\r\ntype Test() =\r\n  member this.TestMethod2() = \r\n    Console.WriteLine(\"No args\")\r\n\r\n  member this.TestMethod(txt:string) = \r\n    Console.WriteLine(txt)\r\n    this.TestMethod2() \r\n```\r\n\r\nIt also works for abstract methods:\r\nBefore:\r\n```\r\n[<AbstractClassAttribute>]\r\ntype Test() =\r\n  \r\n  abstract TestMethod: unit -> unit\r\n\r\n  member this.TestMethod(txt:string) = \r\n    Console.WriteLine(txt)\r\n    this.TestMethod() \r\n```\r\n\r\nAfter:\r\n```\r\n[<AbstractClassAttribute>]\r\ntype Test() =\r\n  \r\n  abstract TestMethod2: unit -> unit\r\n\r\n  member this.TestMethod(txt:string) = \r\n    Console.WriteLine(txt)\r\n    this.TestMethod2()  \r\n```"},"comment":{"url":"https://api.github.com/repos/fsprojects/VisualFSharpPowerTools/issues/comments/129031718","html_url":"https://github.com/fsprojects/VisualFSharpPowerTools/issues/1044#issuecomment-129031718","issue_url":"https://api.github.com/repos/fsprojects/VisualFSharpPowerTools/issues/1044","id":129031718,"user":{"login":"dungpa","id":941060,"avatar_url":"https://avatars.githubusercontent.com/u/941060?v=3","gravatar_id":"","url":"https://api.github.com/users/dungpa","html_url":"https://github.com/dungpa","followers_url":"https://api.github.com/users/dungpa/followers","following_url":"https://api.github.com/users/dungpa/following{/other_user}","gists_url":"https://api.github.com/users/dungpa/gists{/gist_id}","starred_url":"https://api.github.com/users/dungpa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dungpa/subscriptions","organizations_url":"https://api.github.com/users/dungpa/orgs","repos_url":"https://api.github.com/users/dungpa/repos","events_url":"https://api.github.com/users/dungpa/events{/privacy}","received_events_url":"https://api.github.com/users/dungpa/received_events","type":"User","site_admin":false},"created_at":"2015-08-08T18:19:43Z","updated_at":"2015-08-08T18:19:43Z","body":"@hmemcpy Yes, FCS gives us wrong data. It's not a new issue actually. See a related one at https://github.com/fsharp/FSharp.Compiler.Service/issues/189"}}