* RFC: Support for Generic Types and Packs in User-Defined Type Functions
* Language
* Wording improvements
* Apply suggestions from code review
Co-authored-by: ariel <aaronweiss@roblox.com>
* Note about representing packs as 'type' with a separate tag.
---------
Co-authored-by: ariel <aaronweiss@roblox.com>
* Add function math.lerp
* Clarify which variant the sentence is referring to.
* Some text fixes
---------
Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
* Add amended-alias-resolution.md
* Move alternatives into main design section for discussion
* Remove certain references to ../
Relative path parenting must already be done explicitly and is not up for discussion.
* Clarify that (3a) supports implicit relative paths
* Link old implementations to these approaches
* Add autocomplete details to (1c)
* Move approaches (2), (3a), (3b) to Alternatives
* Remove references to ../
* Add details about (1c) being compatible with (1a/b)
* Remove paths
* Propose approach (1c)
* Remove implicit ordering for file matching (error)
* Nit: "require statements" -> "require expressions"
* Initial commit for UDTF
* library names to luacase
* table runtime representation still depends on VM
* addressing comment: boolean is equivalent to true | false
* getname() should return string not table
* Added a section about type function type checking as one of future works
* type functions can call other type functions but not regular functions
* user configurable timeout added
* Type functions can not refer to outer scopes
* lType -> typelib
* print to warn; error/return nothing to fail reduction
* removed getname() as there aren't real usecases
* fix typos in method names
* Starlark approach without execution limit
* big revision on library methods, reason for using userdata, illegal constructs in type functions; need to add support for generic types and list of supported libraries/globals
* colon to invoke methods
* comment: ~ to not
* Added indexer methods for Class types
* using colons instead of periods to invoke method calls
* added globals/libraries to a list of illegal constructs
* revising typelib library and method descriptions
* renaming methods, overloading __eq __le __newindex, metatable as representation of tables
* small fix to reflect table method name change to class method names
* make nil, unknown, never, any an instance attribute of typelib; merge getindextype/getindexresulttype into one function
* Removed overloading metamethods for now
* added tbl:getprop(key) to obtain a single value
* addprop(key, ty.nil) != delprop(key)
* merge addprop() and delprop() into one
* typelib.nil clashes with the reserved keyword, so changed to typelib.niltype
* == operator overridden with __eq
* Fixed rawget example
* Added parameters to newtable function
* Added parameters to newfunction function
* Revised typelib.function
* fix typelib.newfunction
* Clarification to typelib.newfunction methods
* fix arguments of Function.setparameters and Function.setreturns
* Error for returning non-typelib instance
* added parameters to typelib.newmetatable
* Delete String.getmetatable()
* information about pass by reference and typelib.copy() method
* moved stringle, boolean, number to be an instance attribute of typelib
* Update docs/user-defined-type-functions.md
Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
* remove print() for first iteration
* removed typelib.is*() and added typelib.type() instead
* Update docs/user-defined-type-functions.md
Co-authored-by: James <jamesramsauer@gmail.com>
* Update docs/user-defined-type-functions.md
Co-authored-by: Alexander McCord <11488393+alexmccord@users.noreply.github.com>
* remove metatable from type
* merge newmetatable with newfunction
* some revisions + typelib->type
* change typelib.type() to :is(...)
* big revision with new information, features, supported methods, list of available globals
* better example for long running type functions
* combine getstringsingleton, getbooleansingleton
* optional arguments does not mean you don't need to write it
* forgot to finish my sentence
Co-authored-by: aaron <aweiss@hey.com>
* add information about type functions not being able to be exported
* Forgot string and utf8 library
* Add a note about increasing the list of available globals/libraries:
* Make a big edit pass over the RFC
* Update user-defined-type-functions.md
* We'll call the library `types`, not `type`.
* Opinionatedly clean up the types API.
* Take into account read/write properties
* Update examples to match revised API
* Update docs/user-defined-type-functions.md
Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
* Update docs/user-defined-type-functions.md
Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
* Update docs/user-defined-type-functions.md
Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
* Update docs/user-defined-type-functions.md
Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
* Cleaning up the API a bit more.
* Restructuring the API reference a bit.
* Fix typo with type signature
* Add missing code blocks
* Update docs/user-defined-type-functions.md
Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
* Add a small paragraph clarifying the scoping and shadowing rules being the same as type aliases
---------
Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
Co-authored-by: James <jamesramsauer@gmail.com>
Co-authored-by: Alexander McCord <11488393+alexmccord@users.noreply.github.com>
Co-authored-by: aaron <aweiss@hey.com>
Co-authored-by: aaron <aaronweiss@roblox.com>
* RFC: Deprecated Attribute for Functions
* Minor fixes.
* Apply review suggestions and fix text.
* Add methods
* Mention methods and fix text
* Alex
* upto is not a word :mindblown:
* Add example
* Update docs/syntax-attribute-functions-deprecated.md
Co-authored-by: Alexander McCord <11488393+alexmccord@users.noreply.github.com>
* Update docs/syntax-attribute-functions-deprecated.md
Co-authored-by: Alexander McCord <11488393+alexmccord@users.noreply.github.com>
* Add example for properties
* Update docs/syntax-attribute-functions-deprecated.md
Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
* Update docs/syntax-attribute-functions-deprecated.md
Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
---------
Co-authored-by: Alexander McCord <11488393+alexmccord@users.noreply.github.com>
Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
* Renamed all instances of type operators to type functions
* Update docs/index-type-operator.md
Co-authored-by: Alexander McCord <11488393+alexmccord@users.noreply.github.com>
---------
Co-authored-by: Alexander McCord <11488393+alexmccord@users.noreply.github.com>
* Initial commit for rawget
* rfc for rawget type operator completed
* Forgot .md
* Code blocks '''lua -> '''luau
* grammar fixes
Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
* Revised motivation section and design section
* Revised the drawbacks section
* Added a note about how this type operator doesn't work with class types
* Rephrased the summary
Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
* Redirect users to open-source Luau global functions
Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
* reword "runtime pair" to counterpart and update the link
Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
* grammar fix: "interactions" -> "interaction"
Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
* Revised wording for motivation section
Co-authored-by: aaron <aweiss@hey.com>
* Added an article and broke up a sentence into two
Co-authored-by: aaron <aweiss@hey.com>
* Revided the reasoning for second drawback
* Update docs/rawget-type-operator.md
Co-authored-by: aaron <aweiss@hey.com>
---------
Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
Co-authored-by: aaron <aweiss@hey.com>
* RFC for native attribute
* Use "comment directive" terminology instead of "hotcomment"
* Improve motivation and fix markdownlint errors.
* `@native` does not apply recursively
* Remove warning section
* RFC for attribute parameters
* Use a relative path to generalize for GitHub and the RFC site.
* Add reason for allowing `nil` parameter
* Handle forward compatibility and clarify parsing behavior.
* Slight rewording
* Add discussion for handling `@checked`
* Update description for new syntax.
* Improve presentation, fix ebnf syntax, and address comments.
* Propose function-call syntax for attributes
* Create require-by-string-aliases.md
* Update require-by-string-aliases.md
* Update require-by-string-aliases.md
* Changed aliases to be case-insensitive + restricted the charset
* Update docs/require-by-string-aliases.md
Co-authored-by: Alexander McCord <11488393+alexmccord@users.noreply.github.com>
* Update require-by-string-aliases.md to have @
* Include justification for alias name case insensitivity
* Fixed typo
* Removed duplicate section
---------
Co-authored-by: Alexander McCord <11488393+alexmccord@users.noreply.github.com>