import csharp
import semmle.code.csharp.frameworks.System

from ValueOrRefType t, Method m, boolean b
where t.fromSource() and m = getInvokedDisposeMethod(t)
  and if implementsDispose(t) then b = true else b = false
select t, m.getQualifiedNameWithTypes(), b
