anchor.diff:                                getProjectProvider: Project -> IProjectProvider option, 
                                 onChanged: Project -> unit) =
       static let mutable getField = None
  -    do Debug.Assert(project == null, "Input project should be well-formed.")
  +    do Debug.Assert(isNotNull project, "Input project should be well-formed.")
       let refAdded = _dispReferencesEvents_ReferenceAddedEventHandler (fun _ -> onChanged project)
       let refChanged = _dispReferencesEvents_ReferenceChangedEventHandler (fun _ -> onChanged project)
       let refRemoved = _dispReferencesEvents_ReferenceRemovedEventHandler (fun _ -> onChanged project)
  
positive.code:     
      let projectFileName = lazy (
          let fileName = getProperty "FileName"
          Debug.Assert(fileName <> null && currentDir <> null, "Should have a file name for the project.")
          Path.Combine(currentDir, fileName))
      
      let getSourcesAndFlags = 
  
negative.code:                  p.Events.ReferencesEvents.remove_ReferenceChanged refChanged
                   p.Events.ReferencesEvents.remove_ReferenceRemoved refRemoved)
       
  /// A standalone project provider in order to represent script files
  type internal VirtualProjectProvider (buffer: ITextBuffer, filePath: string, vsVersion) = 
      do Debug.Assert (isNotNull filePath && isNotNull buffer, "FilePath and Buffer should not be null.")
      let source = buffer.CurrentSnapshot.GetText()
      let compilerVersion = 
          match vsVersion with
  