{%FAIL} {$mode objfpc} {$modeswitch implicitfunctionspecialization} { All generic parameters must be used in the paramter list } program timpfuncspez30; type generic TAnyRecord = record end; type TSomeRecord = specialize TAnyRecord; generic procedure DoThis(aRecord: specialize TAnyRecord); begin end; var rec: TSomeRecord; begin DoThis(rec); end.