aboutsummaryrefslogblamecommitdiffstats
path: root/lib/tools/test/emacs_SUITE_data/icr
blob: 4be6baba97992e9a2b3e09aa82f3c4498386ce3d (plain) (tree)




























































































































































                                                                                             
%% -*- Mode: erlang; indent-tabs-mode: nil -*-
%% Copyright Ericsson AB 2017. All Rights Reserved.

%%% indentation of if case receive statements

%%% Not everything in these test are set in stone
%%% better indentation rules can be added but by having
%%% these tests we can see what changes in new implementations
%%% and notice when doing unintentional changes

indent_if(1, Z) ->
    %% If
    if Z >= 0 ->
            X = 43 div Z,
            X;
       Z =< 10 ->
            X = 43 div Z,
            X;
       Z == 5 orelse
       Z == 7 ->
            X = 43 div Z,
            X;
       is_number(Z),
       Z < 32 ->
            Z;
       is_number(Z);
       Z < 32 ->
            Z * 32;
       true ->
            if_works
    end;
indent_if(2, Z) ->
    %% If (this is broken)
    if
        Z >= 0 ->
            X = 43 div Z,
            X
                ; Z =< 10 ->
            43 div Z
                ; Z == 5 orelse
        Z == 7 ->
            X = 43 div Z,
            X
                ; is_number(Z),
        Z < 32 ->
            Z
                ; true ->
            if_works
    end.

indent_case(1, Z) ->
    %% Case
    case {Z, foo, bar} of
        {Z,_,_} ->
            X = 43 div 4,
            foo(X);
        {Z,_,_}	when
              Z =:= 42 ->                       % line should be indented as a when
            X = 43 div 4,
            foo(X);
        {Z,_,_}
          when   Z < 10 orelse
                 Z =:= foo ->			% Binary op alignment here !!!
            X = 43 div 4,
            Bool = Z < 5 orelse                 % Binary op args align differently after when
                Z =:= foo,                      % and elsewhere ???
            foo(X);
        {Z,_,_}
          when					% when should be indented
              Z < 10				% and the guards should follow when
              andalso				% unsure about how though
              true ->
            X = 43 div 4,
            foo(X)
    end;
indent_case(2, Z) ->
    %% Case (also broken)
    case {Z, foo, bar} of
        {Z,_,_} ->
            X = 43 div 4,
            foo(X)
                ; {Z,_,_}	when
              Z =:= 42 ->                       % line should be indented as a when
            X = 43 div 4,
            foo(X)
                ; {Z,_,_}
          when Z < 10 ->			% when should be indented
            X = 43 div 4,
            foo(X)
                ; {Z,_,_}
          when					% when should be indented
              Z < 10				% and the guards should follow when
              andalso				% unsure about how though
              true ->
            X = 43 div 4,
            foo(X)
    end.

indent_begin(Z) ->
    %% Begin
    begin
        sune,
        Z = 74234 +
            foo(8456) +
            345 div 43,
        Foo = begin
                  ok,
                  foo(234),
                  begin
                      io:format("Down here\n")
                  end
              end,
        {Foo,
         bar}
    end.

indent_receive(1) ->
    %% receive
    receive
        {Z,_,_} ->
            X = 43 div 4,
            foo(X);
        Z ->
            X = 43 div 4,
            foo(X)
    end,
    ok;
indent_receive(2) ->
    receive
        {Z,_,_} ->
            X = 43 div 4,
            foo(X);
        Z 					% added clause
          when Z =:= 1 ->			% This line should be indented by 2
            X = 43 div 4,
            foo(X);
        Z when					% added clause
              Z =:= 2 ->			% This line should be indented by 2
            X = 43 div 4,
            foo(X);
        Z ->
            X = 43 div 4,
            foo(X)
    after infinity ->
            foo(X),
            asd(X),
            5*43
    end,
    ok;
indent_receive() ->
    receive
    after 10 ->
            foo(X),
            asd(X),
            5*43
    end,
    ok.