[fpc-devel] [Patch/RFC] Warnings for (in/over)complete case statements

Martok listbox at martoks-place.de
Wed Jan 2 17:41:31 CET 2019


Am 02.01.2019 um 11:19 schrieb Michael Van Canneyt:

> Consider the following:
> 
> Type
>    TMyClass = class
>    Private
>      function GetString(AIndex: Integer): string;
>    Published
>      Property MyString : String Index 1 Read GetString;
>    end;
> 
> function TMyClass.GetString(AIndex: Integer): string;
> 
> begin
>    case AIndex of
>     1 : Result:=GenerateSomestringvalue;
>    end;
> end;
> 
> I don't think there should be errors or warnings.

Good example.

Although... you *could* call GetString from some other class member function,
and at that point Result would be undefined. I don't think the compiler can
prove that?
Wait - why does that code not raise a 5033 "Function Result does not seem to be
set"? Add a second property "Property MyOtherString : String Index 2 Read
GetString;", and now its provably wrong. No warning. This seems wrong,
considering what we just talked about on fpc-pascal.

-- 
Regards,
Martok





More information about the fpc-devel mailing list