Parser.st
changeset 4195 021e616ebb43
parent 4191 69983cec4649
child 4196 97988faec2fd
--- a/Parser.st	Thu Sep 21 10:53:56 2017 +0200
+++ b/Parser.st	Mon Oct 09 17:53:30 2017 +0200
@@ -2913,7 +2913,8 @@
             ]
         ] ifFalse:[
             (mthd isSubclassResponsibility) ifTrue:[
-                allowed := (cls == classToCompileFor).      "methods in abstract classes may send messages to abstract methods in the same class"
+                "methods in abstract classes may send messages to abstract methods in the same class or its instances"
+                allowed := (cls == classToCompileFor or:[cls class == classToCompileFor]).      
                 allowed ifFalse:[
                     "methods in abstract classes may send messages to abstract methods in meta class"
                     (cls == classToCompileFor class) ifTrue:[
@@ -2921,7 +2922,7 @@
                     ].
                 ].
                 allowed ifTrue:[
-                    "/ note from cg to stefan: this is something that lint must report - not the compiler.
+                    "/ cg: this is something that lint must report - not the compiler.
                     "/ if not implemented in all subclasses, it's a bug of the subclass;
                     "/ not a bug here - that message sent here is perfectly correct. 
                     "/ (it is very annoying for a framework developer to get
@@ -2946,8 +2947,8 @@
     ].
     ^ err.
 
-    "Modified: / 01-02-2017 / 17:05:01 / stefan"
     "Modified: / 16-07-2017 / 11:28:48 / cg"
+    "Modified: / 09-10-2017 / 16:17:33 / stefan"
 !
 
 checkUnusedMethodVars