Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
GHC
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Iterations
Merge Requests
0
Merge Requests
0
Requirements
Requirements
List
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Package Registry
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issue
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Alex D
GHC
Commits
230dc0b0
Commit
230dc0b0
authored
Jul 09, 2007
by
Ian Lynagh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add -XFlexibleContexts flag
parent
df9814b4
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
9 additions
and
7 deletions
+9
-7
compiler/main/DynFlags.hs
compiler/main/DynFlags.hs
+3
-0
compiler/typecheck/TcMType.lhs
compiler/typecheck/TcMType.lhs
+6
-7
No files found.
compiler/main/DynFlags.hs
View file @
230dc0b0
...
...
@@ -184,6 +184,7 @@ data DynFlag
|
Opt_GADTs
|
Opt_RelaxedPolyRec
-- -X=RelaxedPolyRec
|
Opt_TypeSynonymInstances
|
Opt_FlexibleContexts
|
Opt_FlexibleInstances
|
Opt_MultiParamTypeClasses
|
Opt_FunctionalDependencies
...
...
@@ -1149,6 +1150,7 @@ xFlags = [
(
"ImplicitParams"
,
Opt_ImplicitParams
),
(
"ScopedTypeVariables"
,
Opt_ScopedTypeVariables
),
(
"TypeSynonymInstances"
,
Opt_TypeSynonymInstances
),
(
"FlexibleContexts"
,
Opt_FlexibleContexts
),
(
"FlexibleInstances"
,
Opt_FlexibleInstances
),
(
"MultiParamTypeClasses"
,
Opt_MultiParamTypeClasses
),
(
"FunctionalDependencies"
,
Opt_FunctionalDependencies
),
...
...
@@ -1169,6 +1171,7 @@ glasgowExtsFlags = [ Opt_GlasgowExts
,
Opt_ImplicitParams
,
Opt_ScopedTypeVariables
,
Opt_TypeSynonymInstances
,
Opt_FlexibleContexts
,
Opt_FlexibleInstances
,
Opt_MultiParamTypeClasses
,
Opt_FunctionalDependencies
...
...
compiler/typecheck/TcMType.lhs
View file @
230dc0b0
...
...
@@ -947,7 +947,7 @@ check_pred_ty dflags ctxt pred@(ClassP cls tys)
arity = classArity cls
n_tys = length tys
arity_err = arityErr "Class" class_name arity n_tys
how_to_allow = parens (ptext SLIT("Use -
fglasgow-
exts to permit this"))
how_to_allow = parens (ptext SLIT("Use -
XFlexibleCont
exts to permit this"))
check_pred_ty dflags ctxt pred@(EqPred ty1 ty2)
= do { -- Equational constraints are valid in all contexts if type
...
...
@@ -979,12 +979,12 @@ check_pred_ty dflags ctxt sty = failWithTc (badPredTyErr sty)
check_class_pred_tys dflags ctxt tys
= case ctxt of
TypeCtxt -> True -- {-# SPECIALISE instance Eq (T Int) #-} is fine
InstThetaCtxt ->
gla_
exts || undecidable_ok || all tcIsTyVarTy tys
InstThetaCtxt ->
flexible_cont
exts || undecidable_ok || all tcIsTyVarTy tys
-- Further checks on head and theta in
-- checkInstTermination
other ->
gla_
exts || all tyvar_head tys
other ->
flexible_cont
exts || all tyvar_head tys
where
gla_exts = dopt Opt_GlasgowE
xts dflags
flexible_contexts = dopt Opt_FlexibleConte
xts dflags
undecidable_ok = dopt Opt_AllowUndecidableInstances dflags
-------------------------
...
...
@@ -1058,9 +1058,8 @@ even in a scope where b is in scope.
\begin{code}
checkFreeness forall_tyvars theta
= do { gla_exts <- doptM Opt_GlasgowExts
; if gla_exts then return () -- New! Oct06
else mappM_ complain (filter is_free theta) }
= do { flexible_contexts <- doptM Opt_FlexibleContexts
; unless flexible_contexts $ mappM_ complain (filter is_free theta) }
where
is_free pred = not (isIPPred pred)
&& not (any bound_var (varSetElems (tyVarsOfPred pred)))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment