[fpc-devel] Thoughts on being able to declare "pointer-to-type" parameters directly in method signatures?
pascaldragon at googlemail.com
Fri Jun 7 21:43:57 CEST 2019
Am 07.06.2019 um 21:06 schrieb Ben Grasset:
> On Fri, Jun 7, 2019 at 2:35 PM Jonas Maebe <jonas at freepascal.org
> <mailto:jonas at freepascal.org>> wrote:
> None of these can be defined as a type in parameter lists. Keep in
> that "^Type" defines a new type. Semantically, it's at the same
> level as
> "0..5" and "record a, b: longint end;".
> Right, that's the point. There's nothing else that *would* make any
> syntactic sense in a parameter list besides "^Type" that isn't already
> allowed in them.
No, I think you *missed* the point. "^Type" defines a new type. "0..5"
defines a new type. "set of (Alpha, Beta, Gamma)" defines a new type.
"record a, b: longint end" defines a new types. All four of these can be
used either to declare a named type or for an anonymous type in a
variable declaration. However none of these can be used in a parameter
declaration. Parameter declarations and variable declarations are
different beasts, they have different rules (for example you can't
declare open arrays outside of parameter declarations and no, dynamic
arrays don't count, cause despite them sharing a syntax dynamic arrays
and open arrays are different concepts).
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the fpc-devel