[fpc-devel] default values and "$WRITEABLECONST OFF"

Seth Grover sethdgrover at gmail.com
Mon Apr 5 23:43:59 CEST 2010


Why does disabling writing to typed constants (with $J or
$WRITEABLECONST, see
http://www.freepascal.org/docs-html/prog/progsu40.html#x47-450001.1.40)
make it so i cannot use those consts as default values for const
parameters.

In other words, why does this produce an illegal expression when compiling?

===============================
program project1;

{$mode objfpc}{$H+}
{$WRITEABLECONST OFF}

type
  TestIntegerType = integer;

const
  TestIntegerZero : TestIntegerType = 0;
  TestIntegerOne : TestIntegerType = 1;

procedure AcceptTestInteger(const val : TestIntegerType = TestIntegerZero);
begin
end;

begin
  AcceptTestInteger();
end.
===============================

I don't see why that's al illegal expression. Is this a compiler bug?
If not, can someone explain to me why this is not allowed?

Thanks,

-SG

--
This email is fiction. Any resemblance to actual events
or persons living or dead is purely coincidental.

Seth Grover
sethdgrover[at]gmail[dot]com



More information about the fpc-devel mailing list