# HG changeset patch # User Claus Gittinger # Date 1419867280 -3600 # Node ID ce2eaec7a6f25a40b633d9c8a27ee838028fa608 # Parent 5ea3a01fb14fdeef24fa307ae182b8e1a661b244 class: ClassBuilder changed: #buildClass #fixMethodsIn: #handleEasyNewClass: #handleHardNewClass: when classVars are listed in different order, these lists are considered the same (i.e. no need to recompile after an order change) diff -r 5ea3a01fb14f -r ce2eaec7a6f2 ClassBuilder.st --- a/ClassBuilder.st Mon Dec 29 16:14:05 2014 +0100 +++ b/ClassBuilder.st Mon Dec 29 16:34:40 2014 +0100 @@ -670,8 +670,8 @@ newInstVars := newClass instanceVariableString asCollectionOfWords. oldClassInstVars := oldClass class instanceVariableString asCollectionOfWords. newClassInstVars := newClass class instanceVariableString asCollectionOfWords. - oldClassVars := oldClass classVariableString asCollectionOfWords. - newClassVars := newClass classVariableString asCollectionOfWords. + oldClassVars := oldClass classVariableString asCollectionOfWords asSet. + newClassVars := newClass classVariableString asCollectionOfWords asSet. oldPoolDictionaries := oldClass sharedPoolNames. newPoolDictionaries := newClass sharedPoolNames. poolChange := (oldPoolDictionaries ~= newPoolDictionaries). @@ -909,7 +909,7 @@ and:[newSuperClass notNil and:[oldSuperClass allClassVarNames = newSuperClass allClassVarNames and:[oldSuperClass name = newSuperClass name - and:[oldClassVars = newClassVars + and:[(oldClassVars sameContentsAs: newClassVars) and:[poolChange not]]]]]) ifTrue:[ @@ -1166,7 +1166,7 @@ oldClass setPackage:newClass package. ]. - ((oldClassVars = newClassVars) + ((oldClassVars sameContentsAs: newClassVars) and:[oldPoolVars = newPoolVars]) ifTrue:[ "/ really no change (just comment and/or category) @@ -1286,7 +1286,7 @@ changed ifTrue:[ (superClassChange and:[(oldSuperClass isNil or:[newSuperClass notNil and:[oldSuperClass name = newSuperClass name]]) - and:[(oldClassVars = newClassVars) + and:[(oldClassVars sameContentsAs: newClassVars) and:[(oldInstVars = newInstVars) and:[poolChange not and:[oldClass comment = newClass comment]]]]]) ifFalse:[ @@ -2389,11 +2389,11 @@ !ClassBuilder class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libbasic/ClassBuilder.st,v 1.130 2014-07-11 12:22:02 cg Exp $' + ^ '$Header: /cvs/stx/stx/libbasic/ClassBuilder.st,v 1.131 2014-12-29 15:34:40 cg Exp $' ! version_CVS - ^ '$Header: /cvs/stx/stx/libbasic/ClassBuilder.st,v 1.130 2014-07-11 12:22:02 cg Exp $' + ^ '$Header: /cvs/stx/stx/libbasic/ClassBuilder.st,v 1.131 2014-12-29 15:34:40 cg Exp $' ! !