Super.constructor seems to skip a level

I have some classes that look like this

dbRecord (super = none)
clFileMaster (super = dbRecord)
tbAppPrefs (super = clFileMaster)
clAppPrefs (super = tbActioData)

tbLocalPrefs(super = clFileMaster)
clLocalPrefs(super = tbLocalPrefs)

When I instantiate a clLocalPrefs class - the constructors correctly step up through the classes via super.constructor - so I can see tbLocalPrefs.constructor, clFileMaster.constructor and dbRecord.constructor

But when I instantiate a clAppPreffs class - the constructors seem to miss a beat - tbAppPrefs.constructor jumps straight up to dbRecord.constructor - completely missing the code that I have placed in clFileMaster.constructor.

Does anyone have any idea what might be going on?

Mmm, might have fixed it. I was passing some parameters within the super.constructor calls. Analyse project showed no problems, indeed mousing over the super.constructor in tbAppPrefs correctly shows clFileMaster as the super.

It seems however that when running it picks up a difference in the structure of one of the passed parameters and jumps to dbRecord.constructor instead of clFileMaster.constructor - a kind of overloading of constructors I suppose - but it would be nice if you could see it in the IDE.

Super.Constructor will locate the first Constructor method in the class hierarchy (starting in the superclass) that matches the parameter signature of the call. This is the expected behavior of the Super keyword, and is not limited to Constructors.

Constructors in Xojo are just regular methods and not “real” constructors like in other programming languages / frameworks. So everything that applies to regular methods in terms of overriding, etc. applies to constructors too.