Thank you Camille. I added a gist for future reference: https://gist.github.com/eMaringolo/11346194
Best regards! Esteban A. Maringolo 2014-04-27 7:44 GMT-03:00 Camille Teruel <[email protected]>: > Hello Esteban, > > Sorry for the delay. > All the layout of all these classes is wrong, due to some ancient bug. > The bug fix has been integrated but all the classes that have been modified > in-between may have this problem. > To fix that you have to force the rebuild of these classes (by adding then > removing a dummy inst var for ex). > Here is a script that do that: > > ivName := 'anIVNameImPrettySureNobodyUses'. > > all := Smalltalk allClasses flatCollect: [ :e | { e . e class } ]. > candidates := all reject: [ :e | e superclass isNil or: [e layout slotScope > isKindOf: LayoutEmptyScope ] ]. > toRebuild := candidates reject: [ :e | e superclass layout slotScope == e > layout slotScope parentScope ]. > toRebuild do: [ :e | e addInstVarNamed: ivName ]. > toRebuild do: [ :e | > (e isClassSide > ifTrue: [ (Smalltalk at: e instanceSide name) classSide ] > ifFalse: [ Smalltalk at: e name ]) removeInstVarNamed: ivName ] > > > On 25 avr. 2014, at 16:53, Esteban A. Maringolo <[email protected]> > wrote: > > Camille, all the classes in my hiearchy are in the toRebuild collection. > > But these others are also included: > > AdabasLikePlatform class > AsyncFileReadStream class > CannotAutomaticallyDetermineJoin class > CannotFindSession class > DialogWindowModel class > DolphinDatabaseAccessor class > DuplicatePrimaryKeyException class > ExternalOSProcess class > GlorpDatabaseReadError class > GlorpDatabaseWriteError class > GlorpIllegalCommand class > GlorpInvalidExpressionError class > GlorpInvalidTypeError class > GlorpLinkTableAnywhereDescriptorSystem class > GlorpTransactionFailure class > GlorpWriteFailure class > JQueryClass class > JQueryInstance class > MAMemoryFileModel class > MBAbstractInfoList class > MBLabelInfo class > MBSpecInfo class > MCClassDefinition > MCClassDefinition class > MCClassTraitDefinition > MCClassTraitDefinition class > MCFileTreeFileSystemUtils class > MCMethodDefinition > MCMethodDefinition class > MCMockDefinition > MCMockDefinition class > MCOrganizationDefinition > MCOrganizationDefinition class > MCScriptDefinition > MCScriptDefinition class > MacOSProcessAccessor class > MacProcess class > MySQLPlatform class > OS2OSProcessAccessor class > OS2Process class > ObjectStudioDatabaseAccessor class > OcelotPlatform class > OraclePlatform class > PGAbstractStringResponse class > PGAsciiRow class > PGAuthentication class > PGBackendKeyData class > PGCancelRequest class > PGColumnDescription class > PGCopyInResponse class > PGCopyOutResponse class > PGFunctionCall class > PGFunctionResultResponse class > PGNotificationResponse class > PGPasswordPacket class > PGQuery class > PGReadyForQuery class > PGRowDescription class > PGStartupPacket class > PGTerminate class > PostgreSQLPlatform class > ProfStef class > RBSLDAPAuthenticationProvider class > RBSPostgresAuthenticationProvider class > RBSSuperUserSession class > RBSVoyageAuthenticationProvider class > RiscOSProcess class > RiscOSProcessAccessor class > SQLServerPlatform class > SQLite3Platform class > SpecDebugActionButton class > SqueakDatabaseAccessor class > TextInputFieldModel class > UIThemeVistary class > UIThemeWatery class > UnixProcess class > VADatabaseAccessor class > VWDatabaseAccessor class > ValidationError class > WAAncestryAttributeEditor class > WABufferedResponse class > WACacheAttributeEditor class > WAComboResponse class > WAConfigAttributeEditor class > WAFileAttributeEditor class > WAFileLibrary class > WAFileMetadataLibrary class > WAFilterAttributeEditor class > WAStreamedResponse class > WindowsOSProcessAccessor class > WindowsProcess class > WorldModel class > > Regards! > > > Esteban A. Maringolo > > > 2014-04-25 4:42 GMT-03:00 Camille Teruel <[email protected]>: > > > On 25 avr. 2014, at 09:13, Marcus Denker <[email protected]> wrote: > > > On 25 Apr 2014, at 04:33, Esteban A. Maringolo <[email protected]> wrote: > > I was adding a Class instance variable when I got this, admittedly, funny > error. > > Any clues of why? > > The class has a Trait (which I plan to remove). Maybe that is causing this? > > > This is this problem: > > https://pharo.fogbugz.com/f/cases/13028/Adding-ClassVariables-corrupts-class-hierarchy > > > No I don't think so, 13028 is the subclass cache problem whereas Esteban's > problem seems to be related to wrong slot scope problem. > Esteban, is it the latest image? > Can run this script in your image and tell us the content of toRebuild? > > all := Smalltalk allClasses flatCollect: [ :e | { e . e class } ]. > candidates := all reject: [ :e | e superclass isNil or: [e layout slotScope > isKindOf: LayoutEmptyScope ] ]. > toRebuild := candidates reject: [ :e | e superclass layout slotScope == e > layout slotScope parentScope ]. > > Does toRebuild contains your class or one class of its hierarchy? > > > > > > >
