aboutsummaryrefslogtreecommitdiffstats
path: root/lib/tools/test/emacs_SUITE_data/type_specs
blob: e71841cc7a0afba40649424da9d08c637c8762d4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
%% -*- Mode: erlang; indent-tabs-mode: nil -*-
%% Copyright Ericsson AB 2017. All Rights Reserved.

%% Tests how types and specs are indented (also that the editor can parse them)
%% May need improvements


-type ann() :: Var :: integer().
-type ann2() ::
        'return'
      | 'return_white_spaces'
      | 'return_comments'
      | 'text' | ann().
-type paren() ::
        (ann2()).

-type t6() ::
        1 | 2 | 3 |
        'foo'
      | 'bar'.

-type t8() :: {any(),none(),pid(),port(),
               reference(),float()}.

-type t14() :: [erl_scan:foo() |
                %% Should be highlighted
                term() |
                boolean() |
                byte() |
                char() |
                non_neg_integer() | nonempty_list() |
                pos_integer() |
                neg_integer() |
                number() |
                list() |
                nonempty_improper_list() | nonempty_maybe_improper_list() |
                maybe_improper_list() | string() | iolist() | byte() |
                module() |
                mfa()   |
                node()  |
                timeout() |
                no_return() |
                %% Should not be highlighted
                nonempty_() | nonlist() |
                erl_scan:bar(34, 92) | t13() | m:f(integer() | <<_:_*16>>)].

-type t15() :: {binary(),<<>>,<<_:34>>,<<_:_*42>>,
                <<_:3,_:_*14>>,<<>>} | [<<>>|<<_:34>>|<<_:16>>|
                                        <<_:3,_:_*1472>>|<<_:19,_:_*14>>| <<_:34>>|
                                        <<_:34>>|<<_:34>>|<<_:34>>].

-type t18() ::
        fun(() -> t17() | t16()).
-type t19() ::
        fun((t18()) -> t16()) |
        fun((nonempty_maybe_improper_list('integer', any())|
             1|2|3|a|b|<<_:3,_:_*14>>|integer())
            ->
                   nonempty_maybe_improper_list('integer', any())|   %% left to col 16?
                   1|2|3|a|b|<<_:3,_:_*14>>|integer()).              %% left to col 16?
-type t20() :: [t19(), ...].
-type t25() :: #rec3{f123 :: [t24() |
                              1|2|3|4|a|b|c|d|
                              nonempty_maybe_improper_list(integer, any())]}.
-type t26() :: #rec4{ a :: integer()
                    , b :: any()
                    }.

%% Spec

-spec t1(FooBar :: t99()) -> t99();
        (t2()) -> t2();
        (t4()) -> t4() when is_subtype(t4(), t24);
        (t23()) -> t23() when is_subtype(t23(), atom()),
                              is_subtype(t23(), t14());
        (t24()) -> t24() when is_subtype(t24(), atom()),
                              is_subtype(t24(), t14()),
                              is_subtype(t24(), t4()).

-spec over(I :: integer()) -> R1 :: foo:typen();
          (A :: atom()) -> R2 :: foo:atomen();
          (T :: tuple()) -> R3 :: bar:typen().

-spec mod:t2() -> any().

-spec handle_cast(Cast :: {'exchange', node(), [[name(),...]]}
                        | {'del_member', name(), pid()},
                  #state{}) -> {'noreply', #state{}}.

-spec handle_cast(Cast ::
                    {'exchange', node(), [[name(),...]]}
                  | {'del_member', name(), pid()},
                  #state{}) ->
                         {'noreply', #state{}}. %% left to col 10?

-spec all(fun((T) -> boolean()), List :: [T]) ->
                 boolean() when is_subtype(T, term()). % (*)

-spec get_closest_pid(term()) ->
                             Return :: pid()  %% left to col 10?
                                     | {'error', {'no_process', term()}} %% left to col 10?
                                     | {'no_such_group', term()}. %% left to col 10?

-spec add( X :: integer()
         , Y :: integer()
         ) -> integer().

-opaque attributes_data() ::
          [{'column', column()} | {'line', info_line()} |
           {'text', string()}] |  {line(),column()}.