summaryrefslogtreecommitdiff
path: root/tests/webtbs/tw3768.pp
blob: 75f7d9a5b3e5ca321e09f5130e0619a155dff31d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
{ Source provided for Free Pascal Bug Report 3786 }
{ Submitted by "drf" on  2005-03-14 }
{ e-mail: drfuchs@yahoo.com }

{$mode delphi}

type
  funky_class=class;
  base_class=class
    procedure proc(f:funky_class);virtual;
  end;
  subclass2=class(base_class)
    procedure proc(f:funky_class);override;
  end;
  subclass3=class(base_class)
    procedure proc(f:funky_class);override;
  end;
  funky_class=class
    procedure proc(p:base_class);overload;virtual;
    procedure proc(p:subclass2);overload;virtual;
    procedure proc(p:subclass3);overload;virtual;
  end;
  funky_subclass=class(funky_class)
    procedure proc(p:subclass3);override;
    procedure proc(p:subclass2); override;
  end;

procedure base_class.proc(f:funky_class); begin end;
procedure subclass2.proc(f:funky_class); begin end;
procedure subclass3.proc(f:funky_class); begin end;

procedure funky_class.proc(p:base_class); begin end;
procedure funky_class.proc(p:subclass2); begin end;
procedure funky_class.proc(p:subclass3); begin end;

procedure funky_subclass.proc(p:subclass2); begin end;
procedure funky_subclass.proc(p:subclass3); begin end;

begin
end.