From mboxrd@z Thu Jan 1 00:00:00 1970
Path: eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Blady
Newsgroups: comp.lang.ada
Subject: error: choice must be static?
Date: Sun, 11 Feb 2024 13:29:59 +0100
Organization: A noiseless patient Spider
Message-ID:
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 11 Feb 2024 12:30:00 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="d7fb2a2c9a59dddde27b49f6bb25abf7";
logging-data="1029400"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19uoSdXdaDJMcs1GzRexRX2"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:ZpaLo5ONBuYR7S66FSb4Ki3tBw8=
Content-Language: fr, en-US
Xref: news.eternal-september.org comp.lang.ada:66050
List-Id:
Hello,
I've got the following GNAT error:
$ gcc -c -gnat2022 -gnatl 2024/test_20240211_static_choice.adb
GNAT 13.2.0
1. procedure test_20240211_static_choice is
2.
3. package Maps is
4. type Map_Type is private
5. with Aggregate => (Empty => Empty_Map,
6. Add_Named => Add_To_Map);
7. procedure Add_To_Map (M : in out Map_Type; Key : in
Integer; Value : in String);
8. Empty_Map : constant Map_Type;
9. private
10. type Map_Type is array (1..10) of String (1..10);
11. procedure Add_To_Map (M : in out Map_Type; Key : in
Integer; Value : in String) is null;
12. Empty_Map : constant Map_Type := [1..10 => " "];
-- error: choice must be static
|
>>> error: choice must be static
13. end;
14.
15. begin
16. null;
17. end;
I wonder what more static it should be.
Any clue ?
Thanks, Pascal.
Source code:
procedure test_20240211_static_choice is
package Maps is
type Map_Type is private
with Aggregate => (Empty => Empty_Map,
Add_Named => Add_To_Map);
procedure Add_To_Map (M : in out Map_Type; Key : in Integer;
Value : in String);
Empty_Map : constant Map_Type;
private
type Map_Type is array (1..10) of String (1..10);
procedure Add_To_Map (M : in out Map_Type; Key : in Integer;
Value : in String) is null;
Empty_Map : constant Map_Type := [1..10 => " "]; --
error: choice must be static
end;
begin
null;
end;