Predicate getAPossibleImplementor
Gets a class or struct that may implement (parts of) the members
of the interface i
. Note that the class or struct need not be a
sub type of the interface in the inheritance hierarchy:
interface I { void M(); }
class A { public void M() { } }
class B { }
class C : B, I { }
All classes A
, B
, and C
may implement some of the members
of I
(in this example, though, only A
actually does), even
though only C
is a sub type of I
.
Import path
import semmle.code.csharp.Implements