[Oberon] Oberon-07 expression0
    Tomas Kral 
    thomas.kral at email.cz
       
    Sun Jun 21 11:52:24 CEST 2020
    
    
  
Hi,
Looking at some history of `ORP' development, I spot a change in
`expression0'
Cannot understand the code, applies to pointer assignments?
Earlier only base or extended type assignments allowed, newer allows 
also procs of the same signature assignment?
from earlier
      ELSIF (xf = ORB.Pointer) & (yf = ORB.Pointer) &
          (IsExtension(x.type.base, y.type.base) OR IsExtension(y.type.base, x.type.base)) THEN
        IF rel <= ORS.neq THEN ORG.IntRelation(rel,  x, y) ELSE ORS.Mark("only = or #") END
to newer
      ELSIF (xf = ORB.Pointer) & (yf = ORB.Pointer) &
          (IsExtension(x.type.base, y.type.base) OR IsExtension(y.type.base, x.type.base))
          OR (xf = ORB.Proc) & (yf = ORB.Proc) & EqualSignatures(x.type, y.type) THEN
        IF rel <= ORS.neq THEN ORG.IntRelation(rel,  x, y) ELSE ORS.Mark("only = or #") END
Many thanks
-- 
Tomas Kral <thomas.kral at email.cz>
    
    
More information about the Oberon
mailing list