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