change confusing wording about discriminant

This commit is contained in:
Alex Burka 2016-06-13 21:38:04 -04:00 committed by Alex Burka
parent fae3335272
commit 5276b29670

View File

@ -581,9 +581,9 @@ However, the language provides a workaround.
As a special case, an `enum` is eligible for the "nullable pointer optimization" if it
contains exactly two variants, one of which contains no data and the other contains
a field of one of the non-nullable types listed above (or a struct containing such a type).
This means it is represented as a single pointer, and the non-data variant is represented as a
null pointer. This is called an "optimization", but unlike other optimizations it is guaranteed
to apply to eligible types.
This means no extra space is required for a discriminant; rather, the empty variant is represented
by putting a `null` value into the non-nullable field. This is called an "optimization", but unlike
other optimizations it is guaranteed to apply to eligible types.
The most common type that takes advantage of the nullable pointer optimization is `Option<T>`,
where `None` corresponds to `null`. So `Option<extern "C" fn(c_int) -> c_int>` is a correct way