-
Notifications
You must be signed in to change notification settings - Fork 691
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Make readFields warn about inconsistent indentation.
This is affect of using indentOfAtLeast method: any indentation greater than current offset is fine. That behavior is desirable to parsing multiline field contents, but it is a bit surprising for fields, which we expect to be aligned. Such insonsistency seems to be always a mistake, and it's easy to fix once a machine points it out.
- Loading branch information
Showing
7 changed files
with
141 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
73 changes: 73 additions & 0 deletions
73
Cabal-tests/tests/ParserTests/regressions/decreasing-indentation.cabal
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
name: RSA | ||
category: Cryptography, Codec | ||
version: 1.0.0 | ||
license: BSD3 | ||
license-file: LICENSE | ||
author: Adam Wick <awick@galois.com> | ||
maintainer: Adam Wick <awick@galois.com> | ||
stability: stable | ||
build-type: Simple | ||
cabal-version: >= 1.2 | ||
tested-with: GHC ==6.8.0 | ||
synopsis: Implementation of RSA, using the padding schemes of PKCS#1 v2.1. | ||
description: This library implements the RSA encryption and signature | ||
algorithms for arbitrarily-sized ByteStrings. While the | ||
implementations work, they are not necessarily the fastest ones | ||
on the planet. Particularly key generation. The algorithms | ||
included are based of RFC 3447, or the Public-Key Cryptography | ||
Standard for RSA, version 2.1 (a.k.a, PKCS#1 v2.1). | ||
|
||
Flag IncludeMD5 | ||
Description: Include support for using MD5 in the various crypto routines. | ||
|
||
Flag UseBinary | ||
Description: Use the binary package for serializing keys. | ||
|
||
Library | ||
build-depends: base >= 3, bytestring, SHA, random | ||
GHC-Options: -O2 -Wall -fno-ignore-asserts -fno-warn-orphans | ||
if flag(UseBinary) | ||
build-depends: binary | ||
CPP-Options: -DUSE_BINARY | ||
if flag(IncludeMD5) && flag(UseBinary) | ||
build-depends: pureMD5 | ||
CPP-Options: -DINCLUDE_MD5 | ||
exposed-modules: Codec.Crypto.RSA | ||
extensions: CPP, BangPatterns, PatternSignatures | ||
|
||
Executable test_rsa | ||
build-depends: base >= 3, bytestring, QuickCheck, SHA | ||
GHC-Options: -O2 -Wall -fno-ignore-asserts -fno-warn-orphans | ||
CPP-Options: -DRSA_TEST | ||
Main-Is: Test.hs | ||
Other-Modules: Codec.Crypto.RSA | ||
extensions: CPP, BangPatterns, PatternSignatures | ||
|
||
-- The above is actual RSA-1.0.0 cabal file. The following up is just some weird stuff | ||
-- Note that here main-is is part of GHC-Options field. | ||
Executable warnings | ||
build-depends: base < 5 | ||
GHC-Options: -Wall | ||
main-is: warnings.hs | ||
Other-Modules: FooBar | ||
|
||
-- Increasing indentation is also possible if we use braces to delimit field contents. | ||
Executable warnings2 | ||
build-depends: { base <5 } | ||
main-is: { warnings2.hs } | ||
Other-Modules: FooBar | ||
|
||
-- another common mistake is something like below, | ||
-- where a sub-section is over-indented | ||
flag splitBase | ||
|
||
Executable warnings3 | ||
if flag(splitBase) | ||
build-depends: base >= 3, parsec, array, directory, old-time | ||
else | ||
build-depends: base < 3, haskell98, parsec | ||
|
||
Main-Is: warnings3.hs | ||
Other-Modules: | ||
Graphics.UI.WXCore | ||
Graphics.UI.WXCore.Wx |
16 changes: 16 additions & 0 deletions
16
Cabal-tests/tests/ParserTests/regressions/decreasing-indentation.check
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
decreasing-indentation.cabal:40:3: Inconsistent indentation at lines 40, 41, 42, 43, 44, 50, 52, 57, 58, 70, 71 | ||
No 'main-is' field found for executable warnings | ||
Deprecated extensions: 'PatternSignatures'. Instead of 'PatternSignatures' use 'ScopedTypeVariables'. | ||
'ghc-options: -O2' is rarely needed. Check that it is giving a real benefit and not just imposing longer compile times on your users. | ||
These packages miss upper bounds: | ||
- QuickCheck | ||
- SHA | ||
- array | ||
- binary | ||
- bytestring | ||
- directory | ||
- old-time | ||
- parsec | ||
- pureMD5 | ||
- random | ||
Please add them, using `cabal gen-bounds` for suggestions. For more information see: https://pvp.haskell.org/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
synopsis: Warn about inconsistent indentation | ||
packages: Cabal-syntax | ||
prs: #TODO | ||
|
||
description: | ||
Make readFields warn about inconsistent indentation. | ||
|
||
This is affect of using indentOfAtLeast method: any indentation greater than current offset is fine. | ||
|
||
That behavior is desirable to parsing multiline field contents, but it is a bit surprising for fields, which we expect to be aligned. | ||
|
||
Such insonsistency seems to be always a mistake, and it's easy to fix once a machine points it out. |