No, it shouldn't do the same. 'Super' is equivalant to 'Self' that you retyped to the base type rather than the current one.
A bit as if you had done (Base(Self)).MyMethod(), though it's actually not the same because when calling a method via Super, it also forces a non-virtual call (simply put it really forces to call the base class method, unlike "(Base(Self)).MyMethod()").
It really names an object instance, but you are trying to access something that is part of the class, not of an instance of the class.
So it actually makes sense that it doesn't compile, while on the other hand Base.A() does.
"Base" names a class, "Self" and "Super" name objects. Much different.
That is not to say that Mark couldn't have made "Super.A" to work (actually even C++ allows to access static class data through an object of this class), but in any case BlitzMax is clearly not inconsistent in not allowing "Super.a" to compile, quite the opposite.
A bit as if you had done (Base(Self)).MyMethod(), though it's actually not the same because when calling a method via Super, it also forces a non-virtual call (simply put it really forces to call the base class method, unlike "(Base(Self)).MyMethod()").
It really names an object instance, but you are trying to access something that is part of the class, not of an instance of the class.
So it actually makes sense that it doesn't compile, while on the other hand Base.A() does.
"Base" names a class, "Self" and "Super" name objects. Much different.
That is not to say that Mark couldn't have made "Super.A" to work (actually even C++ allows to access static class data through an object of this class), but in any case BlitzMax is clearly not inconsistent in not allowing "Super.a" to compile, quite the opposite.