Microsoft.Cci.Contracts.Visibility.TraverseChildren C# (CSharp) Méthode

TraverseChildren() public méthode

public TraverseChildren ( IBoundExpression boundExpression ) : void
boundExpression IBoundExpression
Résultat void
    public override void TraverseChildren(IBoundExpression boundExpression) {
      var tm = boundExpression.Definition as ITypeMemberReference;
      if (tm != null) {
        var resolvedMember = tm.ResolvedTypeDefinitionMember;
        string propertyName = ContractHelper.GetStringArgumentFromAttribute(resolvedMember.Attributes, "System.Diagnostics.Contracts.ContractPublicPropertyNameAttribute");
        // we don't care what it is, it just means it has a public property that represents it
        // so if it is null, then it is *not* a field that has a [ContractPublicPropertyName] marking
        // and so its visibility counts. If it *is* such a field, then it is considered to be public.
        // (TODO: checker should make sure that the property it names is public.)
        if (propertyName == null) {
          this.currentVisibility = TypeHelper.VisibilityIntersection(this.currentVisibility, resolvedMember.Visibility);
        }
      }
      base.TraverseChildren(boundExpression);
    }