Organize global variables by declaring module to accommodate new naming rules #2545
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.
Private variables declared in a library module are no longer required to be in the module namespace (see 5.16 Variable Declaration). The corresponding check can be adapted easily, but the management of global variables in the
Variablesclass currently mixes variables from all modules without taking into account where they were declared. As a result, it is not possible to use the same private variable name in multiple modules.This PR
Tests for this have been added in
ModuleTest.visibility.There is also an unrelated fix for a typo in a built-in record field name in enum
Records.On a side note, the 33 lines of code of
Variables.iteratorcould be reduced to 5 by using streams. I wasn’t sure whether to take advantage of this because of the higher runtime cost. However, as this is surely not a hot spot, we might still go this way:The changed naming rules apply to functions as well, but I’d prefer to address that in a separate task.