Groups | Search | Server Info | Login | Register
Groups > comp.lang.ada > #49358
| From | Simon Wright <simon@pushface.org> |
|---|---|
| Newsgroups | comp.lang.ada |
| Subject | Discriminant problem |
| Date | 2021-08-29 19:51 +0100 |
| Organization | Aioe.org NNTP Server |
| Message-ID | <lytuj8dqya.fsf@pushface.org> (permalink) |
I have
Location_Step.Node_Test :=
(Node_Test => Get_Node_Type_Test (T.Node_Type_Part.all),
Name => Null_Unbounded_String);
where
type Location_Steps is record
...
Node_Test : Node_Test_Specification
:= (Node_Test => No_Node_Test,
Name => Null_Unbounded_String);
...
end record;
and
type Node_Test_Specification
(Node_Test : Node_Tests := No_Node_Test) is
record
Name : Unbounded_String;
case Node_Test is
...
end case;
end record;
Because of that function call in
Node_Test => Get_Node_Type_Test (T.Node_Type_Part.all)
the compiler says
value for discriminant "Node_Test" must be static
non-static function call (RM 4.9(6,18))
OK, I get that (tiresome though it is, and I'm amazed I've never come
across it before), but how to approach it? I seem to be OK with
case Get_Node_Type_Test (T.Node_Type_Part.all) is
when Text_Node_Test =>
Location_Step.Node_Test :=
(Node_Test => Text_Node_Test,
Name => Null_Unbounded_String);
when ...
end case;
but this seems very ugly.
I've only just noticed this: I'd been using -gnatX (so that I could use
'Image on records), which meant that the original code was OK (in the
sense that it didn't raise any problems), but of course it's not
portable even within the GNAT family. I think -gnat2020 might solve the
issue too, but there's a bit of a skew between CE 2021 and GCC 11.
Back to comp.lang.ada | Previous | Next — Next in thread | Find similar
Discriminant problem Simon Wright <simon@pushface.org> - 2021-08-29 19:51 +0100
Re: Discriminant problem Simon Wright <simon@pushface.org> - 2021-08-30 09:13 +0100
Re: Discriminant problem "Jeffrey R. Carter" <spam.jrcarter.not@spam.not.acm.org> - 2021-08-31 00:03 +0200
Re: Discriminant problem "Randy Brukardt" <randy@rrsoftware.com> - 2021-08-30 20:53 -0500
Re: Discriminant problem Simon Wright <simon@pushface.org> - 2021-09-09 20:51 +0100
csiph-web