From 33296501241d80df3dec8ee422bf8743558258af Mon Sep 17 00:00:00 2001 From: Doug Rohrer Date: Tue, 4 Oct 2016 17:10:40 -0400 Subject: Fix reference to automatic `undefined` field declared types. In 8ce35b287fb50a6845fccf6a13c672aae303dc91 automatic insertion of `undefined` for record fields without initializers was removed, but this was not noted in the documentation. Add a warning about this change using similar verbiage as the original docs. --- system/doc/reference_manual/typespec.xml | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'system') diff --git a/system/doc/reference_manual/typespec.xml b/system/doc/reference_manual/typespec.xml index 1899efd5f3..4421529dda 100644 --- a/system/doc/reference_manual/typespec.xml +++ b/system/doc/reference_manual/typespec.xml @@ -409,11 +409,13 @@ The initial values for fields are to be compatible with (that is, a member of) the corresponding types. This is checked by the compiler and results in a compilation error - if a violation is detected. For fields without initial values, - the singleton type 'undefined' is added to all declared types. - In other words, the following two record declarations have identical - effects: + if a violation is detected.

+ +

In previous (pre-19) versions of Erlang, for fields without initial values, + the singleton type 'undefined' was added to all declared types. + In other words, the following two record declarations had identical + effects:

   -record(rec, {f1 = 42 :: integer(),
                 f2      :: float(),
@@ -423,9 +425,10 @@
                 f2      :: 'undefined' | float(),
                 f3      :: 'undefined' | 'a' | 'b'}).

- For this reason, it is recommended that records contain initializers, - whenever possible. + This is no longer the case. If you require 'undefined' in your record field + type, you must explicitly add it to the typespec, as in the 2nd example.

+

Any record, containing type information or not, once defined, can be used as a type using the following syntax: -- cgit v1.2.3