--- a/ChangesBrowser.st Sat Apr 27 20:00:04 1996 +0200
+++ b/ChangesBrowser.st Mon Apr 29 10:05:59 1996 +0200
@@ -681,7 +681,8 @@
"compare a change with current version"
|aStream chunk sawExcla parseTree thisClass cat oldSource newSource
- parser sel oldMethod outcome showDiff d t1 t2 cls selector isLoaded|
+ parser sel oldMethod outcome showDiff d t1 t2 cls selector isLoaded
+ method|
aStream := self streamForChange:changeNr.
aStream isNil ifTrue:[^ self].
@@ -696,7 +697,7 @@
parseTree := Parser parseExpression:chunk.
(parseTree notNil and:[parseTree isMessage]) ifTrue:[
- (parseTree selector == #removeSelector:) ifTrue:[
+ ((selector := parseTree selector) == #removeSelector:) ifTrue:[
thisClass := (parseTree receiver evaluate).
thisClass isBehavior ifTrue:[
(self checkClassIsLoaded:thisClass) ifTrue:[
@@ -711,6 +712,21 @@
]
]
].
+ selector == #category: ifTrue:[
+ parseTree receiver isMessage ifTrue:[
+ parseTree receiver selector == #compiledMethodAt: ifTrue:[
+ (method := parseTree receiver evaluate) isMethod ifTrue:[
+ method category = parseTree arg1 evaluate ifTrue:[
+ outcome := 'change has no effect\\(same category)'.
+ ] ifFalse:[
+ outcome := 'category is different (' , method category , ' vs. ' , parseTree arg1 evaluate , ')'
+ ]
+ ] ifFalse:[
+ outcome := 'there is no such method'
+ ]
+ ]
+ ]
+ ]
]
] ifTrue:[
parseTree := Parser parseExpression:chunk.
@@ -782,7 +798,7 @@
].
"Created: 24.11.1995 / 14:30:46 / cg"
- "Modified: 12.12.1995 / 14:15:25 / cg"
+ "Modified: 29.4.1996 / 10:05:04 / cg"
!
contractClass:className selector:selector to:maxLen
@@ -2157,5 +2173,5 @@
!ChangesBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.75 1996-04-25 16:27:57 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.76 1996-04-29 08:05:59 cg Exp $'
! !