You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When trying to extend a class in another application with EmInterface>>extend: aClass in: anApplication, for some reason the prerequisite is not the same as the one being computed, so it reports that the controller application of a class is not visible.
Application>>isBasedOn: application withRecursionSet: applicationsAlreadyChecked
"Return whether @application is a prerequisite of the receiver."
(applicationsAlreadyChecked includes:self)
ifTrue: [ ^false ] "The receiver failed previously, so don't check it again"ifFalse: [
self prerequisites do: [ :prereq |
prereq == application ifTrue: [ ^true ]. "<--- this check"
(prereq isBasedOn: application withRecursionSet: applicationsAlreadyChecked) ifTrue: [ ^true ].
applicationsAlreadyChecked add: prereq ].
^false ]
The text was updated successfully, but these errors were encountered:
The problem was that when the TonelApplications are read, the prerequisites are computed to determine its load order, but when after a TonelApplication is loaded as proper Application the prerequisite points to a EmShadowApplication, so in the isBasedOn:withRecursionSet: check described above it fails even when application and prereq have the same name, because one is an Application and the other an EmShadowApplication.
I checked first by modifying the method to also compare by name (and not just identity) and it worked, but then I modified the TonelLoader to replace references to shadow apps by the actual app after each app is loaded.
When trying to extend a class in another application with
EmInterface>>extend: aClass in: anApplication
, for some reason the prerequisite is not the same as the one being computed, so it reports that the controller application of a class is not visible.The text was updated successfully, but these errors were encountered: