-
Notifications
You must be signed in to change notification settings - Fork 284
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[ruby] MemberAccess/MemberCall Handling (#4676)
* `initialize` methods are under all types/modules with fields that need to be initialized, where `InstanceFields` under classes are considered `ClassFields` and places under the singleton type. e.g, `class Foo;SomeMember=1;end` is considered under the singleton. * `MemberAccess` is now not always treated as a call. As per Ruby, if the first letter of the member is capitalized, then it is a field access, otherwise a function call. * Calls (and qualified calls) have their base/targets recursively checked for if they need to be prepended with `self.` (i.e., not a local variable that has been declared in scope). * Added initial `<body>` method to catch all arbitrary statements under a type declaration, requires follow-up work * Fixed local variable scoping, where variables introduced in control structure blocks get fixed to the parent method and not the block itself.
- Loading branch information
1 parent
dd53acd
commit 5a4c499
Showing
27 changed files
with
575 additions
and
156 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
This file contains 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
Oops, something went wrong.