Method.st
changeset 16877 d4a452edacb5
parent 16847 b3e7faf77eb1
child 16910 8f814706ef37
--- a/Method.st	Fri Oct 03 04:11:09 2014 +0200
+++ b/Method.st	Sat Oct 04 00:19:33 2014 +0200
@@ -2664,16 +2664,9 @@
     "return true, if this method is an extension (i.e. package ~= classes' package)
      which shadows an existing method from another package (i.e. a package conflict)"
 
-    |myClass myProjectDefinition|
-
-    myClass := self mclass.
-    myClass isNil ifTrue:[^ false].
-    myClass := myClass theNonMetaclass.
-    ^ myClass notNil
-        and:[ package ~= myClass package
-        and:[ package ~= PackageId noProjectID
-        and:[ (myProjectDefinition := myClass projectDefinitionClass) notNil
-        and:[ (myProjectDefinition savedOverwrittenMethodForClass:self mclass selector:self selector) notNil ]]]]
+    ^ self shadowedMethod notNil.
+
+    "Modified: / 03-10-2014 / 15:16:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 isSynthetic
@@ -3368,6 +3361,26 @@
     "Created: / 08-08-2011 / 18:53:24 / cg"
 !
 
+shadowedMethod
+    "Return shadowed method if this method is an extension (i.e. package ~= classes' package)
+     which shadows an existing method from method's class.
+     If this method does not shadow any other method, return nil."
+
+    | myClass myProjectDefinition |
+
+    myClass := self mclass.
+    myClass isNil ifTrue:[^ nil].
+    myClass := myClass theNonMetaclass.
+    (myClass notNil
+        and:[ package ~= myClass package
+        and:[ package ~= PackageId noProjectID
+        and:[ (myProjectDefinition := myClass projectDefinitionClass) notNil ]]])
+        ifTrue:[ ^ (myProjectDefinition savedOverwrittenMethodForClass:self mclass selector:self selector) ].
+    ^ nil
+
+    "Created: / 03-10-2014 / 15:16:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 shouldBeSkippedInDebuggersWalkBack
     "return true, if this method thinks, it should be skipped in a walkback.
      This is done by looking for a #skipInDebuggersWalkBack flag in the methods resources."
@@ -3838,11 +3851,11 @@
 !Method class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Method.st,v 1.438 2014-09-23 19:04:15 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Method.st,v 1.439 2014-10-03 22:19:33 vrany Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/Method.st,v 1.438 2014-09-23 19:04:15 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Method.st,v 1.439 2014-10-03 22:19:33 vrany Exp $'
 !
 
 version_SVN