Each subtype of an abstract record type must either implement all its abstract methods, or be declared abstract itself. The compiler should check this, instead of generating object code with undefined labels.
MODULE eAbsRec;
TYPE a = ABSTRACT RECORD END;
b = RECORD (a) END;
ABSTRACT PROCEDURE (VAR self: a) m;
VAR r*: b;
END eAbsRec.
Each subtype of an abstract record type must either implement all its abstract methods, or be declared abstract itself. The compiler should check this, instead of generating object code with undefined labels.