From c49bd104999db94e76b7172d2e16b8dadd40b913 Mon Sep 17 00:00:00 2001 From: peter Date: Fri, 11 Apr 2003 14:50:31 +0000 Subject: [PATCH] * new bug --- tests/webtbs/tw2454.pp | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 tests/webtbs/tw2454.pp diff --git a/tests/webtbs/tw2454.pp b/tests/webtbs/tw2454.pp new file mode 100644 index 0000000000..9aa4081cf3 --- /dev/null +++ b/tests/webtbs/tw2454.pp @@ -0,0 +1,42 @@ +{ Source provided for Free Pascal Bug Report 2454 } +{ Submitted by "Nikolay Nikolov" on 2003-04-06 } +{ e-mail: nickysn1983@netscape.net } +{$MODE objfpc} +Program Test; + +Type + TFunClass = Class(TObject) + Class Procedure FunProc(q : TFunClass); + data : Integer; + End; + +Class Procedure TFunClass.FunProc(q : TFunClass); + +Begin + Writeln(q.data); + With q Do + Begin + Writeln(q.data); + + Writeln(data); { fpc 1.1 says: Error: Only class methods can be accessed in class methods + + this is a bug, because 'data' actually means 'q.data' due to the 'with' statement, + (this can be seen if you make this a normal method by removing the 'Class' keyword + and running the program, it will writeln q.data, not self.data) + so it shouldn't cause an error + } + End; +End; + +Var + c1, c2 : TFunClass; + +Begin + c1 := TFunClass.Create; + c2 := TFunClass.Create; + c1.data := 5; + c2.data := 7; + c1.FunProc(c2); + c1.Destroy; + c2.Destroy; +End.