Open
Conversation
cd9564f to
a1d2763
Compare
a1d2763 to
7c16ed5
Compare
7c16ed5 to
42c8c1d
Compare
42c8c1d to
44bf828
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR is a work-in-progress not for merge yet, but it's in a "kind of working" state so I wanted to open it for discussion.
The goal here is to allow specifying type signatures in a
.rbifile that sits alongside a.rbfile, so that we can play with adding type annotations without having to upgrade our Ruby runtime and rubocop and everyone's editor tooling all at once.The shape of this is very early and open to change, especially if the github folks have thoughts. The current in-progress implementation looks something like:
.rbfile, we look for a corresponding.rbifile, and load it afterwards, if it exists.rband.rbifile.rbifile must fully-annotate all methods defined in it.rbifile in a later.rbis disallowed.rbifiles must only contain class, module, method, and ivar definitions.rband a.rbiis disallowedTest case are included for each of the implemented bullet points.
I expect that rolling more prototype-resolution into the
definephase will simplify this feature substantially; we can resolve stub vs normal prototypes there, and then reduce the duplication betweenprocessandprototype_from_method_entryand in general stop ever dealing with theNodeform of prototypes ineval.rs.