aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib/test
diff options
context:
space:
mode:
authorHans Bolinder <[email protected]>2016-02-17 13:01:46 +0100
committerHans Bolinder <[email protected]>2016-02-17 13:01:46 +0100
commitf524d3baff6f63846efa571851cc3cc4a55916bd (patch)
treefe8a5d13ab678425e40a60117519c6a641a07dfc /lib/stdlib/test
parent05a24fed7539f861c7d725829acb196a3991923c (diff)
parent6285f2874977e033d02b3c0b77da78e35e771961 (diff)
downloadotp-f524d3baff6f63846efa571851cc3cc4a55916bd.tar.gz
otp-f524d3baff6f63846efa571851cc3cc4a55916bd.tar.bz2
otp-f524d3baff6f63846efa571851cc3cc4a55916bd.zip
Merge branch 'hb/stdlib/epp_typed_record_fields/OTP-13148'
* hb/stdlib/epp_typed_record_fields/OTP-13148: stdlib: Update qlc_pt to handle typed record fields stdlib: Let the linter detect old typed records stdlib: Update the linter to handle typed record fields stdlib: Update erl_expand_records to handle typed record fields compiler: Update the compiler to handle typed record fields stdlib: Update erl_id_trans to handle types and specs stdlib: Add a Cover test with typed record field stdlib: Update module shell to handle typed record fields stdlib: Update ms_transform to handle typed record fields stdlib: Modify the preprocessor as to expose typed record fields
Diffstat (limited to 'lib/stdlib/test')
-rw-r--r--lib/stdlib/test/epp_SUITE.erl21
-rw-r--r--lib/stdlib/test/erl_lint_SUITE.erl17
-rw-r--r--lib/stdlib/test/ms_transform_SUITE.erl6
-rw-r--r--lib/stdlib/test/shell_SUITE.erl4
4 files changed, 26 insertions, 22 deletions
diff --git a/lib/stdlib/test/epp_SUITE.erl b/lib/stdlib/test/epp_SUITE.erl
index 4c007e76ad..955b482313 100644
--- a/lib/stdlib/test/epp_SUITE.erl
+++ b/lib/stdlib/test/epp_SUITE.erl
@@ -25,7 +25,7 @@
upcase_mac_1/1, upcase_mac_2/1,
variable_1/1, otp_4870/1, otp_4871/1, otp_5362/1,
pmod/1, not_circular/1, skip_header/1, otp_6277/1, otp_7702/1,
- otp_8130/1, overload_mac/1, otp_8388/1, otp_8470/1, otp_8503/1,
+ otp_8130/1, overload_mac/1, otp_8388/1, otp_8470/1,
otp_8562/1, otp_8665/1, otp_8911/1, otp_10302/1, otp_10820/1,
otp_11728/1, encoding/1, extends/1]).
@@ -68,7 +68,7 @@ all() ->
[rec_1, {group, upcase_mac}, include_local, predef_mac,
{group, variable}, otp_4870, otp_4871, otp_5362, pmod,
not_circular, skip_header, otp_6277, otp_7702, otp_8130,
- overload_mac, otp_8388, otp_8470, otp_8503, otp_8562,
+ overload_mac, otp_8388, otp_8470, otp_8562,
otp_8665, otp_8911, otp_10302, otp_10820, otp_11728,
encoding, extends].
@@ -1230,23 +1230,8 @@ otp_8470(Config) when is_list(Config) ->
?line receive _ -> fail() after 0 -> ok end,
ok.
-otp_8503(doc) ->
- ["OTP-8503. Record with no fields is considered typed."];
-otp_8503(suite) ->
- [];
-otp_8503(Config) when is_list(Config) ->
- Dir = ?config(priv_dir, Config),
- C = <<"-record(r, {}).">>,
- ?line File = filename:join(Dir, "otp_8503.erl"),
- ?line ok = file:write_file(File, C),
- ?line {ok, List} = epp:parse_file(File, [], []),
- ?line [_] = [F || {attribute,_,type,{{record,r},[],[]}}=F <- List],
- file:delete(File),
- ?line receive _ -> fail() after 0 -> ok end,
- ok.
-
otp_8562(doc) ->
- ["OTP-8503. Record with no fields is considered typed."];
+ ["OTP-8562. Record with no fields is considered typed."];
otp_8562(suite) ->
[];
otp_8562(Config) when is_list(Config) ->
diff --git a/lib/stdlib/test/erl_lint_SUITE.erl b/lib/stdlib/test/erl_lint_SUITE.erl
index 32247ba492..8f0ac828ec 100644
--- a/lib/stdlib/test/erl_lint_SUITE.erl
+++ b/lib/stdlib/test/erl_lint_SUITE.erl
@@ -2607,6 +2607,23 @@ otp_5878(Config) when is_list(Config) ->
">>,
?line [] = run_test2(Config, UsedByType, [warn_unused_record]),
+ %% Abstract code generated by OTP 18. Note that the type info for
+ %% record fields has been put in a separate form.
+ OldAbstract = [{attribute,1,file,{"rec.erl",1}},
+ {attribute,1,module,rec},
+ {attribute,3,export,[{t,0}]},
+ {attribute,7,record,{r,[{record_field,7,{atom,7,f}}]}},
+ {attribute,7,type,
+ {{record,r},
+ [{typed_record_field,
+ {record_field,7,{atom,7,f}},
+ {type,7,union,[{atom,7,undefined},{type,7,atom,[]}]}}],
+ []}},
+ {function,9,t,0,[{clause,9,[],[],[{record,10,r,[]}]}]},
+ {eof,11}],
+ {error,[{"rec.erl",[{7,erl_lint,old_abstract_code}]}],[]} =
+ compile:forms(OldAbstract, [return, report]),
+
ok.
otp_6885(doc) ->
diff --git a/lib/stdlib/test/ms_transform_SUITE.erl b/lib/stdlib/test/ms_transform_SUITE.erl
index f02e82b39c..5f2167b609 100644
--- a/lib/stdlib/test/ms_transform_SUITE.erl
+++ b/lib/stdlib/test/ms_transform_SUITE.erl
@@ -1,7 +1,7 @@
%%
%% %CopyrightBegin%
%%
-%% Copyright Ericsson AB 2003-2011. All Rights Reserved.
+%% Copyright Ericsson AB 2003-2015. All Rights Reserved.
%%
%% Licensed under the Apache License, Version 2.0 (the "License");
%% you may not use this file except in compliance with the License.
@@ -342,8 +342,8 @@ records(doc) ->
records(Config) when is_list(Config) ->
?line setup(Config),
?line RD = <<"-record(t, {"
- "t1 = [],"
- "t2 = foo,"
+ "t1 = [] :: list(),"
+ "t2 = foo :: atom(),"
"t3,"
"t4"
"}).">>,
diff --git a/lib/stdlib/test/shell_SUITE.erl b/lib/stdlib/test/shell_SUITE.erl
index a9dd6b5817..3fb1a5572d 100644
--- a/lib/stdlib/test/shell_SUITE.erl
+++ b/lib/stdlib/test/shell_SUITE.erl
@@ -393,7 +393,9 @@ records(Config) when is_list(Config) ->
Test = filename:join(?config(priv_dir, Config), "test.erl"),
Contents = <<"-module(test).
- -record(state, {bin, reply, leader}).
+ -record(state, {bin :: binary(),
+ reply = no,
+ leader = some :: atom()}).
-ifdef(test1).
-record(test1, {f}).