> On 29 Apr 2016, at 14:02, Juergen Schoenwaelder
> <[email protected]> wrote:
>
> On Fri, Apr 29, 2016 at 02:01:08PM +0200, Ladislav Lhotka wrote:
>>
>>> On 29 Apr 2016, at 13:56, Juergen Schoenwaelder
>>> <[email protected]> wrote:
>>>
>>> On Fri, Apr 29, 2016 at 01:52:33PM +0200, Ladislav Lhotka wrote:
>>>> Hi,
>>>>
>>>> if we have
>>>>
>>>> typedef foo {
>>>> type enumeration {
>>>> enum one;
>>>> enum two;
>>>> }
>>>> }
>>>>
>>>> typedef bar {
>>>> type foo;
>>>> }
>>>>
>>>> what is the set of values permitted for "bar"? Is it empty or the
>>>> same as for "foo"?
>>>
>>> The set is { one, two } - where is the hidden catch??
>>
>> In sec. 9.6.4 of 6020bis:
>>
>> When an existing enumeration type is restricted, the set of assigned
>> names in the new type MUST be a subset of the base type's set of
>> assigned names. The value of such an assigned name MUST NOT be
>> changed.
>>
>> In our case there are no names assigned in the new type "bar", i.e. empty
>> set (which is a subset of the base type's set).
>>
>
> There is no type restriction hence there is no restriction of the
> value space.
The problem here is that enum statements aren't really restrictions but rather
specify the new set of values. It would be kind of discontinuos: with
typedef bar {
type foo {
enum one;
enum two;
}
}
the "bar" set would be {one, two}. If I remove the "enum two;" statement, the
set would be just {one}, but then if I remove the "enum one;" statement, the
set would again become {one, two}.
Lada
>
> /js
>
> --
> Juergen Schoenwaelder Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587 Campus Ring 1 | 28759 Bremen | Germany
> Fax: +49 421 200 3103 <http://www.jacobs-university.de/>
--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C
_______________________________________________
netmod mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/netmod