anchor.diff:              | Some syntaxTree ->
                   let sigNameOpt =
                       if partialCheck then
  -                        let sigFileName = Path.ChangeExtension(syntaxTree.FileName, ".fsi")
  -                        match prevTcInfo.sigNameOpt with
  -                        | Some (expectedSigFileName, sigName) when String.Equals(expectedSigFileName, sigFileName, StringComparison.OrdinalIgnoreCase) ->
  -                            Some sigName
  -                        | _ ->
  -                            None
  +                        this.BackingSignature
                       else
                           None
                   match syntaxTree.Parse sigNameOpt with
  
positive.code:                     }
          }
  
      member private _.TypeCheck (partialCheck: bool) =  
          match partialCheck, !lazyTcInfoState with
          | true, Some (PartialState _ as state)
          | true, Some (FullState _ as state) -> state |> Eventually.Done
  
negative.code:     member _.TcGlobals = tcGlobals
  
      member _.TcImports = tcImports
  
      member _.BackingSignature =
          match syntaxTreeOpt with
          | Some syntaxTree ->
              let sigFileName = Path.ChangeExtension(syntaxTree.FileName, ".fsi")
              match prevTcInfo.sigNameOpt with
              | Some (expectedSigFileName, sigName) when String.Equals(expectedSigFileName, sigFileName, StringComparison.OrdinalIgnoreCase) ->
                  Some sigName
              | _ ->
                  None
          | _ ->
              None
  
      member this.Invalidate() =
          let hasSig = this.BackingSignature.IsSome
          match !lazyTcInfoState with
          // If partial checking is enabled and we have a backing sig file, then do nothing. The partial state contains the sig state.
          | Some(PartialState _) when enablePartialTypeChecking && hasSig -> ()
          // If partial checking is enabled and we have a backing sig file, then use the partial state. The partial state contains the sig state.
          | Some(FullState(tcInfo, _)) when enablePartialTypeChecking && hasSig -> lazyTcInfoState := Some(PartialState tcInfo)
          | _ ->
              lazyTcInfoState := None
  
          // Always invalidate the syntax tree cache.
          syntaxTreeOpt
          |> Option.iter (fun x -> x.Invalidate())
  
      member this.GetState(partialCheck: bool) =
          let partialCheck =
  