Arseny Kapoulkine
5444d06708
Merge branch 'upstream' into merge
2022-04-28 18:05:07 -07:00
Arseny Kapoulkine
9ce46fd381
Merge branch 'master' into merge
2022-04-28 18:05:04 -07:00
Arseny Kapoulkine
4d9ac7db1e
Sync to upstream/release/525
2022-04-28 18:04:52 -07:00
Alan Jeffrey
74c84815a0
Prototyping type normalizaton ( #466 )
...
* Added type normalization
2022-04-28 15:00:55 -05:00
Arseny Kapoulkine
e0a6461173
Sync to upstream/release/524 ( #462 )
2022-04-21 14:44:27 -07:00
Arseny Kapoulkine
bb2370d5c6
Merge branch 'upstream' into merge
2022-04-21 14:04:52 -07:00
Arseny Kapoulkine
267c88fec1
Merge branch 'master' into merge
2022-04-21 14:04:48 -07:00
Arseny Kapoulkine
f2677f6975
Sync to upstream/release/524
2022-04-21 14:04:22 -07:00
Alan Jeffrey
5bb9f379b0
Unified strict and nonstrict mode in the prototype ( #458 )
2022-04-15 19:19:42 -05:00
Arseny Kapoulkine
8e7845076b
Sync to upstream/release/523 ( #459 )
2022-04-14 16:57:43 -07:00
Arseny Kapoulkine
25f90eae7d
Fix test in debug
2022-04-14 16:48:36 -07:00
Arseny Kapoulkine
6d8a6ec825
Merge branch 'upstream' into merge
2022-04-14 14:58:21 -07:00
Arseny Kapoulkine
5a59a9a50f
Merge branch 'master' into merge
2022-04-14 14:57:52 -07:00
Arseny Kapoulkine
02ed5373ec
Sync to upstream/release/523
2022-04-14 14:57:15 -07:00
Alan Jeffrey
d37d0c857b
Prototype: Renamed any/none to unknown/never ( #447 )
...
* Renamed any/none to unknown/never
* Pin hackage version
* Update Agda version
2022-04-09 00:07:08 -05:00
Lily Brown
510aed7d3f
Fix JsonEncoder for AstExprTable ( #454 )
...
JsonEncoder wasn't producing valid JSON for `AstExprTable`s. This PR fixes it. The new output looks like
```json
{
"type": "AstStatBlock",
"location": "0,0 - 6,4",
"body": [
{
"type": "AstStatLocal",
"location": "1,8 - 5,9",
"vars": [
{
"name": "x",
"location": "1,14 - 1,15"
}
],
"values": [
{
"type": "AstExprTable",
"location": "3,12 - 5,9",
"items": [
{
"kind": "record",
"key": {
"type": "AstExprConstantString",
"location": "4,12 - 4,15",
"value": "foo"
},
"value": {
"type": "AstExprConstantNumber",
"location": "4,18 - 4,21",
"value": 123
}
}
]
}
]
}
]
}
```
2022-04-08 11:26:47 -07:00
Arseny Kapoulkine
de1381e3f1
Sync to upstream/release/522 ( #450 )
2022-04-07 14:29:01 -07:00
Arseny Kapoulkine
8f96e19b80
Merge branch 'upstream' into merge
2022-04-07 13:54:36 -07:00
Arseny Kapoulkine
d42a5dbe48
Sync to upstream/release/522
2022-04-07 13:53:47 -07:00
Alexander McCord
ffff25a9e5
Improve the UX of reading tagged unions a smidge. ( #449 )
...
The page is a little narrow, and having to scroll on this horizontally isn't too nice. This fixes the UX for this specific part.
2022-04-07 09:16:44 -07:00
Alan Jeffrey
dc32a3253e
Add short example of width subtyping ( #444 )
2022-03-31 18:44:41 -05:00
Alan Jeffrey
916c83fdc4
Prototype: Added a discussion of set-theoretic models of subtyping ( #431 )
...
* Added a discussion of set-theoretic models of subtyping to the prototype
2022-03-31 18:29:42 -05:00
Arseny Kapoulkine
20308bed20
Merge branch 'merge'
2022-03-31 14:04:40 -07:00
Arseny Kapoulkine
4c1f208d7a
Sync to upstream/release/521 ( #443 )
2022-03-31 14:01:51 -07:00
Arseny Kapoulkine
a9489893b0
Merge branch 'upstream' into merge
2022-03-31 13:39:48 -07:00
Arseny Kapoulkine
b9b0382a5a
Merge branch 'master' into merge
2022-03-31 13:39:46 -07:00
Arseny Kapoulkine
83c1c48e09
Sync to upstream/release/521
2022-03-31 13:37:49 -07:00
Alexander McCord
ba60730e0f
Add documentation on singleton types and tagged unions to typecheck.md. ( #440 )
...
Update the typecheck.md page to talk about singleton types and their uses, tagged unions.
As a driveby, improve the documentation on type refinements. And delete the unknown symbols part, this is really dated.
* Update docs/_pages/typecheck.md to fix a typo
Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>
2022-03-31 11:54:06 -07:00
Alan Jeffrey
06bbfd90b5
Fix code sample in March 2022 Recap ( #442 )
2022-03-31 09:31:06 -05:00
Alan Jeffrey
f3ea2f96f7
Recap March 2022 ( #439 )
...
* March Recap
Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>
2022-03-30 18:38:55 -05:00
Arseny Kapoulkine
af64680a5e
Mark singleton types and unsealed table literals RFCs as implemented ( #438 )
2022-03-29 16:58:59 -07:00
Andy Friesen
75bccce3db
RFC: Lower Bounds Calculation ( #388 )
...
Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
2022-03-29 12:37:14 -07:00
Arseny Kapoulkine
2c339d52c0
Sync to upstream/release/520 ( #427 )
2022-03-24 15:04:14 -07:00
Arseny Kapoulkine
d13b50de16
Merge branch 'upstream' into merge
2022-03-24 14:49:30 -07:00
Arseny Kapoulkine
44405223ce
Merge branch 'master' into merge
2022-03-24 14:49:29 -07:00
Arseny Kapoulkine
373da161e9
Sync to upstream/release/520
2022-03-24 14:49:08 -07:00
Arseny Kapoulkine
5e7e462104
Update STATUS.md
2022-03-24 13:10:56 -07:00
Arseny Kapoulkine
ab64a097cd
Mark sealed table subtyping RFC as implemented
2022-03-24 13:10:30 -07:00
Arseny Kapoulkine
2335b26ffc
Update library.md
...
Add documentation for table.clone
2022-03-24 09:31:18 -07:00
Arseny Kapoulkine
b8e025311b
Mark table.clone as implemented
2022-03-24 09:29:20 -07:00
Arseny Kapoulkine
5a21c41363
Update STATUS.md
2022-03-24 09:26:42 -07:00
Alexander McCord
7ab76e582c
RFC: Do not implement non-nil postfix !
operator. ( #420 )
...
This is a meta-RFC. I'd like to propose to remove the postfix `!` operator from the language.
I'd like to argue that this operator will eventually become useless and can only be used incorrectly at some point in the future, and that there are likely ways for them to be sound without having to reach for the `!` hammer.
With that, I present these counterarguments:
Shortcoming <span>#</span>1: Refinements does not apply to the block after `return`/`break`/`continue`.
```lua
if not x or not y then return end
-- both x and y are truthy
```
This will be solved by implementing control flow analysis where it'd apply the inverse of the condition leading up to the control transfer statement to the rest of the scope.
Shortcoming <span>#</span>2: Type checker is not aware of the actual state of various locations.
```lua
type Foo = { x: { y: number }? }?
local foo: Foo = { x = { y = 5 } }
print(foo.x.y) -- prints 5 at runtime, type checker warns on this
```
This will be solved by implementing type states where it would inspect the initialization sites as well as assignments to know their actual states. That is, rather than trusting the type annotation `Foo` as the state which gets us far enough, we'd start seeing these type annotations as a subtype constraint for the location `foo`.
---
If there are other use cases not covered in this message, we should talk about that and see if there exists an alternative direction that can solve these use cases soundly.
2022-03-24 08:38:16 -07:00
Alexander McCord
2f15079642
Fold in rationale for making else
branch mandatory in if-then-else expressions. ( #426 )
...
This has been discussed but just didn't get incorporated into the RFC.
2022-03-23 16:53:52 -07:00
Alan Jeffrey
7721955ba5
Prototyping: add semantic subtyping ( #424 )
...
Adds subtyping to strict mode.
2022-03-23 15:02:57 -05:00
Arseny Kapoulkine
362428f8b4
Sync to upstream/release/519 ( #422 )
2022-03-17 17:46:04 -07:00
Arseny Kapoulkine
57faf7aaf2
Lower the stack limit to make tests pass in debug
2022-03-17 17:33:23 -07:00
Arseny Kapoulkine
eee60dcaf3
Merge branch 'upstream' into merge
2022-03-17 17:07:51 -07:00
Arseny Kapoulkine
305f255a1f
Merge branch 'master' into merge
2022-03-17 17:07:07 -07:00
Arseny Kapoulkine
adecd84067
Sync to upstream/release/519
2022-03-17 17:06:25 -07:00
Luca Salmin
4fdead5e3c
yield from interrupt #287 ( #413 )
...
Co-authored-by: luca salmin <luca.salmin@studioevil.com>
2022-03-14 11:43:40 -07:00