Predicate implements
INTERNAL: Do not use.
Holds if member m1
implements interface member m2
.
The type t
is a type that implements the interface type in which
m2
is declared, in such a way that m1
is the implementation of
m2
.
Example:
interface I { void M(); }
class A { public void M() { } }
class B : A, I { }
class C : A, I { new public void M() }
In the example above, the following (and nothing else) holds:
implements(A.M, I.M, B)
and implements(C.M, I.M, C)
.
Import path
import semmle.code.csharp.Implements
predicate implements(Overridable m1, Overridable m2, ValueOrRefType t)