Skip to content

Commit 575fe1a

Browse files
committed
support any args and arg list on fun type
1 parent 9019730 commit 575fe1a

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

‎src/fn_spec.erl‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,13 @@ parse_type_value(?E(Line, call,
3838
{{type, Line, Name, [{integer, FL, From}, {integer, TL, To}]}, State};
3939
parse_type_value(?E(Line, call, {[?Atom('fun')], [?S(_, list, [])]}), State) ->
4040
{{type, Line, 'fun', []}, State};
41+
parse_type_value(?E(Line, call, {[?Atom('fun')], [?V(ALine, atom, any), Return]}), State) ->
42+
{EReturn, State1} = parse_type_value(Return, State),
43+
{{type, Line, 'fun', [{type, ALine, any}, EReturn]}, State1};
44+
parse_type_value(?E(Line, call, {[?Atom('fun')], [?S(ALine, list, Args), Return]}), State) ->
45+
{EReturn, State1} = parse_type_value(Return, State),
46+
{EArgs, State2} = parse_types(Args, State1),
47+
{{type, Line, 'fun', [{type, ALine, product, EArgs}, EReturn]}, State2};
4148
parse_type_value(?E(Line, call, {[?Atom(Name)], []=Args}), State) ->
4249
{{type, Line, Name, Args}, State};
4350
parse_type_value(?S(Line, list, []), State) ->

0 commit comments

Comments
 (0)