return(x) without assignation is not a correct expression
[scilab.git] / scilab / modules / ast / tests / unit_tests / return.dia.ref
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2014 - Scilab Enterprises - Antoine ELIAS
3 //
4 // This file must be used under the terms of the CeCILL.
5 // This source file is licensed as described in the file COPYING, which
6 // you should have received as part of this distribution.  The terms
7 // are also available at
8 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
9 //
10 //
11 // <-- CLI SHELL MODE -->
12 function v = while_return()
13     v = 0;
14     while v == 0
15         v = 1;
16         return
17         v = 2;
18     end
19 endfunction
20 function v = while_if_return()
21     v = 0;
22     flag = 0;
23     while v == 0
24         if v == 0 then
25             v = 1;
26             return
27             v = 2;
28         end
29     end
30     v = 3;
31 endfunction
32 function v = for_return()
33     v = 0;
34     for i = 1:1
35         v = 1;
36         return
37         v = 2;
38     end
39 endfunction
40 function v = for_if_return()
41     v = 0;
42     flag = 0;
43     for i = 1:1
44         if v == 0 then
45             v = 1;
46             return
47             v = 2;
48         end
49     end
50     v = 3;
51 endfunction
52 function y=foo()
53     y = [];
54     return y;
55 end
56 assert_checkequal(while_return(), 1);
57 assert_checkequal(while_if_return(), 1);
58 assert_checkequal(for_return(), 1);
59 assert_checkequal(for_if_return(), 1);
60 assert_checkerror("foo()", _("With input arguments, return / resume expect output arguments."));