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;