On 22.12.2021 21:16, Blaise wrote:
1) The attached metaclass_meth_to_procvar-1.patch fixes the internal error 
reported for:
[ICE] Assigning class methods, accessed via a class reference type, to 
incompatible procvars
Also fixes:

1B) [ICE] Assigning class static methods, accessed via an object type, to 
incompatible procvars
-------8<-------
type O = object
        class procedure Static; static;
end;
class procedure O.Static; begin end;

var IncompatWStatic: procedure of object;
begin
        IncompatWStatic := O.Static // ICE 200301042
end.
-------8<-------

1C) [ICE] Assigning class methods, accessed via a helper type, to incompatible 
procvars
-------8<-------
type C = class end;
type H = class helper for C
        class procedure NonStatic;
        class procedure Static; static;
end;
class procedure H.NonStatic; begin end;
class procedure H.Static; begin end;

var IncompatWNonStatic: procedure;
var IncompatWStatic: procedure of object;
begin
        IncompatWNonStatic := H.NonStatic; // ICE 200301042
        IncompatWStatic := H.Static // ICE 200301042
end.
-------8<-------
See https://lists.freepascal.org/pipermail/fpc-devel/2021-December/044251.html 
for the discussion on rejecting such qualification.

--
βþ
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to