diff options
author | Hans Bolinder <[email protected]> | 2019-03-21 09:25:16 +0100 |
---|---|---|
committer | Hans Bolinder <[email protected]> | 2019-04-12 08:56:38 +0200 |
commit | 16055085f761531ed1679c55fdcc14928aec1e1d (patch) | |
tree | 88b4d845b9d579b03743284b37e5c25918042670 /lib/stdlib/test | |
parent | f99398161726821c67d9da07eb869221d4ecf539 (diff) | |
download | otp-16055085f761531ed1679c55fdcc14928aec1e1d.tar.gz otp-16055085f761531ed1679c55fdcc14928aec1e1d.tar.bz2 otp-16055085f761531ed1679c55fdcc14928aec1e1d.zip |
stdlib: Add option 'quote_singleton_atom_types' to erl_pp
The new option can be used by Dialyzer, which has traditionally quoted
singleton atom types.
The OTP team has decided not to use the convention in OTP
documentation, at least not for now. That is why the option is needed.
EDoc does not use the new option.
Syntax Tools does not have a similar option.
Diffstat (limited to 'lib/stdlib/test')
-rw-r--r-- | lib/stdlib/test/erl_pp_SUITE.erl | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/stdlib/test/erl_pp_SUITE.erl b/lib/stdlib/test/erl_pp_SUITE.erl index e5d1910070..c79e29eb11 100644 --- a/lib/stdlib/test/erl_pp_SUITE.erl +++ b/lib/stdlib/test/erl_pp_SUITE.erl @@ -47,6 +47,7 @@ hook/1, neg_indent/1, maps_syntax/1, + quoted_atom_types/1, otp_6321/1, otp_6911/1, otp_6914/1, otp_8150/1, otp_8238/1, otp_8473/1, otp_8522/1, otp_8567/1, otp_8664/1, otp_9147/1, @@ -74,7 +75,7 @@ groups() -> [{expr, [], [func, call, recs, try_catch, if_then, receive_after, bits, head_tail, cond1, block, case1, ops, - messages, maps_syntax + messages, maps_syntax, quoted_atom_types ]}, {attributes, [], [misc_attrs, import_export, dialyzer_attrs]}, {tickets, [], @@ -912,6 +913,21 @@ maps_syntax(Config) when is_list(Config) -> ok = pp_forms(F), ok. +quoted_atom_types(Config) when is_list(Config) -> + Q = [{quote_singleton_atom_types, true}], + U = [{encoding,unicode}], + L = [{encoding,latin1}], + F = "-type t() :: a | a().", + "-type t() :: 'a' | a().\n" = + lists:flatten(parse_and_pp_forms(F, Q ++ L)), + "-type t() :: 'a' | a().\n" = + lists:flatten(parse_and_pp_forms(F, Q ++ U)), + UF = "-type t() :: '\x{400}' | '\x{400}'().", + "-type t() :: '\\x{400}' | '\\x{400}'().\n" = + lists:flatten(parse_and_pp_forms(UF, Q ++ L)), + "-type t() :: '\x{400}' | '\x{400}'().\n" = + lists:flatten(parse_and_pp_forms(UF, Q ++ U)), + ok. %% OTP_8567. Avoid duplicated 'undefined' in record field types. otp_8567(Config) when is_list(Config) -> |