Getting all variables in scope in CoreM

Simon Peyton Jones simon.peytonjones at gmail.com
Sun Aug 6 16:12:46 UTC 2023


>
> 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 at 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 at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20230806/1a2f5459/attachment.html>


More information about the ghc-devs mailing list