コード例 #1
0
    /// <summary>
    /// For the possible receiver v, check if it is nonnull. if no, file an proper
    /// error/warning.
    /// </summary>
    private void CheckReceiver(Statement stat, Variable v, ExposureState estate)
    {
      Node offendingNode = v;
      if (v == null) return;

      if(estate.IsNotExposed(v))
      {
        HandleError(stat, offendingNode, Error.WritingPackedObject, v.Name.Name);
        //estate.AssignExposed(v);
      }
      else if(!estate.IsExposed(v))
      {
        HandleError(stat, offendingNode, Error.WritingPackedObject, v.Name.Name);
        //estate.AssumeNonNull(v);
      }
    }