1
1
mirror of https://github.com/github/semantic.git synced 2024-12-27 00:44:57 +03:00
Commit Graph

5709 Commits

Author SHA1 Message Date
joshvera
ec5c2b13c0 Add instance scope to Class 2018-12-11 17:55:35 -05:00
joshvera
9508518acf Merge remote-tracking branch 'origin/master' into new-expressions 2018-12-11 13:13:37 -05:00
Rob Rix
35fd93be1c Merge branch 'master' into evaluate-to-values 2018-12-11 09:12:48 -05:00
joshvera
6ba7719c79 Add comments 2018-12-10 16:57:20 -05:00
joshvera
38c0c72654 Add Namespace to scopedEnvironment 2018-12-10 16:53:16 -05:00
joshvera
aa68bf8b34 Add console.log back to TypeScript 2018-12-10 16:53:05 -05:00
joshvera
2eb049417b cleanup 2018-12-10 16:35:23 -05:00
joshvera
1961a5e1df Move reference call to This and out of MemberAccess 2018-12-10 16:20:53 -05:00
joshvera
c8b7c1c63e Rename Address errors to Slot errors 2018-12-10 16:20:30 -05:00
Rob Rix
efcb65966b 🔥 the RefError constructor. 2018-12-10 12:40:45 -05:00
Rob Rix
857d2e3b24 Throw RefUnspecializedError in the default implementation of ref. 2018-12-10 12:40:16 -05:00
Rob Rix
7b5c01eae0 Add an Unspecialized constructor for ref. 2018-12-10 12:40:03 -05:00
Rob Rix
3d962c40c7 defineBuiltIn already returns (). 2018-12-10 11:38:07 -05:00
Rob Rix
fa950f3239 🔥 Data.Abstract.Ref. 2018-12-10 11:37:00 -05:00
Rob Rix
8e585284f6 Specialize ref for Sum. 2018-12-10 11:33:27 -05:00
Rob Rix
240fea3ca8 Specialize ref for TermF. 2018-12-10 11:33:07 -05:00
Rob Rix
85ad3230be Simplify a few Evaluatable instances. 2018-12-10 11:12:04 -05:00
Rob Rix
13e584ce5a 🔥 a bunch of redundant case expressions. 2018-12-10 11:08:07 -05:00
Rob Rix
381cdcb951 🔥 redundant parens. 2018-12-10 11:01:23 -05:00
Rob Rix
e58d2d7cf2 Evaluate MemberAccess using ref. 2018-12-10 11:01:14 -05:00
Rob Rix
2c21e347c2 🔥 a redundant return. 2018-12-10 10:54:41 -05:00
Rob Rix
75b633b499 Don’t re-export ValueRef. 2018-12-10 10:49:43 -05:00
Rob Rix
e0bd50a328 ReferenceError can be resumed with a slot. 2018-12-10 10:45:42 -05:00
Rob Rix
4cfbfec03c 🔥 QualifiedImportError. 2018-12-10 10:41:49 -05:00
Rob Rix
dd2ef7bbdb Evaluate to values. 2018-12-10 10:29:41 -05:00
Rob Rix
826da6d8ca Pass eval an evaluator producing values. 2018-12-10 10:12:09 -05:00
Rob Rix
8caee1226d Evaluate Statement.Assignment using ref. 2018-12-10 09:53:12 -05:00
Rob Rix
0adaad3ba0 Evaluate Expression.Delete using ref. 2018-12-10 09:52:51 -05:00
Rob Rix
3d2ced84c3 Make ref throw the error. 2018-12-10 09:51:08 -05:00
Rob Rix
9116072186 Make the ref parameter throw on failure. 2018-12-10 09:44:54 -05:00
Rob Rix
e0e8b1b566 Add a RefError constructor to EvalError. 2018-12-10 09:42:34 -05:00
Rob Rix
4c59a6bafa eval takes a reference evaluator. 2018-12-10 09:32:02 -05:00
joshvera
c0b1bdaf08 Add New instance 2018-12-07 17:57:30 -05:00
joshvera
283284e91e Add ConstructorError and ScopedEnvError 2018-12-07 17:57:20 -05:00
joshvera
04e257991a declaredName of New is its subject 2018-12-07 17:31:59 -05:00
joshvera
9586b476fd Assign New changes
and add MetaProperty
2018-12-07 17:31:44 -05:00
joshvera
59be0c0e00 Improve liftDeclaredName instance for Calls 2018-12-07 16:55:27 -05:00
Rob Rix
231e0f81b7 Give eval a dummy parameter. 2018-12-07 16:16:23 -05:00
Rob Rix
0cf03b6abe Give ref an extra parameter for the slot-recurrence function. 2018-12-07 16:00:53 -05:00
Rob Rix
9acacd0716 runFunction takes an evaluator producing values. 2018-12-07 14:49:37 -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
ed073ba245 While operates on values, not ValueRefs. 2018-12-07 12:59:01 -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
Rob Rix
d82d0ad584 Revert "Rename resolve to resolvePaths."
This reverts commit 6c2cd2a6c9a56956b6d6bae61510939b21f25080.
2018-12-07 11:46:01 -05:00
Rob Rix
3c2a4241e8 Rename resolve to ref. 2018-12-07 11:45:29 -05:00
Rob Rix
23e3a688f7 Resolve MemberAccesses. 2018-12-07 11:40:11 -05:00
Rob Rix
3fd19e07d8 Specialize resolve for Identifier. 2018-12-07 11:32:13 -05:00
Rob Rix
260a44e7a0 Constrain callers of resolve a little further. 2018-12-07 11:31:25 -05:00
Rob Rix
ca6fad7c06 resolve returns in Maybe. 2018-12-07 11:01:46 -05:00
Rob Rix
f59cdd394b Add a resolve method to Evaluatable with a (bad) default definition. 2018-12-07 10:34:40 -05:00
Rob Rix
adffd6b9c4 Rename resolve to resolvePaths. 2018-12-07 09:52:20 -05:00
joshvera
1b23d1d0dd Merge remote-tracking branch 'origin/master' into heap-frames 2018-12-06 16:32:38 -05:00
joshvera
192943889b delint 2018-12-06 16:16:25 -05:00
joshvera
14a47d8711 parens 2018-12-06 15:56:42 -05:00
joshvera
30cb4f43f6 Remove unused bind 2018-12-06 15:53:58 -05:00
Rob Rix
0b6e3430de Clarify that we’re returning the first path we find.
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 15:48:55 -05:00
Rob Rix
2cd7257429 Merge branch 'heap-frames' of https://github.com/github/semantic into heap-frames 2018-12-06 15:44:27 -05:00
Rob Rix
a4ec6dc3a8 Generalize foldrGraph to foldGraph producing a Monoidal value.
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 15:42:36 -05:00
joshvera
34d5825cf9 Implement Let 2018-12-06 15:29:30 -05:00
joshvera
61a0a9052f Fix tuple instance 2018-12-06 15:29:24 -05:00
joshvera
9b7670e655 Implement tuple eval 2018-12-06 15:22:33 -05:00
joshvera
5f395923a7 Implement Array eval 2018-12-06 15:22:06 -05:00
Rob Rix
664877024d Find paths uniformly using findPath.
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 15:18:39 -05:00
Rob Rix
e5c5d36c3c Define a function to find a path to a declaration through a graph.
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 15:11:22 -05:00
Rob Rix
db698dbd98 Build up paths using foldrGraph.
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 15:04:40 -05:00
Rob Rix
c278733fd7 Define a generic graph traversal operation.
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 15:02:59 -05:00
Rob Rix
adfcb37231 Move the Path instances into a deriving clause.
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 13:11:44 -05:00
Rob Rix
b28d877845 🔥 a redundant language extension.
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 13:09:35 -05:00
Rob Rix
dcd751f4b9 Define Path as an ordinary datatype.
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 13:08:56 -05:00
Rob Rix
79e235ce34 Derive the instances for ScopeGraph in a deriving clause.
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 13:06:24 -05:00
Rob Rix
1e7c8d63f6 Factor the module info & span into BaseError’s Eq1 instance.
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 13:02:37 -05:00
Rob Rix
5eb73810eb Show module info & span in BaseError.
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 12:59:00 -05:00
Rob Rix
f95b06a3b4 Don’t loop on cyclic graphs.
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 12:34:22 -05:00
Rob Rix
c486eb82ce Follow export edges. 2018-12-06 12:13:10 -05:00
Rob Rix
f9c124f303 Replace the address pair Reader with separate CurrentFrame/Scope Readers. 2018-12-06 12:03:07 -05:00
Rob Rix
74ca31af53 🔥 a bunch of uses of scoped type variables. 2018-12-06 11:45:13 -05:00
Rob Rix
454b9d669d Don’t traverse export edges.
Per discussion with @joshvera: https://github.slack.com/archives/C0E7PGQQ5/p1544111976406600

This makes the tests run again, tho two of them fail.
2018-12-06 11:22:15 -05:00
Rob Rix
0e4a91fc91 Add a convenience for constructing a path to a declaration. 2018-12-06 11:20:09 -05:00
Rob Rix
9375a82be2 Simplify in terms of an insertReference helper. 2018-12-06 11:14:35 -05:00
Rob Rix
b3ef26f301 Use insertScope here too. 2018-12-06 11:10:19 -05:00
Rob Rix
b47e28f278 Use insertScope. 2018-12-06 11:09:08 -05:00
Rob Rix
de416fa88c Use insertFrame in insertFrameLink. 2018-12-06 10:47:27 -05:00
Rob Rix
c23b587f80 Rename the Heap field to unHeap. 2018-12-06 10:45:36 -05:00
Rob Rix
8074a3a37f Realign some cases. 2018-12-06 10:40:50 -05:00
Rob Rix
15d53b25fa 🔥 a redundant do-block. 2018-12-06 10:39:56 -05:00
Rob Rix
b9b007277d 🔥 commented-out functionality. 2018-12-06 10:38:59 -05:00
Rob Rix
3b2c76c283 Customize the Show instance for Heap for brevity. 2018-12-06 10:38:40 -05:00
Rob Rix
113fb7ea1c Reformat Frame. 2018-12-06 10:33:06 -05:00
Rob Rix
fc19fa67db Use declareFunction to define both Function and Method evaluation. 2018-12-06 10:20:51 -05:00
Rob Rix
e65da03e85 No we should not. 2018-12-06 10:20:05 -05:00
Rob Rix
4913b252b8 Define a helper for declaring functions/methods. 2018-12-06 10:19:22 -05:00
Rob Rix
8ff61d8299 Simplify the ValueRoots instance for closures. 2018-12-06 10:09:50 -05:00
Rob Rix
46ab1d6b02 Use <$> again. 2018-12-05 15:56:00 -05:00
Rob Rix
7ca06eff7f Use <$>. 2018-12-05 15:55:41 -05:00
Rob Rix
cdb869e199 Functor law. 2018-12-05 15:55:13 -05:00
Rob Rix
0fe1f4db5f Use for_. 2018-12-05 15:54:22 -05:00
Rob Rix
a14cc79903 🔥 redundant parens. 2018-12-05 15:53:23 -05:00
Rob Rix
47c2dea759 Merge branch 'heap-frames' of https://github.com/github/semantic into heap-frames 2018-12-05 15:39:09 -05:00
Rob Rix
6bb5308697 Rename the ScopeGraph field to unScopeGraph. 2018-12-05 15:35:02 -05:00
Rob Rix
d98cb05d0b Pattern-match against the constructor. 2018-12-05 15:34:20 -05:00
Rob Rix
7badac6148 Spacing. 2018-12-05 15:32:18 -05:00
Rob Rix
0daef02edc Don’t use record wildcards to unpack ScopeGraph. 2018-12-05 15:32:06 -05:00
Rob Rix
dc2b94eef2 Align { to the next line. 2018-12-05 15:26:35 -05:00
Rob Rix
6bf9f08f63 🔥 a couple of redundant do-blocks. 2018-12-05 15:24:50 -05:00
Rob Rix
3d34922fe2 Tighten up reference with <$> and <|>. 2018-12-05 15:24:10 -05:00
Rob Rix
c90e1605fd Tighten up insertImportReference using <$> and <|>. 2018-12-05 15:20:08 -05:00
Rob Rix
12ccbf8f85 Move modifyReferences down. 2018-12-05 15:19:09 -05:00
Rob Rix
e8a9634339 Flip modifyReferences. 2018-12-05 15:18:53 -05:00
Rob Rix
1e12265292 Extract a function to modify a scope’s references. 2018-12-05 15:17:18 -05:00
Rob Rix
ebc1a83ed1 Factor out a common traverseEdges function. 2018-12-05 15:14:57 -05:00
joshvera
522c87e627 Merge branch 'heap-frames' of https://github.com/github/semantic into heap-frames 2018-12-05 15:09:46 -05:00
joshvera
eae6b7c8b3 Add tests for QualifedExportFrom 2018-12-05 15:07:37 -05:00
Rob Rix
05392f2296 simplify lookupScopePath using <$>. 2018-12-05 14:53:42 -05:00
Rob Rix
98107e05be Correct associatedScope using >>=. 2018-12-05 14:48:44 -05:00
Rob Rix
3a3fa0c541 Define associatedScope using foldr. 2018-12-05 14:42:53 -05:00
Rob Rix
38611d053c Simplify associatedScope using <$> and <|>. 2018-12-05 14:42:05 -05:00
Rob Rix
3c2a544a2d Define scopeOfDeclaration using a foldr. 2018-12-05 14:40:12 -05:00
Rob Rix
bc0c28477f Simplify scopeOfDeclaration using <$ and <|> . 2018-12-05 14:38:25 -05:00
Rob Rix
9a966a51f4 Use maybe. 2018-12-05 14:35:30 -05:00
Rob Rix
433e3dd04d Use maybeM. 2018-12-05 14:35:24 -05:00
Rob Rix
4a80c83275 Parens instead of dollar. 2018-12-05 14:34:09 -05:00
Rob Rix
c4477c05b7 🔥 a redundant dollar. 2018-12-05 14:33:33 -05:00
Rob Rix
5981de0f56 Redundant parens. 2018-12-05 14:33:01 -05:00
Rob Rix
b67708c9d3 🔥 redundant parens. 2018-12-05 14:32:02 -05:00
Rob Rix
34b5965554 Extract a defineSelf helper. 2018-12-05 14:29:00 -05:00
Rob Rix
0132a24e1b 🔥 ScopedTypeVariables. 2018-12-05 14:26:43 -05:00
Rob Rix
776ae3ebe1 🔥 a redundant language extension. 2018-12-05 14:25:09 -05:00
Rob Rix
af8ae29d7e Merge branch 'heap-frames' of https://github.com/github/semantic into heap-frames 2018-12-05 14:05:57 -05:00
Rob Rix
dda1706189 Implement object for Type. 2018-12-05 14:05:41 -05:00
joshvera
3a88a76d12 Remove super instance 2018-12-05 14:04:02 -05:00
joshvera
7c677f8625 Remove ScopedResolution instance 2018-12-05 13:55:52 -05:00
joshvera
4a350ece0b Remove old Call code 2018-12-05 13:53:30 -05:00
Rob Rix
ba070a6b46 Merge branch 'heap-frames' of https://github.com/github/semantic into heap-frames 2018-12-05 13:49:51 -05:00
joshvera
b319d0fb64 Implement TypeAlias instance 2018-12-05 13:46:32 -05:00
Rob Rix
95c1151cd2 Reintroduce heapLookupAll. 2018-12-05 13:44:47 -05:00
Rob Rix
664b3b2a9d Reintroduce heapLookup. 2018-12-05 13:44:42 -05:00
Rob Rix
b77dc95d4f Reintroduce heapRestrict. 2018-12-05 13:08:24 -05:00
joshvera
a2026e8ada Add valueRef tests back 2018-12-05 12:44:52 -05:00
joshvera
49e8a7004c Remove Exports 2018-12-05 10:23:42 -05:00
joshvera
0f8058d82a Remove NamespaceError 2018-12-05 10:20:41 -05:00
joshvera
073dca372d Remove Data.Abstract.Environment 2018-12-05 10:20:35 -05:00
joshvera
9fee3d5965 formatting 2018-12-05 10:20:17 -05:00
joshvera
5b198eb919 Implement Break and Continue 2018-12-04 19:22:29 -05:00
joshvera
5deda2a033 Implement and reopen ruby modules 2018-12-04 18:46:29 -05:00
joshvera
33b752a5aa Implement This eval instance
Co-Authored-By: Rob Rix <rob.rix@github.com>
2018-12-04 17:01:30 -05:00
joshvera
ac1d2dbc95 Declare __self in Method instance
Co-Authored-By: Rob Rix <rob.rix@github.com>
2018-12-04 17:01:19 -05:00
joshvera
793ec4b32d Define __self in preludes
Co-Authored-By: Rob Rix <rob.rix@github.com>
2018-12-04 17:00:20 -05:00
joshvera
85f00a2904 Add defineBuiltIn
in order to construct an associated scope to pass to BuiltIn

Co-Authored-By: Rob Rix <rob.rix@github.com>
2018-12-04 16:24:44 -05:00