<div dir="ltr"><div dir="ltr">On Fri, Jun 7, 2019 at 1:47 PM Jonas Maebe <<a href="mailto:jonas@freepascal.org">jonas@freepascal.org</a>> wrote:</div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
It would be inconsistent to only allow such declaration for pointers, <br>
and not for other types (a programming language should strive to be as <br>
orthogonal as possible, with as few exceptions as possible).<br></blockquote><div><br></div><div>I can't think of any particular variety of normal declaration *other* than pointer aliases that aren't allowed in parameter lists, though.</div><div><br></div><div>As you said, "array of type" is fine (in all modes, I think.) In fact, that's one of the reasons that the inability to use the "^" symbol in front of a type for a pointer alias has always seemed like "missing" functionality to me, as the fact that arrays can work like that makes me think it's not unrealistic to implement the same kind of thing for pointers.</div><div><br></div><div>The "local procvar" thing is probably less common, but again it exists (and only actually requires {$modeswitch NestedProcvars} I'm pretty sure.)</div><div><br></div><div>Apart from that, what else is there? Parameters can be records, classes, objects, interfaces, function types, primitives, e.t.c.</div><div><br></div><div>There's no other type of alias I'm aware of that would make any sense by itself (by which I mean, outside the context of an actual "type" block.)</div></div></div>