Fix name clash in guard clauses introduced in #4293 (#4385 by @PureFunctor)
As a consequence, a problem with the compiler not being able to see imported names if they're shadowed by a guard binder is also solved.
import Data.Foldable (fold) import Data.Maybe (Maybe(..)) import Data.Monoid.Additive (Additive(..)) test :: Maybe Int -> Int test = case _ of m | Just fold <- m -> fold -- Previously would complain about `fold` being undefined | otherwise -> case fold  of Additive x -> x
Guardhandler for the
everywhereWithContextOnValuesMtraversal. (#4385 by @PureFunctor)
Float compiler-synthesized function applications (#3915 by @rhendric)
Common subexpression elimination is not applied to any expressions explicitly written by users. If you want those floated to a higher scope, you have to do so manually.
Add support for optional shebang lines (#4214 by @colinwahl and @JordanMartinez)
One or more shebang line are only allowed as the first lines of a file
#! a shebang line #! another shebang line -- | module doc comment -- other comment module MyModule where #! Using a shebang here will fail to parse foo :: String foo = ""
devDependencies when publishing (#4332 by @JordanMartinez)
Stop emitting source spans with negative line/column numbers (#4343 by @j-nava and @JordanMartinez)
Accommodate internally-generated identifiers that start with digits (#4334 by @rhendric)
-Wincomplete-record-updates by default (#4336 by @hdgarrood)
purescript.cabal so that the PureScript compiler is built with the
enabled by default.
Setup infrastructure for testing source maps (#4335 by @JordanMartinez)
Removed a couple of unused
SimpleErrorMessage constructors (#4344 by @hdgarrood)
Compare json files through
aeson in tests (#4354 by @PureFunctor)
This fixes the tests for the graph and source map outputs, as the
ordering is inconsistent between
stack test and
Add version bounds to the test suite's
build-depends. (#4354 by @PureFunctor)
Update GHC to 9.2.3 (#4351 by @hdgarrood and @JordanMartinez)
Add qualification for locally-bound names (#4293 by @PureFunctor)
This change makes it so that
Qualified names can now be qualified by either
ModuleName for module-level declarations or the starting
bindings introduced locally. This makes disambiguation between references to
local bindings much easier in AST-driven analysis.