Arseny Kapoulkine
f5923aefeb
Sync to upstream/release/527 ( #491 )
2022-05-19 17:02:24 -07:00
JohnnyMorganz
8b4c6aabc2
Fix findAstAncestry when position is at eof ( #490 )
2022-05-18 16:26:05 -07:00
JohnnyMorganz
f2191b9e4d
Respect useLineBreaks for union/intersect toString ( #487 )
...
* Respect useLineBreaks for union/intersect toString
* Apply suggestions from code review
Co-authored-by: Andy Friesen <andy.friesen@gmail.com>
Co-authored-by: Andy Friesen <andy.friesen@gmail.com>
2022-05-17 11:22:54 -07:00
JohnnyMorganz
ab4bb355a3
Add `ToStringOptions.hideFunctionSelfArgument` ( #486 )
...
Adds an option to hide the `self: type` argument as the first argument in the string representation of a named function type var if the ftv hasSelf.
Also added in a test for the original output (i.e., if the option was disabled)
I didn't apply this option in the normal `Luau::toString()` function, just the `Luau::toStringNamedFunction()` one (for my usecase, that is enough + I felt like a named function would include the method colon `:` to signify self). If this is unintuitive, I can also add it to the general `Luau::toString()` function.
2022-05-16 09:50:15 -07:00
Arseny Kapoulkine
a36b1eb29b
Sync to upstream/release/527 ( #481 )
2022-05-13 12:36:37 -07:00
Arseny Kapoulkine
87fe15ac51
Update STATUS.md
...
Mark last table subtyping RFC as implemented
2022-05-12 10:08:36 -07:00
Arseny Kapoulkine
a775e6dc8e
Mark last table subtyping RFC as implemented
2022-05-12 10:08:10 -07:00
Arseny Kapoulkine
105e74c7d9
Update STATUS.md
...
Both generalized iteration and LBC are implemented but not fully enabled in Roblox yet.
2022-05-11 15:14:51 -07:00
Arseny Kapoulkine
f3f231ea6b
Update compatibility.md
...
Update `__pairs` note with `__iter`, change `__len` to unsure as with `__iter` lack of `__len` on tables is the only issue preventing complete user created containers.
2022-05-09 18:38:10 -07:00
Arseny Kapoulkine
be0b7d07e2
Update sandbox.md
...
Replace debug.getinfo with debug.info
2022-05-09 18:34:31 -07:00
Arseny Kapoulkine
7935f9f8b6
Update sandbox.md
...
Reword the GC docs to avoid back-referencing the thread identity mechanism, since it's entirely Roblox-side and isn't fully documented here anymore.
2022-05-09 18:33:53 -07:00
Arseny Kapoulkine
72d8d44343
Add documentation for generalized iteration ( #475 )
2022-05-05 17:05:57 -07:00
Arseny Kapoulkine
e9cc76a3d5
Sync to upstream/release/526 ( #477 )
2022-05-05 17:03:43 -07:00
phoebe
57016582a7
fix feed link ( #476 )
2022-05-05 14:37:27 -07:00
byte-chan™
9156b5ae6d
Fix non-C locale issues in REPL ( #474 )
2022-05-04 12:27:12 -07:00
Alexander McCord
47a8d28aa9
Fix a typo in recap. ( #472 )
2022-05-03 16:12:59 -07:00
Andy Friesen
9bc71c4b13
April 2022 recap ( #470 )
2022-05-03 15:29:01 -07:00
Andy Friesen
448f03218f
Add attribution for Result.ts ( #468 )
2022-04-29 09:33:30 -07:00
Arseny Kapoulkine
bd6d44f5e3
Sync to upstream/release/525 ( #467 )
2022-04-28 18:24:24 -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
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
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
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
Arseny Kapoulkine
fe71aff7af
Update library.md
2022-03-14 10:30:49 -07:00
Arseny Kapoulkine
a44b7906b6
Sync to upstream/release/518 ( #419 )
2022-03-11 08:55:02 -08:00
Arseny Kapoulkine
bf74a347c3
Merge branch 'upstream' into merge
2022-03-11 08:36:10 -08:00
Arseny Kapoulkine
6667df02df
Merge branch 'master' into merge
2022-03-11 08:36:08 -08:00
Arseny Kapoulkine
feea507be3
Sync to upstream/release/518
2022-03-11 08:31:18 -08:00
Arseny Kapoulkine
dbdf91f3ca
Sync to upstream/release/517 ( #408 )
2022-03-04 08:36:33 -08:00
Arseny Kapoulkine
75e66f13c5
Merge branch 'upstream' into merge
2022-03-04 08:19:48 -08:00
Arseny Kapoulkine
600b8a483a
Merge branch 'master' into merge
2022-03-04 08:19:44 -08:00
Arseny Kapoulkine
9bfecab5ba
Sync to upstream/release/517
2022-03-04 08:19:20 -08:00
Lily Brown
6c923b8802
Prototyping: strings ( #390 )
2022-03-02 15:26:58 -08:00
Alan Jeffrey
c5477d522d
Prototyping strict mode ( #399 )
...
* First cut of strict mode
Co-authored-by: Lily Brown <lily@lily.fyi>
2022-03-02 16:02:51 -06:00
vegorov-rbx
d277cc2c3b
Luau Recap: February 2022 ( #403 )
...
* Luau Recap: February 2022
* Rebuild pages
* Fixed Markdown linter warnings, converted tabs to spaces and added a note on 'select' optimization
* Apply suggestions from code review
Co-authored-by: Alexander McCord <11488393+alexmccord@users.noreply.github.com>
* Added information about new lint
* Update docs/_posts/2022-02-28-luau-recap-february-2022.md
Co-authored-by: Alexander McCord <11488393+alexmccord@users.noreply.github.com>
Co-authored-by: Alexander McCord <11488393+alexmccord@users.noreply.github.com>
2022-03-02 06:27:35 -08:00
Arseny Kapoulkine
898c0501d1
Update STATUS.md
...
Add table.clone
2022-02-28 14:16:35 -08:00
Arseny Kapoulkine
5e8242aeda
RFC: table.clone ( #362 )
2022-02-28 14:15:33 -08:00
Arseny Kapoulkine
fb11ca00f4
Update README.md
...
linenoise -> isocline
2022-02-28 10:50:23 -08:00
Arseny Kapoulkine
db3a8a2f0f
Update prototyping.yml ( #398 )
...
This limits the scope of prototyping action to PRs to prototyping branch to minimize the GHA cost / latency, as cabal install sometimes takes forever
2022-02-24 17:08:54 -08:00
Arseny Kapoulkine
c7eca27909
Sync to upstream/release/516 ( #397 )
2022-02-24 15:53:37 -08:00
Arseny Kapoulkine
8984f4984c
Merge branch 'upstream' into merge
2022-02-24 15:16:35 -08:00
Arseny Kapoulkine
2a549cfbad
Merge branch 'master' into merge
2022-02-24 15:16:33 -08:00
Arseny Kapoulkine
a8eabedd57
Sync to upstream/release/516
2022-02-24 15:15:41 -08:00
Lily Brown
0bd21762ae
Prototype bools and relational operators ( #387 )
...
Prototypes booleans and relational operators.
As part of this I removed `FFI/Data/Bool.agda`, because it was getting in the way - we already use `Agda.Builtin.Bool` instead for other cases.
2022-02-24 11:17:46 -08:00
Petri Häkkinen
0bc7c51afc
Lua API: add return types to table getters ( #389 )
...
Co-authored-by: Petri Häkkinen <petrih@rmd.remedy.fi>
2022-02-23 10:03:58 -08:00
Lily Brown
cd18adc20e
Prototyping: binary operations ( #377 )
...
Adds support for binary operations on numbers.
2022-02-22 15:52:56 -08:00
James Napora
1334db600f
Update grammar.md ( #379 )
2022-02-22 11:24:15 -08:00
Arseny Kapoulkine
3c42b3a013
Revert "Mark singleton types RFC as implemented ( #370 )" ( #378 )
...
This reverts commit 731e197757
.
2022-02-19 10:57:29 -08:00
Alan Jeffrey
fc33b0c702
Fix evaluation rule for function application ( #375 )
2022-02-18 16:47:23 -06:00
Alan Jeffrey
0b783d8932
Add Properties.Equality to prototyping ( #376 )
2022-02-18 16:47:04 -06:00
Lily Brown
7f867ac166
Prototyping: numbers ( #368 )
...
Adds number support to the prototype. Binary operators are next.
2022-02-18 11:09:00 -08:00
Arseny Kapoulkine
a9bdce6cc0
Rename tests to tests.py ( #374 )
2022-02-18 10:04:38 -08:00
Arseny Kapoulkine
5b78465059
Sync to upstream/release/514 ( #372 )
2022-02-17 17:18:01 -08:00
Lily Brown
1ac64af484
Prototyping: Revise CI ( #371 )
...
Introduces a test runner with test cases. Also significantly overhauls the GHA configuration.
2022-02-17 17:15:33 -08:00
Arseny Kapoulkine
6aaaafcc8d
Add documentation for upcoming CommentDirective lint ( #361 )
2022-02-17 16:58:43 -08:00
Arseny Kapoulkine
1f679b08b8
Merge branch 'upstream' into merge
2022-02-17 16:42:11 -08:00
Arseny Kapoulkine
eea0374fad
Merge branch 'master' into merge
2022-02-17 16:42:08 -08:00
Arseny Kapoulkine
4930409516
Sync to upstream/release/515
2022-02-17 16:41:20 -08:00
Alexander McCord
731e197757
Mark singleton types RFC as implemented ( #370 )
2022-02-17 16:16:31 -08:00
Arseny Kapoulkine
e49a0fd4cd
Mark default type parameters RFC as implemented ( #369 )
2022-02-17 16:14:35 -08:00
Arseny Kapoulkine
e541e19f44
Create RFC status tracking document ( #363 )
...
This tracks status of all unimplemented RFCs in one central place. Hopefully we won't forget to update this when new RFCs are added!
2022-02-15 18:37:02 -08:00
Lily Brown
c8d6dc2758
Revise GHA workflows for prototyping ( #367 )
...
Changed the GHA workflows to:
- Not run `build` and `release` workflows for PRs that only affect `prototyping/`
- Run `prototyping` workflow when PRs affect `Analysis/**`, `Ast/**`, or the `luau-ast` source files
2022-02-15 14:24:51 -08:00
Lily Brown
f0c9d84461
Prototyping: Parse type annotations ( #366 )
...
Parses type annotations from the JSON output of `luau-ast`.
2022-02-15 14:10:43 -08:00
Lily Brown
4b7e06e14f
Emit more information for AstLocals in JSON encoder ( #364 )
...
We don't emit type annotations right now for `AstLocal`s in the JSON encoder. This makes it really hard to surface annotations in the Agda implementation. This PR changes it to emit location and type annotations, if present.
2022-02-14 14:14:11 -08:00
Arseny Kapoulkine
7d679b317f
RFC: Generalized iteration ( #335 )
...
Co-authored-by: dcope-rbx <91100513+dcope-rbx@users.noreply.github.com>
Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
2022-02-14 10:04:07 -08:00
Alan Jeffrey
e0a9bc191a
Prototype: added syntax for optional type annotations ( #358 )
2022-02-11 19:03:26 -06:00