瀏覽代碼

* overloading byte->longint operator should be forbidden

peter 23 年之前
父節點
當前提交
8572822119
共有 1 個文件被更改,包括 22 次插入0 次删除
  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.
+