From: Stephen Leake <stephen_leake@stephe-leake.org>
Subject: 'for cursor in container.first loop' bug?
Date: Thu, 28 Aug 2014 12:56:56 -0500
Date: 2014-08-28T12:56:56-05:00 [thread overview]
Message-ID: <85y4u8xztj.fsf@stephe-leake.org> (raw)
I'm trying to use the 'for cursor in container.first loop' syntax in Ada
2012 with my own container, and having lots of problems.
So first I tried a simple example using Ada.Containers.Vector, with GNAT
2014:
with Ada.Text_Io; use Ada.Text_Io;
with Ada.Containers.Vectors;
procedure Try_Containers
is
package Integer_Vectors is new Ada.Containers.Vectors (Natural, Integer);
use Integer_Vectors;
A : Vector := To_Vector (1, 10);
begin
Loop_1 :
for Element of A loop
Put_Line ("A (i) => " & Integer'Image (Element));
-- can't do Element := 2;
end loop Loop_1;
Loop_2 :
for Cursor in First (A) loop
Put_Line ("A (I) => " & Integer'Image (Element (Cursor)));
Replace_Element (A, Cursor, 2);
Reference (A, Cursor) := 2;
end loop Loop_2;
end Try_Containers;
This gives compilation errors:
gnatmake -k ../try_containers.adb
gcc -c -I../ -I- ../try_containers.adb
try_containers.adb:17:28: invalid prefix in call
try_containers.adb:17:28: invalid prefix in selected component "I572b"
gnatmake: "../try_containers.adb" compilation error
Same error (with a different generated name) with GnatPro 7.2.
Commenting out loop_2 gives the expected results.
Am I missing something simple, or is this a compiler bug? At the very
least, it's not a good error message.
--
-- Stephe
next reply other threads:[~2014-08-28 17:56 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-28 17:56 Stephen Leake [this message]
2014-08-28 19:56 ` 'for cursor in container.first loop' bug? Randy Brukardt
2014-08-29 13:52 ` Stephen Leake
2014-08-28 20:46 ` Simon Wright
2014-08-29 3:16 ` Randy Brukardt
2014-08-29 14:03 ` Stephen Leake
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox