Please select what you are reporting on:
Verse
What Type of Bug are you experiencing?
Verse
Summary
Data and Functions which are access specified as public and which are within an internal access specified scope are now considered internal instead of public when referenced via an inheriting public class.
Steps to Reproduce
Example Code:
ModuleA<public> := module:
# Hidden Implementation detail in internal_parent_class
internal_parent_class<internal> := class:
Value<public>:int
# Public surface in public_parent_class
public_parent_class<public> := class(internal_parent_class):
ModuleB<public> := module:
using {ModuleA}
# Child class utilizes public surface in public_parent_class
child_class<public> := class(public_parent_class):
GetValue():int = Value
Expected Result
28.01 behavior: this will compile.
Observed Result
28.10 behavior: this will not compile.
Script error 3593: "Invalid access of public data (/localhost/VerseTesting/ModuleA/internal_parent_class:)Value from function /localhost/VerseTesting/ModuleB/child_class/GetValue.
Platform(s)
Windows
Additional Notes
If this change is intended, please publish a notice in the relevant patch notes as it has caused our project to fail to compile on load, which is not a good developer experience when downloading a new update without at least one version in which this would be a compiler warning.
Moreover, please improve compiler error 3593; the enclosing scope in the scope hierarchy which is internal should be listed to clarify why accessing an otherwise public data/function/module is invalid.