Inherit access level from public extensions for schema property #118
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.
Description
Fixes an access control issue in the
@Schemablemacro where types defined inside public extensions would generate schema properties with (internal) access levels, making them inaccessible from other modules.Problem:
When defining types inside public extensions like this:
The generated
schemaproperty wasstatic var schema(internal) instead ofpublic static var schema, preventing other modules from accessing it despiteForecastbeing effectively public.Solution:
effectiveAccessLevel()function that inspects the macro's lexical context to detect parent extensionsImpact:
Type of Change
Additional Notes
Test Coverage:
Examples:
Before:
After:
Edge Cases Handled:
public,package, andinternalextensions