Patrick Thomson
15508b1699
fix double-free that I introduced like a dummy
2019-01-18 18:17:27 -05:00
Rick Winfrey
c99dfc6d0f
Clean up old fixture
2019-01-18 14:09:00 -08:00
Rick Winfrey
b79638ab7d
Add string based private method spec for now
2019-01-18 14:08:48 -08:00
Rick Winfrey
30ef3ab52b
Imports
2019-01-18 14:08:36 -08:00
Patrick Thomson
25f54b1851
tests compile again
2019-01-18 16:12:56 -05:00
Timothy Clem
f23110a73a
Transition sexpression term rendering
2019-01-18 09:29:51 -08:00
Rick Winfrey
0639353cd1
Add private method fixture
2019-01-17 17:51:27 -08:00
Rick Winfrey
9c887e7eee
Ensure private static field definitions are not accessible by external member access
2019-01-17 17:21:16 -08:00
Rick Winfrey
a5fcc3f1df
Ensure private field definitions throw when accessed via external syntax
2019-01-17 17:17:53 -08:00
Timothy Clem
15643e1d4f
Switch over ToCDiffRenderer (will fix the tests next)
2019-01-17 15:58:49 -08:00
Timothy Clem
d8ef1c1f40
Fix up tests
2019-01-17 15:36:56 -08:00
Timothy Clem
e3afd9d684
Symbol rendering is entirely on the new path
2019-01-17 15:13:39 -08:00
Rick Winfrey
4998421038
Compare directly against SomeError ...
rather than String
values
...
Co-Authored-By: Rob Rix <robrix@github.com>
2019-01-17 14:02:54 -08:00
Rick Winfrey
c7b1d13ab0
Compare against strings
2019-01-17 12:50:33 -08:00
Rick Winfrey
d4abe75456
Merge branch 'master' into visibility-resolution
2019-01-16 18:31:44 -08:00
Rick Winfrey
bf3ff6154a
Update tests for new AccessControl / Relation split
2019-01-16 18:20:33 -08:00
Rick Winfrey
12e63cac6d
Comment this for now
2019-01-16 18:19:51 -08:00
Ayman Nadeem
896cfe983c
Reference Data.Abstract.Value.Concrete and not Control.Abstract.Value
2019-01-15 16:54:00 -05:00
Ayman Nadeem
2f29c9a566
disambiguate
2019-01-15 16:47:40 -05:00
Ayman Nadeem
b1b014a993
fix conflicts
2019-01-15 13:20:48 -05:00
Rick Winfrey
2a4cc4eab2
Update example
2019-01-14 15:21:25 -08:00
Patrick Thomson
0eb3ea5bb6
Sanity, lint, and documentation pass.
2019-01-14 11:06:17 -05:00
Patrick Thomson
3728044fcc
the Present pattern comes in handy again
2019-01-11 12:33:33 -05:00
Patrick Thomson
1f4a24b569
Merge remote-tracking branch 'origin/master' into indexer-prototype
2019-01-11 12:28:29 -05:00
Patrick Thomson
34cfa42584
rename spec and add toByteString
2019-01-11 12:27:47 -05:00
Patrick Thomson
f750f2952a
Remove 'both' function.
2019-01-10 15:53:15 -05:00
Patrick Thomson
2e66bc3443
Simplify Data.Functor.Both.
...
Though the previous definition (a type synonym that wrapped `Join (,)`)
was clever, it required a number of orphan instances, as well as an extra
`both` function to simulate a `Both` constructor. Using an ordinary data
structure removes the need for orphan instances.
2019-01-08 17:34:47 -05:00
Rick Winfrey
b1784c0058
WIP: this currently fails to compile but indicates what I would like to destructure and assert against
2018-12-20 17:05:50 -08:00
Rick Winfrey
8431d62b5f
Update Evaluator.Spec with new Visibility
2018-12-20 17:03:32 -08:00
Rick Winfrey
24a386c2ff
Fix Listable1 instance for Visibility
2018-12-20 17:03:17 -08:00
Rick Winfrey
dda77a80df
Update Listable1 instance for Declartion.Method
2018-12-19 13:19:55 -08:00
Rick Winfrey
5942249864
Define liftCons6
2018-12-19 13:19:38 -08:00
Rob Rix
f37b417fd9
Correct the EvaluatorSpec.
2018-12-18 11:19:47 -05:00
Rob Rix
6bce2b117f
Merge branch 'master' into factor-abstract-value-as-value-effects
2018-12-18 11:15:58 -05:00
Rick Winfrey
e58c21e457
Add failing accessibility test case
2018-12-14 17:06:29 -08:00
joshvera
dab7c6d86a
Revert changes to class1.ts
2018-12-13 19:05:11 -05:00
joshvera
4afe93a97d
Rename __semantic_self to __self
2018-12-13 18:14:13 -05:00
Rick Winfrey
76f4e2bc87
Add public field test for TypeScript
...
Co-Authored-By: Josh Vera <vera@github.com>
2018-12-13 14:20:42 -08:00
Rick Winfrey
dd0a85a1db
Update to use new Relation
for declare
2018-12-13 14:17:39 -08:00
Rick Winfrey
006ad8085d
💅 alignment
2018-12-13 13:41:45 -08:00
joshvera
a69991309c
Revert generic changes to class2.ts
...
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-13 13:14:56 -05:00
Rob Rix
ace844a004
Use the Float constructor.
2018-12-13 11:34:56 -05:00
Rob Rix
916e0acf26
Fix ambiguous references to the Integer constructor.
2018-12-13 11:11:08 -05:00
Rob Rix
52863de0e3
Fix alignment.
2018-12-13 11:10:08 -05:00
Rob Rix
6f25df9080
🔥 reference to the Symbol constructor.
2018-12-13 11:07:18 -05:00
joshvera
09c3cce304
WIP
2018-12-12 17:13:52 -05:00
joshvera
de1719c128
Merge remote-tracking branch 'origin/master' into new-expressions
2018-12-12 15:59:41 -05:00
Rob Rix
d7f915373b
Merge branch 'master' into factor-abstract-value-as-value-effects
2018-12-12 14:53:41 -05:00
Patrick Thomson
02c66ad210
Merge branch 'master' into bump-ts-go-and-ruby
2018-12-12 12:23:40 -05:00
Patrick Thomson
3135426fcd
Use clone-example-repos to get Go and Ruby examples.
...
Go tests appear to be broken. Gonna file an issue about it.
2018-12-12 11:14:16 -05:00
Patrick Thomson
51331c505e
turn the last spec back on and add docs
2018-12-11 18:10:57 -05:00
Patrick Thomson
684a752773
remove Semantic.Util.Rewriting
2018-12-11 17:47:13 -05:00
Patrick Thomson
e329cbe89a
unify the last spec
2018-12-11 17:36:42 -05:00
Rob Rix
89793d2cf5
Fix the specs.
2018-12-11 17:21:57 -05:00
Patrick Thomson
1de0e9ef09
move specs around
2018-12-11 17:21:39 -05:00
Patrick Thomson
1f44f81acc
Unify Control.Rewriting and Control.Matching.
2018-12-11 17:12:24 -05:00
joshvera
18367e0ffb
fix type errors in tests
2018-12-11 16:51:21 -05:00
Josh Vera
d26c96b6bf
Merge branch 'master' into bump-ts-go-and-ruby
2018-12-11 15:52:02 -05:00
Patrick Thomson
6001ae38b5
Merge branch 'master' into bump-ts-go-and-ruby
2018-12-11 15:10:47 -05:00
joshvera
9508518acf
Merge remote-tracking branch 'origin/master' into new-expressions
2018-12-11 13:13:37 -05:00
Rob Rix
4c796843e7
🔥 all the non-empty lists in the specs.
2018-12-11 13:07:45 -05:00
Rob Rix
35fd93be1c
Merge branch 'master' into evaluate-to-values
2018-12-11 09:12:48 -05:00
joshvera
e0a11fac91
Fix heap test since we construct one for a console namespace now
2018-12-10 16:58:08 -05:00
joshvera
b12fbed41a
Merge remote-tracking branch 'origin/master' into heap-frames
2018-12-10 16:38:55 -05:00
Patrick Thomson
5a2ff17278
temporarily disable go and ruby tests until we can decide what to do
2018-12-10 16:28:38 -05:00
joshvera
5255562e05
Remove comments
2018-12-10 16:21:57 -05:00
joshvera
75ac094409
Update Greeter example to Adder
2018-12-10 16:21:42 -05:00
Rob Rix
7b5c01eae0
Add an Unspecialized constructor for ref.
2018-12-10 12:40:03 -05:00
joshvera
080ac13872
Regen unit tests
2018-12-10 12:15:54 -05:00
Rob Rix
96949fd9fb
🔥 a redundant import.
2018-12-10 11:38:33 -05:00
Rob Rix
799fe67107
Spacing.
2018-12-10 11:27:05 -05:00
Rob Rix
c8682806ef
🔥 a redundant import.
2018-12-10 10:48:34 -05:00
Rob Rix
cde42e1c64
Spacing.
2018-12-10 10:48:25 -05:00
Rob Rix
a839a19b54
🔥 some redundant imports of ValueRef.
2018-12-10 10:38:52 -05:00
joshvera
3bff825368
Add test files for new expressions
2018-12-07 16:55:38 -05:00
joshvera
1d49437996
Remove a.ts from test
...
This test doesn't use it
2018-12-07 16:55:01 -05:00
Rob Rix
0b36f9bad1
Module results hold values.
2018-12-07 15:23:03 -05:00
Rob Rix
111b9ec1c9
Fix up the evaluator spec.
2018-12-07 15:20:55 -05:00
Rob Rix
df4413f2a4
Calls return values.
2018-12-07 14:46:41 -05:00
Rob Rix
80ce9ab357
Functions return values.
2018-12-07 14:30:47 -05:00
Rob Rix
36a7c31166
LoopControl operates on values, not ValueRefs.
2018-12-07 12:52:51 -05:00
Rob Rix
09d616788e
Return holds a value, not a ValueRef.
2018-12-07 12:38:16 -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
8dbdc7ded2
Remove comments
2018-12-07 11:29:35 -05:00
joshvera
1b23d1d0dd
Merge remote-tracking branch 'origin/master' into heap-frames
2018-12-06 16:32:38 -05:00
Rob Rix
f2c9083708
Correct the span of the error in the Ruby spec.
...
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 13:02:18 -05:00
Rob Rix
7e20624506
Correct the test of bad exports.
...
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 12:59:16 -05:00
Rob Rix
f9c124f303
Replace the address pair Reader with separate CurrentFrame/Scope Readers.
2018-12-06 12:03:07 -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
a2026e8ada
Add valueRef tests back
2018-12-05 12:44:52 -05:00
joshvera
60ad7e7263
Bring back valueRef tests
2018-12-05 12:22:32 -05:00
joshvera
73ae9f85a1
Deref slots in evalRubyProject
...
Co-Authored-By: Rob Rix <rob.rix@github.com>
2018-12-05 12:12:13 -05:00
joshvera
073dca372d
Remove Data.Abstract.Environment
2018-12-05 10:20:35 -05:00
joshvera
781e52f843
Format and remove Environment
2018-12-05 10:14:16 -05:00
joshvera
26d3e5e449
Remove Environment
2018-12-05 09:42:00 -05:00
joshvera
4428cd0ab8
Implement ruby assignment as a separate syntax
...
So it can declare a variable in case it isn't shadowing one
2018-12-04 19:22:58 -05:00
joshvera
4f071f46ac
Remove valueRef tests
...
It's be nice to deref these in evaluate
2018-12-04 18:15:24 -05:00
joshvera
9f6579edaf
Fix call function test to test the value
...
Co-Authored-By: Rob Rix <rob.rix@github.com>
2018-12-04 17:14:50 -05:00
Rob Rix
f75c2b14a1
Build function scopes in the Evaluatable instances.
2018-12-04 14:55:25 -05:00
joshvera
debefff57c
Differentiate between Import and Superclass edge tests
2018-12-04 11:24:01 -05:00
joshvera
4b0a88881b
Expect dang method on Baz
...
And to choose the correct superclass method
2018-12-04 10:36:23 -05:00
joshvera
766f9bd018
Look in Classes for objectMembers
2018-12-04 10:35:52 -05:00
joshvera
7f4d4d0c40
Declare in concrete function again
...
Fixes subclass associated scope issue in subclasses.py
2018-12-03 17:58:48 -05:00
Rick Winfrey
33a16ee1a2
Clean up unused imports
2018-11-30 16:23:43 -08:00
Rick Winfrey
b20e2d3f7e
Export lists
2018-11-30 16:23:29 -08:00
Rick Winfrey
83a60c3fdf
Don't need Semigroup here
2018-11-30 16:23:10 -08:00
Rick Winfrey
eefd90ce39
Export list
2018-11-30 16:22:57 -08:00
joshvera
983165b437
Remove redundant side effect test
...
Covered by "side effect only imports dont expose exports"
2018-11-29 20:19:40 -05:00
joshvera
b35e1a0718
change Address to Slot in tests
2018-11-29 20:16:29 -05:00
joshvera
0cd64662f2
Rename Address to Slot
2018-11-29 20:07:30 -05:00
joshvera
17c4bf350c
Add lookupObjectMembers function to tests
2018-11-29 19:37:20 -05:00
joshvera
70fa31f11e
Fix expectation of sequence expression test
2018-11-29 18:38:32 -05:00
joshvera
96dde3fc9e
Change these to shouldContain
...
since print shows up otherwise
2018-11-29 13:16:34 -05:00
joshvera
ca402c9071
It's called xit
2018-11-29 13:05:54 -05:00
joshvera
6ad4cae09e
Disable the PHP tests
2018-11-29 13:02:12 -05:00
joshvera
68697419ec
Export traceShowM and traceM from SpecHelpers
2018-11-29 13:01:11 -05:00
joshvera
168c31525b
Fix type errors
2018-11-29 12:31:42 -05:00
joshvera
5f20ae654a
pass scopeAndFrame
2018-11-29 11:26:51 -05:00
joshvera
07c6003693
PHP tests
2018-11-29 11:10:16 -05:00
Rick Winfrey
9a7c739a24
Get Python tests compiling
2018-11-28 17:44:02 -08:00
Rick Winfrey
2b1ed70230
Fix up TypeScript tests
2018-11-28 17:39:01 -08:00
Rick Winfrey
068b79a923
Use qualified lookupDeclaration
2018-11-28 17:38:52 -08:00
Rick Winfrey
4931670c81
Fix up Ruby tests
2018-11-28 16:59:05 -08:00
Rick Winfrey
c350ae7377
TraceByIgnoringC
2018-11-28 16:55:26 -08:00
joshvera
96badd080f
fix this test
...
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-28 18:48:23 -05:00
joshvera
65a8949a06
Fix the shape of scope and heap outputs in testEvaluating
...
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-28 18:47:10 -05:00
joshvera
456efeca9d
Change the order of ModuleResult
2018-11-28 17:27:42 -05:00
Rick Winfrey
3969261554
Merge branch 'heap-frames' of https://github.com/github/semantic into heap-frames
2018-11-27 13:32:51 -08:00
Rob Rix
1d86bdb6ef
Merge branch 'master' into minor-symbols-improvements
2018-11-27 15:17:05 -05:00
joshvera
b6e789fff7
Use a Reader for the scope address and frame address
...
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-27 14:16:27 -05:00
Rick Winfrey
d44169b6f6
Merge branch 'master' into heap-frames
2018-11-27 08:32:00 -08:00
joshvera
fd516f0573
Fix Delete test since JS delete deletes the slot
2018-11-27 11:14:21 -05:00
joshvera
2b11d7aa2a
Fix up python test and function args
2018-11-26 20:07:37 -05:00
Timothy Clem
f15851eed8
Demonstrate that we can pick out classes through ScopeResolution
2018-11-26 14:37:56 -08:00
Rob Rix
51d5719632
Decode the bytes in Verbatim.
2018-11-26 15:19:12 -05: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
799baa9415
Enable go import tests
...
Co-Authored-By: Rob Rix <rob.rix@github.com>
2018-11-26 13:29:59 -05:00
joshvera
7ade83a367
objectMembers
...
Co-Authored-By: Rob Rix <rob.rix@github.com>
2018-11-26 13:06:01 -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
4f1d67f172
Fix typescript tests
2018-11-16 18:53:57 -05:00
joshvera
21b211a4f4
fix qualified imports test
2018-11-16 18:19:18 -05:00
joshvera
ea7a576c31
fix imports with aliased symbols test
2018-11-15 19:45:24 -05:00
joshvera
64786d30f9
Declaration positions are 0 indexed
2018-11-15 19:35:46 -05:00
joshvera
d7db6d3cbc
docs
2018-11-15 19:30:59 -05:00
joshvera
2f32fd6f2b
fix empty heap test
2018-11-15 18:44:47 -05:00
Rick Winfrey
66d3044951
Merge branch 'master' into heap-frames
2018-11-15 13:44:06 -08:00
joshvera
393da1897b
Test position of slots
...
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-15 14:39:41 -05:00
joshvera
b0966e0e3b
valueRef should be a Unit
2018-11-15 13:32:58 -05: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
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
Timothy Clem
1d23968c53
Fix tests
2018-11-13 14:59:20 -08: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
Timothy Clem
2e1626d949
Make symbols output also return partial results
2018-11-13 11:02:23 -08: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
Timothy Clem
57f284f847
Streamline the declarations for toc summaries
2018-11-08 08:33:26 -08: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
Timothy Clem
8c0dd6d3b5
Just return the first line if function defs span multiple lines
2018-11-07 11:48:50 -08: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
Timothy Clem
343289f1c5
Merge remote-tracking branch 'origin/master' into docstrings-round2
2018-11-06 09:17:49 -08:00
Patrick Thomson
bdc5db555b
rename and prune
2018-11-05 16:56:49 -05: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
Timothy Clem
0a9034e28f
Space and docs
2018-11-05 07:57:21 -08: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
0f56f33f24
Introduce some symbol/tags tests
2018-11-02 13:55:30 -07: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
Josh Vera
9f22607fc0
Merge branch 'master' into diff-via-fused-effects
2018-11-01 22:21:46 -04:00
Timothy Clem
4ef4c63851
I changed functions in python that don't have annotations
2018-11-01 17:48:27 -07: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