summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/webtbs/tw8018.pp
blob: c92e290aadeb0c57eef99a7281c8ea2b9059f2f7 (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
41
42
43
44
45
46
47
{$mode delphi}

type
  itest = interface(iunknown)
    procedure Foo(); overload;
    procedure Bar(); overload;
    procedure Foo(x: integer); overload;
    procedure Bar(x: integer); overload;
  end;

  ttest = class(tinterfacedobject, itest)
    procedure Foo(); overload;
    procedure Bar(); overload;
    procedure Foo(x: integer); overload;
    procedure Bar(x: integer); overload;
  end;

var
  i : integer;
  err : boolean;

procedure ttest.Foo(); overload; begin writeln('#'); i:=1; end;
procedure ttest.Foo(x: integer); overload; begin writeln('##'); i:=2; end;
procedure ttest.Bar(); overload; begin writeln('###'); i:=3; end;
procedure ttest.Bar(x: integer); overload; begin writeln('####'); i:=4; end;

var
  t: itest;
  a: integer;
begin
  t := ttest.create();
  t.Foo();
  if i<>1 then
    err:=true;
  t.Foo(a);
  if i<>2 then
    err:=true;
  t.Bar();
  if i<>3 then
    err:=true;
  t.Bar(a);
  if i<>4 then
    err:=true;
  t := nil;
  if err then
    halt(1);
end.