aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib/src/sofs.erl
diff options
context:
space:
mode:
authorHans Bolinder <hasse@erlang.org>2011-08-24 12:35:49 +0200
committerHans Bolinder <hasse@erlang.org>2011-08-31 08:57:38 +0200
commitca7d2d43a839ab284104edea4663ada52d2c3e23 (patch)
treee748d3f36173e1054222c1bc3af249a69d13787d /lib/stdlib/src/sofs.erl
parent45942fb2f521ae7e043987eedc0d6197ba7b55b0 (diff)
downloadotp-ca7d2d43a839ab284104edea4663ada52d2c3e23.tar.gz
otp-ca7d2d43a839ab284104edea4663ada52d2c3e23.tar.bz2
otp-ca7d2d43a839ab284104edea4663ada52d2c3e23.zip
Improve and correct types and specifications in Kernel and STDLIB
Running Dialyzer on the test suites revealed a few type errors.
Diffstat (limited to 'lib/stdlib/src/sofs.erl')
-rw-r--r--lib/stdlib/src/sofs.erl5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/stdlib/src/sofs.erl b/lib/stdlib/src/sofs.erl
index d38b8ab37a..34eb224647 100644
--- a/lib/stdlib/src/sofs.erl
+++ b/lib/stdlib/src/sofs.erl
@@ -81,7 +81,8 @@
-define(ORDTAG, 'OrdSet').
-record(?TAG, {data = [] :: list(), type = type :: term()}).
--record(?ORDTAG, {orddata = {} :: tuple(), ordtype = type :: term()}).
+-record(?ORDTAG, {orddata = {} :: tuple() | atom(),
+ ordtype = type :: term()}).
-define(LIST(S), (S)#?TAG.data).
-define(TYPE(S), (S)#?TAG.type).
@@ -375,7 +376,7 @@ to_sets(S) when ?IS_ORDSET(S) ->
-spec(no_elements(ASet) -> NoElements when
ASet :: a_set() | ordset(),
- NoElements :: pos_integer()).
+ NoElements :: non_neg_integer()).
no_elements(S) when ?IS_SET(S) ->
length(?LIST(S));
no_elements(S) when ?IS_ORDSET(S), is_tuple(?ORDTYPE(S)) ->