When a class definition is filed in, it invokes the method Class>>_equivalentSubclass:* to determine if a new version of the class should be created, or if the definition is the same. _equivalentSubclass:* tests for a number of qualities (name of class and superclass, names of instance and class variables, pool dictionaries, etc.).
During an upgrade that requires method recompile/filein of application code, if the filein causes a new version to be created, the complete upgrade process cannot produce correct results. The _equivalentSubclass:* method did not provide sufficient details to determine why the class was not considered equivalent, making analysis difficult.
Last updated: 12/16/15