Afloje la restricción "Procedimiento / función local asignada a la variable de procedimiento" con gracia

Considere el siguiente caso de prueba:

{ CompilerVersion = 21 }
procedure Global();

  procedure Local();
  begin
  end;

type
  TProcedure = procedure ();
var
  Proc: TProcedure;
begin
  Proc := Local;  { E2094 Local procedure/function 'Local' assigned to procedure variable }
end;

En el compilador de la línea 13 emite un mensaje con nivel de ERROR, prohibiendo todos los casos de uso de tales procedimientos locales. La resolución "oficial" es promoverLocalímbolo @ para el alcance externo (es decir, hágalo hermano deGlobal) que tendría un impacto negativo en la "estructura" del código.

Estoy buscando la manera de evitarlo de la manera más elegante, preferiblemente haciendo que el compilador emita un mensaje de nivel de ADVERTENCIA.

Respuestas a la pregunta(4)

Su respuesta a la pregunta