initial checkin
This commit is contained in:
41
bepascal/source/bepascal/test/CompilerModes.pas
Normal file
41
bepascal/source/bepascal/test/CompilerModes.pas
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
(*
|
||||||
|
This unit shows a difference between FPC's compiler modes.
|
||||||
|
In the mode objfpc (-S2) this units doesn't compile, the error message is:
|
||||||
|
"Duplicate identifier Preset."
|
||||||
|
If we use Delphi mode (-Sd) it compiles without any errors.
|
||||||
|
|
||||||
|
From FPC developers: "we made that desicion so you write less bogus code."
|
||||||
|
|
||||||
|
This means, fpc modes are stricter on the sintaxis than Delphi is.
|
||||||
|
Nothing on FPC docs indicates this difference. According to one of the FPC
|
||||||
|
developers, they will add this to the documentation.
|
||||||
|
|
||||||
|
To avoid this: either use other names for parameters, or use:
|
||||||
|
{$mode Delphi}
|
||||||
|
|
||||||
|
*)
|
||||||
|
|
||||||
|
unit CompilerModes;
|
||||||
|
|
||||||
|
{.$mode Delphi} // <<-- remove the dot to compile
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
type
|
||||||
|
TAClass = class
|
||||||
|
private
|
||||||
|
fPreset : Boolean;
|
||||||
|
public
|
||||||
|
procedure SetPreset(Preset : Boolean);
|
||||||
|
property Preset : Boolean read fPreset write SetPreset;
|
||||||
|
end;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
procedure TAClass.SetPreset(Preset : Boolean);
|
||||||
|
begin
|
||||||
|
if Preset = fPreset then Exit;
|
||||||
|
fPreset := Preset;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
||||||
Reference in New Issue
Block a user