3.7.1(8) says "A discriminant_constraint shall provide exactly one value
for each discriminant of the subtype being constrained."  While one
might think that one is constraining a discriminant, and thus only need
to put in the subset of discriminants you want to constrain, the subtype
is what is being constrained, and yours has 2 discriminants, both of
which need values.  That has been there since Ada 83.

Roger Racine

On Fri, 2005-06-03 at 12:24, Chris Sparks wrote:
> Hello experts!
> 
> I thought I understood discriminants, however, when I tried to assign to 
> MR2 and MR3 below, the compiler barked at me...
> 
> ----------------------------------------------------
>   type My_Record (Item : Integer := 1;
>                   Data : Integer := 2) is record
>     Stuff : Integer := Item * Data;
>   end record;
> 
>   MR1 : My_Record;
> --MR2 : My_Record (Data => 3);
> --MR3 : My_Record (Item => 3);
>   MR4 : My_Record (Item => 10, Data => 11);
> ----------------------------------------------------
> 
> Can someone enlighten me on this?
> 
> Chris Sparks