Hi Gilad,
Thanks very much for your answer and sorry it took me a while.
Yes, as you said, both Outer and ChildOfOuter were declared as top level classes (which I could see both in the browser and also evaluating ChildOfOuter and inspecting the result - the superclass showing Kernel`Object`.
The error is completely on my end, I did not realize, reading the specs examples where inheritance is used (and other examples I can find), that one has to always create a top level class / module for them (well that is, if that is a correct understanding).
So in my simple example, when I create this hierarchy instead (added My to class names so my instances do not get confused for reading)
class MyContext = ()(
class MyOuter = () (
public class MyInner = ()()
)
class MyChildOfOuter = MyOuter ()()
)
Then in workspace
MyContext new MyOuter new MyInner => MyContext`MyOuter`MyInner`3716
MyContext new MyChildOfOuter new MyInner => MyContext`MyOuter`MyInner`954
Which works as expected, except I am slightly surprised by the result representation of the instance. What I mean is, instead of MyContext`MyOuter`MyInner`954, I would expect it to be MyContext`MyChildOfOuter`MyInner`954. But I think to understand why it is not that way I need to finish reading the specs and the modules paper properly.
Thanks,
Milan
For completeness
drilling in the 3716 object:
self MyContext`MyOuter`MyInner`3716
enclosingObject MyContext`MyOuter`3363#3716
drilling in the 954 object:
self MyContext`MyOuter`MyInner`954
enclosingObject MyContext`MyChildOfOuter`461#954