anchor.diff:              | Some ast ->
                   match Refactoring.getSymbolAndLineInfoAtCaret ast editor with
                   //Is this a double check, i.e. isnt update checking can rename?
  -                | (_line, col, lineTxt), Some sym when Refactoring.canRename sym editor.FileName ctx.Project.ParentSolution ->
  +                | (_line, col, lineTxt), Some sym when Refactoring.Operations.canRename sym editor.FileName ctx.Project.ParentSolution ->
                       let lastIdent = Symbols.lastIdent col lineTxt
                       Refactoring.rename (editor, ctx, lastIdent, sym)
                   | _ -> ()
  
positive.code:                         //ainfo.Add (IdeApp.CommandService.GetCommandInfo (RefactoryCommands.FindAllReferences), Action (fun () -> Refactoring.FindRefs (sym)))
  
                          // find derived symbols
                          if symbolUse.Symbol :? FSharpEntity || symbolUse.Symbol :? FSharpMemberOrFunctionOrValue  then
                            let description = 
                              match symbolUse.Symbol with
                              | :? FSharpEntity as fse when fse.IsInterface -> getCatalogString "Find Implementing Types"
  
negative.code:                 | Some ast ->
                      match Refactoring.getSymbolAndLineInfoAtCaret ast editor with
                      //set bypass is we cant rename
                      | _lineinfo, Some sym when not (Refactoring.Operations.canRename sym editor.FileName doc.Project.ParentSolution) ->
                          ci.Bypass <- true
                      | _lineinfo, _symbol -> ()
                  //disable for no ast
  