1
1
mirror of https://github.com/github/semantic.git synced 2024-12-21 05:41:54 +03:00
Commit Graph

801 Commits

Author SHA1 Message Date
joshvera
09c3cce304 WIP 2018-12-12 17:13:52 -05:00
joshvera
9508518acf Merge remote-tracking branch 'origin/master' into new-expressions 2018-12-11 13:13:37 -05:00
joshvera
b12fbed41a Merge remote-tracking branch 'origin/master' into heap-frames 2018-12-10 16:38:55 -05:00
joshvera
75ac094409 Update Greeter example to Adder 2018-12-10 16:21:42 -05:00
joshvera
080ac13872 Regen unit tests 2018-12-10 12:15:54 -05:00
joshvera
3bff825368 Add test files for new expressions 2018-12-07 16:55:38 -05:00
Patrick Thomson
0d361e9b0b Add ZSuper syntax node (#2292)
Previously, invocations of `super` were captured as an `Identifier`.
It is straightforward enough to return a ZSuper instead.
2018-12-07 12:21:32 -05:00
joshvera
1b23d1d0dd Merge remote-tracking branch 'origin/master' into heap-frames 2018-12-06 16:32:38 -05:00
joshvera
52c685d30f Implement default export instance 2018-12-05 15:45:20 -05:00
joshvera
eae6b7c8b3 Add tests for QualifedExportFrom 2018-12-05 15:07:37 -05:00
joshvera
17c4bf350c Add lookupObjectMembers function to tests 2018-11-29 19:37:20 -05:00
Timothy Clem
f15851eed8 Demonstrate that we can pick out classes through ScopeResolution 2018-11-26 14:37:56 -08:00
joshvera
0186178ce1 Add import across modules test back
Co-Authored-By: Rob Rix <rob.rix@github.com>
2018-11-26 13:33:28 -05:00
joshvera
cda046910a Add Bar call back in fixtures
Co-Authored-By: Rob Rix <rob.rix@github.com>
2018-11-26 13:30:19 -05:00
joshvera
f1ea66012b Initialize the slots of a frame when creating it 2018-11-20 20:03:17 -05:00
joshvera
b08d426f9c Add lets to test typescript files 2018-11-16 18:57:26 -05:00
joshvera
ea7a576c31 fix imports with aliased symbols test 2018-11-15 19:45:24 -05:00
Rick Winfrey
66d3044951 Merge branch 'master' into heap-frames 2018-11-15 13:44:06 -08:00
joshvera
4769c2cb24 regenerate javascript fixtures
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-15 13:27:37 -05:00
joshvera
5c4dde8d54 fix up test fixtures
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-15 13:24:46 -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
4fed5eb1e7 export baz in a.ts 2018-11-13 12:06:05 -05: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
Timothy Clem
8c0dd6d3b5 Just return the first line if function defs span multiple lines 2018-11-07 11:48:50 -08:00
Timothy Clem
343289f1c5 Merge remote-tracking branch 'origin/master' into docstrings-round2 2018-11-06 09:17:49 -08:00
Timothy Clem
e14f59b165 Re-generate test with addition of statements in python assignment 2018-11-05 13:12:50 -08:00
Timothy Clem
bdb7ee0430 More tests 2018-11-05 13:09:37 -08:00
Timothy Clem
d0fc88efee Some python specs for tags 2018-11-05 12:33:23 -08: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
0f56f33f24 Introduce some symbol/tags tests 2018-11-02 13:55:30 -07:00
Timothy Clem
018dc73af9 Python assignment: conditionally include annotation on functions 2018-11-02 12:39:38 -07:00
Timothy Clem
4ef4c63851 I changed functions in python that don't have annotations 2018-11-01 17:48:27 -07:00
Patrick Thomson
22cf72c20f Merge branch 'master' into term-rewriting-mk2 2018-09-19 11:51:28 -04:00
Timothy Clem
a25e848c9f Fix assigning comments with multiple elif in Python 2018-09-18 10:43:18 -07:00
Patrick Thomson
6e65f9060d Merge remote-tracking branch 'origin/master' into term-rewriting-mk2 2018-09-18 13:31:58 -04:00
Timothy Clem
344873f0f7 Go corpus back the other way? 2018-09-17 11:26:47 -07:00
Timothy Clem
c97d43aaca Refinement of types is Go 2018-09-17 09:56:31 -07:00
Timothy Clem
883d4586c0 TypeScript fixes for more type identifiers 2018-09-17 09:48:47 -07:00
Timothy Clem
80dfd75635 Ruby corpus changes 2018-09-17 09:30:03 -07:00
Patrick Thomson
ec7ee9da62 improve JSON formatting so the diff doesn't whine 2018-09-17 10:52:28 -04:00
Patrick Thomson
d1cc400dc0 add spec file 2018-09-14 13:10:22 -04:00
Timothy Clem
addc6a6c6f Fix a few more go fixtures 2018-09-10 15:41:16 -07:00
Timothy Clem
ceed3b0ae4 Fix a few test fixtures due to structure changes 2018-09-10 11:15:34 -07:00
Timothy Clem
0931fc81f2 Add a simple roundtrip spec for python printing 2018-08-28 10:31:54 -07:00
Timothy Clem
68a93c6740 Python example code 2018-08-28 09:12:56 -07:00
Timothy Clem
9a347c9d27 Tokenize and print subtraction as well 2018-08-24 14:07:49 -07:00
Timothy Clem
1bb0e3c149 Handle printing binary multiplication with precedence! 2018-08-24 10:59:09 -07:00
Timothy Clem
e9e8edbebe Dedicated util for rewriting 2018-08-24 10:35:38 -07:00