[GHC] #7854: Constrained method type accepted in Haskell 98 mode
GHC
ghc-devs at haskell.org
Wed Mar 4 11:58:09 UTC 2015
#7854: Constrained method type accepted in Haskell 98 mode
-------------------------------------+-------------------------------------
Reporter: refold | Owner: thomie
Type: bug | Status: patch
Priority: normal | Milestone: 7.12.1
Component: Compiler (Type | Version: 7.6.3
checker) | Keywords: newcomer
Resolution: | Architecture:
Operating System: Unknown/Multiple | Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | typechecker/should_fail/T7854
Related Tickets: #10118, #10119 | Blocking:
| Differential Revisions: Phab:D688
-------------------------------------+-------------------------------------
Comment (by Simon Peyton Jones <simonpj@…>):
In [changeset:"f66e0e695b0377c469fbe877d4850fc0ebca2010/ghc"]:
{{{
#!CommitTicketReference repository="ghc"
revision="f66e0e695b0377c469fbe877d4850fc0ebca2010"
A raft of small changes associated with -XConstrainedClassMethods
See Trac #7854. Specifically:
* Major clean up and simplification of check_op in checkValidClass;
specifically
- use checkValidType on the entire method-selector type to detect
ambiguity
- put a specific test for -XConstrainedClassMethods
* Make -XConstrainedClassMethods be implied by -XMultiParamTypeClasses
(a bit ad-hoc but see #7854), and document in the user manual.
* Do the checkAmbiguity test just once in TcValidity.checkValidType,
rather than repeatedly at every level. See Note [When to call
checkAmbiguity]
* Add -XAllowAmbiguousTypes in GHC.IP, since 'ip' really is ambiguous.
(It's a rather magic function.)
* Improve location info for check_op in checkValidClass
* Update quite a few tests, which had genuinely-ambiguous class
method signatures. Some I fixed by making them unambiguous; some
by adding -XAllowAmbiguousTypes
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/7854#comment:12>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list