typelevel-scalafix icon indicating copy to clipboard operation
typelevel-scalafix copied to clipboard

Try to warn on `Resource` leak

Open BalmungSan opened this issue 3 years ago • 1 comments

Since I don't know much about scalafix not sure how hard, or even impossible, this will be... But, it would be great to warn / error if someone tries to leak a Resource using pure or delay inside use; which is a somewhat common beginner mistake.

Maybe a best effort that tries to catch common variations like ra.use(a => a.pure[F]) or ra.use(IO.apply) can be enough? Another idea would be to warn if use returns an F[A] rather than some F[B] (meaning the same type of the Resource), since on the surface it seems that would never be a good idea; but I may be being too naive.

BalmungSan avatar Dec 20 '22 13:12 BalmungSan

Another idea would be to warn if use returns an F[A] rather than some F[B] (meaning the same type of the Resource)

FWIW I really like this idea. Whereas a "pure" based fix can probably be implemented as a syntactic rule, inspecting the inferred types will require a semantic rule.

armanbilge avatar Dec 20 '22 14:12 armanbilge