| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This seems necessary after 9634e24 (#11569).
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Ticket #11535 dealt with derived Read instances of infix Unicode
value constructors. GHC 7.10.3 used to derive (Read/Show)
instances so that `read . show` for values of such types had no
parse.
The issue has been fixed by other compiler update. This patch
adds only tests, so that derived instance of Read/Show for infix
Unicode value constructors has correct parse, satisfying Haskell
2010 Specification.
Resolves: #11535
Test Plan: `make test TEST=T11535`
Reviewers: austin, rwbarton, thomie, bgamari
Reviewed By: rwbarton, thomie, bgamari
Subscribers: rwbarton, thomie
Projects: #ghc
Differential Revision: https://phabricator.haskell.org/D1884
GHC Trac Issues: #11535
|
|
|
|
|
|
|
|
| |
The previous test failed for me because I had
GhcRTSWays += thr_debug_p
in my validate.mk, which doesn't enable profiling by itself.
|
|
|
|
|
| |
In some cases ApplicativeDo would miss some opportunities, due to a
wrong calculation of free variables in RnExpr.segments.
|
|
|
|
|
|
|
|
|
| |
should_compile_flag_nohaddock and should_compile_noflag_nohaddock
contain the exact same tests. By passing `-haddock` to the tests in
should_compile_**flag**_nohaddock, at least they're now testing
different things.
Add documentation.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Refactoring only. Cleanup some loose ends from #10196.
Initially the idea was to only allow modifier letters at the end of
identifiers. Since we later decided to allow modifier letters also in
the middle of identifiers (because not doing so would not fix the
regression completely), the names `suffix` and `okIdSuffixChar` don't
seem appropriate anymore.
Remove TODO. Move test from should_fail to should_compile.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In order to make this work I needed to shuffle around typechecking a bit
such that `TyCon` and friends are available during compilation of
GHC.Types. I also did a bit of refactoring of `TcTypeable`.
Test Plan: Validate
Reviewers: simonpj, austin
Subscribers: simonpj, thomie
Differential Revision: https://phabricator.haskell.org/D1906
GHC Trac Issues: #11120
|
|
|
|
|
|
|
|
|
|
| |
...when computing the size of a call on the RHS of a type
instance declaration.
This came up in Trac #11581. The change is in
TcType.tcTyFamInsts
which now trims the type arguments in a call. See the
comments with that function definition.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When implementing Strict Haskell, the patch 46a03fbe didn't faithfully
implement the semantics given in the manual. In particular there was
an ad-hoc case in mkSelectorBinds for "strict and no binders" that
didn't work.
This patch fixes it, curing Trac #11572.
Howver it forced me to think about banged let-bindings, and I rather
think we do not have quite the right semantics yet, so I've opened
Trac #11601.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, `-XDeriveFoldable` and `-XDeriveTraversable` generate
unnecessary `mempty` and `pure` expressions when it traverses of an
argument of a constructor whose type does not mention the last type
parameter. Not only is this inefficient, but it prevents `Traversable`
from being derivable for datatypes with unlifted arguments (see
Trac #11174).
The solution to this problem is to adopt a slight change to the
algorithms for `-XDeriveFoldable` and `-XDeriveTraversable`, which is
described in [this wiki
page](https://ghc.haskell.org/trac/ghc/wiki/Commentary/Compiler/DeriveFu
nctor#Proposal:alternativestrategyforderivingFoldableandTraversable).
The wiki page also describes why we don't apply the same changes to the
algorithm for `-XDeriveFunctor`.
This is techincally a breaking change for users of `-XDeriveFoldable`
and `-XDeriveTraversable`, since if someone was using a law-breaking
`Monoid` instance with a derived `Foldable` instance (i.e., one where `x
<> mempty` does not equal `x`) or a law-breaking `Applicative` instance
with a derived `Traversable` instance, then the new generated code could
result in different behavior. I suspect the number of scenarios like
this is very small, and the onus really should be on those users to fix
up their `Monoid`/`Applicative` instances.
Fixes #11174.
Test Plan: ./validate
Reviewers: hvr, simonpj, austin, bgamari
Reviewed By: simonpj, bgamari
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D1908
GHC Trac Issues: #11174
|
|
|
|
|
| |
Previously, we looked through synonyms when counting arguments,
but that's a bit silly.
|
|
|
|
|
|
|
| |
We have to instantiate any invisible arguments to type families
right away. This is now done in tcTyCon in TcHsType.
testcase: typecheck/should_compile/T11246
|
|
|
|
|
|
|
| |
When renaming a type, now looks for wildcards in bound variables'
kinds.
testcase: dependent/should_compile/T11241
|
|
|
|
|
|
|
|
| |
Since we're not consisently keeping track of which tests should pass
with which compiler versions, there is no point in keeping these
functions.
Update submodules containers, hpc and stm.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
See Trac #9611. In "No instance..." error message we suggest instances
for other types with the same occ name. It is usefull e.g. when we have
two different versions of the same package installed.
Test Plan: typecheck/should_fail/tcfail224
Reviewers: austin, bgamari
Reviewed By: bgamari
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D1919
GHC Trac Issues: #9611
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: bgamari, austin
Reviewed By: austin
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D1915
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There is ambiguty between (1) type constructors and (2) data
constructors in export lists, e.g. '%%' can stand for both of them. This
ambiguity is resolved in favor of (2).
If the exported data constructor is not in scope, but type constructor
with the same name is in scope, GHC should suggest adding 'type' keyword
to resolve ambiguity in favor of (1) and enabling 'TypeOperators'
extension.
The patch only extends the error message.
See Trac #11432.
Test Plan: `make test`
Reviewers: simonpj, bgamari, austin
Reviewed By: simonpj
Subscribers: mpickering, thomie, goldfire, kosmikus
Differential Revision: https://phabricator.haskell.org/D1902
GHC Trac Issues: #11432
|
|
|
|
|
|
| |
Update submodules stm, hpc and unix.
Differential Revision: https://phabricator.haskell.org/D1921
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`-dunique-increment` doesn't work inside the file.
Test Plan: I've discovered it doesn't work in D1917.
Reviewers: simonpj, bgamari, austin
Subscribers: thomie, simonmar
Differential Revision: https://phabricator.haskell.org/D1918
GHC Trac Issues: #11361
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reproduces the issue that I encountered in #11362.
Test Plan: this testcase
Reviewers: simonpj, bgamari, austin
Reviewed By: simonpj
Subscribers: thomie, simonmar
Differential Revision: https://phabricator.haskell.org/D1917
GHC Trac Issues: #11362
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This bug was revealed by Trac #11362. It turns out that in my patch
for Trac #11148 (namely 1160dc5), I failed to turn one occurrence of
tvs' into full_tvs. Sigh. This is tricky stuff and it cost me
several hours to page it back in and figure out what was happening.
The result was a CoAxiom whose lhs had rhs had different kinds. Eeek!
Anyway it's fixed.
I also added an ASSERT, in FamInst.newFamInst, that trips on such
bogus CoAxioms.
|
| |
|
|
|
|
|
|
|
|
|
| |
TcErrors has a system for suppressing some type errors if a more
serious one occurs. But there was a crucial missing case, which
sometimes resulted in a cascade of irrelevant errors overwhelming
the actual cause. This was Trac #11541.
The fix is simple. Worth merging to 8.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
be3d7f661968a7b8c6751c0be3bf23e703b32c3e added Show
instance for Callstack.
That made a couple of error messages to drift as:
instance Show Ordering -- Defined in ‘GHC.Show’
instance Show Integer -- Defined in ‘GHC.Show’
...plus 23 others
- ...plus 20 instances involving out-of-scope types
+ ...plus 21 instances involving out-of-scope types
Signed-off-by: Sergei Trofimovich <siarheit@google.com>
|
|
|
|
|
|
|
|
| |
Reduces un-neede parens.
Also -fprint-typechecker-elaboration now makes type applications
and casts in expressions also appear. (Previously those were
confusingly controlled by -fprint-explicit-coercions.)
|
|
|
|
| |
Makes it a slightly more stringent test of record pattern bindings
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In poking Trac #11414 I found myself sinking into the abe_inst_wrap
swamp. What is this strange thing? (It turned out that #11414 was
breaking because of it.)
Thrillingly, I found a way to sweep it away again, putting the deep
instantation into tcMonoBinds instead of mkExport; and it turned out
that the fun_co_fn field of FunBind was already there ready to receive
exactly this wrapper. Hooray. Result
* Death to abe_inst_wrap
* Death to mbi_orig
* Death to the plumbing in tcPolyInfer that did the
deep instantiation
I did find that I had to re-engineer the treatment of instance type
signatures (again), but the result looks more modular and robust to
me.
And #11414 is fixed.
|
| |
|
| |
|
|
|
|
|
|
|
| |
See Note [Eta-reduction in -O0] in DynFlags.
Bottom line: doing eta reduction unconditionally is benign, and
removes an ASSERT failure (Trac #11562).
|
|
|
|
|
|
|
|
|
| |
This simple change fixes Trac #11563, #11520, #11516, #11399.
See esp the comments in #11520.
See Note [Fail fast on kind errors] in TcSimplify
Merge to 8.0 branch
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On the GHC 8.0 RCs, multiple users reported a very strange error
whereby GHC would complain that the symbols names recorded in interface
files did not match the expected name. The reason for this is
that they were using an old version of Cabal which chose symbol
names differently from the installed package ID ('id' field) which
the package was to be installed with; GHC 8.0 now mandates that
these coincides.
This change adds a test to ghc-pkg to make sure that 'id' and 'key'
(which is how Cabal previously reported what the symbol name
was supposed to be) match; if they don't match or key is missing,
we assume that the Cabal was too old.
Bikeshed points:
- Should we offer more information about how to upgrade
Cabal correctly (i.e. specify a version?)
- Should we allow for a missing 'key'? If we allow for
'key' to be missing, we lose the ability to detect
Cabal from GHC 7.8 or earlier being used. If we
require it to be specified, then it will not be possible
for Cabal to deprecate the (unused) field and remove it
without having BC for 8.0.
Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Test Plan: validate
Reviewers: austin, bgamari, hvr
Reviewed By: hvr
Subscribers: bergmark, thomie
Differential Revision: https://phabricator.haskell.org/D1892
GHC Trac Issues: #11558
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The bug itself has already been fixed in #10734, so this
only adds another regression test (as given in the ticket).
Test Plan: ./validate
Reviewers: goldfire, austin, thomie, bgamari
Reviewed By: bgamari
Differential Revision: https://phabricator.haskell.org/D1898
GHC Trac Issues: #9022
|
|
|
|
|
|
|
|
|
| |
Previously "types" was inappropriately made plural instead of
"instance",
instance Eq Ordering -- Defined in ‘GHC.Classes’
...plus 24 others
...plus 13 instance involving out-of-scope typess
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GHC 7.10.2 and 7.10.3 had a derived `Eq` instance for `SrcLoc`, but it
seems to have been removed (see
6740d70d95cb81cea3859ff847afc61ec439db4f) during GHC 8.0 development.
Reviewers: hvr, austin, gridaphobe, bgamari
Reviewed By: gridaphobe, bgamari
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D1894
|
|
|
|
|
| |
This was largely fixed by the re-rework of the pattern match checker.
Resolves #5642.
|