1
1
mirror of https://github.com/github/semantic.git synced 2024-11-28 18:23:44 +03:00
Commit Graph

3804 Commits

Author SHA1 Message Date
joshvera
5c4dde8d54 fix up test fixtures
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-15 13:24:46 -05:00
joshvera
80f7c6585d Fix up tests
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-15 13:17:22 -05:00
joshvera
c7040f6131 fix test type errors
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-14 19:46:30 -05:00
joshvera
dba7f17d48 spoke too soon
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-14 19:20:35 -05:00
joshvera
680681f944 fix up EvalError in tests
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-14 19:19:42 -05:00
joshvera
8a4aa24889 Add a function call example
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-14 19:18:52 -05:00
joshvera
fb5e4400a1 modify test files
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-13 14:09:20 -05:00
joshvera
ddb9b31a09 Add imports functions test
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-13 14:09:13 -05:00
joshvera
eb54f7743f add some heap tests 2018-11-13 12:17:52 -05:00
joshvera
71a73150c9 Ensure we can't look up baz from side effect imports 2018-11-13 12:06:22 -05:00
joshvera
4fed5eb1e7 export baz in a.ts 2018-11-13 12:06:05 -05:00
Rick Winfrey
9d54e063ac First real passing test 🎉
Co-Authored-By: Josh Vera <vera@github.com>
2018-11-09 12:48:11 -08:00
joshvera
f9c6590f61 Remove baz export
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-09 13:05:48 -05:00
joshvera
4c02f11edc add main3.ts
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-09 13:05:26 -05:00
joshvera
b28876b8d9 Add imports functions test
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-09 13:05:14 -05:00
joshvera
ce91cf71db Remove self argument from call effect
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-09 13:04:52 -05:00
joshvera
eebcc9c9ee Fix up runFunction carriers
function effect now takes parameters as terms

Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-08 20:47:04 -05:00
joshvera
f6bfec2d96 the tests compile! 2018-11-08 18:22:35 -05:00
joshvera
66db8a860c python imports test
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-08 13:04:17 -05:00
joshvera
9fbede0b75 Fix up typescript tests
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-08 13:04:04 -05:00
joshvera
20cf855423 return a list of values from lookupDeclaration
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-08 12:56:08 -05:00
joshvera
22bdbdfafe Fix up import conflicts
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-08 12:55:42 -05:00
Rick Winfrey
1cfd61ca0a Fixup a few more tests 2018-11-07 16:29:33 -08:00
joshvera
0c35a8a95c Start fixing up tests
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-07 18:27:56 -05:00
joshvera
f51d3a90a8 Run ScopeGraph and Heap in tests
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-07 14:09:18 -05:00
joshvera
1a6d7e77f3 Remove EnvironmentError from Evaluator/Spec
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-07 14:09:01 -05:00
Patrick Thomson
bdc5db555b rename and prune 2018-11-05 16:56:49 -05:00
Patrick Thomson
292a268b00 better name for infix operator 2018-11-04 14:46:19 -05: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
018dc73af9 Python assignment: conditionally include annotation on functions 2018-11-02 12:39:38 -07:00
Josh Vera
9f22607fc0 Merge branch 'master' into diff-via-fused-effects 2018-11-01 22:21:46 -04:00
Patrick Thomson
514dacf756 Merge branch 'master' into add-data-coerce-to-prologue 2018-11-01 12:51:21 -04:00
Rob Rix
98805db943 Merge branch 'master' into diff-via-fused-effects 2018-10-31 18:39:24 -04: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
Patrick Thomson
d473b9e1af add Data/Abstract/Name/Spec 2018-10-31 13:19:43 -04:00
Patrick Thomson
b0e6190dbf add Data/Range/Spec 2018-10-31 12:46:52 -04:00
Patrick Thomson
cd05aaa7a5 add Data/Graph/Spec 2018-10-31 12:30:56 -04:00
Patrick Thomson
27a9ae546a Merge branch 'master' into add-data-coerce-to-prologue 2018-10-31 09:09:37 -04:00
Rob Rix
c95822894e Merge branch 'master' into diff-via-fused-effects 2018-10-30 23:03:50 -04:00
Rob Rix
74f183921a Merge branch 'master' into break-dependency-of-config-on-SHA 2018-10-30 15:40:48 -04:00
Rob Rix
994464105c Merge branch 'master' into diff-via-fused-effects 2018-10-30 15:40:42 -04:00
Patrick Thomson
c4698ff96c Merge branch 'master' into add-data-coerce-to-prologue 2018-10-30 15:40:14 -04:00
Patrick Thomson
3caa753808 Add Data.Coerce to the Prologue.
This is ubiquitous enough that we should just export it.
2018-10-30 15:12:45 -04:00
Rob Rix
4ec497b793 Use runTask when we aren’t setting the Options. 2018-10-30 14:49:07 -04:00
Patrick Thomson
6b476d0eb7 Add 'purely' combinator to Matching and rename it.
@tclem and I found ourselves wanting an arrow-like combinator that
promotes a given function to a Matcher. While I think an Arrow
instance is going a little overboard, there's no harm in adding a
'purely' function, the naming of which is commensurate with the
rewriting DSL.

This also renames the module, since there's not anything really
abstract about matching (indeed, it is quite concrete).
2018-10-30 11:04:11 -04:00
Rob Rix
898fa73969 Hide the import of Diff. 2018-10-29 11:19:40 -04:00
Rob Rix
131cae4d7b Merge branch 'master' into higher-order-effects 2018-10-24 14:04:13 -04:00
Rob Rix
15a8917c84 Simplify the FunctionC carrier instances. 2018-10-24 11:00:54 -04:00
Rob Rix
83ac081cec SomeError. 2018-10-24 10:32:05 -04:00