Sam,

I don't get a warning on the first example. The compiler is smart enough to
work out that 'bob' will always be initialised because there is no way out
of the if/else statement without either assigning to bob or raising an
error.

I do get a hint on the second example and again this is how it should
behave.

In general it is always possible to eliminate hints and warnings. Sometimes
it requires an initialisation line that isn't strictly required (generally
because there are multiple if statements and the compiler can't determine
the exact program flow) but it is always possible.

David.

> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] Behalf Of Allan, Samuel
> Sent: Tuesday, 1 June 2004 11:07 AM
> To: NZ Borland Developers Group - Delphi List
> Subject: RE: [DUG] Weird Delphi Warning
>
>
> I've got another one that I found funny:
>
> procedure Samuel([arguments]);
> var
>   bob: Integer;
> begin
>   ...
>   if [condition1] then
>     bob := 1
>   else if [condition2] then
>     bob := 2
>   else if [condition3] then
>     bob := 3
>   else
>     raise Exception.Create('error message');
>   jim := bob + 10;
>   ...
> end;
>
> gives the warning "Variable 'bob' might not have been initialized" on
> the line "jim := bob + 10". Which is true, even though if bob has no
> value then the exception will prevent that line of code from being run.
> But, if you change the code to:
>
> procedure Samuel([arguments]);
> var
>   bob: Integer;
> begin
>   ...
>   bob := 0; // added this line to get rid of warning
>   if [condition1] then
>     bob := 1
>   else if [condition2] then
>     bob := 2
>   else if [condition3] then
>     bob := 3
>   else
>     raise Exception.Create('error message');
>   jim := bob + 10;
>   ...
> end;
>
> then you get a hint "Value assigned to 'bob' never used".
>
> _______________________________________________
> Delphi mailing list
> [EMAIL PROTECTED]
> http://ns3.123.co.nz/mailman/listinfo/delphi
>

_______________________________________________
Delphi mailing list
[EMAIL PROTECTED]
http://ns3.123.co.nz/mailman/listinfo/delphi

Reply via email to