-
Notifications
You must be signed in to change notification settings - Fork 82
fixes another cause of #2497 #2511
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2511 +/- ##
=======================================
Coverage 47% 47%
+ Complexity 6708 6707 -1
=======================================
Files 791 791
Lines 65187 65160 -27
Branches 9751 9751
=======================================
+ Hits 30925 30927 +2
+ Misses 31849 31820 -29
Partials 2413 2413 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
jurgenvinju
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it this is a pure refactoring with no impact on runtime semantics in the Rascal project.
- The removed code was dead;
env.getStore() is a faster short-hand forenv.getRoot().getStore()ifenvis aModuleEnvironment`. A fast-path optimization by receiver specialization.- Made all
protectedfieldsprivateinModuleEnvironmentwithout compilation issues.
Because we remove shallow cloning as a feature from ModuleEnvironment this increases the strength of our theory that only one ModuleEnvironment is present in memory for every module at a specific moment in time. This helps in the analysis of watch/reload, as well as the semantics of extend.
This PR does some clean up that helps in debugging; making sure some assumptions about the contents of environments are true: some old code is removed that might break those assumptions, but it doesn't currently because it is never used.
The one change in the test code makes sure getRoot is called less often, which avoids running into the issue at hand, but doesn't solve it per se.