S : Segment := (1 .. 2 => (0, 0));
T : Triangle := (1 .. 3 => (1 .. 2 => (0, 0)));
begin
- S := (S with delta (1).X | (2).Y => 12, (1).Y => 15);
+ S := (S with delta (1).X => 11, (2).Y => 12, (1).Y => 15);
- pragma Assert (S (1).X = 12);
+ pragma Assert (S (1).X = 11);
pragma Assert (S (2).Y = 12);
pragma Assert (S (1).Y = 15);
else
-- a deep delta aggregate choice
- pragma Assert (All_Extensions_Allowed);
+ pragma Assert (Core_Extensions_Allowed);
declare
-- recursively get name for prefix
S : Segment := (1 .. 2 => (0, 0));
T : Triangle := (1 .. 3 => (1 .. 2 => (0, 0)));
begin
- S := (S with delta (1).X | (2).Y => 12, (1).Y => 15);
+ S := (S with delta (1).X => 11, (2).Y => 12, (1).Y => 15);
- pragma Assert (S (1).X = 12);
+ pragma Assert (S (1).X = 11);
pragma Assert (S (2).Y = 12);
pragma Assert (S (1).Y = 15);
end;
end if;
- -- If all extensions are enabled and we have a deep delta aggregate
+ -- If core extensions are enabled and we have a deep delta aggregate
-- whose type is an array type with an element type that is a
-- record type, then we can encounter legal things like
-- with delta (Some_Index_Expression).Some_Component
and then Prev_Token = Tok_Right_Paren
and then Serious_Errors_Detected = 0
and then Inside_Delta_Aggregate
- and then All_Extensions_Allowed
+ and then Core_Extensions_Allowed
then
if Token = Tok_Dot then
Node2 := New_Node (N_Selected_Component, Token_Ptr);
Choice := First (Choice_List (Assoc));
while Present (Choice) loop
if Is_Deep_Choice (Choice, Typ) then
- pragma Assert (All_Extensions_Allowed);
+ pragma Assert (Core_Extensions_Allowed);
Deep_Choice_Seen := True;
-- a deep delta aggregate
Deep_Choice := Nkind (Choice) /= N_Identifier;
if Deep_Choice then
Error_Msg_GNAT_Extension
- ("deep delta aggregate", Sloc (Choice));
+ ("deep delta aggregate", Sloc (Choice),
+ Is_Core_Extension => True);
end if;
Comp_Type := Get_Component_Type