Member predicate Type::ValueOrRefType::hasMember

Holds if this type has member m, that is, either m is declared in this type, or m is inherited by this type.

For example, C has the members A.P1, A.M2(), B.P2, and C.M3() in

class A {
  public int P1 { get; set; }
  public virtual int P2 { get; set; }
  private void M1() { }
  protected void M2() { }
}

class B : A {
  public override int P2 { get; set; }
}

class C : B {
  private void M3() { }
}
predicate hasMember(Member m)