Rob Rix
2ee79706e3
Whitelist attemptUnsafeArithmetic in the hlint config.
2018-11-05 09:51:56 -05:00
Rob Rix
68d87314ce
Move the reduce duplication annotation into the hlint config.
2018-11-05 09:51:56 -05:00
Rob Rix
4f92337221
Move the ignore use . annotation into the hlint config.
2018-11-05 09:51:56 -05:00
Rob Rix
1e5920e318
Move the ignore eta reduce thing into the hlint config.
2018-11-05 09:51:04 -05:00
Rob Rix
fe9f0b0aeb
🔥 a redundant hlint annotation.
2018-11-05 09:49:34 -05:00
Patrick Thomson
292a268b00
better name for infix operator
2018-11-04 14:46:19 -05:00
Patrick Thomson
a84b25ad6e
remove Data.Algebra import
2018-11-04 14:39:38 -05:00
Patrick Thomson
8e4f9ea119
better docs
2018-11-02 19:43:12 -04:00
Patrick Thomson
7ea52dbfe3
Give Control.Matching API better ergonomics.
...
Given that @tclem and I have found the matcher API frustrating, I've
taken a stab at improving its ergonomics, and I've found some success
in separating composition of matchers from predicate-based narrowing
thereof.
The biggest change here is the elimination of the old `match`
combinator, which proved to be clumsy in that it complected narrowing
and composition. Top-down matching combinators are now written with
the `need` combinator and the `>>>` combinator, which is more readable
and more versatile. Here's a matcher that accepts functions with
Python docstrings:
```haskell
docstringMatcher :: ( Decl.Function :< fs
, [] :< fs
, Lit.TextElement :< fs
, term ~ Term (Sum fs) ann
) => Matcher term term
docstringMatcher = target <*
(need Decl.functionBody
>>> narrow @[]
>>> mhead
>>> narrow @Lit.TextElement
>>> ensure Lit.isTripleQuoted))
```
Pretty readable, right? Each step of the tree regular expression -
choosing function bodies, ensuring said bodies are lists, examining
the first element, and choosing only TextElements containing
triple-quoted strings - is made implicit. The old way would have
looked something like this:
```haskell
docstringMatcher = target <* match Decl.functionBody
$ narrow
$ matchM listToMaybe
$ target <* ensure Lit.isTripleQuoted
```
which is a good deal more disorganized and less flexible
in the quite-common case of applying functions during a
matching pass. Separating the act of composition from
function application is a big win here.
Further comments are inline.
2018-11-02 19:25:29 -04:00
Timothy Clem
36c7bcd678
Merge remote-tracking branch 'origin/master' into docstrings-round2
2018-11-02 13:58:47 -07:00
Timothy Clem
8d12b5c242
Fix declarations to make tests pass
2018-11-02 13:55:55 -07:00
Timothy Clem
5b9b0daee3
Helper for testing ruby tags
2018-11-02 13:55:46 -07:00
Timothy Clem
0f56f33f24
Introduce some symbol/tags tests
2018-11-02 13:55:30 -07:00
Timothy Clem
bf90ef8e45
Did this
2018-11-02 13:54:55 -07:00
Patrick Thomson
a720cf06d4
Merge pull request #2250 from github/python-functions-wo-annotations
...
Python assignment: conditionally include annotation on functions
2018-11-02 16:42:25 -04:00
Timothy Clem
223298b86a
Merge remote-tracking branch 'origin/master' into docstrings-round2
2018-11-02 12:54:21 -07:00
Timothy Clem
018dc73af9
Python assignment: conditionally include annotation on functions
2018-11-02 12:39:38 -07:00
Timothy Clem
a87c526977
No errors, just keep trying
2018-11-02 12:30:43 -07:00
Patrick Thomson
a2ad6664ee
Merge pull request #2226 from github/add-tsparse-quiet-flag
...
Add a --quiet flag to the ts-parse command.
2018-11-02 14:09:07 -04:00
Patrick Thomson
b4a469c706
Merge branch 'master' into add-tsparse-quiet-flag
2018-11-02 13:07:58 -04:00
Patrick Thomson
0a117222c1
Merge branch 'master' into add-explicit-assignment-timeout
2018-11-02 11:10:09 -04:00
Patrick Thomson
b9a742e6db
address @rewinfrey's suggestion
2018-11-02 11:03:57 -04:00
Patrick Thomson
9329531c23
Merge pull request #2237 from github/diff-via-fused-effects
...
Diff via fused effects
2018-11-02 11:01:45 -04:00
Patrick Thomson
a62840c58d
Be commensurate with parse --quiet
2018-11-02 11:00:09 -04:00
Patrick Thomson
bd51a186e7
Merge remote-tracking branch 'origin/master' into add-tsparse-quiet-flag
2018-11-02 09:16:28 -04:00
Josh Vera
9f22607fc0
Merge branch 'master' into diff-via-fused-effects
2018-11-01 22:21:46 -04:00
Patrick Thomson
7e09be9b86
Merge pull request #2245 from github/add-data-coerce-to-prologue
...
Add Data.Coerce to the Prologue.
2018-11-01 21:26:52 -04:00
Timothy Clem
4ef4c63851
I changed functions in python that don't have annotations
2018-11-01 17:48:27 -07:00
Timothy Clem
55787183b9
Use evalState
2018-11-01 17:40:58 -07:00
Timothy Clem
12a4fc5073
Turn this on for classes and Modules
2018-11-01 17:40:49 -07:00
Timothy Clem
d26cd0bf1a
No need for State in this fold
2018-11-01 17:16:34 -07:00
Timothy Clem
63e13ee20c
Merge remote-tracking branch 'origin/master' into docstrings-round2
2018-11-01 16:04:15 -07:00
Timothy Clem
02c9074b7e
Format, hide lang
2018-11-01 16:03:12 -07:00
Timothy Clem
92f9f8373e
Render to same output format, respecting field choice
2018-11-01 15:48:47 -07:00
Timothy Clem
806c5c417b
Include a place for span
2018-11-01 15:48:35 -07:00
Timothy Clem
1f6a7b9e48
Move HasTextElement
2018-11-01 14:49:35 -07:00
Timothy Clem
59bdb77fc4
Import cleanup
2018-11-01 14:39:15 -07:00
Timothy Clem
460ea0cf67
Rough, but WORKING symbols output with doc strings
2018-11-01 14:31:19 -07:00
Timothy Clem
f860d4aa66
Add in util for Go defs
2018-11-01 13:20:50 -07:00
Patrick Thomson
514dacf756
Merge branch 'master' into add-data-coerce-to-prologue
2018-11-01 12:51:21 -04:00
Timothy Clem
24a9b2b6ea
s/Tag/Symbol
2018-11-01 07:56:28 -07:00
Timothy Clem
77f5b0a1d6
Introduce new renderToSymbols
2018-11-01 07:55:34 -07:00
Rob Rix
98805db943
Merge branch 'master' into diff-via-fused-effects
2018-10-31 18:39:24 -04:00
Rob Rix
96cbc0ca8f
Merge pull request #2248 from github/move-doctests
...
Remove doctest component and move doctests to specs.
2018-10-31 18:39:08 -04:00
Timothy Clem
7aaeca419f
Don't need this
2018-10-31 15:02:14 -07:00
Timothy Clem
c1d3f60073
Make use of language
2018-10-31 15:01:39 -07:00
Patrick Thomson
aaf7bba187
And kill Doctests.hs.
2018-10-31 15:56:57 -04:00
Patrick Thomson
b9cf8f73c6
Environment and App.
2018-10-31 15:47:30 -04:00
Timothy Clem
e18c65ce47
tag doesn't need to be a method
2018-10-31 12:27:01 -07:00
Timothy Clem
0111afde81
Fix up ConstructorNameStrategy for TermF
2018-10-31 12:26:38 -07:00