E2122 PROCEDURE or FUNCTION expected (Object Pascal)
This error message is produced by two different constructs, but in both cases the compiler is expecting to find the keyword 'procedure' or the keyword 'function'.
program Produce; type Base = class class AProcedure; (*case 1*) end; class Base.AProcedure; (*case 2*) begin end; begin end.
In both cases above, the word 'procedure' should follow the keyword 'class'.
program Solve; type Base = class class procedure AProcedure; end; class procedure Base.AProcedure; begin end; begin end.
As can be seen, adding the keyword 'procedure' removes the error from this program.