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
c0cc5433
Commit
c0cc5433
authored
Jul 08, 2007
by
Ian Lynagh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implement -XKindSignatures
parent
f4e40607
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
10 additions
and
3 deletions
+10
-3
compiler/main/DynFlags.hs
compiler/main/DynFlags.hs
+3
-0
compiler/parser/Lexer.x
compiler/parser/Lexer.x
+4
-1
compiler/typecheck/TcTyClsDecls.lhs
compiler/typecheck/TcTyClsDecls.lhs
+3
-2
No files found.
compiler/main/DynFlags.hs
View file @
c0cc5433
...
...
@@ -185,6 +185,7 @@ data DynFlag
|
Opt_RelaxedPolyRec
-- -X=RelaxedPolyRec
|
Opt_MagicHash
|
Opt_EmptyDataDecls
|
Opt_KindSignatures
-- optimisation opts
|
Opt_Strictness
...
...
@@ -1095,6 +1096,7 @@ fFlags = [
xFlags
::
[(
String
,
DynFlag
)]
xFlags
=
[
(
"MagicHash"
,
Opt_MagicHash
),
(
"KindSignatures"
,
Opt_KindSignatures
),
(
"EmptyDataDecls"
,
Opt_EmptyDataDecls
),
(
"FI"
,
Opt_FFI
),
-- support `-ffi'...
(
"FFI"
,
Opt_FFI
),
-- ...and also `-fffi'
...
...
@@ -1141,6 +1143,7 @@ glasgowExtsFlags = [ Opt_GlasgowExts
,
Opt_ScopedTypeVariables
,
Opt_MagicHash
,
Opt_EmptyDataDecls
,
Opt_KindSignatures
,
Opt_TypeFamilies
]
------------------
...
...
compiler/parser/Lexer.x
View file @
c0cc5433
...
...
@@ -649,7 +649,7 @@ reservedSymsFM = listToUFM $
,("-", ITminus, 0)
,("!", ITbang, 0)
,("*", ITstar, bit glaExtsBit .|.
,("*", ITstar, bit glaExtsBit .|.
bit kindSigsBit .|.
bit tyFamBit) -- For data T (a::*) = MkT
,(".", ITdot, bit tvBit) -- For 'forall a . t'
...
...
@@ -1518,6 +1518,7 @@ bangPatBit = 8 -- Tells the parser to understand bang-patterns
tyFamBit = 9 -- indexed type families: 'family' keyword and kind sigs
haddockBit = 10 -- Lex and parse Haddock comments
magicHashBit = 11 -- # in both functions and operators
kindSigsBit = 12 -- # in both functions and operators
glaExtsEnabled, ffiEnabled, parrEnabled :: Int -> Bool
glaExtsEnabled flags = testBit flags glaExtsBit
...
...
@@ -1531,6 +1532,7 @@ bangPatEnabled flags = testBit flags bangPatBit
tyFamEnabled flags = testBit flags tyFamBit
haddockEnabled flags = testBit flags haddockBit
magicHashEnabled flags = testBit flags magicHashBit
kindSigsEnabled flags = testBit flags kindSigsBit
-- PState for parsing options pragmas
--
...
...
@@ -1583,6 +1585,7 @@ mkPState buf loc flags =
.|. tyFamBit `setBitIf` dopt Opt_TypeFamilies flags
.|. haddockBit `setBitIf` dopt Opt_Haddock flags
.|. magicHashBit `setBitIf` dopt Opt_MagicHash flags
.|. kindSigsBit `setBitIf` dopt Opt_KindSignatures flags
--
setBitIf :: Int -> Bool -> Int
b `setBitIf` cond | cond = bit b
...
...
compiler/typecheck/TcTyClsDecls.lhs
View file @
c0cc5433
...
...
@@ -695,6 +695,7 @@ tcTyClDecl1 calc_isrec
; unbox_strict <- doptM Opt_UnboxStrictFields
; gla_exts <- doptM Opt_GlasgowExts
; empty_data_decls <- doptM Opt_EmptyDataDecls
; kind_signatures <- doptM Opt_KindSignatures
; gadt_ok <- doptM Opt_GADTs
; is_boot <- tcIsHsBoot -- Are we compiling an hs-boot file?
...
...
@@ -702,7 +703,7 @@ tcTyClDecl1 calc_isrec
; checkTc (gadt_ok || h98_syntax) (badGadtDecl tc_name)
-- Check that we don't use kind signatures without Glasgow extensions
; checkTc (
gla_ext
s || isNothing mb_ksig) (badSigTyDecl tc_name)
; checkTc (
kind_signature
s || isNothing mb_ksig) (badSigTyDecl tc_name)
-- Check that the stupid theta is empty for a GADT-style declaration
; checkTc (null stupid_theta || h98_syntax) (badStupidTheta tc_name)
...
...
@@ -1209,7 +1210,7 @@ newtypeFieldErr con_name n_flds
badSigTyDecl tc_name
= vcat [ ptext SLIT("Illegal kind signature") <+>
quotes (ppr tc_name)
, nest 2 (parens $ ptext SLIT("Use -
fglasgow-ext
s to allow kind signatures")) ]
, nest 2 (parens $ ptext SLIT("Use -
XKindSignature
s to allow kind signatures")) ]
badFamInstDecl tc_name
= vcat [ ptext SLIT("Illegal family instance for") <+>
...
...
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