[Lazarus] Updating procedure signatures

Mattias Gaertner nc-gaertnma at netcologne.de
Tue Jun 25 17:39:54 CEST 2013


On Tue, 25 Jun 2013 17:20:12 +0200
Vojtěch Čihák <vojtech.cihak at atlas.cz> wrote:

> Thanks. I understand now.
>  
> I tested it a little (Lazarus 1.1 r41895M FPC 2.7.1 x86_64-linux-qt) and I have two issues:
>  
> 1) Inconsistent behaviour when both options are UNchecked (Update all method signatures and Update multiple procedure signatured are OFF)
>  
> this:
> procedure A(a: string); | //hit CTRL+SHIFT+C here
> procedure B(a: string);
> 
> implementation
> 
> procedure A;
> begin
> 
> end;
> 
> procedure B;
> begin
> 
> end;  
>  
> leads to this:
>  
> procedure A(a: string); |
> procedure B(a: string);
> 
> implementation
> 
> procedure A(a: string);
> begin
> 
> end;
> 
> procedure B;
> begin
> 
> end;

Correct.

  
> BUT this:
>  
> public
>  { public declarations }
>  procedure A(a: string); |  //hit CTRL+SHIFT+C here
>  procedure B(a: string);
>  end; 
> 
> var
>  Form1: TForm1;
> 
> implementation 
> 
> { TForm1 }
> 
> procedure TForm1.A;
> begin
> 
> end;
> 
> procedure TForm1.B;
> begin
> 
> end;  
>  
> leads to this:
>  
> public
>  { public declarations }
>  procedure A(a: string); |
>  procedure B(a: string);
>  end; 
> 
> var
>  Form1: TForm1;
> 
> implementation 
> 
> { TForm1 }
> 
> procedure TForm1.A(a: string);
> begin
> 
> end;
> 
> procedure TForm1.B(a: string);
> begin
> 
> end;
> 
> procedure TForm1.B;
> begin
> 
> end;
>  
> i.e. the third method is created

Correct. Disabling the option gets the old behavior.

  
> 2) Attempt to update signature of procedure (not method) backwards from implememtation to interface leads to Acces Violation or Out of memory error, it sometimes kills IDE.

Please create bug report with an example.

> It works well for one method, as you mentioned in your mail.


Mattias




More information about the Lazarus mailing list