My question is then “How can I get all variables in scope in the module underlying this CoreM computation, to pass in the LintConfig?”.

What do you have in your hand?  A [CoreBinding]?  If so, just do `bindersOfBinds`.

You only need the LocalIds.  You don't need (imported) GlobalIds

Simon

On Sun, 6 Aug 2023 at 11:02, Rodrigo Mesquita <rodrigo.m.mesquita@gmail.com> wrote:
Dear GHC devs,

I’m trying to invoke the GHC.Core.Lint linting functions from a Core GHC plugin.
These functions take a LintConfig that can mostly be constructed from DynFlags,
the exception being

l_vars :: ![Var] — ^ Ids that should be treated as being in scope

My question is then “How can I get all variables in scope in the module underlying this CoreM computation, to pass in the LintConfig?”.

My ultimate goal is to run LintM to determine the usage environment of a given core expression.
In that sense, the “Id out of scope” errors aren’t that important to me, but they do make the linting action fail.

Thanks in advance!
Rodrigo
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs