Browse Source

* overloading byte->longint operator should be forbidden

peter 23 years ago
parent
commit
8572822119
1 changed files with 22 additions and 0 deletions
  1. 22 0
      tests/tbf/tb0141.pp

+ 22 - 0
tests/tbf/tb0141.pp

@@ -0,0 +1,22 @@
+{ %fail }
+
+{ This should not be allowed, it creates an infinite loop.
+  The loop can be solved using word() typecasts. But it is
+  to dangerous code to be allowed }
+operator := (b:byte) l:longint;
+begin
+  if b=0 then
+   l:=-1
+  else
+   l:=0;  
+end;
+
+var
+  l : longint;
+  b : byte;
+begin
+  b:=0;
+  l:=b;
+  writeln(l);
+end.
+