anchor.diff:              | :? FSharpUnionCase as m -> m.Accessibility.IsPrivate
               | :? FSharpField as m -> m.Accessibility.IsPrivate
               | _ -> false
  +
           if isPrivateToFile then 
               Some SymbolDeclarationLocation.File 
           else 
  
positive.code:             fsharpProjectsCache := Some res
              res
  
      member x.GetSymbolDeclarationLocation (symbol: FSharpSymbol) (currentFile: FilePath) (currentProject: IProjectProvider) : SymbolDeclarationLocation option =
          Debug.Assert(currentProject.SourceFiles |> Array.exists ((=) currentFile), 
              sprintf "Current file '%s' should be included in current project '%A'." currentFile currentProject.SourceFiles)
          let isPrivateToFile = 
  
negative.code:             |> Option.iter (vsLanguageService.InvalidateProject >> Async.RunSynchronously) 
              onProjectChanged item.Project)
  
      let signatureProjectData = Dictionary()
      let fsharpProjectsCache = ref None
  
      let clearInternalCaches() =
          signatureProjectData.Clear()
          fsharpProjectsCache := None
          cache.Clear()
  
      let solutionBuildEventListener = new SolutionBuildEventListener(serviceProvider)
      // When active configuration changes, all project providers are stale so we clear our own caches
      do solutionBuildEventListener.ActiveConfigChanged.Add(fun _ -> 
              clearInternalCaches())
  
      do match events with
          | Some events ->
              events.SolutionEvents.add_AfterClosing (fun _ -> 
                  clearInternalCaches()
                  vsLanguageService.ClearCaches())
              
              events.ProjectItemsEvents.add_ItemRenamed (fun p _ -> onProjectItemChanged p)
              events.ProjectItemsEvents.add_ItemRemoved (fun p -> onProjectItemChanged p)
              events.ProjectItemsEvents.add_ItemAdded (fun p -> onProjectItemChanged p)
              events.ProjectsEvents.add_ItemRemoved (fun p -> onProjectChanged p)
              events.ProjectsEvents.add_ItemRenamed (fun p _ -> onProjectChanged p)
  
              events.SolutionEvents.add_ProjectAdded (fun _ -> 
                  fsharpProjectsCache := None)
              events.SolutionEvents.add_ProjectRemoved (fun p -> 
                  fsharpProjectsCache := None
                  onProjectChanged p)
  